diff --git a/.github/guides/AUTODOC.md b/.github/guides/AUTODOC.md index dd2f30627b7d..90e5b2d1ac66 100644 --- a/.github/guides/AUTODOC.md +++ b/.github/guides/AUTODOC.md @@ -1,9 +1,9 @@ # dmdoc -[DOCUMENTATION]: **PUT DOCUMENTATION LINK HERE** +[DOCUMENTATION]: https://docs.cm-ss13.com/ [BYOND]: https://secure.byond.com/ -[DMDOC]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/src/dmdoc +[DMDOC]: https://github.com/SpaceManiac/SpacemanDMM/tree/master/crates/dmdoc [DMDOC] is a documentation generator for DreamMaker, the scripting language of the [BYOND] game engine. It produces simple static HTML files based on @@ -13,9 +13,9 @@ We use **dmdoc** to generate [DOCUMENTATION] for our code, and that documentatio is automatically generated and built on every new commit to the master branch This gives new developers a clickable reference [DOCUMENTATION] they can browse to better help -gain understanding of the /tg/station codebase structure and api reference. +gain understanding of the CM-SS13 codebase structure and api reference. -## Documenting code on /tg/station +## Documenting code on CM-SS13 We use block comments to document procs and classes, and we use `///` line comments when documenting individual variables. diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 8d7b4133840c..e2390c9fe817 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -89,6 +89,19 @@ ], "group": "build", "label": "tgui: sonar" + }, + { + "type": "shell", + "command": "bin/tgfont", + "windows": { + "command": ".\\bin\\tgfont.cmd" + }, + "problemMatcher": [ + "$tsc", + "$eslint-stylish" + ], + "group": "build", + "label": "tgui: rebuild tgfont" } ] } diff --git a/bin/tgfont.cmd b/bin/tgfont.cmd new file mode 100644 index 000000000000..b768c81d653a --- /dev/null +++ b/bin/tgfont.cmd @@ -0,0 +1,2 @@ +@echo off +call "%~dp0\..\tools\build\build.bat" --wait-on-error tg-font %* diff --git a/code/__DEFINES/ARES.dm b/code/__DEFINES/ARES.dm index a1b82af25821..0e3cc4a8ff6e 100644 --- a/code/__DEFINES/ARES.dm +++ b/code/__DEFINES/ARES.dm @@ -1,21 +1,22 @@ +#define ARES_ACCESS_LOGOUT 0 /// Generic access for 1:1 conversations with ARES and unrestricted commands. -#define ARES_ACCESS_BASIC 0 +#define ARES_ACCESS_BASIC 1 /// Secure Access, can read ARES Announcements and Bioscans. -#define ARES_ACCESS_COMMAND 1 -#define ARES_ACCESS_JOE 2 +#define ARES_ACCESS_COMMAND 2 +#define ARES_ACCESS_JOE 3 /// CL, can read Apollo Log and also Delete Announcements. -#define ARES_ACCESS_CORPORATE 3 +#define ARES_ACCESS_CORPORATE 4 /// Senior Command, can Delete Bioscans. -#define ARES_ACCESS_SENIOR 4 +#define ARES_ACCESS_SENIOR 5 /// Synth, CE & Commanding Officer, can read the access log. -#define ARES_ACCESS_CE 5 -#define ARES_ACCESS_SYNTH 6 -#define ARES_ACCESS_CO 7 +#define ARES_ACCESS_CE 6 +#define ARES_ACCESS_SYNTH 7 +#define ARES_ACCESS_CO 8 /// High Command, can read the deletion log. -#define ARES_ACCESS_HIGH 8 -#define ARES_ACCESS_WY_COMMAND 9 +#define ARES_ACCESS_HIGH 9 +#define ARES_ACCESS_WY_COMMAND 10 /// Debugging. Allows me to view everything without using a high command rank. Unlikely to stay in a full merge. -#define ARES_ACCESS_DEBUG 10 +#define ARES_ACCESS_DEBUG 11 #define ARES_RECORD_ANNOUNCE "Announcement Record" #define ARES_RECORD_ANTIAIR "AntiAir Control Log" @@ -67,6 +68,12 @@ #define TICKET_OPEN "OPEN" #define TICKET_CLOSED "CLOSED" +// Priority status changes. +/// Upgraded to Priority +#define TICKET_PRIORITY "priority" +/// Downgraded from Priority +#define TICKET_NON_PRIORITY "non-priority" + /// Cooldowns #define COOLDOWN_ARES_SENSOR 60 SECONDS #define COOLDOWN_ARES_ACCESS_CONTROL 20 SECONDS diff --git a/code/__DEFINES/__game.dm b/code/__DEFINES/__game.dm index ead4c9665c7c..a03701045768 100644 --- a/code/__DEFINES/__game.dm +++ b/code/__DEFINES/__game.dm @@ -1,9 +1,3 @@ -#define RANGE_TURFS(RADIUS, CENTER) \ -block( \ - locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ - locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ -) - //Admin perms are in global.dm. /// To make it even more clear that something is a bitfield. @@ -283,7 +277,7 @@ block( \ // Helpers /// Only use the CEILING_PROTECTION_TIER_X defines for `protection_level` -#define CEILING_IS_PROTECTED(ceiling, protection_level) (ceiling >= protection_level) +#define CEILING_IS_PROTECTED(ceiling, protection_level) ((ceiling) >= (protection_level)) // Default font settings #define FONT_SIZE "5pt" @@ -379,6 +373,7 @@ block( \ #define WALL_DEVWALL "devwall" #define WALL_DEVWALL_R "devwall_r" #define WALL_HUNTERSHIP "metal"//DMI specific name +#define WALL_AICORE "aiwall" //Defines for dropship weapon gimbals #define GIMBAL_LEFT -1 @@ -536,7 +531,7 @@ block( \ /// `amount` - The number to get per time /// `time` - The time period in which to gain this amount /// To be used with delta_time. Multiplied by 10 to convert from deciseconds to seconds -#define AMOUNT_PER_TIME(amount, time) ((amount / (time))*10) +#define AMOUNT_PER_TIME(amount, time) (((amount) / (time))*10) // Local message mode. Used to decide wheter message should be dispatched on the radio. #define MESSAGE_MODE_LOCAL 1 diff --git a/code/__DEFINES/_math.dm b/code/__DEFINES/_math.dm index 138adeeda451..d7c068237987 100644 --- a/code/__DEFINES/_math.dm +++ b/code/__DEFINES/_math.dm @@ -14,6 +14,8 @@ #define CEILING(x, y) ( -round(-(x) / (y)) * (y) ) +#define ROUND_UP(x) ( -round(-(x))) + // round() acts like floor(x, 1) by default but can't handle other values #define FLOOR(x, y) ( round((x) / (y)) * (y) ) @@ -21,10 +23,10 @@ #define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) ) // Returns true if val is from min to max, inclusive. -#define ISINRANGE(val, min, max) (min <= val && val <= max) +#define ISINRANGE(val, min, max) ((min) <= (val) && (val) <= (max)) // Same as above, exclusive. -#define ISINRANGE_EX(val, min, max) (min < val && val < max) +#define ISINRANGE_EX(val, min, max) ((min) < (val) && (val) < (max)) // Will filter out extra rotations and negative rotations // E.g: 540 becomes 180. -180 becomes 180. @@ -34,4 +36,4 @@ #define SIGN(x) ( ((x) > 0) - ((x) < 0) ) /// Performs a linear interpolation between a and b. Note that amount=0 returns a, amount=1 returns b, and amount=0.5 returns the mean of a and b. -#define LERP(a, b, amount) ( amount ? ((a) + ((b) - (a)) * (amount)) : a ) +#define LERP(a, b, amount) ( (amount) ? ((a) + ((b) - (a)) * (amount)) : (a) ) diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm index 9846e974827e..e6e1e64e9c7e 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm @@ -71,3 +71,10 @@ /// From /obj/effect/alien/resin/special/eggmorph/attack_alien: (mob/living/carbon/xenomorph/M) #define COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER "xeno_take_hugger_from_morpher" + +/// From /mob/living/carbon/xenomorph/proc/handle_crit() +#define COMSIG_XENO_ENTER_CRIT "xeno_entering_critical" + +/// From /mob/living/carbon/xenomorph/proc/hivemind_talk(): (message) +#define COMSIG_XENO_TRY_HIVEMIND_TALK "xeno_try_hivemind_talk" + #define COMPONENT_OVERRIDE_HIVEMIND_TALK (1<<0) diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm index 710e4d9ae20a..f4df347c62db 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm @@ -75,9 +75,13 @@ #define COMSIG_MOB_PRE_CLICK "mob_pre_click" #define COMPONENT_INTERRUPT_CLICK (1<<0) -///from base of /mob/Login(): () +/// From base of /mob/Login(), called when a client logs into this mob: () +/// Not to be confused with [COMSIG_MOB_LOGGED_IN] #define COMSIG_MOB_LOGIN "mob_login" -///from base of /mob/Logout(): () +/// From base of /mob/Login(), called after a client logs into this mob: () +/// Not to be confused with [COMSIG_MOB_LOGIN] +#define COMSIG_MOB_LOGGED_IN "mob_logged_in" +/// From base of /mob/Logout(): () #define COMSIG_MOB_LOGOUT "mob_logout" /// From /mob/proc/change_real_name(): (old_name, new_name) @@ -109,6 +113,12 @@ #define COMSIG_MOB_EMOTED(emote_key) "mob_emoted_[emote_key]" +#define COMSIG_MOB_TRY_EMOTE "mob_try_emote" + #define COMPONENT_OVERRIDE_EMOTE (1<<0) + +#define COMSIG_MOB_TRY_POINT "mob_try_point" + #define COMPONENT_OVERRIDE_POINT (1<<0) + //from /mob/living/set_stat() #define COMSIG_MOB_STAT_SET_ALIVE "mob_stat_set_alive" //from /mob/living/set_stat() diff --git a/code/__DEFINES/dcs/signals/atom/signals_atom.dm b/code/__DEFINES/dcs/signals/atom/signals_atom.dm index d9bd1202c159..4e4458232669 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_atom.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_atom.dm @@ -1,6 +1,7 @@ /// From /atom/proc/Decorate #define COMSIG_ATOM_DECORATED "atom_decorated" - +//from SSatoms InitAtom - Only if the atom was not deleted or failed initialization and has a loc +#define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON "atom_init_success_on" ///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes. #define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" diff --git a/code/__DEFINES/dcs/signals/atom/signals_turf.dm b/code/__DEFINES/dcs/signals/atom/signals_turf.dm index 6a0788bcf871..881ffc3ee139 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_turf.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_turf.dm @@ -19,3 +19,6 @@ ///from /turf/closed/wall/proc/place_poster #define COMSIG_POSTER_PLACED "poster_placed" + +///from base of /datum/turf_reservation/proc/Release: (datum/turf_reservation/reservation) +#define COMSIG_TURF_RESERVATION_RELEASED "turf_reservation_released" diff --git a/code/__DEFINES/dcs/signals/signals_client.dm b/code/__DEFINES/dcs/signals/signals_client.dm index 3968f654c486..36a60c153d0f 100644 --- a/code/__DEFINES/dcs/signals/signals_client.dm +++ b/code/__DEFINES/dcs/signals/signals_client.dm @@ -19,8 +19,8 @@ /// Called after one or more verbs are added: (list of verbs added) #define COMSIG_CLIENT_VERB_REMOVED "client_verb_removed" -/// Called after a client logs into a mob: (mob) -#define COMSIG_CLIENT_MOB_LOGIN "client_mob_changed" +/// Called from /mob/Login() after a client logs into a mob: (mob) +#define COMSIG_CLIENT_MOB_LOGGED_IN "client_mob_logged_in" /// Called when something is added to a client's screen : /client/proc/add_to_screen(screen_add) #define COMSIG_CLIENT_SCREEN_ADD "client_screen_add" diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm index 7696d8ad6037..b798d510763e 100644 --- a/code/__DEFINES/dcs/signals/signals_datum.dm +++ b/code/__DEFINES/dcs/signals/signals_datum.dm @@ -64,3 +64,6 @@ // from /proc/update_living_queens() : /mob/living/carbon/xenomorph/queen #define COMSIG_HIVE_NEW_QUEEN "hive_new_queen" + +/// Fired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas) +#define COMSIG_LAZY_TEMPLATE_LOADED "lazy_template_loaded" diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm index 5569ded71586..378948347a81 100644 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -8,6 +8,8 @@ ///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) #define COMSIG_GLOB_NEW_Z "!new_z" +/// sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy) +#define COMSIG_GLOB_EXPANDED_WORLD_BOUNDS "!expanded_world_bounds" ///from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args) #define COMSIG_GLOB_VEHICLE_ORDERED "!vehicle_ordered" /// from /datum/controller/subsystem/ticker/fire @@ -32,9 +34,11 @@ #define COMSIG_GLOB_REMOVE_VOTE_BUTTON "!remove_vote_button" -#define COMSIG_GLOB_CLIENT_LOGIN "!client_login" +/// Called from /client/New() when a client logs in to the game: (client) +#define COMSIG_GLOB_CLIENT_LOGGED_IN "!client_logged_in" -#define COMSIG_GLOB_MOB_LOGIN "!mob_login" +/// Called from /mob/Login() when a client logs into a mob: (mob) +#define COMSIG_GLOB_MOB_LOGGED_IN "!mob_logged_in" ///from /datum/controller/subsystem/ticker/PostSetup #define COMSIG_GLOB_POST_SETUP "!post_setup" @@ -66,7 +70,7 @@ #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) +/// From /obj/structure/machinery/power/reactor/proc/set_overloading() : (set_overloading) #define COMSIG_GLOB_GENERATOR_SET_OVERLOADING "!generator_set_overloading" #define COMSIG_GLOB_HIJACK_IMPACTED "!hijack_impacted" diff --git a/code/__DEFINES/dropships.dm b/code/__DEFINES/dropships.dm index f7df570a2864..d53e7c68d8db 100644 --- a/code/__DEFINES/dropships.dm +++ b/code/__DEFINES/dropships.dm @@ -10,3 +10,8 @@ #define DROPSHIP_MIN_AUTO_DELAY 10 SECONDS #define DROPSHIP_AUTO_RETRY_COOLDOWN 20 SECONDS #define DROPSHIP_MEDEVAC_COOLDOWN 20 SECONDS + +//Hatches states +#define SHUTTLE_DOOR_BROKEN -1 +#define SHUTTLE_DOOR_UNLOCKED 0 +#define SHUTTLE_DOOR_LOCKED 1 diff --git a/code/__DEFINES/human.dm b/code/__DEFINES/human.dm index ebf08f495752..c0a5e837c554 100644 --- a/code/__DEFINES/human.dm +++ b/code/__DEFINES/human.dm @@ -182,8 +182,8 @@ //Synthetic Defines #define SYNTH_COLONY "Third Generation Colonial Synthetic" -#define SYNTH_COLONY_GEN_TWO "First Generation Colonial Synthetic" -#define SYNTH_COLONY_GEN_ONE "Second Generation Colonial Synthetic" +#define SYNTH_COLONY_GEN_TWO "Second Generation Colonial Synthetic" +#define SYNTH_COLONY_GEN_ONE "First Generation Colonial Synthetic" #define SYNTH_COMBAT "Combat Synthetic" #define SYNTH_INFILTRATOR "Infiltrator Synthetic" #define SYNTH_WORKING_JOE "Working Joe" diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index f4503aeea5d5..4b8fd9bd58b3 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -165,6 +165,8 @@ #define COMSIG_KB_XENO_HIVE_STATUS "keybinding_hive_status" #define COMSIG_KB_XENO_HIDE "keybinding_hide" #define COMSIG_KB_XENO_EVOLVE "keybinding_evolve" +#define COMSIG_KB_XENO_PURCHASE_STRAIN "keybinding_purchase_strain" + // Yautja #define COMSIG_KB_YAUTJA_BUTCHER "keybinding_yautja_butcher" diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 155a91fa62ed..ef3d17572f0d 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -118,8 +118,5 @@ require only minor tweaks. #define MAP_ARMOR_STYLE_JUNGLE "jungle" #define MAP_ARMOR_STYLE_PRISON "prison" -//turf-only flags -#define NOJAUNT_1 (1<<0) -#define UNUSED_RESERVATION_TURF (1<<1) -/// If a turf can be made dirty at roundstart. This is also used in areas. -#define CAN_BE_DIRTY_1 (1<<2) +/// A map key that corresponds to being one exclusively for Space. +#define SPACE_KEY "space" diff --git a/code/__DEFINES/mob_hud.dm b/code/__DEFINES/mob_hud.dm index 02f992694832..c451d01d3c90 100644 --- a/code/__DEFINES/mob_hud.dm +++ b/code/__DEFINES/mob_hud.dm @@ -35,7 +35,7 @@ #define MOB_HUD_XENO_INFECTION 6 #define MOB_HUD_XENO_STATUS 7 #define MOB_HUD_XENO_HOSTILE 8 -#define MOB_HUD_FACTION_USCM 9 +#define MOB_HUD_FACTION_MARINE 9 #define MOB_HUD_FACTION_OBSERVER 10 #define MOB_HUD_FACTION_UPP 11 #define MOB_HUD_FACTION_WY 12 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 7ec2ab8b975e..e2bd868f9a80 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -309,77 +309,6 @@ #define CAN_HOLD_TWO_HANDS 1 #define CAN_HOLD_ONE_HAND 2 -// ------------ // -// STRAIN FLAGS // -// ------------ // - -// Queen strain flags -#define QUEEN_NORMAL "Normal" - -// Facehugger strain flags -#define FACEHUGGER_NORMAL "Normal" -#define FACEHUGGER_WATCHER "Watcher" - -// Drone strain flags -#define DRONE_NORMAL "Normal" -#define DRONE_HEALER "Healer" -#define DRONE_GARDENER "Gardener" - -// Hivelord strain flags -#define HIVELORD_NORMAL "Normal" -#define HIVELORD_RESIN_WHISPERER "Resin Whisperer" - -// Carrier strain flags -#define CARRIER_NORMAL "Normal" -#define CARRIER_EGGSAC "Eggsac" - -// Burrower strain flags -#define BURROWER_NORMAL "Normal" -#define BURROWER_TREMOR "Tremor" - -// Sentinel strain flags -#define SENTINEL_NORMAL "Normal" - -// Spitter strain flags -#define SPITTER_NORMAL "Normal" - -// Boiler strain flags -#define BOILER_NORMAL "Normal" -#define BOILER_TRAPPER "Trapper" - -// Runner strain flags -#define RUNNER_NORMAL "Normal" -#define RUNNER_ACIDER "Acider" - -// Lurker strain flags -#define LURKER_NORMAL "Normal" -#define LURKER_VAMPIRE "Vampire" -// Ravager strain flags -#define RAVAGER_NORMAL "Normal" -#define RAVAGER_HEDGEHOG "Hedgehog" -#define RAVAGER_BERSERKER "Berserker" - -// Defender strain flags -#define DEFENDER_NORMAL "Normal" -#define DEFENDER_STEELCREST "Steelcrest" - -// Warrior strain flags -#define WARRIOR_NORMAL "Normal" - -// Crusher strain flags -#define CRUSHER_NORMAL "Normal" -#define CRUSHER_CHARGER "Charger" - -// Praetorian strain flags -#define PRAETORIAN_NORMAL "Normal" -#define PRAETORIAN_VANGUARD "Vanguard" -#define PRAETORIAN_DANCER "Dancer" -#define PRAETORIAN_WARDEN "Warden" -#define PRAETORIAN_OPPRESSOR "Oppressor" - -// Hellhound strain flags -#define HELLHOUND_NORMAL "Normal" - 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', @@ -452,4 +381,3 @@ GLOBAL_LIST_INIT(default_xeno_onmob_icons, list( #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 2b018c0a2810..ef3dfb03b337 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -279,6 +279,7 @@ DEFINE_BITFIELD(whitelist_status, list( #define FACTION_LIST_MERCENARY list(FACTION_MERCENARY) #define FACTION_LIST_MARSHAL list(FACTION_MARSHAL) #define FACTION_LIST_DUTCH list(FACTION_DUTCH) +#define FACTION_LIST_SURVIVOR_WY list(FACTION_SURVIVOR, FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY) #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) diff --git a/code/__DEFINES/objects.dm b/code/__DEFINES/objects.dm index 292b315360c5..d495c8e8c012 100644 --- a/code/__DEFINES/objects.dm +++ b/code/__DEFINES/objects.dm @@ -175,3 +175,8 @@ GLOBAL_LIST_INIT(RESTRICTED_CAMERA_NETWORKS, list( //Those networks can only be #define CHECKS_PASSED 1 #define STILL_ON_COOLDOWN 2 #define NO_LIGHT_STATE_CHANGE 3 + +//tool capabilities or something i don't know +#define REMOVE_CROWBAR (1<<0) +#define BREAK_CROWBAR (1<<1) +#define REMOVE_SCREWDRIVER (1<<2) diff --git a/code/__DEFINES/sentry_laptop_configurations.dm b/code/__DEFINES/sentry_laptop_configurations.dm index 8626ba2cfaee..6f4e2bec14ca 100644 --- a/code/__DEFINES/sentry_laptop_configurations.dm +++ b/code/__DEFINES/sentry_laptop_configurations.dm @@ -1,4 +1,3 @@ -#define FACTION_USCM "USCM" #define FACTION_WEYLAND "WY" #define FACTION_HUMAN "HUMAN" #define FACTION_COLONY "COLONY" diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index a3299184e4ef..af3e164deb71 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -41,7 +41,7 @@ #define TRANSIT_REQUEST 1 #define TRANSIT_READY 2 -#define SHUTTLE_TRANSIT_BORDER 8 +#define SHUTTLE_TRANSIT_BORDER 16 #define PARALLAX_LOOP_TIME 25 #define HYPERSPACE_END_TIME 5 @@ -96,8 +96,8 @@ #define MOBILE_SHUTTLE_ID_ERT2 "ert_pmc_shuttle" #define MOBILE_SHUTTLE_ID_ERT3 "ert_upp_shuttle" #define MOBILE_SHUTTLE_ID_ERT4 "ert_twe_shuttle" -#define MOBILE_SHUTTLE_ID_ERT_SMALL "ert_rescue_shuttle" -#define MOBILE_SHUTTLE_ID_ERT_BIG "ert_boarding_shuttle" +#define MOBILE_SHUTTLE_ID_ERT_SMALL "ert_small_shuttle_north" +#define MOBILE_SHUTTLE_ID_ERT_BIG "ert_shuttle_big" #define MOBILE_TRIJENT_ELEVATOR "trijentshuttle2" #define STAT_TRIJENT_EMPTY "trijent_empty" @@ -134,3 +134,11 @@ #define ESCAPE_SHUTTLE_SOUTH_PREFIX "escape_shuttle_s" #define ESCAPE_SHUTTLE_DOCK_PREFIX "almayer-hangar-escape-shuttle-" + +#define ERT_SHUTTLE_DEFAULT_RECHARGE 90 SECONDS + +#define ADMIN_LANDING_PAD_1 "base-ert1" +#define ADMIN_LANDING_PAD_2 "base-ert2" +#define ADMIN_LANDING_PAD_3 "base-ert3" +#define ADMIN_LANDING_PAD_4 "base-ert4" +#define ADMIN_LANDING_PAD_5 "base-ert5" diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 96335a3c1acf..47aa0e732c76 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -146,8 +146,9 @@ #define SS_INIT_DATABASE -27 #define SS_INIT_ENTITYMANAGER -28 #define SS_INIT_PLAYTIME -29 -#define SS_INIT_PREDSHIPS -30 -#define SS_INIT_OBJECTIVES -31 +#define SS_INIT_STICKY -30 +#define SS_INIT_PREDSHIPS -31 +#define SS_INIT_OBJECTIVES -32 #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. diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index fdfec5e8ca08..a4fb6d40be73 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "7.0.2" +#define TGS_DMAPI_VERSION "7.1.1" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -50,6 +50,13 @@ #endif +#ifndef TGS_FILE2TEXT_NATIVE +#ifdef file2text +#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses +#endif +#define TGS_FILE2TEXT_NATIVE file2text +#endif + // EVENT CODES /// Before a reboot mode change, extras parameters are the current and new reboot mode enums. @@ -490,6 +497,16 @@ /world/proc/TgsChatChannelInfo() return +/** + * Trigger an event in TGS. Requires TGS version >= 6.3.0. Returns [TRUE] if the event was triggered successfully, [FALSE] otherwise. This function may sleep! + * + * event_name - The name of the event to trigger + * parameters - Optional list of string parameters to pass as arguments to the event script. The first parameter passed to a script will always be the running game's directory followed by these parameters. + * wait_for_completion - If set, this function will not return until the event has run to completion. + */ +/world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + return + /* The MIT License diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index dc714472510a..010c74c404c4 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -159,6 +159,8 @@ #define TRAIT_DAZED "dazed" /// Apply this to identify a mob as merged with weeds #define TRAIT_MERGED_WITH_WEEDS "merged_with_weeds" +/// Apply this to identify a mob as temporarily muted +#define TRAIT_TEMPORARILY_MUTED "temporarily_muted" // SPECIES TRAITS /// Knowledge of Yautja technology @@ -265,6 +267,9 @@ #define TRAIT_GUN_LIGHT_DEACTIVATED "t_gun_light_deactivated" +/// If this ID belongs to an ERT member +#define TRAIT_ERT_ID "ert_id" + // Miscellaneous item traits. // Do NOT bloat this category, if needed make a new category (like shoe traits, xeno item traits...) @@ -422,6 +427,8 @@ GLOBAL_LIST(trait_name_map) ///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 coming from temporary_mute +#define TRAIT_SOURCE_TEMPORARY_MUTE "t_s_temporary_mute" ///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 @@ -462,6 +469,8 @@ GLOBAL_LIST(trait_name_map) #define XENO_WEED_TRAIT "xeno_weed" /// traits associated with actively interacted machinery #define INTERACTION_TRAIT "interaction" +/// traits associated with interacting with a dropship +#define TRAIT_SOURCE_DROPSHIP_INTERACTION "dropship_interaction" /// traits bound by stunned status effects #define STUNNED_TRAIT "stunned" /// traits bound by knocked_down status effect diff --git a/code/__DEFINES/turf_flags.dm b/code/__DEFINES/turf_flags.dm index d7b3e90811d8..19dc17191d7c 100644 --- a/code/__DEFINES/turf_flags.dm +++ b/code/__DEFINES/turf_flags.dm @@ -1,3 +1,12 @@ +//turf_flags values +/// Marks a turf as organic. Used for alien wall and membranes. +#define TURF_ORGANIC (1<<0) +/// If a turf is an usused reservation turf awaiting assignment +#define UNUSED_RESERVATION_TURF (1<<1) +/// If a turf is a reserved turf +#define RESERVATION_TURF (1<<2) + +//ChangeTurf options to change its behavior #define CHANGETURF_DEFER_CHANGE (1<<0) /// This flag prevents changeturf from gathering air from nearby turfs to fill the new turf with an approximation of local air #define CHANGETURF_IGNORE_AIR (1<<1) @@ -5,12 +14,3 @@ /// A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE #define CHANGETURF_SKIP (1<<3) -#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS) - -/// Marks a turf as organic. Used for alien wall and membranes. -#define TURF_ORGANIC (1<<0) - - -#define REMOVE_CROWBAR (1<<0) -#define BREAK_CROWBAR (1<<1) -#define REMOVE_SCREWDRIVER (1<<2) diff --git a/code/__DEFINES/turfs.dm b/code/__DEFINES/turfs.dm new file mode 100644 index 000000000000..b9a80d4ab257 --- /dev/null +++ b/code/__DEFINES/turfs.dm @@ -0,0 +1,29 @@ +#define RANGE_TURFS(RADIUS, CENTER) \ +block( \ + locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ + locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ +) + +#define RECT_TURFS(H_RADIUS, V_RADIUS, CENTER) \ + block( \ + locate(max((CENTER).x-(H_RADIUS),1), max((CENTER).y-(V_RADIUS),1), (CENTER).z), \ + locate(min((CENTER).x+(H_RADIUS),world.maxx), min((CENTER).y+(V_RADIUS),world.maxy), (CENTER).z) \ + ) + +///Returns all turfs in a zlevel +#define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL)) + +/// Returns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width, checks for being outside the world border for you +#define CORNER_BLOCK(corner, width, height) CORNER_BLOCK_OFFSET(corner, width, height, 0, 0) + +/// Returns a list of turfs similar to CORNER_BLOCK but with offsets +#define CORNER_BLOCK_OFFSET(corner, width, height, offset_x, offset_y) ((block(locate(corner.x + offset_x, corner.y + offset_y, corner.z), locate(min(corner.x + (width - 1) + offset_x, world.maxx), min(corner.y + (height - 1) + offset_y, world.maxy), corner.z)))) + +/// Returns an outline (neighboring turfs) of the given block +#define CORNER_OUTLINE(corner, width, height) ( \ + CORNER_BLOCK_OFFSET(corner, width + 2, 1, -1, -1) + \ + CORNER_BLOCK_OFFSET(corner, width + 2, 1, -1, height) + \ + CORNER_BLOCK_OFFSET(corner, 1, height, -1, 0) + \ + CORNER_BLOCK_OFFSET(corner, 1, height, width, 0)) + +#define TURF_FROM_COORDS_LIST(List) (locate(List[1], List[2], List[3])) diff --git a/code/__DEFINES/typecheck/generic_types.dm b/code/__DEFINES/typecheck/generic_types.dm index d9fa3df55430..587108d5b5e6 100644 --- a/code/__DEFINES/typecheck/generic_types.dm +++ b/code/__DEFINES/typecheck/generic_types.dm @@ -11,6 +11,7 @@ #define ismovableatom(A) (ismovable(A)) #define isatom(A) (isloc(A)) #define isfloorturf(A) (istype(A, /turf/open/floor)) +#define isclosedturf(A) (istype(A, /turf/closed)) #define isweakref(D) (istype(D, /datum/weakref)) #define isgenerator(A) (istype(A, /generator)) diff --git a/code/__DEFINES/vendors.dm b/code/__DEFINES/vendors.dm index 086b70a92428..dc78f7caa4d3 100644 --- a/code/__DEFINES/vendors.dm +++ b/code/__DEFINES/vendors.dm @@ -19,6 +19,8 @@ #define MARINE_CAN_BUY_COMBAT_ARMOR "combat_armor" #define MARINE_CAN_BUY_KIT "kit" #define MARINE_CAN_BUY_DRESS "dress" +#define CIVILIAN_CAN_BUY_BACKPACK "civilian_backpack" +#define CIVILIAN_CAN_BUY_UTILITY "civilian_utility" #define MARINE_CAN_BUY_ALL list(MARINE_CAN_BUY_UNIFORM = 1, MARINE_CAN_BUY_SHOES = 1, MARINE_CAN_BUY_HELMET = 1, MARINE_CAN_BUY_ARMOR = 1, MARINE_CAN_BUY_GLOVES = 1, MARINE_CAN_BUY_EAR = 1, MARINE_CAN_BUY_BACKPACK = 1, MARINE_CAN_BUY_POUCH = 2, MARINE_CAN_BUY_BELT = 1, MARINE_CAN_BUY_GLASSES = 1, MARINE_CAN_BUY_MASK = 1, MARINE_CAN_BUY_ESSENTIALS = 1, MARINE_CAN_BUY_SECONDARY = 1, MARINE_CAN_BUY_ATTACHMENT = 1, MARINE_CAN_BUY_MRE = 1, MARINE_CAN_BUY_ACCESSORY = 1, MARINE_CAN_BUY_COMBAT_SHOES = 1, MARINE_CAN_BUY_COMBAT_HELMET = 1, MARINE_CAN_BUY_COMBAT_ARMOR = 1, MARINE_CAN_BUY_KIT = 1, MARINE_CAN_BUY_DRESS = 99) diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm index e3a35d0c4744..fb9d6bfb4faf 100644 --- a/code/__DEFINES/xeno.dm +++ b/code/__DEFINES/xeno.dm @@ -62,6 +62,9 @@ #define ACID_SPRAY_LINE 0 #define ACID_SPRAY_CONE 1 +/// Defines for Abomination ability /datum/action/xeno_action/activable/feralfrenzy +#define SINGLETARGETGUT 0 +#define AOETARGETGUT 1 #define WARDEN_HEAL_SHIELD 0 #define WARDEN_HEAL_HP 1 @@ -361,6 +364,48 @@ #define RESIN_CONSTRUCTION_NO_MAX -1 +// -------------- // +// STRAIN DEFINES // +// -------------- // + +// Facehugger strain flags +#define FACEHUGGER_WATCHER "Watcher" + +// Drone strain flags +#define DRONE_HEALER "Healer" +#define DRONE_GARDENER "Gardener" + +// Hivelord strain flags +#define HIVELORD_RESIN_WHISPERER "Resin Whisperer" + +// Carrier strain flags +#define CARRIER_EGGSAC "Eggsac" + +// Boiler strain flags +#define BOILER_TRAPPER "Trapper" + +// Runner strain flags +#define RUNNER_ACIDER "Acider" + +// Lurker strain flags +#define LURKER_VAMPIRE "Vampire" + +// Ravager strain flags +#define RAVAGER_HEDGEHOG "Hedgehog" +#define RAVAGER_BERSERKER "Berserker" + +// Defender strain flags +#define DEFENDER_STEELCREST "Steelcrest" + +// Crusher strain flags +#define CRUSHER_CHARGER "Charger" + +// Praetorian strain flags +#define PRAETORIAN_VANGUARD "Vanguard" +#define PRAETORIAN_DANCER "Dancer" +#define PRAETORIAN_WARDEN "Warden" +#define PRAETORIAN_OPPRESSOR "Oppressor" + ///////////////////////////////////////////////////////////////////////////////////// // // Modifiers @@ -660,7 +705,7 @@ // PARAMETERS: // source_hive integer the hive to check the alliance of // target_hive integer the target hive to see if the source_hive is allied to it. -#define HIVE_ALLIED_TO_HIVE(source_hive, target_hive) (source_hive == target_hive || GLOB.hive_datum[source_hive]?.faction_is_ally(GLOB.hive_datum[target_hive]?.internal_faction)) +#define HIVE_ALLIED_TO_HIVE(source_hive, target_hive) ((source_hive) == (target_hive) || GLOB.hive_datum[source_hive]?.faction_is_ally(GLOB.hive_datum[target_hive]?.internal_faction)) #define QUEEN_SPAWN_TIMEOUT (2 MINUTES) diff --git a/code/__HELPERS/#maths.dm b/code/__HELPERS/#maths.dm index 825090bc4f3b..f8a9292d3806 100644 --- a/code/__HELPERS/#maths.dm +++ b/code/__HELPERS/#maths.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, // MATH DEFINES #define Ceiling(x) (-round(-(x))) -#define CLAMP01(x) (clamp(x, 0, 1)) +#define CLAMP01(x) (clamp((x), 0, 1)) // cotangent #define Cot(x) (1 / tan(x)) @@ -17,36 +17,36 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, // cosecant #define Csc(x) (1 / sin(x)) -#define Default(a, b) (a ? a : b) +#define Default(a, b) ((a) ? (a) : (b)) #define Floor(x) (round(x)) // Greatest Common Divisor - Euclid's algorithm -#define Gcd(a, b) (b ? Gcd(b, a % b) : a) +#define Gcd(a, b) ((b) ? Gcd((b), (a) % (b)) : (a)) -#define Inverse(x) (1 / x) -#define IsEven(x) (x % 2 == 0) +#define Inverse(x) (1 / (x)) +#define IsEven(x) ((x) % 2 == 0) -#define IsInteger(x) (Floor(x) == x) +#define IsInteger(x) (Floor(x) == (x)) #define IsOdd(x) (!IsEven(x)) -#define IsMultiple(x, y) (x % y == 0) +#define IsMultiple(x, y) ((x) % (y) == 0) // Least Common Multiple -#define Lcm(a, b) (abs(a) / Gcd(a, b) * abs(b)) +#define Lcm(a, b) (abs(a) / Gcd((a), (b)) * abs(b)) // Returns the nth root of x. -#define NRoot(n, x) (x ** (1 / n)) +#define NRoot(n, x) ((x) ** (1 / (n))) // secant #define Sec(x) (1 / cos(x)) // 57.2957795 = 180 / Pi -#define ToDegrees(radians) (radians * 57.2957795) +#define ToDegrees(radians) ((radians) * 57.2957795) // 0.0174532925 = Pi / 180 -#define ToRadians(degrees) (degrees * 0.0174532925) +#define ToRadians(degrees) ((degrees) * 0.0174532925) // min is inclusive, max is exclusive -#define WRAP(val, min, max) clamp(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max) +#define WRAP(val, min, max) clamp(( (min) == (max) ? (min) : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),(min),(max)) // MATH PROCS diff --git a/code/__HELPERS/lazy_templates.dm b/code/__HELPERS/lazy_templates.dm new file mode 100644 index 000000000000..1a5dcf27f996 --- /dev/null +++ b/code/__HELPERS/lazy_templates.dm @@ -0,0 +1,10 @@ +GLOBAL_LIST_INIT(lazy_templates, generate_lazy_template_map()) + +/** + * Iterates through all lazy template datums that exist and returns a list of them as an associative list of type -> instance. + * */ +/proc/generate_lazy_template_map() + . = list() + for(var/datum/lazy_template/template as anything in subtypesof(/datum/lazy_template)) + .[template] = new template + return . diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm index 08c360849b58..e768d9d1255c 100644 --- a/code/__HELPERS/lighting.dm +++ b/code/__HELPERS/lighting.dm @@ -1,3 +1,5 @@ +#define IS_OPAQUE_TURF(turf) (turf.directional_opacity == ALL_CARDINALS) + /// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EMISSIVE_COLOR]. /proc/emissive_appearance(icon, icon_state = "", layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE) var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, EMISSIVE_PLANE, alpha, appearance_flags | EMISSIVE_APPEARANCE_FLAGS) diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 30ef9428586d..9a8528aabcc3 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -534,7 +534,7 @@ //Copies a list, and all lists inside it recusively //Does not copy any other reference type -/proc/deepCopyList(list/L) +/proc/deep_copy_list(list/L) if(!islist(L)) return L . = L.Copy() @@ -545,10 +545,10 @@ continue var/value = .[key] if(islist(value)) - value = deepCopyList(value) + value = deep_copy_list(value) .[key] = value if(islist(key)) - key = deepCopyList(key) + key = deep_copy_list(key) .[i] = key .[key] = value diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm index c20db3da303f..59e4c7710992 100644 --- a/code/__HELPERS/logging.dm +++ b/code/__HELPERS/logging.dm @@ -209,10 +209,10 @@ GLOBAL_VAR_INIT(log_end, world.system_type == UNIX ? ascii2text(13) : "") WRITE_LOG(GLOB.world_game_log, "MISC: [text]") GLOB.STUI?.debug.Add("\[[time]]MISC: [text]") -/proc/log_mutator(text) - if(!GLOB.mutator_logs) +/proc/log_strain(text) + if(!GLOB.strain_logs) return - WRITE_LOG(GLOB.mutator_logs, "[text]") + WRITE_LOG(GLOB.strain_logs, "[text]") /proc/log_hiveorder(text) var/time = time_stamp() @@ -286,6 +286,16 @@ GLOBAL_PROTECT(config_error_log) WRITE_LOG(GLOB.config_error_log, text) SEND_TEXT(world.log, text) +/// Logging for mapping errors +/proc/log_mapping(text, skip_world_log) +#ifdef UNIT_TESTS + GLOB.unit_test_mapping_logs += text +#endif + if(skip_world_log) + return + WRITE_LOG(GLOB.mapping_log, text) + SEND_TEXT(world.log, text) + /proc/log_admin_private(text) log_admin(text) diff --git a/code/__HELPERS/string_lists.dm b/code/__HELPERS/string_lists.dm new file mode 100644 index 000000000000..076bbf642756 --- /dev/null +++ b/code/__HELPERS/string_lists.dm @@ -0,0 +1,23 @@ +GLOBAL_LIST_EMPTY(string_lists) + +/** + * Caches lists with non-numeric stringify-able values (text or typepath). + */ +/proc/string_list(list/values) + var/string_id = values.Join("-") + + . = GLOB.string_lists[string_id] + + if(.) + return . + + return GLOB.string_lists[string_id] = values + +///A wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues +/proc/baseturfs_string_list(list/values, turf/baseturf_holder) + if(!islist(values)) + return values //baseturf things + // return values + if(length(values) > 10) + return string_list(list(/turf/closed/cordon/debug)) + return string_list(values) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 967967790b28..7396e8624ba9 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -201,6 +201,24 @@ return "" +//Returns a string with reserved characters and spaces after the first and last letters removed +//Like trim(), but very slightly faster. worth it for niche usecases +/proc/trim_reduced(text) + var/starting_coord = 1 + var/text_len = length(text) + for (var/i in 1 to text_len) + if (text2ascii(text, i) > 32) + starting_coord = i + break + + for (var/i = text_len, i >= starting_coord, i--) + if (text2ascii(text, i) > 32) + return copytext(text, starting_coord, i + 1) + + if(starting_coord > 1) + return copytext(text, starting_coord) + return "" + //Returns a string with reserved characters and spaces before the first word and after the last word removed. /proc/trim(text) return trim_left(trim_right(text)) @@ -381,3 +399,7 @@ if(.) return return 0 + +/// Check if the string `haystack` begins with the string `needle`. +/proc/string_starts_with(haystack, needle) + return (copytext(haystack, 1, length(needle) + 1) == needle) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 7324c4a9634e..aa23131847d7 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -21,23 +21,23 @@ #define between(low, middle, high) (max(min(middle, high), low)) //Offuscate x for coord system -#define obfuscate_x(x) (x + GLOB.obfs_x) +#define obfuscate_x(x) ((x) + GLOB.obfs_x) //Offuscate y for coord system -#define obfuscate_y(y) (y + GLOB.obfs_y) +#define obfuscate_y(y) ((y) + GLOB.obfs_y) //Deoffuscate x for coord system -#define deobfuscate_x(x) (x - GLOB.obfs_x) +#define deobfuscate_x(x) ((x) - GLOB.obfs_x) //Deoffuscate y for coord system -#define deobfuscate_y(y) (y - GLOB.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)) // For the purpose of a skillcheck, not having a skillset counts as being skilled in everything (!user.skills check) // Note that is_skilled() checks if the skillset contains the skill internally, so a has_skill check is unnecessary -#define skillcheck(user, skill, req_level) ((!user.skills || user.skills.is_skilled(skill, req_level))) -#define skillcheckexplicit(user, skill, req_level) ((!user.skills || user.skills.is_skilled(skill, req_level, TRUE))) +#define skillcheck(user, skill, req_level) ((!user.skills || user.skills.is_skilled((skill), (req_level)))) +#define skillcheckexplicit(user, skill, req_level) ((!user.skills || user.skills.is_skilled((skill), (req_level), TRUE))) // Ensure the frequency is within bounds of what it should be sending/receiving at // Sets f within bounds via `clamp(round(f), 1441, 1489)` @@ -48,7 +48,7 @@ ) //Turns 1479 into 147.9 -#define format_frequency(f) "[round(f / 10)].[f % 10]" +#define format_frequency(f) "[round((f) / 10)].[(f) % 10]" #define reverse_direction(direction) ( \ ( dir & (NORTH|SOUTH) ? ~dir & (NORTH|SOUTH) : 0 ) | \ @@ -820,7 +820,7 @@ animation.master = target flick(flick_anim, animation) -//Will return the contents of an atom recursivly to a depth of 'searchDepth' +///Will return the contents of an atom recursivly to a depth of 'searchDepth', not including starting atom /atom/proc/GetAllContents(searchDepth = 5, list/toReturn = list()) for(var/atom/part as anything in contents) toReturn += part @@ -828,6 +828,16 @@ part.GetAllContents(searchDepth - 1, toReturn) return toReturn +///Returns the src and all recursive contents as a list. Includes the starting atom. +/atom/proc/get_all_contents(ignore_flag_1) + . = list(src) + var/i = 0 + while(i < length(.)) + var/atom/checked_atom = .[++i] + if(checked_atom.flags_atom & ignore_flag_1) + continue + . += checked_atom.contents + /// Returns list of contents of a turf recursively, much like GetAllContents /// We only get containing atoms in the turf, excluding multitiles bordering on it /turf/proc/GetAllTurfStrictContents(searchDepth = 5, list/toReturn = list()) @@ -1905,8 +1915,6 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return list(region_x1 & region_x2, region_y1 & region_y2) -#define TURF_FROM_COORDS_LIST(List) (locate(List[1], List[2], List[3])) - //Vars that will not be copied when using /DuplicateObject GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( "tag", "datum_components", "area", "type", "loc", "locs", "vars", "parent", "parent_type", "verbs", "ckey", "key", diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 59d14f2e0fed..bf9330c567cc 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -154,6 +154,12 @@ DEFINE_BITFIELD(flags_atom, list( "HTML_USE_INITAL_ICON" = HTML_USE_INITAL_ICON, )) +DEFINE_BITFIELD(turf_flags, list( + "TURF_ORGANIC" = TURF_ORGANIC, + "UNUSED_RESERVATION_TURF" = UNUSED_RESERVATION_TURF, + "RESERVATION_TURF" = RESERVATION_TURF, +)) + DEFINE_BITFIELD(flags_item, list( "NODROP" = NODROP, "NOBLUDGEON" = NOBLUDGEON, diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 1f3404f403f2..4dbf46086f02 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -37,6 +37,9 @@ GLOBAL_LIST_EMPTY(minimap_icons) GLOBAL_LIST_EMPTY(mainship_pipes) +/// List of all the maps that have been cached for /proc/load_map +GLOBAL_LIST_EMPTY(cached_maps) + /proc/initiate_minimap_icons() var/list/icons = list() for(var/iconstate in icon_states('icons/UI_icons/map_blips.dmi')) @@ -166,9 +169,6 @@ GLOBAL_LIST_INIT(language_keys, setup_language_keys()) //table of say codes for GLOBAL_REFERENCE_LIST_INDEXED(origins, /datum/origin, name) GLOBAL_LIST_INIT(player_origins, USCM_ORIGINS) -//Xeno mutators -GLOBAL_REFERENCE_LIST_INDEXED_SORTED(xeno_mutator_list, /datum/xeno_mutator, name) - //Xeno hives GLOBAL_LIST_INIT_TYPED(hive_datum, /datum/hive_status, list( XENO_HIVE_NORMAL = new /datum/hive_status(), diff --git a/code/_globalvars/lists/mapping_globals.dm b/code/_globalvars/lists/mapping_globals.dm index 47cc22dae5e1..772561dbf4a6 100644 --- a/code/_globalvars/lists/mapping_globals.dm +++ b/code/_globalvars/lists/mapping_globals.dm @@ -53,6 +53,7 @@ GLOBAL_LIST_EMPTY(teleporter_landmarks) GLOBAL_LIST_INIT(cardinals, list(NORTH, SOUTH, EAST, WEST)) GLOBAL_LIST_EMPTY(nightmare_landmarks) +GLOBAL_LIST_EMPTY(nightmare_landmark_tags_removed) GLOBAL_LIST_EMPTY(ship_areas) diff --git a/code/_macros.dm b/code/_macros.dm index e8a97cbada83..ec4f559f0bfc 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -78,14 +78,14 @@ // Spawns multiple objects of the same type #define cast_new(type, num, args...) if((num) == 1) { new type(args) } else { for(var/i=0;i<(num),i++) { new type(args) } } -#define FLAGS_EQUALS(flag, flags) ((flag & (flags)) == (flags)) +#define FLAGS_EQUALS(flag, flags) (((flag) & (flags)) == (flags)) #define IS_DIAGONAL_DIR(dir) (dir & ~(NORTH|SOUTH)) // Inverse direction, taking into account UP|DOWN if necessary. -#define REVERSE_DIR(dir) ( ((dir & 85) << 1) | ((dir & 170) >> 1) ) +#define REVERSE_DIR(dir) ( (((dir) & 85) << 1) | (((dir) & 170) >> 1) ) -#define POSITIVE(val) max(val, 0) +#define POSITIVE(val) max((val), 0) #define GENERATE_DEBUG_ID "[rand(0, 9)][rand(0, 9)][rand(0, 9)][rand(0, 9)][pick(alphabet_lowercase)][pick(alphabet_lowercase)][pick(alphabet_lowercase)][pick(alphabet_lowercase)]" diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 37a858d76699..b8b55b42c028 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -272,18 +272,14 @@ static_inventory += using /datum/hud/human/proc/draw_hand_equip(datum/custom_hud/ui_datum, ui_alpha, ui_color) - var/atom/movable/screen/using = new /atom/movable/screen() - using.name = "equip" - using.icon = ui_datum.ui_style_icon - using.icon_state = "act_equip" - using.screen_loc = ui_datum.ui_equip - using.layer = ABOVE_HUD_LAYER - using.plane = ABOVE_HUD_PLANE + var/atom/movable/screen/equip/equip_button = new() + equip_button.icon = ui_datum.ui_style_icon + equip_button.screen_loc = ui_datum.ui_equip if(ui_color) - using.color = ui_color + equip_button.color = ui_color if(ui_alpha) - using.alpha = ui_alpha - static_inventory += using + equip_button.alpha = ui_alpha + static_inventory += equip_button /datum/hud/human/proc/draw_oxygen(datum/custom_hud/ui_datum) oxygen_icon = new /atom/movable/screen/oxygen() @@ -312,38 +308,28 @@ infodisplay += locate_leader /datum/hud/human/proc/draw_gun_related(datum/custom_hud/ui_datum, ui_alpha) - use_attachment = new /atom/movable/screen() + use_attachment = new /atom/movable/screen/gun/attachment() use_attachment.icon = ui_datum.ui_style_icon - use_attachment.icon_state = "gun_attach" - use_attachment.name = "Activate weapon attachment" use_attachment.screen_loc = ui_datum.ui_gun_attachment static_inventory += use_attachment - toggle_raillight = new /atom/movable/screen() + toggle_raillight = new /atom/movable/screen/gun/rail_light() toggle_raillight.icon = ui_datum.ui_style_icon - toggle_raillight.icon_state = "gun_raillight" - toggle_raillight.name = "Toggle Rail Flashlight" toggle_raillight.screen_loc = ui_datum.ui_gun_railtoggle static_inventory += toggle_raillight - eject_mag = new /atom/movable/screen() + eject_mag = new /atom/movable/screen/gun/eject_magazine() eject_mag.icon = ui_datum.ui_style_icon - eject_mag.icon_state = "gun_loaded" - eject_mag.name = "Eject magazine" eject_mag.screen_loc = ui_datum.ui_gun_eject static_inventory += eject_mag - toggle_burst = new /atom/movable/screen() + toggle_burst = new /atom/movable/screen/gun/toggle_firemode() toggle_burst.icon = ui_datum.ui_style_icon - toggle_burst.icon_state = "gun_burst" - toggle_burst.name = "Toggle burst fire" toggle_burst.screen_loc = ui_datum.ui_gun_burst static_inventory += toggle_burst - unique_action = new /atom/movable/screen() + unique_action = new /atom/movable/screen/gun/unique_action() unique_action.icon = ui_datum.ui_style_icon - unique_action.icon_state = "gun_unique" - unique_action.name = "Use unique action" unique_action.screen_loc = ui_datum.ui_gun_unique static_inventory += unique_action diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 1eb555fceaf7..edf2d44a0714 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -59,9 +59,11 @@ /atom/movable/screen/action_button/attack_ghost(mob/dead/observer/user) return -/atom/movable/screen/action_button/clicked(mob/user) +/atom/movable/screen/action_button/clicked(mob/user, list/mods) if(!user || !source_action) return TRUE + if(source_action.owner != user) + return TRUE if(source_action.can_use_action()) source_action.action_activate() @@ -97,7 +99,7 @@ icon_state = "hide" var/hidden = 0 -/atom/movable/screen/action_button/hide_toggle/clicked(mob/user, mods) +/atom/movable/screen/action_button/hide_toggle/clicked(mob/user, list/mods) user.hud_used.action_buttons_hidden = !user.hud_used.action_buttons_hidden hidden = user.hud_used.action_buttons_hidden if(hidden) @@ -107,7 +109,7 @@ name = "Hide Buttons" icon_state = "hide" user.update_action_buttons() - return 1 + return TRUE /atom/movable/screen/action_button/ghost/minimap/get_button_screen_loc(button_number) return "SOUTH:6,CENTER+1:24" @@ -211,54 +213,53 @@ update_icon(user) return 1 -/atom/movable/screen/clicked(mob/user) +/atom/movable/screen/gun + /// The proc/verb which should be called on the gun. + var/gun_proc_ref + +/atom/movable/screen/gun/clicked(mob/user, list/mods) + . = ..() + if(.) + return + // If the user has a gun in their active hand, call `gun_proc_ref` on it. + var/obj/item/weapon/gun/held_item = user.get_held_item() + if(istype(held_item)) + INVOKE_ASYNC(held_item, gun_proc_ref) + +/atom/movable/screen/gun/attachment + name = "Activate weapon attachment" + icon_state = "gun_attach" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, activate_attachment_verb) + +/atom/movable/screen/gun/rail_light + name = "Toggle rail flashlight" + icon_state = "gun_raillight" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, activate_rail_attachment_verb) + +/atom/movable/screen/gun/eject_magazine + name = "Eject magazine" + icon_state = "gun_loaded" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, empty_mag) + +/atom/movable/screen/gun/toggle_firemode + name = "Toggle firemode" + icon_state = "gun_burst" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, use_toggle_burst) + +/atom/movable/screen/gun/unique_action + name = "Use unique action" + icon_state = "gun_unique" + gun_proc_ref = TYPE_VERB_REF(/obj/item/weapon/gun, use_unique_action) + + +/atom/movable/screen/clicked(mob/user, list/mods) if(!user) return TRUE if(isobserver(user)) return TRUE - switch(name) - if("equip") - if(ishuman(user)) - var/mob/living/carbon/human/human = user - human.quick_equip() - return 1 - - if("Reset Machine") - user.unset_interaction() - return 1 - - if("Activate weapon attachment") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.activate_attachment_verb() - return 1 - - if("Toggle Rail Flashlight") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.activate_rail_attachment_verb() - return 1 - - if("Eject magazine") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.empty_mag() - return 1 - - if("Toggle burst fire") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.use_toggle_burst() - return 1 - - if("Use unique action") - var/obj/item/weapon/gun/held_item = user.get_held_item() - if(istype(held_item)) - held_item.use_unique_action() - return 1 - return 0 + return FALSE /atom/movable/screen/inventory/clicked(mob/user) @@ -585,6 +586,19 @@ vision_define = XENO_VISION_LEVEL_NO_NVG to_chat(owner, SPAN_NOTICE("Night vision mode switched to [vision_define].")) +/atom/movable/screen/equip + name = "equip" + icon_state = "act_equip" + layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE + +/atom/movable/screen/equip/clicked(mob/user) + . = ..() + if(. || !ishuman(user)) + return TRUE + var/mob/living/carbon/human/human_user = user + human_user.quick_equip() + /atom/movable/screen/bodytemp name = "body temperature" icon_state = "temp0" diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index c47531f5fc45..d71bf1d747c9 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -4,6 +4,7 @@ #define KEY_MODE_TEXT 0 #define KEY_MODE_TYPE 1 +#define KEY_MODE_TEXT_UNALTERED 2 /datum/config_entry var/name //read-only, this is determined by the last portion of the derived entry type @@ -153,7 +154,9 @@ var/key_value = null if(key_pos || value_mode == VALUE_MODE_FLAG) - key_name = lowertext(copytext(str_val, 1, key_pos)) + key_name = copytext(str_val, 1, key_pos) + if(key_mode != KEY_MODE_TEXT_UNALTERED) + key_name = lowertext(key_name) if(key_pos) key_value = copytext(str_val, key_pos + length(str_val[key_pos])) var/new_key @@ -161,7 +164,7 @@ var/continue_check_value var/continue_check_key switch(key_mode) - if(KEY_MODE_TEXT) + if(KEY_MODE_TEXT, KEY_MODE_TEXT_UNALTERED) new_key = key_name continue_check_key = new_key if(KEY_MODE_TYPE) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 385cbcb8d446..e2572e5e2d61 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -491,8 +491,6 @@ This maintains a list of ip addresses that are able to bypass topic filtering. /datum/config_entry/flag/respawn -/datum/config_entry/flag/ToRban - /datum/config_entry/flag/ooc_country_flags /datum/config_entry/flag/record_rounds @@ -533,6 +531,8 @@ This maintains a list of ip addresses that are able to bypass topic filtering. /datum/config_entry/string/round_results_webhook_url +/datum/config_entry/string/important_log_channel + /// InfluxDB v2 Host to connect to for sending statistics (over HTTP API) /datum/config_entry/string/influxdb_host /// InfluxDB v2 Bucket to send staistics to @@ -629,3 +629,14 @@ This maintains a list of ip addresses that are able to bypass topic filtering. /datum/config_entry/flag/guest_ban /datum/config_entry/flag/auto_profile + +/// Relay Ping Browser configuration +/datum/config_entry/keyed_list/connection_relay_ping + splitter = "|" + key_mode = KEY_MODE_TEXT_UNALTERED + value_mode = VALUE_MODE_TEXT + +/datum/config_entry/keyed_list/connection_relay_con + splitter = "|" + key_mode = KEY_MODE_TEXT_UNALTERED + value_mode = VALUE_MODE_TEXT diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index ae4783e4837a..f0d5ee14363e 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -19,6 +19,9 @@ SUBSYSTEM_DEF(atoms) var/list/BadInitializeCalls = list() + ///initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument + var/list/created_atoms + initialized = INITIALIZATION_INSSATOMS /datum/controller/subsystem/atoms/Initialize(timeofday) @@ -34,7 +37,7 @@ SUBSYSTEM_DEF(atoms) populate_seed_list() return SS_INIT_SUCCESS -/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms) +/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms, list/atoms_to_return) if(initialized == INITIALIZATION_INSSATOMS) return @@ -73,7 +76,10 @@ SUBSYSTEM_DEF(atoms) processing_late_loaders = FALSE /// Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break -/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms) +/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms, list/atoms_to_return = null) + if (atoms_to_return) + LAZYINITLIST(created_atoms) + #ifdef TESTING var/count #endif @@ -152,12 +158,10 @@ SUBSYSTEM_DEF(atoms) qdeleted = TRUE else if(!(A.flags_atom & INITIALIZED)) BadInitializeCalls[the_type] |= BAD_INIT_DIDNT_INIT - /* else - SEND_SIGNAL(A,COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZE) + SEND_SIGNAL(A, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON) if(created_atoms && from_template && ispath(the_type, /atom/movable))//we only want to populate the list with movables created_atoms += A.get_all_contents() - */ return qdeleted || QDELING(A) diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index b8b037c33381..c245b1012900 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -66,6 +66,8 @@ Frequency range: 1200 to 1600 Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency, even during mapmaking) */ +#define UNIVERSAL_FREQ 1 + #define MIN_FREE_FREQ 1201 // ------------------------------------------------- //Misc channels @@ -327,11 +329,11 @@ SUBSYSTEM_DEF(radio) if(length(extra_zs)) target_zs += extra_zs for(var/obj/structure/machinery/telecomms/T as anything in tcomm_machines_ground) - if(!length(T.freq_listening) || (frequency in T.freq_listening)) + if((UNIVERSAL_FREQ in T.freq_listening) || (frequency in T.freq_listening)) target_zs += SSmapping.levels_by_trait(ZTRAIT_GROUND) break for(var/obj/structure/machinery/telecomms/T as anything in tcomm_machines_almayer) - if(!length(T.freq_listening) || (frequency in T.freq_listening)) + if((UNIVERSAL_FREQ in T.freq_listening) || (frequency in T.freq_listening)) target_zs += SSmapping.levels_by_trait(ZTRAIT_MARINE_MAIN_SHIP) target_zs += SSmapping.levels_by_trait(ZTRAIT_RESERVED) break diff --git a/code/controllers/subsystem/hijack.dm b/code/controllers/subsystem/hijack.dm index ed9eba2bc6c3..8ae313587038 100644 --- a/code/controllers/subsystem/hijack.dm +++ b/code/controllers/subsystem/hijack.dm @@ -299,7 +299,7 @@ SUBSYSTEM_DEF(hijack) 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) +/datum/controller/subsystem/hijack/proc/on_generator_overload(obj/structure/machinery/power/reactor/source, new_overloading) SIGNAL_HANDLER if(!generator_ever_overloaded) diff --git a/code/controllers/subsystem/interior.dm b/code/controllers/subsystem/interior.dm index 8abc3179f191..e2b845f833d7 100644 --- a/code/controllers/subsystem/interior.dm +++ b/code/controllers/subsystem/interior.dm @@ -15,11 +15,11 @@ SUBSYSTEM_DEF(interior) var/height_to_request = template.height + INTERIOR_BORDER_SIZE var/width_to_request = template.width + INTERIOR_BORDER_SIZE - var/datum/turf_reservation/reserved_area = SSmapping.RequestBlockReservation(width_to_request, height_to_request, type = /datum/turf_reservation/interior) + var/datum/turf_reservation/reserved_area = SSmapping.request_turf_block_reservation(width_to_request, height_to_request, reservation_type = /datum/turf_reservation/interior) - var/list/bottom_left = reserved_area.bottom_left_coords + var/turf/bottom_left = reserved_area.bottom_left_turfs[1] - var/list/bounds = template.load(locate(bottom_left[1] + (INTERIOR_BORDER_SIZE / 2), bottom_left[2] + (INTERIOR_BORDER_SIZE / 2), bottom_left[3]), centered = FALSE) + var/list/bounds = template.load(locate(bottom_left.x + (INTERIOR_BORDER_SIZE / 2), bottom_left.y + (INTERIOR_BORDER_SIZE / 2), bottom_left.z), centered = FALSE) var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) @@ -51,12 +51,7 @@ SUBSYSTEM_DEF(interior) if(!isturf(loc)) loc = get_turf(loc) - var/datum/weakref/reservation_weakref = SSmapping.used_turfs[loc] - - if(!reservation_weakref) - return - - var/datum/turf_reservation/interior/reservation = reservation_weakref.resolve() + var/datum/turf_reservation/interior/reservation = SSmapping.used_turfs[loc] if(!istype(reservation)) return FALSE diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 0f4a63ff65e8..1d137aa7d8ae 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -1,7 +1,7 @@ SUBSYSTEM_DEF(mapping) name = "Mapping" init_order = SS_INIT_MAPPING - flags = SS_NO_FIRE + runlevels = ALL var/list/datum/map_config/configs var/list/datum/map_config/next_map_configs @@ -19,16 +19,27 @@ SUBSYSTEM_DEF(mapping) var/list/turf/unused_turfs = list() //Not actually unused turfs they're unused but reserved for use for whatever requests them. "[zlevel_of_turf]" = list(turfs) var/list/datum/turf_reservations //list of turf reservations var/list/used_turfs = list() //list of turf = datum/turf_reservation + /// List of lists of turfs to reserve + var/list/lists_to_reserve = list() var/list/reservation_ready = list() var/clearing_reserved_turfs = FALSE // Z-manager stuff var/ground_start // should only be used for maploading-related tasks - var/list/z_list + ///list of all z level datums in the order of their z (z level 1 is at index 1, etc.) + var/list/datum/space_level/z_list var/datum/space_level/transit var/num_of_res_levels = 1 + /// True when in the process of adding a new Z-level, global locking + var/adding_new_zlevel = FALSE + /// list of traits and their associated z leves + var/list/z_trait_levels = list() + + /// list of lazy templates that have been loaded + var/list/loaded_lazy_templates + //dlete dis once #39770 is resolved /datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig() if(!configs) @@ -52,14 +63,10 @@ SUBSYSTEM_DEF(mapping) loadWorld() repopulate_sorted_areas() preloadTemplates() - // Add the transit level - transit = add_new_zlevel("Transit/Reserved", list(ZTRAIT_RESERVED = TRUE)) - initialize_reserved_level(transit.z_value) + // Add the first transit level + var/datum/space_level/base_transit = add_reservation_zlevel() + initialize_reserved_level(base_transit.z_value) repopulate_sorted_areas() - for(var/maptype as anything in configs) - var/datum/map_config/MC = configs[maptype] - 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)) @@ -68,21 +75,60 @@ SUBSYSTEM_DEF(mapping) return SS_INIT_SUCCESS +/datum/controller/subsystem/mapping/fire(resumed) + // Cache for sonic speed + var/list/unused_turfs = src.unused_turfs + // CM TODO: figure out if these 2 are needed. Might be required by updated versions of map reader + //var/list/world_contents = GLOB.areas_by_type[world.area].contents + //var/list/world_turf_contents = GLOB.areas_by_type[world.area].contained_turfs + var/list/lists_to_reserve = src.lists_to_reserve + var/index = 0 + while(index < length(lists_to_reserve)) + var/list/packet = lists_to_reserve[index + 1] + var/packetlen = length(packet) + while(packetlen) + if(MC_TICK_CHECK) + if(index) + lists_to_reserve.Cut(1, index) + return + var/turf/T = packet[packetlen] + T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE) + LAZYINITLIST(unused_turfs["[T.z]"]) + unused_turfs["[T.z]"] |= T + //var/area/old_area = T.loc + //old_area.turfs_to_uncontain += T + T.turf_flags = UNUSED_RESERVATION_TURF + //world_contents += T + //world_turf_contents += T + packet.len-- + packetlen = length(packet) + + index++ + lists_to_reserve.Cut(1, index) + /datum/controller/subsystem/mapping/proc/wipe_reservations(wipe_safety_delay = 100) if(clearing_reserved_turfs || !initialized) //in either case this is just not needed. return clearing_reserved_turfs = TRUE message_admins("Clearing dynamic reservation space.") + // /tg/ Shuttles have extra handling here to avoid them being desallocated do_wipe_turf_reservations() clearing_reserved_turfs = FALSE +/datum/controller/subsystem/mapping/proc/get_reservation_from_turf(turf/T) + RETURN_TYPE(/datum/turf_reservation) + return used_turfs[T] + /datum/controller/subsystem/mapping/Recover() flags |= SS_NO_INIT initialized = SSmapping.initialized map_templates = SSmapping.map_templates + + shuttle_templates = SSmapping.shuttle_templates unused_turfs = SSmapping.unused_turfs turf_reservations = SSmapping.turf_reservations used_turfs = SSmapping.used_turfs + areas_in_z = SSmapping.areas_in_z configs = SSmapping.configs next_map_configs = SSmapping.next_map_configs @@ -126,18 +172,33 @@ SUBSYSTEM_DEF(mapping) var/start_z = world.maxz + 1 var/i = 0 for (var/level in traits) - add_new_zlevel("[name][i ? " [i + 1]" : ""]", level) + add_new_zlevel("[name][i ? " [i + 1]" : ""]", level, contain_turfs = FALSE) ++i + // ================== CM Change ================== + // For some reason /tg/ SSmapping attempts to center the map in new Z-Level + // but because it's done before loading, it's calculated before performing + // X/Y world expansion. When loading a map bigger than world, this results + // in a negative offset and the start of the map to not be loaded. + // load the maps for (var/datum/parsed_map/pm as anything in parsed_maps) - var/cur_z = start_z + parsed_maps[pm] - if (!pm.load(1, 1, cur_z, no_changeturf = TRUE)) + var/bounds = pm.bounds + var/x_offset = 1 + var/y_offset = 1 + if(bounds && world.maxx > bounds[MAP_MAXX]) + x_offset = round(world.maxx / 2 - bounds[MAP_MAXX] / 2) + 1 + if(bounds && world.maxy > bounds[MAP_MAXY]) + y_offset = round(world.maxy / 2 - bounds[MAP_MAXY] / 2) + 1 + if (!pm.load(x_offset, y_offset, start_z + parsed_maps[pm], no_changeturf = TRUE, new_z = TRUE)) errorList |= pm.original_path - if(istype(z_list[cur_z], /datum/space_level)) - var/datum/space_level/cur_level = z_list[cur_z] - cur_level.x_bounds = pm.bounds[MAP_MAXX] - cur_level.y_bounds = pm.bounds[MAP_MAXY] + // CM Snowflake for Mass Screenshot dimensions auto detection + for(var/z in bounds[MAP_MINZ] to bounds[MAP_MAXZ]) + var/datum/space_level/zlevel = z_list[start_z + z - 1] + zlevel.bounds = list(bounds[MAP_MINX], bounds[MAP_MINY], z, bounds[MAP_MAXX], bounds[MAP_MAXY], z) + + // =============== END CM Change ================= + if(!silent) INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!") return parsed_maps @@ -256,66 +317,78 @@ SUBSYSTEM_DEF(mapping) 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 - if(turf_type_override) +/// Adds a new reservation z level. A bit of space that can be handed out on request +/// Of note, reservations default to transit turfs, to make their most common use, shuttles, faster +/datum/controller/subsystem/mapping/proc/add_reservation_zlevel(for_shuttles) + num_of_res_levels++ + return add_new_zlevel("Transit/Reserved #[num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE)) + +/// Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level. +/datum/controller/subsystem/mapping/proc/request_turf_block_reservation( + width, + height, + z_size = 1, + z_reservation = null, + reservation_type = /datum/turf_reservation, + turf_type_override = null, +) + UNTIL((!z_reservation || reservation_ready["[z_reservation]"]) && !clearing_reserved_turfs) + var/datum/turf_reservation/reserve = new reservation_type + if(!isnull(turf_type_override)) reserve.turf_type = turf_type_override - if(!z) + if(!z_reservation) for(var/i in levels_by_trait(ZTRAIT_RESERVED)) - if(reserve.Reserve(width, height, i)) + if(reserve.reserve(width, height, z_size, i)) return reserve //If we didn't return at this point, theres a good chance we ran out of room on the exisiting reserved z levels, so lets try a new one - log_debug("Ran out of space in existing transit levels, adding a new one") - num_of_res_levels++ - var/datum/space_level/newReserved = add_new_zlevel("Transit/Reserved [num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE)) + var/datum/space_level/newReserved = add_reservation_zlevel() initialize_reserved_level(newReserved.z_value) - for(var/i in levels_by_trait(ZTRAIT_RESERVED)) - if(reserve.Reserve(width, height, i)) - return reserve - CRASH("Despite adding a fresh reserved zlevel still failed to get a reservation") + if(reserve.reserve(width, height, z_size, newReserved.z_value)) + return reserve else - if(!level_trait(z, ZTRAIT_RESERVED)) - log_debug("Cannot block reserve on a non-ZTRAIT_RESERVED level") + if(!level_trait(z_reservation, ZTRAIT_RESERVED)) qdel(reserve) return else - if(reserve.Reserve(width, height, z)) + if(reserve.reserve(width, height, z_size, z_reservation)) return reserve - log_debug("unknown reservation failure") QDEL_NULL(reserve) -//This is not for wiping reserved levels, use wipe_reservations() for that. +///Sets up a z level as reserved +///This is not for wiping reserved levels, use wipe_reservations() for that. +///If this is called after SSatom init, it will call Initialize on all turfs on the passed z, as its name promises /datum/controller/subsystem/mapping/proc/initialize_reserved_level(z) UNTIL(!clearing_reserved_turfs) //regardless, lets add a check just in case. clearing_reserved_turfs = TRUE //This operation will likely clear any existing reservations, so lets make sure nothing tries to make one while we're doing it. if(!level_trait(z,ZTRAIT_RESERVED)) clearing_reserved_turfs = FALSE CRASH("Invalid z level prepared for reservations.") - var/turf/A = get_turf(locate(8,8,z)) - var/turf/B = get_turf(locate(world.maxx - 8,world.maxy - 8,z)) + var/turf/A = get_turf(locate(SHUTTLE_TRANSIT_BORDER,SHUTTLE_TRANSIT_BORDER,z)) + var/turf/B = get_turf(locate(world.maxx - SHUTTLE_TRANSIT_BORDER,world.maxy - SHUTTLE_TRANSIT_BORDER,z)) var/block = block(A, B) - for(var/t in block) - // No need to empty() these, because it's world init and they're - // already /turf/open/space/basic. - var/turf/T = t - T.flags_atom |= UNUSED_RESERVATION_TURF + for(var/turf/T as anything in block) + // No need to empty() these, because they just got created and are already /turf/open/space/basic. + T.turf_flags = UNUSED_RESERVATION_TURF + CHECK_TICK + + // Gotta create these suckers if we've not done so already + if(SSatoms.initialized) + SSatoms.InitializeAtoms(Z_TURFS(z)) + unused_turfs["[z]"] = block reservation_ready["[z]"] = TRUE clearing_reserved_turfs = FALSE -/datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs) - for(var/i in turfs) - var/turf/T = i - T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE) - LAZYINITLIST(unused_turfs["[T.z]"]) - unused_turfs["[T.z]"] |= T - T.flags_atom |= UNUSED_RESERVATION_TURF - GLOB.areas_by_type[world.area].contents += T - CHECK_TICK +/// Schedules a group of turfs to be handed back to the reservation system's control +/// If await is true, will sleep until the turfs are finished work +/datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs, await = FALSE) + lists_to_reserve += list(turfs) + if(await) + UNTIL(!length(turfs)) //DO NOT CALL THIS PROC DIRECTLY, CALL wipe_reservations(). /datum/controller/subsystem/mapping/proc/do_wipe_turf_reservations() + PRIVATE_PROC(TRUE) UNTIL(initialized) //This proc is for AFTER init, before init turf reservations won't even exist and using this will likely break things. for(var/i in turf_reservations) var/datum/turf_reservation/TR = i @@ -323,19 +396,28 @@ SUBSYSTEM_DEF(mapping) qdel(TR, TRUE) UNSETEMPTY(turf_reservations) var/list/clearing = list() - for(var/l in unused_turfs) //unused_turfs is a assoc list by z = list(turfs) + for(var/l in unused_turfs) //unused_turfs is an assoc list by z = list(turfs) if(islist(unused_turfs[l])) clearing |= unused_turfs[l] clearing |= used_turfs //used turfs is an associative list, BUT, reserve_turfs() can still handle it. If the code above works properly, this won't even be needed as the turfs would be freed already. unused_turfs.Cut() used_turfs.Cut() - reserve_turfs(clearing) + reserve_turfs(clearing, await = TRUE) /datum/controller/subsystem/mapping/proc/reg_in_areas_in_z(list/areas) for(var/B in areas) var/area/A = B A.reg_in_areas_in_z() +/// Takes a z level datum, and tells the mapping subsystem to manage it +/// Also handles things like plane offset generation, and other things that happen on a z level to z level basis +/datum/controller/subsystem/mapping/proc/manage_z_level(datum/space_level/new_z, filled_with_space, contain_turfs = TRUE) + // First, add the z + z_list += new_z + // Then we build our lookup lists + //var/z_value = new_z.z_value + //TODO: All the Z-plane init stuff goes below here normally, we don't have that yet + /// Gets a name for the marine ship as per the enabled ship map configuration /datum/controller/subsystem/mapping/proc/get_main_ship_name() if(!configs) @@ -344,3 +426,28 @@ SUBSYSTEM_DEF(mapping) if(!MC) return MAIN_SHIP_DEFAULT_NAME return MC.map_name + +/datum/controller/subsystem/mapping/proc/lazy_load_template(datum/lazy_template/template_to_load, force = FALSE) + RETURN_TYPE(/datum/turf_reservation) + + UNTIL(initialized) + var/static/lazy_loading = FALSE + UNTIL(!lazy_loading) + + lazy_loading = TRUE + . = _lazy_load_template(template_to_load, force) + lazy_loading = FALSE + return . + +/datum/controller/subsystem/mapping/proc/_lazy_load_template(datum/lazy_template/template_to_load, force = FALSE) + PRIVATE_PROC(TRUE) + + if(LAZYACCESS(loaded_lazy_templates, template_to_load) && !force) + var/datum/lazy_template/template = GLOB.lazy_templates[template_to_load] + return template.reservations[1] + LAZYSET(loaded_lazy_templates, template_to_load, TRUE) + + var/datum/lazy_template/target = GLOB.lazy_templates[template_to_load] + if(!target) + CRASH("Attempted to lazy load a template key that does not exist: '[template_to_load]'") + return target.lazy_load() diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index 410ded82f7b3..478848906047 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -585,6 +585,8 @@ SUBSYSTEM_DEF(minimaps) owner?.client?.remove_from_screen(map) minimap_displayed = FALSE + UnregisterSignal(target, COMSIG_MOVABLE_Z_CHANGED) + /** * Updates the map when the owner changes zlevel */ diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index 3e59744cff31..439f83ceb8c0 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -39,9 +39,6 @@ SUBSYSTEM_DEF(shuttle) var/loading_shuttle = FALSE /datum/controller/subsystem/shuttle/Initialize(timeofday) - if(GLOB.perf_flags & PERF_TOGGLE_SHUTTLES) - can_fire = FALSE - return initial_load() return SS_INIT_SUCCESS @@ -52,8 +49,6 @@ SUBSYSTEM_DEF(shuttle) CHECK_TICK /datum/controller/subsystem/shuttle/fire(resumed = FALSE) - if(!resumed && (GLOB.perf_flags & PERF_TOGGLE_SHUTTLES)) - return for(var/thing in mobile) if(!thing) mobile.Remove(thing) @@ -164,9 +159,6 @@ SUBSYSTEM_DEF(shuttle) // First, determine the size of the needed zone // Because of shuttle rotation, the "width" of the shuttle is not // always x. - var/travel_dir = M.preferred_direction - // Remember, the direction is the direction we appear to be - // coming from var/dock_angle = dir2angle(M.preferred_direction) + dir2angle(M.port_direction) + 180 var/dock_dir = angle2dir(dock_angle) @@ -185,27 +177,24 @@ SUBSYSTEM_DEF(shuttle) /* to_chat(world, "The attempted transit dock will be [transit_width] width, and \) - [transit_height] in height. The travel dir is [travel_dir]." + [transit_height] in height. The travel dir is [M.preferred_direction]." */ - var/transit_path = /turf/open/space/transit - switch(travel_dir) - if(NORTH) - transit_path = /turf/open/space/transit/north - if(SOUTH) - transit_path = /turf/open/space/transit/south - if(EAST) - transit_path = /turf/open/space/transit/east - if(WEST) - transit_path = /turf/open/space/transit/west + var/transit_path = M.get_transit_path_type() - var/datum/turf_reservation/proposal = SSmapping.RequestBlockReservation(transit_width, transit_height, null, /datum/turf_reservation/transit, transit_path) + var/datum/turf_reservation/proposal = SSmapping.request_turf_block_reservation( + transit_width, + transit_height, + 1, + reservation_type = /datum/turf_reservation/transit, + turf_type_override = transit_path, + ) if(!istype(proposal)) log_debug("generate_transit_dock() failed to get a block reservation from mapping system") return FALSE - var/turf/bottomleft = locate(proposal.bottom_left_coords[1], proposal.bottom_left_coords[2], proposal.bottom_left_coords[3]) + var/turf/bottomleft = proposal.bottom_left_turfs[1] // Then create a transit docking port in the middle var/coords = M.return_coords(0, 0, dock_dir) /* 0------2 @@ -374,7 +363,7 @@ SUBSYSTEM_DEF(shuttle) return shuttle -/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port) +/datum/controller/subsystem/shuttle/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port, replace = FALSE) // Check for an existing preview if(preview_shuttle && (loading_template != preview_template)) preview_shuttle.jumpToNullSpace() @@ -383,8 +372,7 @@ SUBSYSTEM_DEF(shuttle) QDEL_NULL(preview_reservation) if(!preview_shuttle) - if(load_template(loading_template)) - preview_shuttle.linkup(loading_template, destination_port) + load_template(loading_template) preview_template = loading_template // get the existing shuttle information, if any @@ -419,9 +407,6 @@ SUBSYSTEM_DEF(shuttle) for(var/area/A as anything in preview_shuttle.shuttle_areas) for(var/turf/T as anything in A) - // turfs inside the shuttle are not available for shuttles - T.flags_atom &= ~UNUSED_RESERVATION_TURF - // update underlays if(istype(T, /turf/closed/shuttle)) var/dx = T.x - preview_shuttle.x @@ -430,8 +415,10 @@ SUBSYSTEM_DEF(shuttle) T.underlays.Cut() T.underlays += mutable_appearance(target_lz.icon, target_lz.icon_state, TURF_LAYER, FLOOR_PLANE) + preview_shuttle.register(replace) var/list/force_memory = preview_shuttle.movement_force preview_shuttle.movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) + preview_shuttle.initiate_docking(D) preview_shuttle.movement_force = force_memory @@ -442,7 +429,7 @@ SUBSYSTEM_DEF(shuttle) preview_shuttle.timer = timer preview_shuttle.mode = mode - preview_shuttle.register() + preview_shuttle.postregister(replace) // TODO indicate to the user that success happened, rather than just // blanking the modification tab @@ -452,16 +439,21 @@ SUBSYSTEM_DEF(shuttle) selected = null QDEL_NULL(preview_reservation) -/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/S) +/datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/loading_template) . = FALSE - // load shuttle template, centred at shuttle import landmark, - preview_reservation = SSmapping.RequestBlockReservation(S.width, S.height, SSmapping.transit.z_value, /datum/turf_reservation/transit) + // Load shuttle template to a fresh block reservation. + preview_reservation = SSmapping.request_turf_block_reservation( + loading_template.width, + loading_template.height, + 1, + reservation_type = /datum/turf_reservation/transit, + ) if(!preview_reservation) CRASH("failed to reserve an area for shuttle template loading") - var/turf/BL = TURF_FROM_COORDS_LIST(preview_reservation.bottom_left_coords) - S.load(BL, centered = FALSE, register = FALSE) + var/turf/bottom_left = preview_reservation.bottom_left_turfs[1] + loading_template.load(bottom_left, centered = FALSE, register = FALSE) - var/affected = S.get_affected_turfs(BL, centered=FALSE) + var/affected = loading_template.get_affected_turfs(bottom_left, centered=FALSE) var/found = 0 // Search the turfs for docking ports @@ -475,13 +467,13 @@ SUBSYSTEM_DEF(shuttle) found++ if(found > 1) qdel(P, force=TRUE) - log_world("Map warning: Shuttle Template [S.mappath] has multiple mobile docking ports.") + log_world("Map warning: Shuttle Template [loading_template.mappath] has multiple mobile docking ports.") else preview_shuttle = P if(istype(P, /obj/docking_port/stationary)) - log_world("Map warning: Shuttle Template [S.mappath] has a stationary docking port.") + log_world("Map warning: Shuttle Template [loading_template.mappath] has a stationary docking port.") if(!found) - var/msg = "load_template(): Shuttle Template [S.mappath] has no mobile docking port. Aborting import." + var/msg = "load_template(): Shuttle Template [loading_template.mappath] has no mobile docking port. Aborting import." for(var/T in affected) var/turf/T0 = T T0.empty() @@ -490,7 +482,7 @@ SUBSYSTEM_DEF(shuttle) WARNING(msg) return //Everything fine - S.post_load(preview_shuttle) + loading_template.post_load(preview_shuttle) return TRUE /datum/controller/subsystem/shuttle/proc/unload_preview() diff --git a/code/controllers/subsystem/stickyban.dm b/code/controllers/subsystem/stickyban.dm new file mode 100644 index 000000000000..48e934addc1a --- /dev/null +++ b/code/controllers/subsystem/stickyban.dm @@ -0,0 +1,284 @@ +SUBSYSTEM_DEF(stickyban) + name = "Sticky Ban" + init_order = SS_INIT_STICKY + flags = SS_NO_FIRE + +/datum/controller/subsystem/stickyban/Initialize() + var/list/all_bans = world.GetConfig("ban") + + for(var/existing_ban in all_bans) + var/list/ban_data = params2list(world.GetConfig("ban", existing_ban)) + INVOKE_ASYNC(src, PROC_REF(import_sticky), existing_ban, ban_data) + + return SS_INIT_SUCCESS + +/** + * Returns a list of [/datum/view_record/stickyban]s, or null, if no stickybans are found. All arguments are optional, but you should pass at least one if you want any results. + */ +/datum/controller/subsystem/stickyban/proc/check_for_sticky_ban(ckey, address, computer_id) + var/list/stickyban_ids = list() + + for(var/datum/view_record/stickyban_matched_ckey/matched_ckey as anything in get_impacted_ckey_records(ckey)) + stickyban_ids += matched_ckey.linked_stickyban + + for(var/datum/view_record/stickyban_matched_cid/matched_cid as anything in get_impacted_cid_records(computer_id)) + stickyban_ids += matched_cid.linked_stickyban + + for(var/datum/view_record/stickyban_matched_ip/matched_ip as anything in get_impacted_ip_records(address)) + stickyban_ids += matched_ip.linked_stickyban + + if(!length(stickyban_ids)) + return FALSE + + var/list/datum/view_record/stickyban/stickies = DB_VIEW(/datum/view_record/stickyban, + DB_AND( + DB_COMP("id", DB_IN, stickyban_ids), + DB_COMP("active", DB_EQUALS, TRUE) + ) + ) + + for(var/datum/view_record/stickyban/current_sticky in stickies) + if(length(get_whitelisted_ckey_records(current_sticky.id, ckey))) + stickies -= current_sticky + + if(!length(stickies)) + return FALSE + + return stickies + +/** + * Associates an existing stickyban with a new match, either of a ckey, address, or computer_id. Or all three. + * + * Arguments: + * - existing_ban_id, int, required + * - ckey, string, optional + * - address, string, optional + * - computer_id, string, optional + */ +/datum/controller/subsystem/stickyban/proc/match_sticky(existing_ban_id, ckey, address, computer_id) + if(!existing_ban_id) + return + + if(ckey) + add_matched_ckey(existing_ban_id, ckey) + + if(address) + add_matched_ip(existing_ban_id, address) + + if(computer_id) + add_matched_cid(existing_ban_id, computer_id) + +/** + * Adds a new tracked stickyban, and returns a [/datum/entity/stickyban] if it was successful. Blocking, sleeps. + */ +/datum/controller/subsystem/stickyban/proc/add_stickyban(identifier, reason, message, datum/entity/player/banning_admin, override_date) + var/datum/entity/stickyban/new_sticky = DB_ENTITY(/datum/entity/stickyban) + new_sticky.identifier = identifier + new_sticky.reason = reason + new_sticky.message = message + + if(banning_admin) + new_sticky.adminid = banning_admin.id + + new_sticky.date = override_date ? override_date : "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" + new_sticky.save() + new_sticky.sync() + + return new_sticky + +/// Adds a ckey match to the specified sticky ban. +/datum/controller/subsystem/stickyban/proc/add_matched_ckey(existing_ban_id, key) + key = ckey(key) + + if(length(DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ckey", DB_EQUALS, key) + ) + ))) + return + + var/datum/entity/stickyban_matched_ckey/matched_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey) + + matched_ckey.ckey = key + matched_ckey.linked_stickyban = existing_ban_id + + matched_ckey.save() + +/// Adds an IP match to the specified stickyban. +/datum/controller/subsystem/stickyban/proc/add_matched_ip(existing_ban_id, ip) + if(length(DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ip", DB_EQUALS, ip) + ) + ))) + return + + var/datum/entity/stickyban_matched_ip/matched_ip = DB_ENTITY(/datum/entity/stickyban_matched_ip) + + matched_ip.ip = ip + matched_ip.linked_stickyban = existing_ban_id + + matched_ip.save() + +/// Adds a CID match to the specified stickyban. +/datum/controller/subsystem/stickyban/proc/add_matched_cid(existing_ban_id, cid) + if(length(DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("cid", DB_EQUALS, cid) + ) + ))) + return + + + var/datum/entity/stickyban_matched_cid/matched_cid = DB_ENTITY(/datum/entity/stickyban_matched_cid) + + matched_cid.cid = cid + matched_cid.linked_stickyban = existing_ban_id + + matched_cid.save() + +/// Whitelists a specific CKEY to the specified stickyban, which will allow connection, even with matching CIDs and IPs. +/datum/controller/subsystem/stickyban/proc/whitelist_ckey(existing_ban_id, key) + key = ckey(key) + + if(!key) + return + + var/id_to_select + + var/list/datum/view_record/stickyban_matched_ckey/existing_matches = DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ckey", DB_EQUALS, key) + ) + ) + + if(length(existing_matches)) + var/datum/view_record/stickyban_matched_ckey/match = existing_matches[1] + id_to_select = match.id + + var/datum/entity/stickyban_matched_ckey/whitelisted_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey, id_to_select) + + whitelisted_ckey.ckey = key + whitelisted_ckey.linked_stickyban = existing_ban_id + whitelisted_ckey.whitelisted = TRUE + + whitelisted_ckey.save() + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_ckey] where the ckey provided has not been + * whitelisted from the stickyban, and would be prevented from joining - provided that the stickyban itself + * remains active. + */ +/datum/controller/subsystem/stickyban/proc/get_impacted_ckey_records(key) + key = ckey(key) + + return DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("ckey", DB_EQUALS, key), + DB_COMP("whitelisted", DB_EQUALS, FALSE) + ) + ) + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_ckey] which have been manually whitelisted by an admin and matches the provided existing_ban_id and key. + */ +/datum/controller/subsystem/stickyban/proc/get_whitelisted_ckey_records(existing_ban_id, key) + key = ckey(key) + + return DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_AND( + DB_COMP("linked_stickyban", DB_EQUALS, existing_ban_id), + DB_COMP("ckey", DB_EQUALS, key), + DB_COMP("whitelisted", DB_EQUALS, TRUE), + ) + ) + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_cid] where the impacted CID matches the CID provided. + * Connections matching this CID will be blocked - provided the linked stickyban is active. + */ +/datum/controller/subsystem/stickyban/proc/get_impacted_cid_records(cid) + return DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_COMP("cid", DB_EQUALS, cid) + ) + +/** + * Returns a [/list] of [/datum/view_record/stickyban_matched_ip] where the impacted IP matches the IP provided. + * Connections matchin this IP will be blocked - provided the linked stickyban is active. + */ +/datum/controller/subsystem/stickyban/proc/get_impacted_ip_records(ip) + return DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_COMP("ip", DB_EQUALS, ip) + ) + +/// Legacy import from pager bans to database bans. +/datum/controller/subsystem/stickyban/proc/import_sticky(identifier, list/ban_data) + WAIT_DB_READY + + if(ban_data["type"] != "sticky") + handle_old_perma(identifier, ban_data) + return + + if(!ban_data["message"]) + ban_data["message"] = "Evasion" + + add_stickyban(identifier, ban_data["reason"], ban_data["message"], override_date = "LEGACY") + +/** + * We abuse the on_insert from ndatabase here to ensure we have the synced ID of the new stickyban when applying a *lot* of associated bans. If we don't have a matching pager ban with the new sticky's identifier, we stop. + */ +/datum/entity_meta/stickyban/on_insert(datum/entity/stickyban/new_sticky) + var/list/ban_data = params2list(world.GetConfig("ban", new_sticky.identifier)) + + if(!length(ban_data)) + return + + var/list/whitelisted = list() + if(ban_data["whitelist"]) + whitelisted = splittext(ban_data["whitelist"], ",") + for(var/key in whitelisted) + SSstickyban.whitelist_ckey(new_sticky.id, key) + + if(ban_data["keys"]) + var/list/keys = splittext(ban_data["keys"], ",") + keys -= whitelisted + for(var/key in keys) + SSstickyban.add_matched_ckey(new_sticky.id, key) + + if(ban_data["computer_id"]) + var/list/cids = splittext(ban_data["computer_id"], ",") + for(var/cid in cids) + SSstickyban.add_matched_cid(new_sticky.id, cid) + + if(ban_data["IP"]) + var/list/ips = splittext(ban_data["IP"], ",") + for(var/ip in ips) + SSstickyban.add_matched_ip(new_sticky.id, ip) + + world.SetConfig("ban", new_sticky.identifier, null) + +/// Imports permabans from the old ban.txt, and does *not* ban people that have been whitelisted. +/datum/controller/subsystem/stickyban/proc/handle_old_perma(identifier, list/ban_data) + var/list/keys_to_ban = list() + + keys_to_ban += splittext(ban_data["keys"], ",") + + for(var/x in 1 to length(keys_to_ban)) + keys_to_ban[x] = ckey(keys_to_ban[x]) + + var/list/keys = splittext(ban_data["whitelist"], ",") + for(var/key in keys) + keys_to_ban -= ckey(key) + + for(var/key in keys_to_ban) + var/datum/entity/player/player_entity = get_player_from_key(key) + if(!player_entity) + continue + + INVOKE_ASYNC(player_entity, TYPE_PROC_REF(/datum/entity/player, add_perma_ban), ban_data["message"]) + + world.SetConfig("ban", identifier, null) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 2b9812abade4..f265315460e3 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -8,6 +8,10 @@ SUBSYSTEM_DEF(ticker) var/current_state = GAME_STATE_STARTUP //State of current round used by process() var/force_ending = FALSE //Round was ended by admin intervention + + /// If TRUE, there is no lobby phase, the game starts immediately. + var/start_immediately = FALSE + var/bypass_checks = FALSE //Bypass mode init checks var/setup_failed = FALSE //If the setup has failed at any point var/setup_started = FALSE @@ -80,6 +84,10 @@ SUBSYSTEM_DEF(ticker) var/mob/new_player/player = i if(player.ready) // TODO: port this == PLAYER_READY_TO_PLAY) ++totalPlayersReady + + if(start_immediately) + time_left = 0 + if(time_left < 0 || delay_start) return @@ -207,7 +215,7 @@ SUBSYSTEM_DEF(ticker) CHECK_TICK mode.announce() if(mode.taskbar_icon) - RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN, PROC_REF(handle_mode_icon)) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN, PROC_REF(handle_mode_icon)) set_clients_taskbar_icon(mode.taskbar_icon) if(GLOB.perf_flags & PERF_TOGGLE_LAZYSS) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 6188e38e8d60..2438577a1771 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -59,7 +59,7 @@ SUBSYSTEM_DEF(vote) voting.Cut() remove_action_buttons() - UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN) + UnregisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN) for(var/c in GLOB.player_list) update_static_data(c) @@ -373,7 +373,7 @@ SUBSYSTEM_DEF(vote) if(send_clients_vote) C.mob.vote() - RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGIN, PROC_REF(handle_client_joining)) + RegisterSignal(SSdcs, COMSIG_GLOB_CLIENT_LOGGED_IN, PROC_REF(handle_client_joining)) SStgui.update_uis(src) return TRUE return FALSE @@ -525,7 +525,7 @@ GLOBAL_LIST_INIT(possible_vote_types, list( if(!(params["vote_type"] in GLOB.possible_vote_types)) return - if(!check_rights(R_ADMIN)) + if(!check_rights(R_MOD)) var/list/vote_type = GLOB.possible_vote_types[params["vote_type"]] if(vote_type["admin_only"]) return diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm index 7a4006deee73..229c10b31e3a 100644 --- a/code/datums/ammo/ammo.dm +++ b/code/datums/ammo/ammo.dm @@ -84,7 +84,7 @@ /// 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 + var/flamer_reagent_id = "utnapthal" /// 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" @@ -237,11 +237,12 @@ 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)) +/datum/ammo/proc/drop_flame(turf/turf, datum/cause_data/cause_data) // ~Art updated fire 20JAN17 + if(!istype(turf)) return - if(locate(/obj/flamer_fire) in T) + if(locate(/obj/flamer_fire) in turf) return - var/datum/reagent/R = new flamer_reagent_type() - new /obj/flamer_fire(T, cause_data, R) + var/datum/reagent/chemical = GLOB.chemical_reagents_list[flamer_reagent_id] + + new /obj/flamer_fire(turf, cause_data, chemical) diff --git a/code/datums/ammo/bullet/pistol.dm b/code/datums/ammo/bullet/pistol.dm index 8be63b0a15af..937c40d16cff 100644 --- a/code/datums/ammo/bullet/pistol.dm +++ b/code/datums/ammo/bullet/pistol.dm @@ -66,7 +66,7 @@ /datum/ammo/bullet/pistol/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/pistol/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) @@ -197,7 +197,7 @@ /datum/ammo/bullet/pistol/squash/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/pistol/squash/toxin/on_hit_obj(obj/O, obj/projectile/P) diff --git a/code/datums/ammo/bullet/revolver.dm b/code/datums/ammo/bullet/revolver.dm index 633bf3e2f7ff..0688e615378e 100644 --- a/code/datums/ammo/bullet/revolver.dm +++ b/code/datums/ammo/bullet/revolver.dm @@ -52,7 +52,7 @@ /datum/ammo/bullet/revolver/marksman/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/revolver/marksman/toxin/on_hit_obj(obj/O, obj/projectile/P) diff --git a/code/datums/ammo/bullet/rifle.dm b/code/datums/ammo/bullet/rifle.dm index 0be6f1db8ff4..7711e082a596 100644 --- a/code/datums/ammo/bullet/rifle.dm +++ b/code/datums/ammo/bullet/rifle.dm @@ -21,11 +21,16 @@ /datum/ammo/bullet/rifle/holo_target name = "holo-targeting rifle bullet" damage = 30 + /// inflicts this many holo stacks per bullet hit var/holo_stacks = 10 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 0 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 1 -/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/M, obj/projectile/P) +/datum/ammo/bullet/rifle/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet) . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) /datum/ammo/bullet/rifle/holo_target/hunting name = "holo-targeting hunting bullet" @@ -69,7 +74,7 @@ /datum/ammo/bullet/rifle/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/rifle/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) @@ -169,16 +174,16 @@ 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 + knockback(M, P, 32) // Can knockback basically at max range max range is 24 tiles... /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) + target.KnockDown(0.5-fired_projectile.distance_travelled/100) // purely for visual effect, noone actually cares + target.Stun(0.5-fired_projectile.distance_travelled/100) + target.apply_effect(2-fired_projectile.distance_travelled/20, SUPERSLOW) + target.apply_effect(5-fired_projectile.distance_travelled/10, SLOW) else if(!isyautja(living_mob)) //Not predators. living_mob.apply_effect(1, SUPERSLOW) diff --git a/code/datums/ammo/bullet/smg.dm b/code/datums/ammo/bullet/smg.dm index e24b3021da97..3fa087972fbe 100644 --- a/code/datums/ammo/bullet/smg.dm +++ b/code/datums/ammo/bullet/smg.dm @@ -51,7 +51,7 @@ /datum/ammo/bullet/smg/ap/toxin/on_hit_turf(turf/T, obj/projectile/P) . = ..() - if(T.flags_turf & TURF_ORGANIC) + if(T.turf_flags & TURF_ORGANIC) P.damage *= organic_damage_mult /datum/ammo/bullet/smg/ap/toxin/on_hit_obj(obj/O, obj/projectile/P) diff --git a/code/datums/ammo/bullet/sniper.dm b/code/datums/ammo/bullet/sniper.dm index a82f00631608..22371972e623 100644 --- a/code/datums/ammo/bullet/sniper.dm +++ b/code/datums/ammo/bullet/sniper.dm @@ -139,6 +139,28 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating/heavy) )) +/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target + name = "holo-targeting anti-materiel sniper bullet" + damage = 60 // it's a big bullet but its purpose is to support marines, not to kill enemies by itself + /// inflicts this many holo stacks per bullet hit + var/holo_stacks = 333 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 233 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 2 + +/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) + playsound(hit_mob, 'sound/weapons/gun_vulture_mark.ogg', 40) + to_chat(hit_mob, isxeno(hit_mob) ? SPAN_XENOHIGHDANGER("It feels as if we were MARKED FOR DEATH!") : SPAN_HIGHDANGER("It feels as if you were MARKED FOR DEATH!")) + hit_mob.balloon_alert_to_viewers("marked for death!") + +// the effect should be limited to one target, with IFF to compensate how hard it will be to hit these shots +/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target/set_bullet_traits() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff) + )) + /datum/ammo/bullet/sniper/elite name = "supersonic sniper bullet" diff --git a/code/datums/ammo/bullet/special_ammo.dm b/code/datums/ammo/bullet/special_ammo.dm index 3d53c6b0c0d0..97c1bf5735f9 100644 --- a/code/datums/ammo/bullet/special_ammo.dm +++ b/code/datums/ammo/bullet/special_ammo.dm @@ -46,12 +46,16 @@ /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 + /// inflicts this many holo stacks per bullet hit var/holo_stacks = 15 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 0 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 1 -/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/M, obj/projectile/P) +/datum/ammo/bullet/smartgun/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet) . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) /datum/ammo/bullet/smartgun/holo_target/ap name = "armor-piercing smartgun bullet" diff --git a/code/datums/ammo/energy.dm b/code/datums/ammo/energy.dm index 16cbab378438..1f48806d2d52 100644 --- a/code/datums/ammo/energy.dm +++ b/code/datums/ammo/energy.dm @@ -230,3 +230,10 @@ var/mob/living/carbon/xenomorph/xeno = hit_mob xeno.apply_damage(damage * 0.75, BURN) xeno.interference = 30 + +/datum/ammo/energy/yautja/rifle/bolt/set_bullet_traits() + . = ..() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + )) + diff --git a/code/datums/ammo/misc.dm b/code/datums/ammo/misc.dm index 62a78539b6a2..bcb9673548db 100644 --- a/code/datums/ammo/misc.dm +++ b/code/datums/ammo/misc.dm @@ -49,11 +49,11 @@ drop_flame(get_turf(P), P.weapon_cause_data) /datum/ammo/flamethrower/tank_flamer - flamer_reagent_type = /datum/reagent/napalm/blue + flamer_reagent_id = "napalmx" /datum/ammo/flamethrower/sentry_flamer flags_ammo_behavior = AMMO_IGNORE_ARMOR|AMMO_IGNORE_COVER|AMMO_FLAME - flamer_reagent_type = /datum/reagent/napalm/blue + flamer_reagent_id = "napalmx" accuracy = HIT_ACCURACY_TIER_8 accurate_range = 6 diff --git a/code/datums/ammo/shrapnel.dm b/code/datums/ammo/shrapnel.dm index e27caa4b277d..39b0813fad25 100644 --- a/code/datums/ammo/shrapnel.dm +++ b/code/datums/ammo/shrapnel.dm @@ -43,10 +43,17 @@ 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) + /// inflicts this many holo stacks per bullet hit + var/holo_stacks = 10 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 0 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 1 + +/datum/ammo/bullet/shrapnel/hornet_rounds/on_hit_mob(mob/hit_mob, obj/projectile/bullet) . = ..() - M.AddComponent(/datum/component/bonus_damage_stack, 10, world.time) + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) + /datum/ammo/bullet/shrapnel/incendiary name = "flaming shrapnel" diff --git a/code/datums/components/bonus_damage_stack.dm b/code/datums/components/bonus_damage_stack.dm index faf4813541b8..78da5e036ce4 100644 --- a/code/datums/components/bonus_damage_stack.dm +++ b/code/datums/components/bonus_damage_stack.dm @@ -15,15 +15,21 @@ var/bonus_damage_cap = 100 /// Last world.time that the afflicted was hit by a holo-targeting round. var/last_stack + /// extra cap limit added by more powerful bullets + var/bonus_damage_cap_increase = 0 + /// multiplies the BONUS_DAMAGE_STACK_LOSS_PER_SECOND calculation, modifying how fast we lose holo stacks + var/stack_loss_multiplier = 1 -/datum/component/bonus_damage_stack/Initialize(bonus_damage_stacks, time) +/datum/component/bonus_damage_stack/Initialize(bonus_damage_stacks, time, bonus_damage_cap_increase, stack_loss_multiplier) . = ..() src.bonus_damage_stacks = bonus_damage_stacks + src.stack_loss_multiplier = stack_loss_multiplier + src.bonus_damage_cap = initial(bonus_damage_cap) + bonus_damage_cap_increase // this way it will never increase over the intended limit if(!time) time = world.time src.last_stack = time -/datum/component/bonus_damage_stack/InheritComponent(datum/component/bonus_damage_stack/BDS, i_am_original, bonus_damage_stacks, time) +/datum/component/bonus_damage_stack/InheritComponent(datum/component/bonus_damage_stack/BDS, i_am_original, bonus_damage_stacks, time, bonus_damage_cap_increase, stack_loss_multiplier) . = ..() if(!BDS) src.bonus_damage_stacks += bonus_damage_stacks @@ -32,22 +38,32 @@ src.bonus_damage_stacks += BDS.bonus_damage_stacks src.last_stack = BDS.last_stack - src.bonus_damage_stacks = min(src.bonus_damage_stacks, bonus_damage_cap) + // if a different type of holo targetting bullet hits a mob and has a bigger bonus cap, it will get applied. + if(src.bonus_damage_cap_increase < bonus_damage_cap_increase) + src.bonus_damage_cap_increase = bonus_damage_cap_increase + src.bonus_damage_cap = initial(bonus_damage_cap) + src.bonus_damage_cap_increase + + // however, if it has a worse stack_loss_multiplier, it will get applied instead. + // this way, if a weapon is meant to have a big bonus cap but holo stacks that rapidly deplete, it will not be messed up by a weapon that a low stack_loss_multiplier. + if(src.stack_loss_multiplier < stack_loss_multiplier) + src.stack_loss_multiplier = stack_loss_multiplier + + src.bonus_damage_stacks = min(src.bonus_damage_stacks, src.bonus_damage_cap) /datum/component/bonus_damage_stack/process(delta_time) if(last_stack + 5 SECONDS < world.time) - bonus_damage_stacks = bonus_damage_stacks - BONUS_DAMAGE_STACK_LOSS_PER_SECOND * delta_time + bonus_damage_stacks = bonus_damage_stacks - BONUS_DAMAGE_STACK_LOSS_PER_SECOND * stack_loss_multiplier * delta_time if(bonus_damage_stacks <= 0) qdel(src) var/color = COLOR_BONUS_DAMAGE - var/intensity = bonus_damage_stacks / (bonus_damage_cap * 2) - color += num2text(BONUS_DAMAGE_MAX_ALPHA * intensity, 2, 16) - + var/intensity = bonus_damage_stacks / (initial(bonus_damage_cap) * 2) + // if intensity is too high of a value, the hex code will become invalid + color += num2text(BONUS_DAMAGE_MAX_ALPHA * clamp(intensity, 0, 0.5), 1, 16) if(parent) var/atom/A = parent - A.add_filter("bonus_damage_stacks", 2, list("type" = "outline", "color" = color, "size" = 1)) + A.add_filter("bonus_damage_stacks", 2, list("type" = "outline", "color" = color, "size" = 1 + clamp(intensity, 0, 1))) /datum/component/bonus_damage_stack/RegisterWithParent() START_PROCESSING(SSdcs, src) @@ -67,7 +83,7 @@ SIGNAL_HANDLER L += "Bonus Damage Taken: [bonus_damage_stacks * 0.1]%" -/datum/component/bonus_damage_stack/proc/get_bonus_damage(mob/M, list/damage_data) // 10% damage bonus at most +/datum/component/bonus_damage_stack/proc/get_bonus_damage(mob/M, list/damage_data) // 10% damage bonus in most instances SIGNAL_HANDLER damage_data["bonus_damage"] = damage_data["damage"] * (min(bonus_damage_stacks, bonus_damage_cap) / 1000) diff --git a/code/datums/components/temporary_mute.dm b/code/datums/components/temporary_mute.dm new file mode 100644 index 000000000000..64b3e87809b6 --- /dev/null +++ b/code/datums/components/temporary_mute.dm @@ -0,0 +1,92 @@ +/datum/component/temporary_mute + dupe_mode = COMPONENT_DUPE_UNIQUE + /// A message to tell the user when they attempt to speak, if any + var/on_speak_message = "" + /// A message to tell the user when they attempt to emote, if any + var/on_emote_message = "" + /// A message to tell the user when they become no longer mute, if any + var/on_unmute_message = "" + /// How long after the component's initialization it should be deleted. -1 means it will never delete + var/time_until_unmute = 3 MINUTES + +/datum/component/temporary_mute/Initialize(on_speak_message = "", on_emote_message = "", on_unmute_message = "", time_until_unmute = 3 MINUTES) + . = ..() + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + + src.on_speak_message = on_speak_message + src.on_emote_message = on_emote_message + src.on_unmute_message = on_unmute_message + src.time_until_unmute = time_until_unmute + if(time_until_unmute != -1) + QDEL_IN(src, time_until_unmute) + +/datum/component/temporary_mute/RegisterWithParent() + ..() + RegisterSignal(parent, COMSIG_LIVING_SPEAK, PROC_REF(on_speak)) + RegisterSignal(parent, COMSIG_XENO_TRY_HIVEMIND_TALK, PROC_REF(on_hivemind)) + RegisterSignal(parent, COMSIG_MOB_TRY_EMOTE, PROC_REF(on_emote)) + RegisterSignal(parent, COMSIG_MOB_TRY_POINT, PROC_REF(on_point)) + ADD_TRAIT(parent, TRAIT_TEMPORARILY_MUTED, TRAIT_SOURCE_TEMPORARY_MUTE) + +/datum/component/temporary_mute/UnregisterFromParent() + ..() + if(parent) + UnregisterSignal(parent, COMSIG_LIVING_SPEAK) + UnregisterSignal(parent, COMSIG_XENO_TRY_HIVEMIND_TALK) + UnregisterSignal(parent, COMSIG_MOB_TRY_EMOTE) + UnregisterSignal(parent, COMSIG_MOB_TRY_POINT) + if(on_unmute_message) + to_chat(parent, SPAN_NOTICE(on_unmute_message)) + REMOVE_TRAIT(parent, TRAIT_TEMPORARILY_MUTED, TRAIT_SOURCE_TEMPORARY_MUTE) + +/datum/component/temporary_mute/proc/on_speak( + mob/user, + message, + datum/language/speaking = null, + verb = "says", + alt_name = "", + italics = FALSE, + message_range = GLOB.world_view_size, + sound/speech_sound, + sound_vol, + nolog = FALSE, + message_mode = null +) + SIGNAL_HANDLER + + if(!nolog) + log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to say the following before their spawn mute ended: [message] (CKEY: [user.key]) (JOB: [user.job])") + if(on_speak_message) + to_chat(parent, SPAN_BOLDNOTICE(on_speak_message)) + return COMPONENT_OVERRIDE_SPEAK + +/datum/component/temporary_mute/proc/on_hivemind(mob/user, message) + SIGNAL_HANDLER + + log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to hivemind the following before their spawn mute ended: [message] (CKEY: [user.key]) (JOB: [user.job])") + if(on_speak_message) + to_chat(parent, SPAN_BOLDNOTICE(on_speak_message)) + return COMPONENT_OVERRIDE_HIVEMIND_TALK + +/datum/component/temporary_mute/proc/on_emote(mob/user, datum/emote/current_emote, act, m_type, param, intentional) + SIGNAL_HANDLER + + // Allow involuntary emotes or non-custom emotes + if(!intentional) + return + if(!param && !istype(current_emote, /datum/emote/custom)) + return + + log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to emote the following before their spawn mute ended: [param] (CKEY: [user.key]) (JOB: [user.job])") + if(on_emote_message) + to_chat(parent, SPAN_BOLDNOTICE(on_emote_message)) + return COMPONENT_OVERRIDE_EMOTE + +/datum/component/temporary_mute/proc/on_point(mob/user, atom/target) + SIGNAL_HANDLER + + log_say("[user.name != "Unknown" ? user.name : "([user.real_name])"] attempted to point at the following before their spawn mute ended: [target] (CKEY: [user.key]) (JOB: [user.job])") + if(on_emote_message) + to_chat(parent, SPAN_BOLDNOTICE(on_emote_message)) + return COMPONENT_OVERRIDE_POINT diff --git a/code/datums/diseases/black_goo.dm b/code/datums/diseases/black_goo.dm index 183cdadf17aa..a5f67c8445be 100644 --- a/code/datums/diseases/black_goo.dm +++ b/code/datums/diseases/black_goo.dm @@ -2,6 +2,7 @@ #define ZOMBIE_INFECTION_STAGE_ONE 1 #define ZOMBIE_INFECTION_STAGE_TWO 2 #define ZOMBIE_INFECTION_STAGE_THREE 3 +#define ZOMBIE_INFECTION_STAGE_FOUR 4 #define SLOW_INFECTION_RATE 1 #define FAST_INFECTION_RATE 7 #define STAGE_LEVEL_THRESHOLD 360 @@ -9,7 +10,7 @@ /datum/disease/black_goo name = "Black Goo" - max_stages = 3 + max_stages = 4 cure = "Anti-Zed" cure_id = "antiZed" spread = "Bites" @@ -120,17 +121,23 @@ 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 zombie or transforming we upgrade it to stage four. if(iszombie(infected_mob)) + stage++ 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) + // if not a zombie(above check) and isn't transforming then we transform you into a zombie. if(!zombie_is_transforming) + // if your dead we inform you that you're going to turn into a zombie. + 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 zombie_transform(infected_mob) - infected_mob.next_move_slowdown = max(infected_mob.next_move_slowdown, 2) + hidden = list(0,0) + infected_mob.next_move_slowdown = max(infected_mob.next_move_slowdown, 2) + + if(ZOMBIE_INFECTION_STAGE_FOUR) + return + // final stage of infection it's to avoid running the above test once you're a zombie for now. maybe more later. /datum/disease/black_goo/proc/zombie_transform(mob/living/carbon/human/human) set waitfor = 0 @@ -149,7 +156,7 @@ playsound(human.loc, 'sound/hallucinations/wail.ogg', 25, 1) human.jitteriness = 0 human.set_species(SPECIES_ZOMBIE) - stage = 3 + stage = 4 human.faction = FACTION_ZOMBIE zombie_is_transforming = FALSE @@ -250,7 +257,6 @@ /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() . = ..() @@ -310,6 +316,7 @@ #undef ZOMBIE_INFECTION_STAGE_ONE #undef ZOMBIE_INFECTION_STAGE_TWO #undef ZOMBIE_INFECTION_STAGE_THREE +#undef ZOMBIE_INFECTION_STAGE_FOUR #undef STAGE_LEVEL_THRESHOLD #undef SLOW_INFECTION_RATE #undef FAST_INFECTION_RATE diff --git a/code/datums/emergency_calls/cbrn.dm b/code/datums/emergency_calls/cbrn.dm index cee96e10137e..fc20f98f20b3 100644 --- a/code/datums/emergency_calls/cbrn.dm +++ b/code/datums/emergency_calls/cbrn.dm @@ -2,6 +2,7 @@ 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." + home_base = /datum/lazy_template/ert/weyland_station mob_min = 3 mob_max = 5 max_heavies = 0 diff --git a/code/datums/emergency_calls/clf.dm b/code/datums/emergency_calls/clf.dm index 88c95ef31bc4..5441ba3103a7 100644 --- a/code/datums/emergency_calls/clf.dm +++ b/code/datums/emergency_calls/clf.dm @@ -8,6 +8,7 @@ objectives = "Assault the USCM, and sabotage as much as you can. Ensure any survivors escape in your custody." probability = 20 hostility = TRUE + home_base = /datum/lazy_template/ert/clf_station var/max_synths = 1 var/synths = 0 diff --git a/code/datums/emergency_calls/cmb.dm b/code/datums/emergency_calls/cmb.dm index 56b8b169b313..feb31cf0fe16 100644 --- a/code/datums/emergency_calls/cmb.dm +++ b/code/datums/emergency_calls/cmb.dm @@ -3,6 +3,7 @@ name = "CMB - Colonial Marshals Patrol Team (Friendly)" mob_max = 5 probability = 10 + home_base = /datum/lazy_template/ert/weyland_station var/max_synths = 1 var/synths = 0 diff --git a/code/datums/emergency_calls/deathsquad.dm b/code/datums/emergency_calls/deathsquad.dm index 1cd5bdef6713..66e9a377a8bc 100644 --- a/code/datums/emergency_calls/deathsquad.dm +++ b/code/datums/emergency_calls/deathsquad.dm @@ -9,7 +9,8 @@ arrival_message = "'!`2*%slau#*jer t*h$em a!l%. le&*ve n(o^ w&*nes%6es.*v$e %#d ou^'" objectives = "Whiteout protocol is in effect for the target. Ensure there are no traces of the infestation or any witnesses." probability = 0 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item max_medics = 1 @@ -91,7 +92,8 @@ mob_max = 8 mob_min = 5 probability = 0 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc /datum/emergency_call/marsoc/create_member(datum/mind/M, turf/override_spawn_loc) @@ -120,8 +122,9 @@ mob_max = 8 mob_min = 5 probability = 0 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc + home_base = /datum/lazy_template/ert/weyland_station /datum/emergency_call/marsoc_covert/create_member(datum/mind/M) diff --git a/code/datums/emergency_calls/emergency_call.dm b/code/datums/emergency_calls/emergency_call.dm index 7884d93b18bc..a803a7f06c78 100644 --- a/code/datums/emergency_calls/emergency_call.dm +++ b/code/datums/emergency_calls/emergency_call.dm @@ -28,6 +28,10 @@ var/mob_min = 3 var/dispatch_message = "An encrypted signal has been received from a nearby vessel. Stand by." //Msg to display when starting var/arrival_message = "" //Msg to display about when the shuttle arrives + /// Probability that the message will be replaced with static. - prob(chance_hidden) + var/chance_hidden = 20 + /// Message to display when distress beacon is hidden + var/static_message = "**STATIC** %$#&!- *!%^#$$ ^%%$# +_!@* &*%$## **STATIC** &%$#^*! @!*%$# ^%&$#@ *%&$#^ **STATIC** --SIGNAL LOST" 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 @@ -46,13 +50,19 @@ var/max_heavies = 1 var/max_smartgunners = 1 var/shuttle_id = MOBILE_SHUTTLE_ID_ERT1 //Empty shuttle ID means we're not using shuttles (aka spawn straight into cryo) - var/auto_shuttle_launch = FALSE + var/auto_shuttle_launch = TRUE var/spawn_max_amount = FALSE var/ert_message = "An emergency beacon has been activated" var/time_required_for_job = 5 HOURS + /// the shuttle being used by this distress call + var/obj/docking_port/mobile/emergency_response/shuttle + + /// the [/datum/lazy_template] we should attempt to spawn in for the return journey + var/home_base = /datum/lazy_template/ert/freelancer_station + /datum/game_mode/proc/initialize_emergency_calls() if(all_calls.len) //It's already been set up. return @@ -92,12 +102,19 @@ return chosen_call /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_incoming) - return + if(ispath(call_name, /datum/emergency_call)) + var/datum/emergency_call/em_call = new call_name + em_call.objective_info = info + em_call.activate(quiet_launch, announce_incoming) + return + + var/call_path = text2path(call_name) + if(ispath(call_path, /datum/emergency_call)) + var/datum/emergency_call/em_call = new call_path + em_call.objective_info = info + em_call.activate(quiet_launch, announce_incoming) + return + error("get_specific_call could not find emergency call '[call_name]'") return @@ -258,12 +275,15 @@ if(M.client) to_chat(M, SPAN_NOTICE("Distress beacon: [src.name] finalized.")) - var/obj/docking_port/mobile/shuttle = SSshuttle.getShuttle(shuttle_id) + if(shuttle_id && !override_spawn_loc) + if(!SSmapping.shuttle_templates[shuttle_id]) + message_admins("Distress beacon: [name] does not have a valid shuttle_id: [shuttle_id]") + CRASH("ert called with invalid shuttle_id") - if(!istype(shuttle)) - if(shuttle_id) //Cryo distress doesn't have a shuttle - message_admins("Warning: Distress shuttle not found.") - spawn_items() + var/datum/map_template/shuttle/new_shuttle = SSmapping.shuttle_templates[shuttle_id] + shuttle = SSshuttle.load_template_to_transit(new_shuttle) + shuttle.control_doors("force-lock", force = TRUE, external_only = TRUE) + shuttle.distress_beacon = src if(shuttle && auto_shuttle_launch) var/obj/structure/machinery/computer/shuttle/ert/comp = shuttle.getControlConsole() @@ -305,7 +325,17 @@ candidates = list() if(arrival_message && announce_incoming) - marine_announcement(arrival_message, "Intercepted Transmission:") + if(prob(chance_hidden)) + marine_announcement(static_message, "Intercepted Transmission:") + else + marine_announcement(arrival_message, "Intercepted Transmission:") + + for(var/datum/mind/spawned as anything in members) + if(ishuman(spawned.current)) + var/mob/living/carbon/human/spawned_human = spawned.current + var/obj/item/card/id/id = spawned_human.get_idcard() + if(id) + ADD_TRAIT(id, TRAIT_ERT_ID, src) /datum/emergency_call/proc/add_candidate(mob/M) if(!M.client || (M.mind && (M.mind in candidates)) || istype(M, /mob/living/carbon/xenomorph)) @@ -321,6 +351,23 @@ /datum/emergency_call/proc/get_spawn_point(is_for_items) var/landmark + + if(shuttle) + if(is_for_items) + landmark = SAFEPICK(shuttle.local_landmarks[item_spawn]) + else + landmark = SAFEPICK(shuttle.local_landmarks[name_of_spawn]) + + if(landmark) + return get_turf(landmark) + + var/list/valid_turfs = list() + for(var/turf/open/floor/valid_turf in shuttle.return_turfs()) + valid_turfs += valid_turf + + if(length(valid_turfs)) + return pick(valid_turfs) + if(is_for_items) landmark = SAFEPICK(GLOB.ert_spawns[item_spawn]) else diff --git a/code/datums/emergency_calls/ert_stations.dm b/code/datums/emergency_calls/ert_stations.dm new file mode 100644 index 000000000000..3e7874572365 --- /dev/null +++ b/code/datums/emergency_calls/ert_stations.dm @@ -0,0 +1,14 @@ +/datum/lazy_template/ert/clf_station + map_name = "clf_ert_station" + +/datum/lazy_template/ert/freelancer_station + map_name = "freelancer_ert_station" + +/datum/lazy_template/ert/twe_station + map_name = "twe_ert_station" + +/datum/lazy_template/ert/upp_station + map_name = "upp_ert_station" + +/datum/lazy_template/ert/weyland_station + map_name = "weyland_ert_station" diff --git a/code/datums/emergency_calls/forsaken_xenos.dm b/code/datums/emergency_calls/forsaken_xenos.dm index d089830658d9..1c876d4d4d44 100644 --- a/code/datums/emergency_calls/forsaken_xenos.dm +++ b/code/datums/emergency_calls/forsaken_xenos.dm @@ -3,6 +3,7 @@ mob_min = 1 mob_max = 4 hostility = TRUE + shuttle_id = "" name_of_spawn = /obj/effect/landmark/ert_spawns/groundside_xeno objectives = "You have been left behind to safeguard the abandoned colony. Do not allow trespassers." diff --git a/code/datums/emergency_calls/goons.dm b/code/datums/emergency_calls/goons.dm index 8a0b00968807..edd3d05d1441 100644 --- a/code/datums/emergency_calls/goons.dm +++ b/code/datums/emergency_calls/goons.dm @@ -2,6 +2,7 @@ name = "Weyland-Yutani Corporate Security (Squad)" mob_max = 6 probability = 0 + home_base = /datum/lazy_template/ert/weyland_station /datum/emergency_call/goon/New() ..() @@ -96,6 +97,45 @@ to_chat(backstory_human, SPAN_BOLD("You heard about the original distress signal ages ago, but you have only just gotten permission from corporate to enter the area.")) to_chat(backstory_human, SPAN_BOLD("Ensure no damage is incurred against Weyland-Yutani. Make sure the researcher is kept safe and follow their instructions.")) +/datum/emergency_call/goon/bodyguard + name = "Weyland-Yutani Goon (Executive Bodyguard Detail)" + mob_max = 1 + mob_min = 1 + +/datum/emergency_call/goon/bodyguard/New() + ..() + dispatch_message = "[MAIN_SHIP_NAME], this is a Weyland-Yutani Corporate Security Protection Detail shuttle inbound to the Liaison's Beacon." + objectives = "Protect the Corporate Liaison and follow his commands, unless it goes against Company policy. Do not damage Wey-Yu property." + +/datum/emergency_call/goon/bodyguard/create_member(datum/mind/M, 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) + M.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 + to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Security Lead!")) + arm_equipment(mob, /datum/equipment_preset/goon/lead, TRUE, TRUE) + else + to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Security Officer!")) + arm_equipment(mob, /datum/equipment_preset/goon/standard, TRUE, TRUE) + + print_backstory(mob) + + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), mob, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + +/datum/emergency_call/goon/bodyguard/print_backstory(mob/living/carbon/human/M) + to_chat(M, SPAN_BOLD("You were born [pick(75;"in Europe", 15;"in Asia", 10;"on Mars")] to a poor family.")) + to_chat(M, SPAN_BOLD("Joining the ranks of Weyland-Yutani was all you could do to keep yourself and your loved ones fed.")) + to_chat(M, SPAN_BOLD("You have no idea what a xenomorph is.")) + to_chat(M, SPAN_BOLD("You are a simple security officer employed by Weyland-Yutani to guard their Executives from all Divisions alike.")) + to_chat(M, SPAN_BOLD("You were sent to act as the Executives bodyguard on the [MAIN_SHIP_NAME], you have gotten permission from corporate to enter the area.")) + to_chat(M, SPAN_BOLD("Ensure no damage is incurred against Weyland-Yutani. Make sure the CL is safe.")) + /datum/emergency_call/goon/platoon name = "Weyland-Yutani Corporate Security (Platoon)" mob_min = 8 diff --git a/code/datums/emergency_calls/inspection.dm b/code/datums/emergency_calls/inspection.dm index f0400528ac31..031a9f210761 100644 --- a/code/datums/emergency_calls/inspection.dm +++ b/code/datums/emergency_calls/inspection.dm @@ -125,6 +125,7 @@ name = "Inspection - Corporate" mob_max = 2 mob_min = 1 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item probability = 0 @@ -164,6 +165,42 @@ new /obj/item/storage/box/handcuffs(drop_spawn) new /obj/item/storage/box/handcuffs(drop_spawn) +/datum/emergency_call/inspection_wy/lawyer + name = "Lawyers - Corporate" + mob_max = 2 + mob_min = 1 + name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc + item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item + probability = 0 + +/datum/emergency_call/inspection_wy/lawyer/New() + ..() + objectives = "Make sure the crew of the [MAIN_SHIP_NAME] is aware of your presence. Investigate who the Corporate Liaison reported for breaking their contract and any review other Company assets and make sure they remain loyal to the Company. Make a detailed report back to Corporate." + +/datum/emergency_call/inspection_wy/lawyer/create_member(datum/mind/M, turf/override_spawn_loc) + var/turf/T = override_spawn_loc ? override_spawn_loc : get_spawn_point() + + if(!istype(T)) + return FALSE + + var/mob/living/carbon/human/H = new(T) + M.transfer_to(H, TRUE) + + if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, list(JOB_SQUAD_LEADER), time_required_for_job)) + leader = H + arm_equipment(H, /datum/equipment_preset/wy/exec_supervisor/lawyer, TRUE, TRUE) + to_chat(H, SPAN_ROLE_HEADER("You are a Weyland-Yutani Lead Corporate Attorney!")) + to_chat(H, SPAN_ROLE_BODY("While officially the Corporate Affairs Division does mundane paperwork for Weyland-Yutani, in practice you serve as both official and unofficial investigators into conduct of Company and non-Company personnel. You are being dispatched to the [MAIN_SHIP_NAME] to make sure that the USCM abides by it's signed contracts provided by the local Liaison and that they have not forgotten the real hand that feeds them.")) + to_chat(H, SPAN_ROLE_BODY("Remember the USCM personnel on the ship may not appreciate your presence there. Should the Liaison be in jail, you are to act as legal counsel in any way. Your basic duty is to make a detailed report of anything involving the Liaison, any other WY personnel and of course any contract violations on board the ship.")) + to_chat(H, SPAN_WARNING("You are to avoid open conflict with the Marines. Retreat and make a report if they are outright hostile. Ahelp if you have any more questions or wish to release this character for other players.")) + else + arm_equipment(H, /datum/equipment_preset/wy/exec_spec/lawyer, TRUE, TRUE) + to_chat(H, SPAN_ROLE_HEADER("You are a Weyland-Yutani Corporate Attorney!")) + to_chat(H, SPAN_ROLE_BODY("While officially the Corporate Affairs Division does mundane paperwork for Weyland-Yutani, in practice you serve as both official and unofficial investigators into conduct of Company and non-Company personnel. The Lead Attorney is in charge, your duty is to provide counsel and any other form of assistance you can render to make sure your mission is a success.")) + to_chat(H, SPAN_ROLE_BODY("Remember that the USCM, or at least some parts of it, may be hostile towards your presence on the ship. You and the Lead Attorney are to avoid open conflict with the Marines. Your main priority is making sure that you both survive to write the report the Company is due.")) + to_chat(H, SPAN_WARNING("You are to avoid open conflict with the Marines. Retreat and make a report if they are outright hostile. Ahelp if you have any more questions or wish to release this character for other players.")) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) + // Colonial Marshals - UA Law Enforcement / Investigative Federal Agents which usually watch over Colonies. Also a good option for prisoner transfers, investigating corporate corruption, survivor rescues, or illict trade practices(black market). /datum/emergency_call/inspection_cmb @@ -171,6 +208,7 @@ mob_max = 4 mob_min = 1 probability = 0 + home_base = /datum/lazy_template/ert/weyland_station var/max_synths = 1 var/synths = 0 @@ -268,7 +306,7 @@ name = "Inspection - Colonial Marshals Ledger Investigation Team" mob_max = 3 //Marshal, Deputy, ICC CL mob_min = 2 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 max_synths = 0 will_spawn_icc_liaison = TRUE diff --git a/code/datums/emergency_calls/pizza.dm b/code/datums/emergency_calls/pizza.dm index a35ce584c68d..a2c312887dc9 100644 --- a/code/datums/emergency_calls/pizza.dm +++ b/code/datums/emergency_calls/pizza.dm @@ -6,9 +6,9 @@ mob_min = 1 arrival_message = "'That'll be... sixteen orders of cheesy fries, eight large double topping pizzas, nine bottles of Four Loko... hello? Is anyone on this ship? Your pizzas are getting cold.'" objectives = "Make sure you get a tip!" - shuttle_id = "Distress_Small" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pizza - probability = 0 + probability = 1 /datum/emergency_call/pizza/create_member(datum/mind/M, turf/override_spawn_loc) var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() @@ -32,7 +32,7 @@ name = "Pizza Delivery (Cryo)" probability = 0 name_of_spawn = /obj/effect/landmark/ert_spawns/distress_cryo - shuttle_id = "" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL /obj/effect/landmark/ert_spawns/distress_pizza name = "Distress_Pizza" diff --git a/code/datums/emergency_calls/pmc.dm b/code/datums/emergency_calls/pmc.dm index 2f43e94828d6..06a51c9869eb 100644 --- a/code/datums/emergency_calls/pmc.dm +++ b/code/datums/emergency_calls/pmc.dm @@ -4,7 +4,8 @@ name = "Weyland-Yutani PMC (Squad)" mob_max = 6 probability = 20 - shuttle_id = "Distress_PMC" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 + home_base = /datum/lazy_template/ert/weyland_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc item_spawn = /obj/effect/landmark/ert_spawns/distress_pmc/item diff --git a/code/datums/emergency_calls/royal_marines.dm b/code/datums/emergency_calls/royal_marines.dm index 21f79e7c3026..a614d5a0c1c7 100644 --- a/code/datums/emergency_calls/royal_marines.dm +++ b/code/datums/emergency_calls/royal_marines.dm @@ -2,6 +2,8 @@ name = "Royal Marines Commando (Squad) (Friendly)" mob_max = 7 probability = 15 + home_base = /datum/lazy_template/ert/twe_station + shuttle_id = MOBILE_SHUTTLE_ID_ERT4 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/upp.dm b/code/datums/emergency_calls/upp.dm index d68171981355..cb5db1f0e3b9 100644 --- a/code/datums/emergency_calls/upp.dm +++ b/code/datums/emergency_calls/upp.dm @@ -5,7 +5,8 @@ name = "UPP Naval Infantry (Squad)" mob_max = 9 probability = 20 - shuttle_id = "Distress_UPP" + shuttle_id = MOBILE_SHUTTLE_ID_ERT3 + home_base = /datum/lazy_template/ert/upp_station name_of_spawn = /obj/effect/landmark/ert_spawns/distress_upp item_spawn = /obj/effect/landmark/ert_spawns/distress_upp/item //1 leader, 1 engineer, 2 medics, 1 specialist, 5 soldiers @@ -99,18 +100,20 @@ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), H, SPAN_BOLD("Objectives: [objectives]")), 1 SECONDS) -/datum/emergency_call/upp/hostile +/datum/emergency_call/upp/hostile //if admins want to specifically call in friendly ones name = "UPP Naval Infantry (Squad) (Hostile)" hostility = TRUE + probability = 0 /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 +/datum/emergency_call/upp/friendly //ditto name = "UPP Naval Infantry (Squad) (Friendly)" hostility = FALSE + probability = 0 /datum/emergency_call/upp/friendly/New() ..() diff --git a/code/datums/emergency_calls/upp_commando.dm b/code/datums/emergency_calls/upp_commando.dm index 1bc2b59ba08c..53f117c26127 100644 --- a/code/datums/emergency_calls/upp_commando.dm +++ b/code/datums/emergency_calls/upp_commando.dm @@ -5,7 +5,7 @@ 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." - shuttle_id = "Distress_UPP" + shuttle_id = MOBILE_SHUTTLE_ID_ERT3 name_of_spawn = /obj/effect/landmark/ert_spawns/distress_upp item_spawn = /obj/effect/landmark/ert_spawns/distress_upp/item hostility = TRUE diff --git a/code/datums/entities/player.dm b/code/datums/entities/player.dm index 2973a174858f..f30c01b3128b 100644 --- a/code/datums/entities/player.dm +++ b/code/datums/entities/player.dm @@ -29,6 +29,9 @@ var/stickyban_whitelisted = FALSE + var/byond_account_age + var/first_join_date + // UNTRACKED FIELDS var/name // Used for NanoUI statistics menu @@ -78,6 +81,8 @@ BSQL_PROTECT_DATUM(/datum/entity/player) "migrated_bans" = DB_FIELDTYPE_INT, "migrated_jobbans" = DB_FIELDTYPE_INT, "stickyban_whitelisted" = DB_FIELDTYPE_INT, + "byond_account_age" = DB_FIELDTYPE_STRING_MEDIUM, + "first_join_date" = DB_FIELDTYPE_STRING_MEDIUM, ) // NOTE: good example of database operations using NDatabase, so it is well commented @@ -305,6 +310,36 @@ BSQL_PROTECT_DATUM(/datum/entity/player) return TRUE +/// Permanently bans this user, with the provided reason. The banner ([/datum/entity/player]) argument is optional, as this can be done without admin intervention. +/datum/entity/player/proc/add_perma_ban(reason, internal_reason, datum/entity/player/banner) + if(is_permabanned) + return FALSE + + is_permabanned = TRUE + permaban_date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" + permaban_reason = reason + + if(banner) + permaban_admin_id = banner.id + message_admins("[key_name_admin(banner.owning_client)] has permanently banned [ckey] for '[reason]'.") + var/datum/tgs_chat_embed/field/reason_embed + if(internal_reason) + reason_embed = new("Permaban Reason", internal_reason) + important_message_external("[banner.owning_client] has permanently banned [ckey] for '[reason]'.", "Permaban Placed", reason_embed ? list(reason_embed) : null) + + add_note("Permanently banned | [reason]", FALSE, NOTE_ADMIN, TRUE) + if(internal_reason) + add_note("Internal reason: [internal_reason]", TRUE, NOTE_ADMIN) + + if(owning_client) + to_chat_forced(owning_client, SPAN_LARGE("You have been permanently banned by [banner.ckey].\nReason: [reason].")) + to_chat_forced(owning_client, SPAN_LARGE("This is a permanent ban. It will not be removed.")) + QDEL_NULL(owning_client) + + save() + + return TRUE + /datum/entity/player/proc/auto_unban() if(!is_time_banned) return @@ -419,6 +454,31 @@ BSQL_PROTECT_DATUM(/datum/entity/player) for(var/datum/entity/player_stat/S as anything in _stat) LAZYSET(stats, S.stat_id, S) +/datum/entity/player/proc/load_byond_account_age() + var/datum/http_request/request = new() + request.prepare(RUSTG_HTTP_METHOD_GET, "https://www.byond.com/members/[ckey]?format=text") + request.execute_blocking() + var/datum/http_response/response = request.into_response() + if(response.errored) + return + + var/static/regex/regex = regex("joined = \"(\\d{4}-\\d{2}-\\d{2})\"") + if(!regex.Find(response.body)) + return + + byond_account_age = regex.group[1] + +/datum/entity/player/proc/find_first_join_date() + var/list/triplets = search_login_triplet_by_ckey(ckey) + + if(!length(triplets)) + first_join_date = "UNKNOWN" + return + + var/datum/view_record/login_triplet/first_triplet = triplets[1] + first_join_date = first_triplet.login_date + + /proc/get_player_from_key(key) var/safe_key = ckey(key) if(!safe_key) @@ -440,61 +500,58 @@ BSQL_PROTECT_DATUM(/datum/entity/player) error("ALARM: MISMATCH. Loaded player data for client [ckey], player data ckey is [player.ckey], id: [player.id]") player_data = player player_data.owning_client = src + if(!player_data.last_login) + player_data.first_join_date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" + if(!player_data.first_join_date) + player_data.find_first_join_date() player_data.last_login = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" player_data.last_known_ip = address player_data.last_known_cid = computer_id + if(!player_data.byond_account_age) + player_data.load_byond_account_age() player_data.save() record_login_triplet(player.ckey, address, computer_id) player_data.sync() -/datum/entity/player/proc/check_ban(computer_id, address) +/datum/entity/player/proc/check_ban(computer_id, address, is_telemetry) . = list() - var/list/linked_bans = check_for_sticky_ban(address, computer_id) - if(islist(linked_bans)) - var/datum/view_record/stickyban_list_view/SLW = LAZYACCESS(linked_bans, 1) - if(SLW) - var/reason = "" - - if(SLW.address == address) - reason += "IP Address Matches; " - if(SLW.computer_id == computer_id) - reason += "CID Matches; " - if(SLW.ckey == ckey) - reason += "Ckey Matches; " - - var/source_id = SLW.linked_stickyban - var/source_reason = SLW.linked_reason - var/source_ckey = SLW.linked_ckey - if(!source_id) - source_id = "[SLW.entry_id]" - source_reason = SLW.reason - source_ckey = SLW.ckey - - log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Stickybanned (Linked to [source_ckey]; Reason: [source_reason])") - message_admins("Failed Login: [ckey] (IP: [last_known_ip], CID: [last_known_cid]) - Stickybanned (Linked to ckey [source_ckey]; Reason: [source_reason])") - - DB_FILTER(/datum/entity/player_sticky_ban, - DB_AND( - DB_COMP("ckey", DB_EQUALS, ckey), - DB_COMP("address", DB_EQUALS, address), - DB_COMP("computer_id", DB_EQUALS, computer_id) - ), CALLBACK(src, PROC_REF(process_stickyban), address, computer_id, source_id, reason, null)) - - .["desc"] = "\nReason: Stickybanned\nExpires: PERMANENT" - .["reason"] = "ckey/id" - return . + var/list/datum/view_record/stickyban/all_stickies = SSstickyban.check_for_sticky_ban(ckey, address, computer_id) + + if(length(all_stickies)) + var/datum/view_record/stickyban/sticky = all_stickies[1] + + if(!is_telemetry) + log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Stickybanned (Reason: [sticky.reason])") + message_admins("Failed Login: [ckey] (IP: [last_known_ip], CID: [last_known_cid]) - Stickybanned (Reason: [sticky.reason])") + + var/appeal + if(CONFIG_GET(string/banappeals)) + appeal = "\nFor more information on your ban, or to appeal, head to [CONFIG_GET(string/banappeals)]" + + .["desc"] = "\nReason: Stickybanned - [sticky.message] Identifier: [sticky.identifier]\n[appeal]" + .["reason"] = "ckey/id" + + if(!is_telemetry) + SSstickyban.match_sticky(sticky.id, ckey, address, computer_id) + return + if(!is_time_banned && !is_permabanned) return null + var/appeal if(CONFIG_GET(string/banappeals)) appeal = "\nFor more information on your ban, or to appeal, head to [CONFIG_GET(string/banappeals)]" if(is_permabanned) - permaban_admin.sync() - log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [permaban_reason]") - message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [permaban_reason]") - .["desc"] = "\nReason: [permaban_reason]\nExpires: PERMANENT\nBy: [permaban_admin.ckey][appeal]" + var/banner = "Host" + if(permaban_admin_id) + var/datum/view_record/players/banning_admin = locate() in DB_VIEW(/datum/view_record/players, DB_COMP("id", DB_EQUALS, permaban_admin_id)) + banner = banning_admin.ckey + if(!is_telemetry) + log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [permaban_reason]") + message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [permaban_reason]") + .["desc"] = "\nReason: [permaban_reason]\nExpires: PERMANENT\nBy: [banner][appeal]" .["reason"] = "ckey/id" return . if(is_time_banned) @@ -509,8 +566,9 @@ BSQL_PROTECT_DATUM(/datum/entity/player) timeleftstring = "[round(time_left / 60, 0.1)] Hours" else timeleftstring = "[time_left] Minutes" - log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [time_ban_reason]") - message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [time_ban_reason]") + if(!is_telemetry) + log_access("Failed Login: [ckey] [last_known_cid] [last_known_ip] - Banned [time_ban_reason]") + message_admins("Failed Login: [ckey] id:[last_known_cid] ip:[last_known_ip] - Banned [time_ban_reason]") .["desc"] = "\nReason: [time_ban_reason]\nExpires: [timeleftstring]\nBy: [time_ban_admin.ckey][appeal]" .["reason"] = "ckey/id" return . @@ -681,7 +739,6 @@ BSQL_PROTECT_DATUM(/datum/entity/player) parent_entity = /datum/entity/player child_entity = /datum/entity/player child_field = "permaban_admin_id" - parent_name = "permabanning_admin" /datum/view_record/players diff --git a/code/datums/entities/player_sticky_ban.dm b/code/datums/entities/player_sticky_ban.dm index d79befddb04e..752334e8e001 100644 --- a/code/datums/entities/player_sticky_ban.dm +++ b/code/datums/entities/player_sticky_ban.dm @@ -1,94 +1,133 @@ -/datum/entity/player_sticky_ban - var/player_id - var/admin_id +BSQL_PROTECT_DATUM(/datum/entity/stickyban) + +/datum/entity/stickyban + var/identifier var/reason + var/message var/date - var/ckey - var/address - var/computer_id - - var/linked_stickyban - -BSQL_PROTECT_DATUM(/datum/entity/player_sticky_ban) + var/active = TRUE + var/adminid -/datum/entity_meta/player_sticky_ban - entity_type = /datum/entity/player_sticky_ban - table_name = "player_sticky_bans" +/datum/entity_meta/stickyban + entity_type = /datum/entity/stickyban + table_name = "stickyban" field_types = list( - "player_id"=DB_FIELDTYPE_BIGINT, - "admin_id"=DB_FIELDTYPE_BIGINT, - "reason"=DB_FIELDTYPE_STRING_MAX, - "date"=DB_FIELDTYPE_STRING_LARGE, - "address"=DB_FIELDTYPE_STRING_LARGE, - "ckey" = DB_FIELDTYPE_STRING_LARGE, - "computer_id"=DB_FIELDTYPE_STRING_LARGE, - "linked_stickyban"=DB_FIELDTYPE_BIGINT, + "identifier" = DB_FIELDTYPE_STRING_LARGE, + "reason" = DB_FIELDTYPE_STRING_LARGE, + "message" = DB_FIELDTYPE_STRING_LARGE, + "date" = DB_FIELDTYPE_STRING_LARGE, + "active" = DB_FIELDTYPE_INT, + "adminid" = DB_FIELDTYPE_BIGINT, ) +/datum/view_record/stickyban + var/id + var/identifier + var/reason + var/message + var/date + var/active + var/admin -/datum/entity_link/linked_sticky_bans - parent_entity = /datum/entity/player_sticky_ban - child_entity = /datum/entity/player_sticky_ban - child_field = "linked_stickyban" - - parent_name = "linked_ban" - child_name = "linked_bans" - -/datum/entity_link/player_to_player_sticky_bans - parent_entity = /datum/entity/player - child_entity = /datum/entity/player_sticky_ban - child_field = "player_id" - - parent_name = "player" - child_name = "stickybans" +/datum/entity_view_meta/stickyban + root_record_type = /datum/entity/stickyban + destination_entity = /datum/view_record/stickyban + fields = list( + "id", + "identifier", + "reason", + "message", + "date", + "active", + "admin" = DB_CASE(DB_COMP("adminid", DB_ISNOT), "stickybanning_admin.ckey", DB_CONST("AdminBot")) + ) -/datum/entity_link/admin_to_player_sticky_bans +/datum/entity_link/stickyban_to_banning_admin parent_entity = /datum/entity/player - child_entity = /datum/entity/player_sticky_ban - child_field = "admin_id" + child_entity = /datum/entity/stickyban + child_field = "adminid" + parent_name = "stickybanning_admin" - parent_name = "admin" +/datum/entity/stickyban_matched_ckey + var/ckey + var/linked_stickyban + var/whitelisted = FALSE -/datum/view_record/stickyban_list_view - var/entry_id - var/player_id - var/admin_id +/datum/entity_meta/stickyban_matched_ckey + entity_type = /datum/entity/stickyban_matched_ckey + table_name = "stickyban_matched_ckey" + field_types = list( + "ckey" = DB_FIELDTYPE_STRING_LARGE, + "linked_stickyban" = DB_FIELDTYPE_BIGINT, + "whitelisted" = DB_FIELDTYPE_INT, + ) - var/reason - var/date - var/address - var/computer_id +/datum/view_record/stickyban_matched_ckey + var/id var/ckey + var/linked_stickyban var/whitelisted +/datum/entity_view_meta/stickyban_matched_ckey + root_record_type = /datum/entity/stickyban_matched_ckey + destination_entity = /datum/view_record/stickyban_matched_ckey + fields = list( + "id", + "ckey", + "linked_stickyban", + "whitelisted", + ) + + +/datum/entity/stickyban_matched_cid + var/cid var/linked_stickyban - var/linked_ckey - var/linked_reason - var/admin_ckey - var/linked_admin_ckey +/datum/entity_meta/stickyban_matched_cid + entity_type = /datum/entity/stickyban_matched_cid + table_name = "stickyban_matched_cid" + field_types = list( + "cid" = DB_FIELDTYPE_STRING_LARGE, + "linked_stickyban" = DB_FIELDTYPE_BIGINT, + ) +/datum/view_record/stickyban_matched_cid + var/id + var/cid + var/linked_stickyban -/datum/entity_view_meta/stickyban_list_view - root_record_type = /datum/entity/player_sticky_ban - destination_entity = /datum/view_record/stickyban_list_view +/datum/entity_view_meta/stickyban_matched_cid + root_record_type = /datum/entity/stickyban_matched_cid + destination_entity = /datum/view_record/stickyban_matched_cid fields = list( - "entry_id" = "id", - "player_id", - "admin_id", + "id", + "cid", + "linked_stickyban", + ) - "reason", - "date", - "address", - "computer_id", - "ckey" = "player.ckey", - "whitelisted" = "player.stickyban_whitelisted", - "linked_stickyban", - "linked_ckey" = "linked_ban.player.ckey", - "linked_reason" = "linked_ban.reason", +/datum/entity/stickyban_matched_ip + var/ip + var/linked_stickyban - "admin_ckey" = "admin.ckey", - "linked_admin_ckey" = "linked_ban.admin.ckey" +/datum/entity_meta/stickyban_matched_ip + entity_type = /datum/entity/stickyban_matched_ip + table_name = "stickyban_matched_ip" + field_types = list( + "ip" = DB_FIELDTYPE_STRING_LARGE, + "linked_stickyban" = DB_FIELDTYPE_BIGINT, + ) + +/datum/view_record/stickyban_matched_ip + var/id + var/ip + var/linked_stickyban + +/datum/entity_view_meta/stickyban_matched_ip + root_record_type = /datum/entity/stickyban_matched_ip + destination_entity = /datum/view_record/stickyban_matched_ip + fields = list( + "id", + "ip", + "linked_stickyban", ) - order_by = list("entry_id" = DB_ORDER_BY_DESC) diff --git a/code/datums/keybinding/xenomorph.dm b/code/datums/keybinding/xenomorph.dm index cef04d01a75c..64acd876b49f 100644 --- a/code/datums/keybinding/xenomorph.dm +++ b/code/datums/keybinding/xenomorph.dm @@ -189,21 +189,9 @@ . = ..() if(.) return - - var/mob/living/carbon/xenomorph/current_xeno = user?.mob - - if(!current_xeno?.hive) - 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. We are alone.")) - return - - if(current_xeno.interference) - 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) + var/mob/living/carbon/xenomorph/xeno = user.mob + xeno.hive_status() + return TRUE /datum/keybinding/xenomorph/hide hotkey_keys = list("Unbound") @@ -218,3 +206,18 @@ name = "evolve" full_name = "Evolve" keybind_signal = COMSIG_KB_XENO_EVOLVE + +/datum/keybinding/xenomorph/purchase_strain + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "purchase_strain" + full_name = "Purchase Strain" + keybind_signal = COMSIG_KB_XENO_PURCHASE_STRAIN + +/datum/keybinding/xenomorph/purchase_strain/down(client/user) + . = ..() + if(.) + return + + var/mob/living/carbon/xenomorph/current_xeno = user?.mob + current_xeno.purchase_strain() diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm new file mode 100644 index 000000000000..03715cbd80b8 --- /dev/null +++ b/code/datums/lazy_template.dm @@ -0,0 +1,98 @@ + +/** + * Datum used to designate certain areas that do not need to exist nor be loaded at world start + * but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled. + */ +/datum/lazy_template + var/list/datum/turf_reservation/reservations = list() + + /// If this is true each load will increment an index keyed to the type and it will load [map_name]_[index] + var/uses_multiple_allocations = FALSE + + /// Directory of maps to prefix to the filename + var/map_dir = "maps/templates/lazy_templates" + + /// The filename (without extension) of the map to load + var/map_name + +/datum/lazy_template/New() + reservations = list() + ..() + +/datum/lazy_template/Destroy(force) + if(!force) + stack_trace("Something is trying to delete [type]") + return QDEL_HINT_LETMELIVE + + QDEL_LIST(reservations) + GLOB.lazy_templates -= type + return ..() + +/** + * Does the grunt work of loading the template. + */ +/datum/lazy_template/proc/lazy_load() + RETURN_TYPE(/datum/turf_reservation) + // This is a static assosciative list that is used to ensure maps that have variations are correctly varied when spawned + // I want to make it to where you can make a range and it'll randomly pick'n'take from the available versions at random + // But that can be done later when I have the time + var/static/list/multiple_allocation_hash = list() + + var/load_path = "[map_dir]/[map_name].dmm" + if(uses_multiple_allocations) + var/times = multiple_allocation_hash[type] || 0 + times += 1 + multiple_allocation_hash[type] = times + load_path = "[map_dir]/[map_name]_[times].dmm" + + if(!load_path || !fexists(load_path)) + CRASH("lazy template [type] has an invalid load_path: '[load_path]', check directory and map name!") + + var/datum/parsed_map/parsed_template = load_map( + file(load_path), + measure_only = TRUE, + ) + if(isnull(parsed_template.parsed_bounds)) + CRASH("Failed to cache lazy template for loading: '[type]'") + + var/width = parsed_template.parsed_bounds[MAP_MAXX] - parsed_template.parsed_bounds[MAP_MINX] + 1 + var/height = parsed_template.parsed_bounds[MAP_MAXY] - parsed_template.parsed_bounds[MAP_MINY] + 1 + var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation( + width, + height, + parsed_template.parsed_bounds[MAP_MAXZ], + ) + if(!reservation) + CRASH("Failed to reserve a block for lazy template: '[type]'") + + // lists kept for overall loading + var/list/loaded_atom_movables = list() + var/list/loaded_turfs = list() + var/list/loaded_areas = list() + + for(var/z_idx in parsed_template.parsed_bounds[MAP_MAXZ] to 1 step -1) + var/turf/bottom_left = reservation.bottom_left_turfs[z_idx] + var/turf/top_right = reservation.top_right_turfs[z_idx] + + load_map( + file(load_path), + bottom_left.x, + bottom_left.y, + bottom_left.z, + z_upper = z_idx, + z_lower = z_idx, + ) + for(var/turf/turf as anything in block(bottom_left, top_right)) + loaded_turfs += turf + loaded_areas |= get_area(turf) + + // atoms can actually be in the contents of two or more turfs based on its icon/bound size + // see https://www.byond.com/docs/ref/index.html#/atom/var/contents + for(var/thing in (turf.get_all_contents() - turf)) + loaded_atom_movables |= thing + + SSatoms.InitializeAtoms(loaded_areas + loaded_atom_movables + loaded_turfs) + + SEND_SIGNAL(src, COMSIG_LAZY_TEMPLATE_LOADED, loaded_atom_movables, loaded_turfs, loaded_areas) + reservations += reservation + return reservation diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm index 778ec2b75a36..b7b5544777b3 100644 --- a/code/datums/mob_hud.dm +++ b/code/datums/mob_hud.dm @@ -10,7 +10,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( MOB_HUD_XENO_INFECTION = new /datum/mob_hud/xeno_infection(), MOB_HUD_XENO_STATUS = new /datum/mob_hud/xeno(), MOB_HUD_XENO_HOSTILE = new /datum/mob_hud/xeno_hostile(), - MOB_HUD_FACTION_USCM = new /datum/mob_hud/faction(), + MOB_HUD_FACTION_MARINE = new /datum/mob_hud/faction(), MOB_HUD_FACTION_OBSERVER = new /datum/mob_hud/faction/observer(), MOB_HUD_FACTION_UPP = new /datum/mob_hud/faction/upp(), MOB_HUD_FACTION_WY = new /datum/mob_hud/faction/wy(), diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 98bcf296755b..0eba86add45d 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -62,43 +62,30 @@ locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ])) for(var/i in 1 to turfs.len) var/turf/place = turfs[i] + + // ================== CM Change ================== + // We perform atom initialization of the docking_ports BEFORE skipping space, + // because our lifeboats have their corners as object props and still + // reside on space turfs. Notably the bottom left corner, which also contains + // the docking port. + + for(var/obj/docking_port/mobile/port in place) + SSatoms.InitializeAtoms(list(port)) + if(register) + port.register() + if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination. continue if(length(place.baseturfs) < 2) // Some snowflake shuttle shit continue place.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle) - - for(var/obj/docking_port/mobile/port in place) - if(register) - port.register() - if(isnull(port_x_offset)) - continue - switch(port.dir) // Yeah this looks a little ugly but mappers had to do this in their head before - if(NORTH) - port.width = width - port.height = height - port.dwidth = port_x_offset - 1 - port.dheight = port_y_offset - 1 - if(EAST) - port.width = height - port.height = width - port.dwidth = height - port_y_offset - port.dheight = port_x_offset - 1 - if(SOUTH) - port.width = width - port.height = height - port.dwidth = width - port_x_offset - port.dheight = height - port_y_offset - if(WEST) - port.width = height - port.height = width - port.dwidth = port_y_offset - 1 - port.dheight = width - port_x_offset + // =============== END CM Change ================= //Whatever special stuff you want -/datum/map_template/shuttle/proc/post_load(obj/docking_port/mobile/M) +/datum/map_template/shuttle/post_load(obj/docking_port/mobile/M) if(movement_force) M.movement_force = movement_force.Copy() + M.linkup() /datum/map_template/shuttle/vehicle @@ -115,3 +102,9 @@ /datum/map_template/shuttle/trijent_elevator/B elevator_network = "B" + +/datum/map_template/shuttle/trijent_elevator/post_load(obj/docking_port/mobile/M) + . = ..() + var/obj/docking_port/mobile/trijent_elevator/elev = M + elev.elevator_network = elevator_network + log_debug("Adding network [elevator_network] to [M.id]") diff --git a/code/datums/supply_packs/ammo.dm b/code/datums/supply_packs/ammo.dm index 326ca075a343..0929f24f7c95 100644 --- a/code/datums/supply_packs/ammo.dm +++ b/code/datums/supply_packs/ammo.dm @@ -346,15 +346,15 @@ //------------------------Sentries Ammo---------------- -/datum/supply_packs/ammo_sentry - name = "UA 571-C sentry ammunition (x2)" +/datum/supply_packs/ammo_sentry_shotgun + name = "UA 12-G sentry shotgun ammunition (x2)" contains = list( - /obj/item/ammo_magazine/sentry, - /obj/item/ammo_magazine/sentry, + /obj/item/ammo_magazine/sentry/shotgun, + /obj/item/ammo_magazine/sentry/shotgun, ) cost = 40 containertype = /obj/structure/closet/crate/ammo - containername = "\improper sentry ammo crate" + containername = "\improper sentry shotgun ammo crate" group = "Ammo" /datum/supply_packs/ammo_sentry_flamer @@ -368,15 +368,37 @@ containername = "\improper sentry flamer ammo crate" group = "Ammo" -/datum/supply_packs/ammo_sentry_shotgun - name = "UA 12-G sentry shotgun ammunition (x2)" +/datum/supply_packs/ammo_mini_sentry_flamer + name = "UA 45-F mini sentry flamer ammunition (x2)" contains = list( - /obj/item/ammo_magazine/sentry/shotgun, - /obj/item/ammo_magazine/sentry/shotgun, + /obj/item/ammo_magazine/sentry_flamer/mini, + /obj/item/ammo_magazine/sentry_flamer/mini, ) cost = 40 containertype = /obj/structure/closet/crate/ammo - containername = "\improper sentry shotgun ammo crate" + containername = "\improper mini sentry flamer ammo crate" + group = "Ammo" + +/datum/supply_packs/ammo_glob_sentry_flamer + name = "UA 60-FP sentry plasma incinerator tank (x2)" + contains = list( + /obj/item/ammo_magazine/sentry_flamer/glob, + /obj/item/ammo_magazine/sentry_flamer/glob, + ) + cost = 40 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper sentry plasma incinerator ammo crate" + group = "Ammo" + +/datum/supply_packs/ammo_sentry + name = "UA 571-C sentry ammunition (x2)" + contains = list( + /obj/item/ammo_magazine/sentry, + /obj/item/ammo_magazine/sentry, + ) + cost = 40 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper sentry ammo crate" group = "Ammo" //------------------------M240 flamer tanks---------------- @@ -419,6 +441,28 @@ containertype = /obj/structure/closet/crate/ammo/alt/flame group = "Ammo" +//------------------------Mounted guns ammo---------------- +/datum/supply_packs/ammo_m2c + name = "M2C ammunition crate (x2)" + contains = list( + /obj/item/ammo_magazine/m2c, + /obj/item/ammo_magazine/m2c, + ) + cost = 25 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper m2c ammunition crate" + group = "Ammo" + +/datum/supply_packs/ammo_m56d + name = "M56D drum magazine crate (x1)" + contains = list( + /obj/item/ammo_magazine/m56d, + ) + cost = 25 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper m56d drum magazine crate" + group = "Ammo" + //This crate has a little bit of everything, mostly okay stuff, but it does have some really unique picks. /datum/supply_packs/ammo_surplus name = "Surplus ammo crate (various USCM magazines x10)" diff --git a/code/datums/supply_packs/spec_ammo.dm b/code/datums/supply_packs/spec_ammo.dm index e20a5de865a3..f0eb5ab9cea2 100644 --- a/code/datums/supply_packs/spec_ammo.dm +++ b/code/datums/supply_packs/spec_ammo.dm @@ -157,13 +157,11 @@ group = "Weapons Specialist Ammo" /datum/supply_packs/ammo_scout_incendiary - name = "M4RA Scout Incendiary Magazine Crate (x5)" + name = "M4RA Scout Incendiary Magazine Crate (x3)" contains = list( /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, - /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, - /obj/item/ammo_magazine/rifle/m4ra/custom/incendiary, ) cost = 30 containertype = /obj/structure/closet/crate/ammo @@ -171,13 +169,11 @@ group = "Weapons Specialist Ammo" /datum/supply_packs/ammo_scout_impact - name = "M4RA Scout Impact Magazine Crate (x5)" + name = "M4RA Scout Impact Magazine Crate (x3)" contains = list( /obj/item/ammo_magazine/rifle/m4ra/custom/impact, /obj/item/ammo_magazine/rifle/m4ra/custom/impact, /obj/item/ammo_magazine/rifle/m4ra/custom/impact, - /obj/item/ammo_magazine/rifle/m4ra/custom/impact, - /obj/item/ammo_magazine/rifle/m4ra/custom/impact, ) cost = 30 containertype = /obj/structure/closet/crate/ammo diff --git a/code/datums/tutorial/_tutorial.dm b/code/datums/tutorial/_tutorial.dm index 5423453bbdb9..f6e70e33cdd9 100644 --- a/code/datums/tutorial/_tutorial.dm +++ b/code/datums/tutorial/_tutorial.dm @@ -50,11 +50,12 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) tutorial_mob = starting_mob - reservation = SSmapping.RequestBlockReservation(initial(tutorial_template.width), initial(tutorial_template.height)) + reservation = SSmapping.request_turf_block_reservation(initial(tutorial_template.width), initial(tutorial_template.height), 1) if(!reservation) + abort_tutorial() 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/turf/bottom_left_corner_reservation = reservation.bottom_left_turfs[1] 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 @@ -97,11 +98,7 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) /// 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], - ) + var/turf/true_bottom_left_corner = reservation.bottom_left_turfs[1] // 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, diff --git a/code/datums/tutorial/_tutorial_menu.dm b/code/datums/tutorial/_tutorial_menu.dm index 42eb3f6aabfa..3c7a28e77b92 100644 --- a/code/datums/tutorial/_tutorial_menu.dm +++ b/code/datums/tutorial/_tutorial_menu.dm @@ -71,7 +71,7 @@ path = text2path(params["tutorial_path"]) - if(!path || !isnewplayer(usr)) + if(!ispath(path, /datum/tutorial) || !isnewplayer(usr)) return if(HAS_TRAIT(usr, TRAIT_IN_TUTORIAL) || istype(get_area(usr), /area/misc/tutorial)) @@ -79,5 +79,6 @@ return path = new path - path.start_tutorial(usr) - return TRUE + if(path.start_tutorial(usr)) + ui.close() + return TRUE diff --git a/code/datums/tutorial/xenomorph/_xenomorph.dm b/code/datums/tutorial/xenomorph/_xenomorph.dm index bd85cdb35f44..caa33d8eed43 100644 --- a/code/datums/tutorial/xenomorph/_xenomorph.dm +++ b/code/datums/tutorial/xenomorph/_xenomorph.dm @@ -22,6 +22,10 @@ // We don't want people talking to other xenomorphs across tutorials new_character.can_hivemind_speak = FALSE + // No age prefix or HUD element + new_character.age = XENO_NO_AGE + new_character.show_age_prefix = FALSE + new_character.generate_name() tutorial_mob = new_character xeno = new_character diff --git a/code/datums/tutorial/xenomorph/xenomorph_basic.dm b/code/datums/tutorial/xenomorph/xenomorph_basic.dm index 0415977835aa..965f7b55d3c0 100644 --- a/code/datums/tutorial/xenomorph/xenomorph_basic.dm +++ b/code/datums/tutorial/xenomorph/xenomorph_basic.dm @@ -4,6 +4,7 @@ name = "Xenomorph - Basic" desc = "A tutorial to get you acquainted with the very basics of how to play a xenomorph." icon_state = "xeno" + tutorial_id = "xeno_basic_1" tutorial_template = /datum/map_template/tutorial/s12x12 starting_xenomorph_type = /mob/living/carbon/xenomorph/drone @@ -20,6 +21,7 @@ xeno.plasma_max = 0 xeno.melee_damage_lower = 40 xeno.melee_damage_upper = 40 + xeno.lock_evolve = TRUE message_to_player("Welcome to the Xenomorph basic tutorial. You are [xeno.name], a drone, the workhorse of the hive.") @@ -105,7 +107,7 @@ UnregisterSignal(human_dummy, COMSIG_MOB_DEATH) message_to_player("Well done. Killing humans is one of many ways to help the hive.") - message_to_player("Another way is to capture them. This will grow a new xenomorph inside them which will eventually burst into a new playable xenomorph!") + message_to_player("Another way is to capture them. This will grow a new xenomorph inside them which will eventually burst into a new playable xenomorph!") addtimer(CALLBACK(human_dummy, TYPE_PROC_REF(/mob/living, rejuvenate)), 8 SECONDS) addtimer(CALLBACK(src, PROC_REF(proceed_to_tackle_phase)), 10 SECONDS) @@ -227,3 +229,5 @@ /datum/tutorial/xenomorph/basic/init_map() loc_from_corner(9,0).ChangeTurf(/turf/closed/wall/resin/tutorial) + +#undef WAITING_HEALTH_THRESHOLD diff --git a/code/datums/xeno_shields/shield_types/vanguard_shield.dm b/code/datums/xeno_shields/shield_types/vanguard_shield.dm index 5b9eebc04ab8..21d9fb12cfd7 100644 --- a/code/datums/xeno_shields/shield_types/vanguard_shield.dm +++ b/code/datums/xeno_shields/shield_types/vanguard_shield.dm @@ -50,7 +50,6 @@ if (!istype(linked_xeno)) return - if (linked_xeno.mutation_type == PRAETORIAN_VANGUARD) - var/datum/behavior_delegate/praetorian_vanguard/BD = linked_xeno.behavior_delegate - if (istype(BD)) - BD.last_combat_time = world.time + var/datum/behavior_delegate/praetorian_vanguard/behavior = linked_xeno.behavior_delegate + if (istype(behavior)) + behavior.last_combat_time = world.time diff --git a/code/defines/procs/admin.dm b/code/defines/procs/admin.dm index 1e4f02e95cc0..d48c02127ea9 100644 --- a/code/defines/procs/admin.dm +++ b/code/defines/procs/admin.dm @@ -1,3 +1,15 @@ -/proc/log_and_message_admins(message as text) - log_admin("[key_name(usr)] [message]") - message_admins("[key_name(usr)] [message]") +/proc/important_message_external(message, title, list/datum/tgs_chat_embed/field/fields) + if(CONFIG_GET(string/important_log_channel)) + var/datum/tgs_message_content/to_send = new("") + + var/datum/tgs_chat_embed/structure/embed = new() + embed.title = title ? title : "Important Log" + embed.description = message + embed.timestamp = time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss") + embed.colour = "#ED2939" + if(length(fields)) + embed.fields = fields + + to_send.embed = embed + + send2chat(to_send, CONFIG_GET(string/important_log_channel)) diff --git a/code/game/area/admin_level.dm b/code/game/area/admin_level.dm index bfca1481155e..1724f2fdeea3 100644 --- a/code/game/area/admin_level.dm +++ b/code/game/area/admin_level.dm @@ -141,6 +141,9 @@ requires_power = 0 flags_area = AREA_NOTUNNEL +/area/misc + weather_enabled = FALSE + /area/misc/testroom requires_power = FALSE name = "Test Room" diff --git a/code/game/area/almayer.dm b/code/game/area/almayer.dm index 8acad9821cdd..c3898283cbbb 100644 --- a/code/game/area/almayer.dm +++ b/code/game/area/almayer.dm @@ -2,6 +2,7 @@ // Fore = West | Aft = East // // Port = South | Starboard = North // // Bow = Western|Stern = Eastern //(those are the front and back small sections) +// Naming convention is to start by port or starboard then put eitheir (bow,fore,midship,aft,stern) /area/almayer icon = 'icons/turf/area_almayer.dmi' // ambience = list('sound/ambience/shipambience.ogg') @@ -29,26 +30,6 @@ if(hijack_evacuation_area) SShijack.progress_areas[src] = power_equip -/area/shuttle/almayer/elevator_maintenance/upperdeck - name = "\improper Upper Deck Maintenance Elevator" - icon_state = "shuttle" - fake_zlevel = 1 - -/area/shuttle/almayer/elevator_maintenance/lowerdeck - name = "\improper Lower Deck Maintenance Elevator" - icon_state = "shuttle" - fake_zlevel = 2 - -/area/shuttle/almayer/elevator_hangar/lowerdeck - name = "\improper Hangar Elevator" - icon_state = "shuttle" - fake_zlevel = 2 // lowerdeck - -/area/shuttle/almayer/elevator_hangar/underdeck - name = "\improper Hangar Elevator" - icon_state = "shuttle" - fake_zlevel = 3 - /obj/structure/machinery/computer/shuttle_control/almayer/hangar name = "Elevator Console" icon = 'icons/obj/structures/machinery/computer.dmi' @@ -260,8 +241,11 @@ /area/almayer/shipboard/brig/armory name = "\improper Brig Armory" -/area/almayer/shipboard/brig/main_office - name = "\improper Brig Main Office" +/area/almayer/shipboard/brig/mp_bunks + name = "\improper Brig MP Bunks" + +/area/almayer/shipboard/brig/starboard_hallway + name = "\improper Brig Starboard Hallway" /area/almayer/shipboard/brig/perma name = "\improper Brig Perma Cells" @@ -269,8 +253,11 @@ /area/almayer/shipboard/brig/cryo name = "\improper Brig Cryo Pods" -/area/almayer/shipboard/brig/surgery - name = "\improper Brig Surgery" +/area/almayer/shipboard/brig/medical + name = "\improper Brig Medical" + +/area/almayer/shipboard/brig/interrogation + name = "\improper Brig Interrogation Room" /area/almayer/shipboard/brig/general_equipment name = "\improper Brig General Equipment" @@ -281,11 +268,15 @@ /area/almayer/shipboard/brig/execution name = "\improper Brig Execution Room" +/area/almayer/shipboard/brig/execution_storage + name = "\improper Brig Execution Storage" + /area/almayer/shipboard/brig/cic_hallway name = "\improper Brig CiC Hallway" /area/almayer/shipboard/brig/dress name = "\improper CIC Dress Uniform Room" + /area/almayer/shipboard/brig/processing name = "\improper Brig Processing and Holding" @@ -297,6 +288,10 @@ name = "\improper Brig Chief MP Office" icon_state = "chiefmpoffice" +/area/almayer/shipboard/brig/warden_office + name = "\improper Brig Warden Office" + icon_state = "chiefmpoffice" + /area/almayer/shipboard/sea_office name = "\improper Lower Deck Senior Enlisted Advisor Office" icon_state = "chiefmpoffice" @@ -312,10 +307,6 @@ icon_state = "firingrange" fake_zlevel = 2 // lowerdeck -/area/almayer/shipboard/sensors - name = "\improper Sensor Room" - icon_state = "sensor" - /area/almayer/hallways/hangar name = "\improper Hangar" icon_state = "hangar" @@ -323,79 +314,62 @@ soundscape_playlist = SCAPE_PL_HANGAR soundscape_interval = 50 -/area/almayer/hallways/vehiclehangar - name = "\improper Lower Deck Vehicle Storage" - icon_state = "exoarmor" - fake_zlevel = 2 - -/area/almayer/living - minimap_color = MINIMAP_AREA_COLONY - -/area/almayer/living/tankerbunks - name = "\improper Lower Deck Vehicle Crew Bunks" - icon_state = "livingspace" - fake_zlevel = 2 - -/area/almayer/living/auxiliary_officer_office - name = "\improper Lower Deck Auxiliary Support Officer office" - icon_state = "livingspace" - fake_zlevel = 2 - -/area/almayer/squads/tankdeliveries - name = "\improper Lower Deck Vehicle ASRS" - icon_state = "req" - fake_zlevel = 2 +/area/almayer/hallways/lower + fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/exoarmor - name = "\improper Lower Deck Vehicle Armor Storage" +/area/almayer/hallways/lower/vehiclehangar + name = "\improper Lower Deck Vehicle Storage" icon_state = "exoarmor" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/repair_bay +/area/almayer/hallways/lower/repair_bay name = "\improper Lower Deck Deployment Workshop" icon_state = "dropshiprepair" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/mission_planner - name = "\improper Lower Deck Dropship Central Computer Room" - icon_state = "missionplanner" - fake_zlevel = 2 // lowerdeck - -/area/almayer/hallways/starboard_umbilical +/area/almayer/hallways/lower/starboard_umbilical name = "\improper Lower Deck Starboard Umbilical Hallway" icon_state = "starboardumbilical" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/port_umbilical +/area/almayer/hallways/lower/port_umbilical name = "\improper Lower Deck Port Umbilical Hallway" icon_state = "portumbilical" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/aft_hallway - name = "\improper Upper Deck Aft Hallway" - icon_state = "aft" - fake_zlevel = 1 // upperdeck +//port +/area/almayer/hallways/lower/port_fore_hallway + name = "\improper Lower Deck Port-Fore Hallway" + icon_state = "port" -/area/almayer/hallways/stern_hallway - name = "\improper Upper Deck Stern Hallway" - icon_state = "stern" - fake_zlevel = 1 // upperdeck +/area/almayer/hallways/lower/port_midship_hallway + name = "\improper Lower Deck Port-Midship Hallway" + icon_state = "port" -/area/almayer/hallways/port_hallway - name = "\improper Lower Deck Port Hallway" +/area/almayer/hallways/lower/port_aft_hallway + name = "\improper Lower Deck Port-Aft Hallway" icon_state = "port" - fake_zlevel = 2 // lowerdeck -/area/almayer/hallways/starboard_hallway - name = "\improper Lower Deck Starboard Hallway" +//starboard +/area/almayer/hallways/lower/starboard_fore_hallway + name = "\improper Lower Deck Starboard-Fore Hallway" icon_state = "starboard" - fake_zlevel = 2 // lowerdeck -//new hallways areas +/area/almayer/hallways/lower/starboard_midship_hallway + name = "\improper Lower Deck Starboard-Midship Hallway" + icon_state = "starboard" + +/area/almayer/hallways/lower/starboard_aft_hallway + name = "\improper Lower Deck Starboard-Aft Hallway" + icon_state = "starboard" /area/almayer/hallways/upper fake_zlevel = 1 // upperdeck +/area/almayer/hallways/upper/aft_hallway + name = "\improper Upper Deck Aft Hallway" + icon_state = "aft" + +/area/almayer/hallways/upper/stern_hallway + name = "\improper Upper Deck Stern Hallway" + icon_state = "stern" + /area/almayer/hallways/upper/port name = "\improper Upper Deck Port Hallway" icon_state = "port" @@ -404,6 +378,7 @@ name = "\improper Upper Deck Starboard Hallway" icon_state = "starboard" +//area that are used for transition between decks. /area/almayer/stair_clone name = "\improper Lower Deck Stairs" icon_state = "stairs_lowerdeck" @@ -514,7 +489,7 @@ name = "\improper Upper Deck Starboard-Stern Hull" /area/almayer/maint/hull/upper/u_f_s - name = "\improper Upper Deck Fore-Starboard Hull" + name = "\improper Upper Deck Starboard-Fore Hull" /area/almayer/maint/hull/upper/u_m_s name = "\improper Upper Deck Starboard-Midship Hull" @@ -531,6 +506,19 @@ /area/almayer/maint/hull/upper/u_a_p name = "\improper Upper Deck Port-Aft Hull" +/area/almayer/living + minimap_color = MINIMAP_AREA_COLONY + +/area/almayer/living/tankerbunks + name = "\improper Lower Deck Vehicle Crew Bunks" + icon_state = "livingspace" + fake_zlevel = 2 + +/area/almayer/living/auxiliary_officer_office + name = "\improper Lower Deck Auxiliary Support Officer office" + icon_state = "livingspace" + fake_zlevel = 2 + /area/almayer/living/cryo_cells name = "\improper Lower Deck Cryo Cells" icon_state = "cryo" @@ -704,11 +692,6 @@ icon_state = "science" fake_zlevel = 1 // upperdeck -/area/almayer/medical/testlab - name = "\improper Medical Research workshop" - icon_state = "science" - fake_zlevel = 1 // upperdeck - /area/almayer/medical/containment name = "\improper Medical Research containment" icon_state = "science" @@ -808,27 +791,22 @@ hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE /area/almayer/lifeboat_pumps/north1 - name = "Starboard Fore Lifeboat Fuel Pump" + name = "Starboard-Fore Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/north2 - name = "Starboard Aft Lifeboat Fuel Pump" + name = "Starboard-Aft Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/south1 - name = "Port Fore Lifeboat Fuel Pump" + name = "Port-Fore Lifeboat Fuel Pump" /area/almayer/lifeboat_pumps/south2 - name = "Port Aft Lifeboat Fuel Pump" + name = "Port-Aft Lifeboat Fuel Pump" /area/almayer/command/lifeboat name = "\improper Lifeboat Docking Port" icon_state = "selfdestruct" fake_zlevel = 1 // upperdeck -/area/almayer/ert_port - name = "\improper ERT Docking Port" - icon_state = "lifeboat" - flags_area = AREA_NOTUNNEL - /area/space/almayer/lifeboat_dock name = "\improper Port Lifeboat Docking" icon_state = "lifeboat" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 732bce1fc3ee..be7037295497 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -104,12 +104,6 @@ if(is_mainship_level(z)) GLOB.ship_areas += src - if(base_lighting_alpha) - return INITIALIZE_HINT_ROUNDSTART - -/area/LateInitialize() - . = ..() - update_base_lighting() /area/proc/initialize_power(override_power) diff --git a/code/game/area/shuttles.dm b/code/game/area/shuttles.dm index 62c42406e795..3a8d53ab30b7 100644 --- a/code/game/area/shuttles.dm +++ b/code/game/area/shuttles.dm @@ -81,4 +81,4 @@ /area/shuttle/lifeboat icon = 'icons/turf/area_almayer.dmi' icon_state = "lifeboat" - flags_atom = AREA_NOTUNNEL + flags_area = AREA_NOTUNNEL diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 5f36b3b8b390..f2ae11425f42 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -503,7 +503,7 @@ Parameters are passed from New. onclose(usr, "[name]") ///This proc is called on atoms when they are loaded into a shuttle -/atom/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) +/atom/proc/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) return /** diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index f8c8be5c10ad..30e179949be5 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -934,7 +934,7 @@ Additional game mode variables. 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) + if(human.faction == FACTION_MARINE) uscm_personnel_count++ var/datum/job/job = GET_MAPPED_ROLE(human.job) marine_pop_size += GLOB.RoleAuthority.calculate_role_weight(job) diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm index 6dfe50542b00..ca0f34e64a7b 100644 --- a/code/game/gamemodes/colonialmarines/colonialmarines.dm +++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm @@ -265,7 +265,7 @@ continue if(groundside_humans > (groundside_xenos * GROUNDSIDE_XENO_MULTIPLIER)) - SSticker.mode.get_specific_call("Xenomorphs Groundside (Forsaken)", TRUE, FALSE) + SSticker.mode.get_specific_call(/datum/emergency_call/forsaken_xenos, TRUE, FALSE) // "Xenomorphs Groundside (Forsaken)" TIMER_COOLDOWN_START(src, COOLDOWN_HIJACK_GROUND_CHECK, 1 MINUTES) @@ -372,10 +372,16 @@ var/living = headcount["total_headcount"] if ((headcount["WY_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/lastmanstanding_wy.ogg') + log_game("3rd party victory: Weyland-Yutani") + message_admins("3rd party victory: Weyland-Yutani") else if ((headcount["UPP_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/lastmanstanding_upp.ogg') + log_game("3rd party victory: Union of Progressive Peoples") + message_admins("3rd party victory: Union of Progressive Peoples") else if ((headcount["CLF_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/lastmanstanding_clf.ogg') + log_game("3rd party victory: Colonial Liberation Front") + message_admins("3rd party victory: Colonial Liberation Front") else if ((headcount["marine_headcount"] / living) > MAJORITY) musical_track = pick('sound/theme/neutral_melancholy2.ogg') //This is the theme song for Colonial Marines the game, fitting else diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm index f6fbb5f4f900..d216ba762a3e 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm @@ -194,7 +194,7 @@ announce_xeno_wave(wave) if(xeno_wave == 7) //Wave when Marines get reinforcements! - get_specific_call("Marine Reinforcements (Squad)", FALSE, TRUE) + get_specific_call(/datum/emergency_call/wo, FALSE, TRUE) // "Marine Reinforcements (Squad)" xeno_wave = min(xeno_wave + 1, WO_MAX_WAVE) diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index 5ebedd8fd26d..c8b80efe9b7f 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -74,16 +74,15 @@ if(announce) 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 GLOB.machines) - FE.buildstate = 0 - FE.is_on = 1 - FE.fusion_cell = new - FE.power_gen_percent = 98 - FE.update_icon() - FE.start_processing() - FE.power_change() +/proc/power_restore_ship_reactors(announce = TRUE) + for(var/obj/structure/machinery/power/reactor/reactor in GLOB.machines) + if(!is_mainship_level(reactor.z)) //Only ship reactors should be repaired + continue + reactor.buildstate = 0 + if(reactor.require_fusion_cell && !reactor.fusion_cell) + reactor.fusion_cell = new + reactor.power_gen_percent = 98 + reactor.start_functioning(TRUE) - sleep(100) if(announce) - marine_announcement("Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg') + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(marine_announcement), "Power has been restored. Reason: Unknown.", "Power Systems Nominal", 'sound/AI/poweron.ogg'), 10 SECONDS) diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm index a85731aa781a..71dd5f1b96e8 100644 --- a/code/game/jobs/job/civilians/other/survivors.dm +++ b/code/game/jobs/job/civilians/other/survivors.dm @@ -85,6 +85,8 @@ if(hostile) to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM!")) + else if(survivor.faction == FACTION_CLF) + to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM, but NOT to other survivors!")) else to_chat(survivor, SPAN_XENOHIGHDANGER("You are NON-HOSTILE to the USCM!")) diff --git a/code/game/jobs/job/command/cic/staffofficer.dm b/code/game/jobs/job/command/cic/staffofficer.dm index 94769de2158f..c73270944c3a 100644 --- a/code/game/jobs/job/command/cic/staffofficer.dm +++ b/code/game/jobs/job/command/cic/staffofficer.dm @@ -23,8 +23,17 @@ total_positions_so_far = positions return positions -/datum/job/command/bridge/generate_entry_message(mob/living/carbon/human/H) - return ..() + +/datum/job/command/bridge/generate_entry_conditions(mob/living/M, whitelist_status) + . = ..() + if(!islist(GLOB.marine_leaders[JOB_SO])) + GLOB.marine_leaders[JOB_SO] = list() + GLOB.marine_leaders[JOB_SO] += M + RegisterSignal(M, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_leader_candidate)) + +/datum/job/command/bridge/proc/cleanup_leader_candidate(mob/M) + SIGNAL_HANDLER + GLOB.marine_leaders[JOB_SO] -= M AddTimelock(/datum/job/command/bridge, list( JOB_SQUAD_LEADER = 1 HOURS, diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index aa1cd92547ec..dd99240b2550 100644 --- a/code/game/machinery/ARES/ARES_interface.dm +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -9,10 +9,10 @@ var/current_menu = "login" var/last_menu = "" - var/authentication = ARES_ACCESS_BASIC + var/authentication = ARES_ACCESS_LOGOUT /// The last person to login. - var/last_login + var/last_login = "No User" /// The person pretending to be last_login var/sudo_holder @@ -218,17 +218,17 @@ return playsound(src, "keyboard_alt", 15, 1) + var/mob/living/carbon/human/operator = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(operator, 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) @@ -239,7 +239,7 @@ 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!")) + 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) @@ -247,14 +247,14 @@ current_menu = "main" if("sudo") - var/new_user = tgui_input_text(usr, "Enter Sudo Username", "Sudo User", encode = FALSE) + var/new_user = tgui_input_text(operator, "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.")) + to_chat(operator, SPAN_WARNING("Already remote logged in as this user.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE sudo_holder = last_login @@ -275,6 +275,8 @@ last_login = sudo_holder sudo_holder = null datacore.interface_access_list += "[last_login] logged out at [worldtime2text()]." + last_login = "No User" + authentication = ARES_ACCESS_LOGOUT if("home") last_menu = current_menu @@ -319,6 +321,8 @@ // -- Delete Button -- // if("delete_record") var/datum/ares_record/record = locate(params["record"]) + if(!istype(record)) + return FALSE if(record.record_name == ARES_RECORD_DELETED) return FALSE var/datum/ares_record/deletion/new_delete = new @@ -366,12 +370,14 @@ 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) + var/message = tgui_input_text(operator, "What do you wish to say to ARES?", "ARES Message", encode = FALSE) if(message) - message_ares(message, usr, params["active_convo"]) + message_ares(message, operator, params["active_convo"]) if("read_record") var/datum/ares_record/deleted_talk/conversation = locate(params["record"]) + if(!istype(conversation)) + return FALSE deleted_1to1 = conversation.conversation last_menu = current_menu current_menu = "read_deleted" @@ -379,36 +385,36 @@ // -- 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!")) + to_chat(operator, 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_game("[key_name(operator)] has called for general quarters via ARES.") + message_admins("[key_name_admin(operator)] 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.")) + to_chat(operator, 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.")) + to_chat(operator, 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!")) + to_chat(operator, 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_game("[key_name(operator)] has called for an emergency evacuation via ARES.") + message_admins("[key_name_admin(operator)] has called for an emergency evacuation via ARES.") log_ares_security("Initiate Evacuation", "[last_login] has called for an emergency evacuation via ARES.") . = TRUE @@ -416,27 +422,27 @@ 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!")) + to_chat(operator, 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!")) + to_chat(operator, 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!")) + to_chat(operator, 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!")) + to_chat(operator, 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.")) + SSticker.mode.request_ert(operator, TRUE) + to_chat(operator, SPAN_NOTICE("A distress beacon request has been sent to USCM High Command.")) COOLDOWN_START(datacore, ares_distress_cooldown, COOLDOWN_COMM_REQUEST) return TRUE @@ -444,25 +450,25 @@ 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!")) + to_chat(operator, 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!")) + to_chat(operator, 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?!")) + to_chat(operator, 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") + var/reason = tgui_input_text(operator, "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]")) + message_admins("[key_name(operator)] has requested use of Nuclear Ordnance (via ARES)! Reason: [reason] [CC_MARK(operator)] (APPROVE) (DENY) [ADMIN_JMP_USER(operator)] [CC_REPLY(operator)]") + to_chat(operator, 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") diff --git a/code/game/machinery/ARES/ARES_interface_admin.dm b/code/game/machinery/ARES/ARES_interface_admin.dm new file mode 100644 index 000000000000..e388c0eb453d --- /dev/null +++ b/code/game/machinery/ARES/ARES_interface_admin.dm @@ -0,0 +1,479 @@ +/client/proc/cmd_admin_open_ares() + set name = "Open ARES Interface" + set category = "Admin.Factions" + + var/mob/user = usr + if(!check_rights(R_MOD)) + to_chat(user, SPAN_WARNING("You do not have access to this command.")) + return FALSE + + if(!SSticker.mode) + to_chat(user, SPAN_WARNING("The round has not started yet.")) + return FALSE + + if(!GLOB.ares_link || !GLOB.ares_link.admin_interface || !GLOB.ares_link.interface) + to_chat(usr, SPAN_BOLDWARNING("ERROR: ARES Link or Interface not found!")) + return FALSE + GLOB.ares_link.tgui_interact(user) + var/log = "[key_name(user)] opened the remote ARES Interface." + if(user.job) + log = "[key_name(user)] ([user.job]) opened the remote ARES Interface." + log_admin(log) + +/datum/ares_console_admin + var/current_menu = "login" + var/last_menu = "" + + var/authentication = ARES_ACCESS_BASIC + + /// The last admin to login. + var/last_login + /// The currently logged in admin. + var/logged_in + /// A record of who logged in and when. + var/list/access_list = list() + var/list/deleted_1to1 = list() + + +/datum/ares_link/tgui_interact(mob/user, datum/tgui/ui) + if(!interface || !admin_interface) + to_chat(user, SPAN_WARNING("ARES ADMIN DATA LINK FAILED")) + return FALSE + ui = SStgui.try_update_ui(user, GLOB.ares_link, ui) + if(!ui) + ui = new(user, GLOB.ares_link, "AresAdmin", "ARES Admin Interface") + ui.open() + +/datum/ares_link/ui_data(mob/user) + if(!interface) + to_chat(user, SPAN_WARNING("ARES ADMIN DATA LINK FAILED")) + return FALSE + var/list/data = list() + + data["admin_login"] = "[admin_interface.logged_in], [user.client.admin_holder?.rank]" + data["admin_access_log"] = list(admin_interface.access_list) + + data["current_menu"] = admin_interface.current_menu + data["last_page"] = admin_interface.last_menu + + data["logged_in"] = interface.last_login + data["sudo"] = interface.sudo_holder ? TRUE : FALSE + + data["access_text"] = "[interface.sudo_holder ? "(SUDO)," : ""] access level [interface.authentication], [interface.ares_auth_to_text(interface.authentication)]." + data["access_level"] = interface.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"] = admin_interface.deleted_1to1 + + data["distresstime"] = datacore.ares_distress_cooldown + data["distresstimelock"] = DISTRESS_TIME_LOCK + 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 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 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 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 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 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 in datacore.records_deletion) + 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 in datacore.records_deletion) + 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 in datacore.records_asrs) + 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 in datacore.records_talking) + if(log.user == interface.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 + + var/list/logged_maintenance = list() + for(var/datum/ares_ticket/maintenance/maint_ticket in tickets_maintenance) + 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() + for(var/datum/ares_ticket/access/access_ticket in 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) + data["access_tickets"] = logged_access + + return data + + +/datum/ares_link/ui_state(mob/user) + return GLOB.admin_state + +/datum/ares_link/ui_close(mob/user) + . = ..() + if(admin_interface.logged_in && (user.ckey == admin_interface.logged_in)) + admin_interface.current_menu = "login" + admin_interface.last_menu = "login" + admin_interface.access_list += "[admin_interface.logged_in] logged out at [worldtime2text()]." + admin_interface.last_login = admin_interface.logged_in + admin_interface.logged_in = null + +/datum/ares_link/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + var/mob/user = ui.user + if(!check_rights_for(user.client, R_MOD)) + to_chat(user, SPAN_WARNING("You require staff identification to access this terminal!")) + return FALSE + switch (action) + if("go_back") + if(!admin_interface.last_menu) + to_chat(user, SPAN_WARNING("Error, no previous page detected.")) + return FALSE + var/temp_holder = admin_interface.current_menu + admin_interface.current_menu = admin_interface.last_menu + admin_interface.last_menu = temp_holder + + if("login") + admin_interface.logged_in = user.client.ckey + admin_interface.access_list += "[user.client.ckey] at [worldtime2text()], Access Level '[user.client.admin_holder?.rank]'." + admin_interface.current_menu = "main" + + // -- Page Changers -- // + if("logout") + admin_interface.current_menu = "login" + admin_interface.last_menu = "login" + admin_interface.access_list += "[admin_interface.logged_in] logged out at [worldtime2text()]. (UI Termination)" + admin_interface.last_login = admin_interface.logged_in + admin_interface.logged_in = null + + if("home") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "main" + if("page_1to1") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "talking" + if("page_announcements") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "announcements" + if("page_bioscans") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "bioscans" + if("page_bombardments") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "bombardments" + if("page_apollo") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "apollo" + if("page_access") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "access_log" + if("page_admin_list") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "admin_access_log" + if("page_security") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "security" + if("page_requisitions") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "requisitions" + if("page_flight") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "flight_log" + if("page_emergency") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "emergency" + if("page_deleted") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "delete_log" + if("page_deleted_1to1") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "deleted_talks" + if("page_access_management") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "access_management" + if("page_maint_management") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "maintenance_management" + + // -- 1:1 Conversation -- // + if("new_conversation") + var/datum/ares_record/talk_log/convo = new(interface.last_login) + convo.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], 'New 1:1 link initiated. Greetings, [interface.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 = MAIN_AI_SYSTEM + datacore.records_deletion += deleted + datacore.records_talking -= conversation + + if("fake_message_ares") + var/message = tgui_input_text(user, "What do you wish to say to ARES?", "ARES Message", encode = FALSE) + if(message) + interface.message_ares(message, user, params["active_convo"], TRUE) + if("ares_reply") + var/message = tgui_input_text(user, "What do you wish to reply with?", "ARES Response", encode = FALSE) + if(message) + interface.response_from_ares(message, params["active_convo"]) + var/datum/ares_record/talk_log/conversation = locate(params["active_convo"]) + if(!istype(conversation)) + return FALSE + var/admin_log = SPAN_STAFF_IC("ADMINS/MODS: [SPAN_RED("[key_name(user)] replied to [conversation.user]'s ARES message")] [SPAN_GREEN("via Remote Interface")] with: [SPAN_BLUE(message)] ") + for(var/client/admin in GLOB.admins) + if((R_ADMIN|R_MOD) & admin.admin_holder.rights) + to_chat(admin, admin_log) + + if("read_record") + var/datum/ares_record/deleted_talk/conversation = locate(params["record"]) + if(!istype(conversation)) + return FALSE + admin_interface.deleted_1to1 = conversation.conversation + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "read_deleted" + + 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 == MAIN_AI_SYSTEM) + var/prompt = tgui_alert(user, "ARES already claimed this ticket! Do you wish to drop the 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(user, "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 = MAIN_AI_SYSTEM + ticket.ticket_status = TICKET_ASSIGNED + return claim + + if("auth_access") + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!istype(access_ticket)) + return FALSE + for(var/obj/item/card/id/identification in waiting_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(MAIN_AI_SYSTEM, user) + access_ticket.ticket_status = TICKET_GRANTED + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: [access_ticket.ticket_submitter] granted core access.") + return TRUE + for(var/obj/item/card/id/identification in active_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + identification.handle_ares_access(MAIN_AI_SYSTEM, user) + access_ticket.ticket_status = TICKET_REVOKED + ares_apollo_talk("Access Ticket [access_ticket.ticket_id]: core access for [access_ticket.ticket_submitter] revoked.") + return TRUE + return FALSE + + if("reject_access") + var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) + if(!istype(access_ticket)) + return FALSE + access_ticket.ticket_status = TICKET_REJECTED + to_chat(user, SPAN_NOTICE("[access_ticket.ticket_type] [access_ticket.ticket_id] marked as rejected.")) + ares_apollo_talk("Access Ticket [access_ticket.ticket_id] rejected.") + return TRUE + + if("new_report") + var/priority_report = FALSE + var/maint_type = tgui_input_list(user, "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(user, "What are the details for this report?", "Ticket Details", encode = FALSE) + if(!details) + return FALSE + + if(!priority_report) + var/is_priority = tgui_alert(user, "Is this a priority report?", "Priority designation", list("Yes", "No")) + if(is_priority == "Yes") + priority_report = TRUE + + var/confirm = alert(user, "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") + var/datum/ares_ticket/maintenance/maint_ticket = new(MAIN_AI_SYSTEM, maint_type, details, priority_report) + 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(user)] as [MAIN_AI_SYSTEM] with Category '[maint_type]' and Details of '[details]'.") + return TRUE + return FALSE + + if("cancel_ticket") + var/datum/ares_ticket/ticket = locate(params["ticket"]) + if(!istype(ticket)) + return FALSE + if(ticket.ticket_submitter != MAIN_AI_SYSTEM) + to_chat(user, SPAN_WARNING("You cannot cancel a ticket that does not belong to [MAIN_AI_SYSTEM]!")) + return FALSE + to_chat(user, 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 + var/options_list = list(TICKET_COMPLETED, TICKET_REJECTED) + if(ticket.ticket_priority) + options_list += TICKET_NON_PRIORITY + else + options_list += TICKET_PRIORITY + var/choice = tgui_alert(user, "What do you wish to mark the ticket as?", "Mark", options_list, 20 SECONDS) + switch(choice) + if(TICKET_PRIORITY) + ticket.ticket_priority = TRUE + ares_apollo_talk("[ticket.ticket_type] [ticket.ticket_id] upgraded to Priority.") + return TRUE + if(TICKET_NON_PRIORITY) + ticket.ticket_priority = FALSE + ares_apollo_talk("[ticket.ticket_type] [ticket.ticket_id] downgraded from Priority.") + return TRUE + 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 [MAIN_AI_SYSTEM].") + to_chat(user, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) + return TRUE diff --git a/code/game/machinery/ARES/ARES_interface_apollo.dm b/code/game/machinery/ARES/ARES_interface_apollo.dm index 56283417ae05..c1c936676dc5 100644 --- a/code/game/machinery/ARES/ARES_interface_apollo.dm +++ b/code/game/machinery/ARES/ARES_interface_apollo.dm @@ -18,6 +18,9 @@ /// The last person to login. var/last_login + /// Notification sound + var/notify_sounds = TRUE + /obj/structure/machinery/computer/working_joe/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) if(link && !override) @@ -34,6 +37,16 @@ link_systems(override = FALSE) . = ..() +/obj/structure/machinery/computer/working_joe/proc/notify() + if(notify_sounds) + playsound(src, 'sound/machines/pda_ping.ogg', 25, 0) + +/obj/structure/machinery/computer/working_joe/proc/send_notifcation() + for(var/obj/structure/machinery/computer/working_joe/ticketer as anything in link.ticket_computers) + if(ticketer == src) + continue + ticketer.notify() + /obj/structure/machinery/computer/working_joe/proc/delink() if(link) link.ticket_computers -= src @@ -76,8 +89,9 @@ data["access_log"] = list() data["access_log"] += datacore.apollo_login_list - data["apollo_log"] = list() - data["apollo_log"] += datacore.apollo_log + data["apollo_log"] = datacore.apollo_log + + data["notify_sounds"] = notify_sounds var/list/logged_maintenance = list() for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance) @@ -142,12 +156,12 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = usr + var/mob/living/carbon/human/operator = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(operator, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder @@ -198,6 +212,9 @@ last_menu = current_menu current_menu = "maint_claim" + if("toggle_sound") + notify_sounds = !notify_sounds + 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) @@ -223,6 +240,8 @@ link.tickets_maintenance += maint_ticket if(priority_report) ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") + else + send_notifcation() 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 @@ -235,14 +254,14 @@ 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")) + var/prompt = tgui_alert(operator, "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")) + var/choice = tgui_alert(operator, "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) @@ -255,12 +274,14 @@ 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!")) + to_chat(operator, 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.")) + to_chat(operator, 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.") + else + send_notifcation() return TRUE if("mark_ticket") @@ -268,9 +289,9 @@ 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!")) + to_chat(operator, 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) + var/choice = tgui_alert(operator, "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 @@ -280,7 +301,9 @@ 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].")) + else + send_notifcation() + to_chat(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") @@ -328,8 +351,6 @@ 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 @@ -353,11 +374,9 @@ if("auth_access") playsound = FALSE var/datum/ares_ticket/access/access_ticket = locate(params["ticket"]) - if(!access_ticket) + if(!istype(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) @@ -366,8 +385,6 @@ 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) @@ -382,22 +399,29 @@ 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!")) + to_chat(operator, 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.")) + to_chat(operator, 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].") + for(var/obj/item/card/id/identification in link.waiting_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + var/mob/living/carbon/human/id_owner = identification.registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_WARNING("AI visitation access rejected.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) return TRUE if(playsound) playsound(src, "keyboard_alt", 15, 1) -/obj/item/card/id/proc/handle_ares_access(logged_in, mob/user) +/obj/item/card/id/proc/handle_ares_access(logged_in = MAIN_AI_SYSTEM, 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)" + operator = "[MAIN_AI_SYSTEM] (Automated)" else operator = "[user.ckey]/([MAIN_AI_SYSTEM])" if(ACCESS_MARINE_AI_TEMP in access) @@ -405,10 +429,18 @@ link.active_ids -= src modification_log += "Temporary AI access revoked by [operator]" to_chat(user, SPAN_NOTICE("Access revoked from [registered_name].")) + var/mob/living/carbon/human/id_owner = registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_WARNING("AI visitation access revoked.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) 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 + var/mob/living/carbon/human/id_owner = registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_HELPFUL("AI visitation access granted.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) return TRUE diff --git a/code/game/machinery/ARES/ARES_procs.dm b/code/game/machinery/ARES/ARES_procs.dm index 8113614d9b92..90616add6d25 100644 --- a/code/game/machinery/ARES/ARES_procs.dm +++ b/code/game/machinery/ARES/ARES_procs.dm @@ -1,5 +1,5 @@ -GLOBAL_DATUM_INIT(ares_link, /datum/ares_link, new) GLOBAL_DATUM_INIT(ares_datacore, /datum/ares_datacore, new) +GLOBAL_DATUM_INIT(ares_link, /datum/ares_link, new) GLOBAL_LIST_INIT(maintenance_categories, list( "Broken Light", "Shattered Glass", @@ -25,6 +25,9 @@ GLOBAL_LIST_INIT(maintenance_categories, list( 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/datum/ares_console_admin/admin_interface + var/datum/ares_datacore/datacore + var/list/obj/structure/machinery/computer/working_joe/ticket_computers = list() /// Working Joe stuff @@ -33,6 +36,25 @@ GLOBAL_LIST_INIT(maintenance_categories, list( var/list/waiting_ids = list() var/list/active_ids = list() +/datum/ares_link/New() + admin_interface = new + datacore = GLOB.ares_datacore + +/datum/ares_link/Destroy() + qdel(admin_interface) + for(var/obj/structure/machinery/ares/link in linked_systems) + link.delink() + for(var/obj/structure/machinery/computer/ares_console/interface in linked_systems) + interface.delink() + for(var/obj/effect/step_trigger/ares_alert/alert in linked_alerts) + alert.delink() + ..() + +/* BELOW ARE IN AdminAres.dm +/datum/ares_link/tgui_interact(mob/user, datum/tgui/ui) +/datum/ares_link/ui_data(mob/user) +*/ + /datum/ares_datacore /// A record of who logged in and when. var/list/interface_access_list = list() @@ -61,21 +83,10 @@ GLOBAL_LIST_INIT(maintenance_categories, 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() - for(var/obj/structure/machinery/computer/ares_console/interface in linked_systems) - interface.delink() - for(var/obj/effect/step_trigger/ares_alert/alert in linked_alerts) - alert.delink() - ..() - - // ------ ARES Logging Procs ------ // /proc/ares_is_active() for(var/mob/living/silicon/decoy/ship_ai/ai in GLOB.ai_mob_list) @@ -196,43 +207,58 @@ GLOBAL_LIST_INIT(maintenance_categories, list( /obj/structure/machinery/computer/proc/ares_auth_to_text(access_level) switch(access_level) - if(ARES_ACCESS_BASIC)//0 + if(ARES_ACCESS_LOGOUT) + return "Logged Out" + if(ARES_ACCESS_BASIC) return "Authorized" - if(ARES_ACCESS_COMMAND)//1 + if(ARES_ACCESS_COMMAND) return "[MAIN_SHIP_NAME] Command" - if(ARES_ACCESS_JOE)//2 + if(ARES_ACCESS_JOE) return "Working Joe" - if(ARES_ACCESS_CORPORATE)//3 + if(ARES_ACCESS_CORPORATE) return "Weyland-Yutani" - if(ARES_ACCESS_SENIOR)//4 + if(ARES_ACCESS_SENIOR) return "[MAIN_SHIP_NAME] Senior Command" - if(ARES_ACCESS_CE)//5 + if(ARES_ACCESS_CE) return "Chief Engineer" - if(ARES_ACCESS_SYNTH)//6 + if(ARES_ACCESS_SYNTH) return "USCM Synthetic" - if(ARES_ACCESS_CO)//7 + if(ARES_ACCESS_CO) return "[MAIN_SHIP_NAME] Commanding Officer" - if(ARES_ACCESS_HIGH)//8 + if(ARES_ACCESS_HIGH) return "USCM High Command" - if(ARES_ACCESS_WY_COMMAND)//9 + if(ARES_ACCESS_WY_COMMAND) return "Weyland-Yutani Directorate" - if(ARES_ACCESS_DEBUG)//10 + if(ARES_ACCESS_DEBUG) return "AI Service Technician" -/obj/structure/machinery/computer/ares_console/proc/message_ares(text, mob/Sender, ref) - var/msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] [ARES_MARK(Sender)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] [ADMIN_JMP_USER(Sender)] [ARES_REPLY(Sender, ref)]: [text]") +/obj/structure/machinery/computer/ares_console/proc/message_ares(text, mob/Sender, ref, fake = FALSE) var/datum/ares_record/talk_log/conversation = locate(ref) + if(!istype(conversation)) + return + var/msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] [ARES_MARK(Sender)] [ADMIN_PP(Sender)] [ADMIN_VV(Sender)] [ADMIN_SM(Sender)] [ADMIN_JMP_USER(Sender)] [ARES_REPLY(Sender, ref)]: [text]") conversation.conversation += "[last_login] at [worldtime2text()], '[text]'" + if(fake) + log_say("[key_name(Sender)] faked the message '[text]' from [last_login] in ARES 1:1.") + msg = SPAN_STAFF_IC("ARES: [key_name(Sender, 1)] faked a message from '[last_login]': [text]") + else + log_say("[key_name(Sender)] sent '[text]' to ARES 1:1.") + for(var/client/admin in GLOB.admins) + if(admin.prefs.toggles_sound & SOUND_ARES_MESSAGE) + playsound_client(admin, 'sound/machines/chime.ogg', vol = 25) + for(var/client/admin in GLOB.admins) if((R_ADMIN|R_MOD) & admin.admin_holder.rights) to_chat(admin, msg) - if(admin.prefs.toggles_sound & SOUND_ARES_MESSAGE) - playsound_client(admin, 'sound/machines/chime.ogg', vol = 25) - log_say("[key_name(Sender)] sent '[text]' to ARES 1:1.") + var/admin_user = GLOB.ares_link.admin_interface.logged_in + if(admin_user && !fake) + to_chat(admin, SPAN_STAFF_IC("ADMINS/MODS: [SPAN_RED("[admin_user] is logged in to ARES Remote Interface! They may be replying to this message!")]")) /obj/structure/machinery/computer/ares_console/proc/response_from_ares(text, ref) var/datum/ares_record/talk_log/conversation = locate(ref) + if(!istype(conversation)) + return conversation.conversation += "[MAIN_AI_SYSTEM] at [worldtime2text()], '[text]'" // ------ End ARES Interface Procs ------ // diff --git a/code/game/machinery/ARES/ARES_records.dm b/code/game/machinery/ARES/ARES_records.dm index f89b2c120e05..e8dc11fa3995 100644 --- a/code/game/machinery/ARES/ARES_records.dm +++ b/code/game/machinery/ARES/ARES_records.dm @@ -45,7 +45,7 @@ /datum/ares_record/flight/New(details, user) time = worldtime2text() - src.title = "Flight Log" + title = "Flight Log" src.details = details src.user = user diff --git a/code/game/machinery/ARES/apollo_pda.dm b/code/game/machinery/ARES/apollo_pda.dm index 8df3faf79260..69e774cf0da3 100644 --- a/code/game/machinery/ARES/apollo_pda.dm +++ b/code/game/machinery/ARES/apollo_pda.dm @@ -19,6 +19,9 @@ /// The last person to login. var/last_login + /// Notification sound + var/notify_sounds = TRUE + /obj/item/device/working_joe_pda/proc/link_systems(datum/ares_link/new_link = GLOB.ares_link, override) if(link && !override) @@ -35,6 +38,16 @@ link_systems(override = FALSE) . = ..() +/obj/item/device/working_joe_pda/proc/notify() + if(notify_sounds) + playsound(src, 'sound/machines/pda_ping.ogg', 25, 0) + +/obj/item/device/working_joe_pda/proc/send_notifcation() + for(var/obj/item/device/working_joe_pda/ticketer as anything in link.ticket_computers) + if(ticketer == src) + continue + ticketer.notify() + /obj/item/device/working_joe_pda/proc/delink() if(link) link.ticket_computers -= src @@ -103,6 +116,8 @@ data["apollo_log"] = list() data["apollo_log"] += datacore.apollo_log + data["notify_sounds"] = notify_sounds + var/list/logged_maintenance = list() for(var/datum/ares_ticket/maintenance/maint_ticket as anything in link.tickets_maintenance) if(!istype(maint_ticket)) @@ -164,12 +179,12 @@ return var/playsound = TRUE - var/mob/living/carbon/human/operator = usr + var/mob/living/carbon/human/operator = ui.user switch (action) if("go_back") if(!last_menu) - return to_chat(usr, SPAN_WARNING("Error, no previous page detected.")) + return to_chat(operator, SPAN_WARNING("Error, no previous page detected.")) var/temp_holder = current_menu current_menu = last_menu last_menu = temp_holder @@ -223,6 +238,9 @@ last_menu = current_menu current_menu = "maint_claim" + if("toggle_sound") + notify_sounds = !notify_sounds + 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) @@ -248,6 +266,8 @@ link.tickets_maintenance += maint_ticket if(priority_report) ares_apollo_talk("Priority Maintenance Report: [maint_type] - ID [maint_ticket.ticket_id]. Seek and resolve.") + else + send_notifcation() 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 @@ -260,14 +280,14 @@ 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")) + var/prompt = tgui_alert(operator, "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")) + var/choice = tgui_alert(operator, "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) @@ -280,12 +300,14 @@ 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!")) + to_chat(operator, 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.")) + to_chat(operator, 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.") + else + send_notifcation() return TRUE if("mark_ticket") @@ -293,9 +315,9 @@ 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!")) + to_chat(operator, 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) + var/choice = tgui_alert(operator, "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 @@ -305,7 +327,9 @@ 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].")) + else + send_notifcation() + to_chat(operator, SPAN_NOTICE("[ticket.ticket_type] [ticket.ticket_id] marked as [choice].")) return TRUE if("new_access") @@ -353,8 +377,6 @@ 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 @@ -381,8 +403,6 @@ 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) @@ -391,8 +411,6 @@ 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) @@ -407,11 +425,18 @@ 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!")) + to_chat(operator, 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.")) + to_chat(operator, 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].") + for(var/obj/item/card/id/identification in link.waiting_ids) + if(identification.registered_gid != access_ticket.user_id_num) + continue + var/mob/living/carbon/human/id_owner = identification.registered_ref?.resolve() + if(id_owner) + to_chat(id_owner, SPAN_WARNING("AI visitation access rejected.")) + playsound_client(id_owner?.client, 'sound/machines/pda_ping.ogg', src, 25, 0) return TRUE if(playsound) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 6ccb0b5b18f7..cf7a0a6bc1a8 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -419,11 +419,16 @@ ) SStgui.update_uis(src) + //Print speed based on w_class. + var/obj/item/item = making.path + var/size = initial(item.w_class) + var/print_speed = clamp(size, 2, 5) SECONDS + //Fancy autolathe animation. icon_state = "[base_state]_n" playsound(src, 'sound/machines/print.ogg', 25) - sleep(5 SECONDS) + sleep(print_speed) playsound(src, 'sound/machines/print_off.ogg', 25) icon_state = "[base_state]" diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index e11fc2d4844d..01a40b3638f6 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -409,7 +409,7 @@ path = /obj/item/reagent_container/blood /datum/autolathe/recipe/medilathe/bluespace - name = "bluespace beaker" + name = "high-capacity beaker" path = /obj/item/reagent_container/glass/beaker/bluespace /datum/autolathe/recipe/medilathe/bonesetter diff --git a/code/game/machinery/groundmap_geothermal.dm b/code/game/machinery/colony_floodlights.dm similarity index 50% rename from code/game/machinery/groundmap_geothermal.dm rename to code/game/machinery/colony_floodlights.dm index 087facdbf5ee..eef05df3352e 100644 --- a/code/game/machinery/groundmap_geothermal.dm +++ b/code/game/machinery/colony_floodlights.dm @@ -1,206 +1,3 @@ -/obj/structure/machinery/power/geothermal - name = "\improper G-11 geothermal generator" - icon = 'icons/obj/structures/machinery/geothermal.dmi' - icon_state = "weld" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is heavily damaged. Use a blowtorch, wirecutters, then wrench to repair it." - anchored = TRUE - density = TRUE - directwired = 0 //Requires a cable directly underneath - unslashable = TRUE - unacidable = TRUE //NOPE.jpg - var/power_gen_percent = 0 //100,000W at full capacity - var/power_generation_max = 100000 //Full capacity - var/powernet_connection_failed = 0 //Logic checking for powernets - var/buildstate = 1 //What state of building it are we on, 0-3, 1 is "broken", the default - var/is_on = 0 //Is this damn thing on or what? - var/fail_rate = 10 //% chance of failure each fail_tick check - var/fail_check_ticks = 100 //Check for failure every this many ticks - var/cur_tick = 0 //Tick updater - power_machine = TRUE - -//We don't want to cut/update the power overlays every single proc. Just when it actually changes. This should save on CPU cycles. Efficiency! -/obj/structure/machinery/power/geothermal/update_icon() - ..() - if(!buildstate && is_on) - desc = "A thermoelectric generator sitting atop a borehole dug deep in the planet's surface. It generates energy by boiling the plasma steam that rises from the well.\nIt is old technology and has a large failure rate, and must be repaired frequently.\nIt is currently on, and beeping randomly amid faint hisses of steam." - switch(power_gen_percent) - if(25) icon_state = "on[power_gen_percent]" - if(50) icon_state = "on[power_gen_percent]" - if(75) icon_state = "on[power_gen_percent]" - if(100) icon_state = "on[power_gen_percent]" - - - else if (!buildstate && !is_on) - icon_state = "off" - desc = "A thermoelectric generator sitting atop a borehole dug deep in the planet's surface. It generates energy by boiling the plasma steam that rises from the well.\nIt is old technology and has a large failure rate, and must be repaired frequently.\nIt is currently turned off and silent." - else - if(buildstate == 1) - icon_state = "weld" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is heavily damaged. Use a blowtorch, wirecutters, then wrench to repair it." - else if(buildstate == 2) - icon_state = "wire" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is damaged. Use a wirecutters, then wrench to repair it." - else - icon_state = "wrench" - desc = "A thermoelectric generator sitting atop a plasma-filled borehole. This one is lightly damaged. Use a wrench to repair it." - -/obj/structure/machinery/power/geothermal/Initialize(mapload, ...) - . = ..() - if(!connect_to_network()) //Should start with a cable piece underneath, if it doesn't, something's messed up in mapping - powernet_connection_failed = 1 - -/obj/structure/machinery/power/geothermal/power_change() - return - -/obj/structure/machinery/power/geothermal/process() - if(!is_on || buildstate || !anchored) //Default logic checking - return 0 - - if(!powernet && !powernet_connection_failed) //Powernet checking, make sure there's valid cables & powernets - if(!connect_to_network()) - powernet_connection_failed = 1 //God damn it, where'd our network go - is_on = 0 - stop_processing() - // Error! Check again in 15 seconds. Someone could have blown/acided or snipped a cable - addtimer(VARSET_CALLBACK(src, powernet_connection_failed, FALSE), 15 SECONDS) - else if(powernet) //All good! Let's fire it up! - if(!check_failure()) //Wait! Check to see if it breaks during processing - update_icon() - if(power_gen_percent < 100) power_gen_percent++ - switch(power_gen_percent) - if(10) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to whirr as it powers up.")]") - if(50) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to hum loudly as it reaches half capacity.")]") - if(99) visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] rumbles loudly as the combustion and thermal chambers reach full strength.")]") - add_avail(power_generation_max * (power_gen_percent / 100) ) //Nope, all good, just add the power - -/obj/structure/machinery/power/geothermal/proc/check_failure() - cur_tick++ - if(cur_tick < fail_check_ticks) //Nope, not time for it yet - return 0 - else if(cur_tick > fail_check_ticks) //Went past with no fail, reset the timer - cur_tick = 0 - if(rand(1,100) < fail_rate) //Oh snap, we failed! Shut it down! - if(rand(0,3) == 0) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and a fuse blows! Use wirecutters, then a wrench to repair it.")]") - buildstate = 2 - icon_state = "wire" - else - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and sprays random pieces everywhere! Use a wrench to repair it.")]") - buildstate = 3 - icon_state = "wrench" - is_on = 0 - power_gen_percent = 0 - update_icon() - cur_tick = 0 - stop_processing() - return 1 - return 0 //Nope, all fine - -/obj/structure/machinery/power/geothermal/attack_hand(mob/user as mob) - if(!anchored) return 0 //Shouldn't actually be possible - if(user.is_mob_incapacitated()) return 0 - if(!ishuman(user)) - to_chat(user, SPAN_DANGER("You have no idea how to use that.")) //No xenos or mankeys - return 0 - - add_fingerprint(user) - - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how this thing works...")) - return 0 - - if(buildstate == 1) - to_chat(usr, SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.")) - return 0 - else if (buildstate == 2) - to_chat(usr, SPAN_INFO("Use a wirecutters, then wrench to repair it.")) - return 0 - else if (buildstate == 3) - to_chat(usr, SPAN_INFO("Use a wrench to repair it.")) - return 0 - if(is_on) - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps softly and the humming stops as [usr] shuts off the turbines.")]") - is_on = 0 - power_gen_percent = 0 - cur_tick = 0 - icon_state = "off" - stop_processing() - return 1 - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps loudly as [usr] turns on the turbines and the generator begins spinning up.")]") - icon_state = "on10" - is_on = 1 - cur_tick = 0 - start_processing() - return 1 - -/obj/structure/machinery/power/geothermal/attackby(obj/item/O as obj, mob/user as mob) - if(iswelder(O)) - if(!HAS_TRAIT(O, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(buildstate == 1 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair this thing.")) - return 0 - var/obj/item/tool/weldingtool/WT = O - if(WT.remove_fuel(1, user)) - - playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) - user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s internal damage."), - SPAN_NOTICE("You start welding [src]'s internal damage.")) - if(do_after(user, 200 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 1 || is_on || !WT.isOn()) - return FALSE - playsound(loc, 'sound/items/Welder2.ogg', 25, 1) - buildstate = 2 - user.visible_message(SPAN_NOTICE("[user] welds [src]'s internal damage."), - SPAN_NOTICE("You weld [src]'s internal damage.")) - update_icon() - return TRUE - else - to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) - return - else if(HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS)) - if(buildstate == 2 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair this thing.")) - return 0 - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts securing [src]'s wiring."), - SPAN_NOTICE("You start securing [src]'s wiring.")) - if(do_after(user, 120 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 12)) - if(buildstate != 2 || is_on) - return FALSE - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - buildstate = 3 - user.visible_message(SPAN_NOTICE("[user] secures [src]'s wiring."), - SPAN_NOTICE("You secure [src]'s wiring.")) - update_icon() - return TRUE - else if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) - if(buildstate == 3 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair this thing.")) - return 0 - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts repairing [src]'s tubing and plating."), - SPAN_NOTICE("You start repairing [src]'s tubing and plating.")) - if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 3 || is_on) - return FALSE - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - buildstate = 0 - user.count_niche_stat(STATISTICS_NICHE_REPAIR_GENERATOR) - user.visible_message(SPAN_NOTICE("[user] repairs [src]'s tubing and plating."), - SPAN_NOTICE("You repair [src]'s tubing and plating.")) - update_icon() - return TRUE - else - return ..() //Deal with everything else, like hitting with stuff - -/obj/structure/machinery/power/geothermal/ex_act(severity, direction) - return FALSE //gameplay-wise these should really never go away - //Putting these here since it's power-related /obj/structure/machinery/colony_floodlight_switch name = "Colony Floodlight Switch" diff --git a/code/game/machinery/computer/groundside_operations.dm b/code/game/machinery/computer/groundside_operations.dm index 95ea46177ca2..52ff558cde89 100644 --- a/code/game/machinery/computer/groundside_operations.dm +++ b/code/game/machinery/computer/groundside_operations.dm @@ -1,3 +1,5 @@ +#define COMMAND_SQUAD "Command" + /obj/structure/machinery/computer/groundside_operations name = "groundside operations console" desc = "This can be used for various important functions." @@ -19,6 +21,7 @@ var/lz_selection = TRUE var/has_squad_overwatch = TRUE var/faction = FACTION_MARINE + var/show_command_squad = FALSE /obj/structure/machinery/computer/groundside_operations/Initialize() if(SSticker.mode && MODE_HAS_FLAG(MODE_FACTION_CLASH)) @@ -69,8 +72,11 @@ dat += "

" if(has_squad_overwatch) - dat += "Current Squad: [!isnull(current_squad) ? "[current_squad.name]" : "----------"]
" - if(current_squad) + if(show_command_squad) + dat += "Current Squad: Command
" + else + dat += "Current Squad: [!isnull(current_squad) ? "[current_squad.name]" : "----------"]
" + if(current_squad || show_command_squad) dat += get_overwatch_info() dat += "
Close" @@ -104,98 +110,94 @@ "} - if(!current_squad) - dat += "No Squad selected!
" + if(show_command_squad) + dat += format_list_of_marines(list(GLOB.marine_leaders[JOB_CO], GLOB.marine_leaders[JOB_XO]) + GLOB.marine_leaders[JOB_SO], list(JOB_CO, JOB_XO, JOB_SO)) + else if(current_squad) + dat += format_list_of_marines(current_squad.marines_list, list(JOB_SQUAD_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MARINE)) else - var/leader_text = "" - var/tl_text = "" - var/spec_text = "" - var/medic_text = "" - var/engi_text = "" - var/smart_text = "" - var/marine_text = "" - var/misc_text = "" - var/living_count = 0 - var/almayer_count = 0 - var/SSD_count = 0 - var/helmetless_count = 0 - - for(var/X in current_squad.marines_list) - if(!X) - continue //just to be safe - var/mob_name = "unknown" - var/mob_state = "" - var/role = "unknown" - var/act_sl = "" - var/area_name = "???" - var/mob/living/carbon/human/H - if(ishuman(X)) - H = X - mob_name = H.real_name - var/area/A = get_area(H) - var/turf/M_turf = get_turf(H) - if(A) - area_name = sanitize_area(A.name) - - if(H.job) - role = H.job - else if(istype(H.wear_id, /obj/item/card/id)) //decapitated marine is mindless, - var/obj/item/card/id/ID = H.wear_id //we use their ID to get their role. - if(ID.rank) - role = ID.rank - - switch(H.stat) - if(CONSCIOUS) - mob_state = "Conscious" - living_count++ - if(UNCONSCIOUS) - mob_state = "Unconscious" - living_count++ - else - continue - - if(!is_ground_level(M_turf.z)) - almayer_count++ - continue + dat += "No Squad selected!
" + dat += "

" + dat += "Refresh
" + return dat - if(!istype(H.head, /obj/item/clothing/head/helmet/marine)) - helmetless_count++ +/obj/structure/machinery/computer/groundside_operations/proc/format_list_of_marines(list/mob/living/carbon/human/marine_list, list/jobs_in_order) + var/dat = "" + var/list/job_order = list() + + for(var/job in jobs_in_order) + job_order[job] = "" + + var/misc_text = "" + + var/living_count = 0 + var/almayer_count = 0 + var/SSD_count = 0 + var/helmetless_count = 0 + var/total_count = 0 + + for(var/X in marine_list) + if(!X) + continue //just to be safe + total_count++ + var/mob_name = "unknown" + var/mob_state = "" + var/role = "unknown" + var/area_name = "???" + var/mob/living/carbon/human/H + var/act_sl = "" + if(ishuman(X)) + H = X + mob_name = H.real_name + var/area/A = get_area(H) + var/turf/M_turf = get_turf(H) + if(A) + area_name = sanitize_area(A.name) + + if(H.job) + role = H.job + else if(istype(H.wear_id, /obj/item/card/id)) //decapitated marine is mindless, + var/obj/item/card/id/ID = H.wear_id //we use their ID to get their role. + if(ID.rank) + role = ID.rank + + switch(H.stat) + if(CONSCIOUS) + mob_state = "Conscious" + living_count++ + if(UNCONSCIOUS) + mob_state = "Unconscious" + living_count++ + else continue - if(!H.key || !H.client) - SSD_count++ - continue - if(H == current_squad.squad_leader && role != JOB_SQUAD_LEADER) - act_sl = "(ASL)" - - var/marine_infos = "[mob_name][role][act_sl][mob_state][area_name]" - switch(role) - if(JOB_SQUAD_LEADER) - leader_text += marine_infos - if(JOB_SQUAD_TEAM_LEADER) - tl_text += marine_infos - if(JOB_SQUAD_SPECIALIST) - spec_text += marine_infos - if(JOB_SQUAD_MEDIC) - medic_text += marine_infos - if(JOB_SQUAD_ENGI) - engi_text += marine_infos - if(JOB_SQUAD_SMARTGUN) - smart_text += marine_infos - if(JOB_SQUAD_MARINE) - marine_text += marine_infos - else - misc_text += marine_infos - - dat += "Total: [current_squad.marines_list.len] Deployed
" - dat += "Marines detected: [living_count] ([helmetless_count] no helmet, [SSD_count] SSD, [almayer_count] on Almayer)
" - dat += "
Search:
" - dat += "" - dat += "" - dat += leader_text + tl_text + spec_text + medic_text + engi_text + smart_text + marine_text + misc_text - dat += "
NameRoleStateLocation
" - dat += "

" - dat += "Refresh
" + if(!is_ground_level(M_turf.z)) + almayer_count++ + continue + + if(!istype(H.head, /obj/item/clothing/head/helmet/marine)) + helmetless_count++ + continue + + if(!H.key || !H.client) + SSD_count++ + continue + if(current_squad) + if(H == current_squad.squad_leader && role != JOB_SQUAD_LEADER) + act_sl = " (ASL)" + var/marine_infos = "[mob_name][role][act_sl][mob_state][area_name]" + if(role in job_order) + job_order[role] += marine_infos + else + misc_text += marine_infos + dat += "Total: [total_count] Deployed
" + dat += "Marines detected: [living_count] ([helmetless_count] no helmet, [SSD_count] SSD, [almayer_count] on Almayer)
" + dat += "
Search:
" + dat += "" + dat += "" + for(var/job in job_order) + dat += job_order[job] + dat += misc_text + dat += "
NameRoleStateLocation
" return dat /obj/structure/machinery/computer/groundside_operations/Topic(href, href_list) @@ -272,23 +274,31 @@ for(var/datum/squad/S in GLOB.RoleAuthority.squads) if(S.active && S.faction == faction) squad_list += S.name + squad_list += COMMAND_SQUAD var/name_sel = tgui_input_list(usr, "Which squad would you like to look at?", "Pick Squad", squad_list) if(!name_sel) return - var/datum/squad/selected = get_squad_by_name(name_sel) - if(selected) - current_squad = selected + if(name_sel == COMMAND_SQUAD) + show_command_squad = TRUE + current_squad = null + else - to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Invalid input. Aborting.")]") + show_command_squad = FALSE + + var/datum/squad/selected = get_squad_by_name(name_sel) + if(selected) + current_squad = selected + else + to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Invalid input. Aborting.")]") if("use_cam") if(isRemoteControlling(usr)) to_chat(usr, "[icon2html(src, usr)] [SPAN_WARNING("Unable to override console camera viewer. Track with camera instead. ")]") return - if(current_squad) + if(current_squad || show_command_squad) var/mob/cam_target = locate(href_list["cam_target"]) var/obj/structure/machinery/camera/new_cam = get_camera_from_target(cam_target) if(!new_cam || !new_cam.can_use()) @@ -379,3 +389,5 @@ lz_selection = FALSE has_squad_overwatch = FALSE minimap_type = MINIMAP_FLAG_PMC + +#undef COMMAND_SQUAD diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 545d4c35bb5a..3f5e78dfc39f 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -176,9 +176,9 @@ flick(initial(icon_state) + "-denied",src) return - // safety first - if(!is_mainship_level(SSshuttle.vehicle_elevator.z)) - flick(initial(icon_state) + "-denied",src) + // If someone's trying to lower the railings but the elevator isn't in the vehicle bay. + if(!desiredstate && !is_mainship_level(SSshuttle.vehicle_elevator.z)) + flick(initial(icon_state) + "-denied", src) // Safety first! return use_power(5) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 57e27cc60d91..b656250dabeb 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -123,14 +123,16 @@ radio_connection.post_signal(src, signal, range = AIRLOCK_CONTROL_RANGE, filter = RADIO_AIRLOCK) -/obj/structure/machinery/door/airlock/open(surpress_send) +/obj/structure/machinery/door/airlock/open(forced) . = ..() - if(!surpress_send) send_status() + if(!forced) + send_status() -/obj/structure/machinery/door/airlock/close(surpress_send) +/obj/structure/machinery/door/airlock/close(forced) . = ..() - if(!surpress_send) send_status() + if(!forced) + send_status() /obj/structure/machinery/door/airlock/proc/set_frequency(new_frequency) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 021cb60769f9..27bb58397956 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -214,7 +214,7 @@ flick("door_deny", src) return -/obj/structure/machinery/door/proc/open(forced=0) +/obj/structure/machinery/door/proc/open(forced) if(!density) return TRUE if(operating || !loc) diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm index 0a179af27803..0de099801b49 100644 --- a/code/game/machinery/doors/multi_tile.dm +++ b/code/game/machinery/doors/multi_tile.dm @@ -241,10 +241,43 @@ no_panel = 1 not_weldable = 1 var/queen_pryable = TRUE + var/obj/docking_port/mobile/marine_dropship/linked_dropship + /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ex_act(severity) return +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/attackby(obj/item/item, mob/user) + if(HAS_TRAIT(item, TRAIT_TOOL_MULTITOOL)) + var/direction + switch(id) + if("starboard_door") + direction = "starboard" + if("port_door") + direction = "port" + if("aft_door") + direction = "aft" + if(!linked_dropship || !linked_dropship.door_control.door_controllers[direction]) + return ..() + var/datum/door_controller/single/control = linked_dropship.door_control.door_controllers[direction] + if (control.status != SHUTTLE_DOOR_BROKEN) + return ..() + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You don't seem to understand how to restore a remote connection to [src].")) + return + if(user.action_busy) + return + + to_chat(user, SPAN_WARNING("You begin to restore the remote connection to [src].")) + if(!do_after(user, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD)) + to_chat(user, SPAN_WARNING("You fail to restore a remote connection to [src].")) + return + unlock(TRUE) + close(FALSE) + control.status = SHUTTLE_DOOR_UNLOCKED + to_chat(user, SPAN_WARNING("You successfully restored the remote connection to [src].")) + return + ..() /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/unlock() if(is_reserved_level(z)) @@ -258,13 +291,31 @@ if(!queen_pryable) return ..() - if(!locked) - return ..() - - to_chat(xeno, SPAN_NOTICE("You try and force the doors open")) + if(xeno.action_busy) + return + + var/direction + switch(id) + if("starboard_door") + direction = "starboard" + if("port_door") + direction = "port" + if("aft_door") + direction = "aft" + var/datum/door_controller/single/control + if(linked_dropship && linked_dropship.door_control.door_controllers[direction]) + control = linked_dropship.door_control.door_controllers[direction] + + if(control && control.status == SHUTTLE_DOOR_BROKEN) + to_chat(xeno, SPAN_NOTICE("The door is already disabled.")) + return + + to_chat(xeno, SPAN_WARNING("You try and force the doors open!")) if(do_after(xeno, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE)) + if(control) + control.status = SHUTTLE_DOOR_BROKEN unlock(TRUE) - open(1) + open(TRUE) lock(TRUE) /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/ds1 @@ -336,7 +387,7 @@ continue INVOKE_ASYNC(atom_movable, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 1, SPEED_FAST, null, FALSE) -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override) +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) . = ..() if(istype(port, /obj/docking_port/mobile/crashable/lifeboat)) var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = port @@ -569,4 +620,3 @@ icon = 'icons/obj/structures/doors/2x1almayerdoor_glass.dmi' opacity = FALSE glass = TRUE - diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 0a3b873ce385..df6be1a44b14 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -283,22 +283,44 @@ /obj/structure/machinery/door/airlock, ) +/obj/structure/machinery/door/poddoor/almayer/Initialize() + . = ..() + return INITIALIZE_HINT_LATELOAD + +/obj/structure/machinery/door/poddoor/almayer/LateInitialize() + . = ..() + relativewall_neighbours() + /obj/structure/machinery/door/poddoor/almayer/open density = FALSE + /obj/structure/machinery/door/poddoor/almayer/blended icon_state = "almayer_pdoor1" base_icon_state = "almayer_pdoor" + /obj/structure/machinery/door/poddoor/almayer/blended/open density = FALSE + /obj/structure/machinery/door/poddoor/almayer/blended/white icon_state = "w_almayer_pdoor1" base_icon_state = "w_almayer_pdoor" + /obj/structure/machinery/door/poddoor/almayer/blended/white/open density = FALSE -/obj/structure/machinery/door/poddoor/almayer/Initialize() - . = ..() - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, relativewall_neighbours)), 10) +/obj/structure/machinery/door/poddoor/almayer/blended/aicore + icon_state = "aidoor1" + base_icon_state = "aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open + density = FALSE + +/obj/structure/machinery/door/poddoor/almayer/blended/white_aicore + icon_state = "w_aidoor1" + base_icon_state = "w_aidoor" + +/obj/structure/machinery/door/poddoor/almayer/blended/white_aicore/open + density = FALSE /obj/structure/machinery/door/poddoor/almayer/locked unslashable = TRUE diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm index 53b8736f75f3..b3c981a0cf71 100644 --- a/code/game/machinery/fax_machine.dm +++ b/code/game/machinery/fax_machine.dm @@ -87,7 +87,7 @@ GLOBAL_LIST_EMPTY(alldepartments) else to_chat(user, SPAN_NOTICE("\The [src] jammed! It can only accept up to five papers at once.")) playsound(src, "sound/machines/terminal_insert_disc.ogg", 50, TRUE) - flick("faxsend", src) + flick("[initial(icon_state)]send", src) updateUsrDialog() return @@ -245,7 +245,7 @@ GLOBAL_LIST_EMPTY(alldepartments) else to_chat(ui.user, SPAN_NOTICE("\The [src] jammed! It can only accept up to five papers at once.")) playsound(src, "sound/machines/terminal_insert_disc.ogg", 50, TRUE) - flick("faxsend", src) + flick("[initial(icon_state)]send", src) . = TRUE if("ejectid") @@ -408,10 +408,10 @@ GLOBAL_LIST_EMPTY(alldepartments) return if(! (F.inoperable() ) ) - flick("faxreceive", F) + flick("[initial(icon_state)]receive", F) // give the sprite some time to flick - spawn(20) + spawn(30) var/obj/item/paper/P = new(F.loc,faxcontents.photo_list) P.name = "faxed message" P.info = "[faxcontents.data]" @@ -515,6 +515,85 @@ GLOBAL_LIST_EMPTY(alldepartments) target_department = "Brig" network = "USCM High Command Quantum Relay" + +///The deployed fax machine backpack +/obj/structure/machinery/faxmachine/backpack + name = "\improper Portable Press Fax Machine" + desc = "A standard issue portable fax machine for civilian reporters. Functions off of an internal battery. Cannot receive faxes while being worn. It is currently deployed. Click-drag the device towards you to pick it up." + icon_state = "fax_backpack" + needs_power = FALSE + use_power = USE_POWER_NONE + health = 150 + +///The wearable and deployable part of the fax machine backpack +/obj/item/device/fax_backpack + name = "\improper Portable Press Fax Machine" + desc = "A standard issue portable fax machine for civilian reporters. Functions off of an internal battery. Cannot receive faxes while being worn. It is currently undeployed. Activate the device inhand to deploy it." + icon = 'icons/obj/structures/machinery/library.dmi' + icon_state = "fax_backpack" + item_state = "fax_backpack" + w_class = SIZE_HUGE + flags_equip_slot = SLOT_BACK + flags_item = ITEM_OVERRIDE_NORTHFACE + +/obj/item/device/fax_backpack/attack_self(mob/user) //activate item version fax inhand to deploy + if(!ishuman(user)) + return + var/turf/deployturf = get_turf(user) + if(istype(deployturf, /turf/open)) + var/turf/open/floor = deployturf + if(!floor.allow_construction) + to_chat(user, SPAN_WARNING("You cannot deploy [src] here, find a more secure surface!")) + return FALSE + var/fail = FALSE + if(deployturf.density) + fail = TRUE + else + var/static/list/blocking_types = typecacheof(list( + /obj/structure/machinery/defenses, + /obj/structure/window, + /obj/structure/windoor_assembly, + /obj/structure/machinery/door, + )) + for(var/obj/blockingobj in deployturf.contents) + if(blockingobj.density && !(blockingobj.flags_atom & ON_BORDER)) + fail = TRUE + break + if(is_type_in_typecache(blockingobj, blocking_types)) + fail = TRUE + break + if(fail) + to_chat(user, SPAN_WARNING("You can't deploy [src] here, something is in the way.")) + return + to_chat(user, SPAN_NOTICE("You begin to deploy [src]...")) + if(do_after(user, 4.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + to_chat(user, SPAN_NOTICE("You deploy [src].")) + var/obj/structure/machinery/faxmachine/backpack/deployedfax = new(deployturf) + transfer_label_component(deployedfax) + playsound(src.loc, 'sound/machines/print.ogg', 40, 1) + qdel(src) + return + return ..() + +/obj/structure/machinery/faxmachine/backpack/MouseDrop(over_object, src_location, over_location) //Drag the deployed fax onto you to pick it up. + if(!ishuman(usr)) + return + var/mob/living/carbon/human/user = usr + if(over_object == user && in_range(src, user)) + if(original_fax || scan) + to_chat(user, SPAN_NOTICE("There is still something in [src]. Remove it before you pick it up.")) + return + to_chat(user, SPAN_NOTICE("You begin to pick up [src]...")) + if(do_after(user, 4.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) + to_chat(user, SPAN_NOTICE("You pick up [src].")) + var/obj/item/device/fax_backpack/faxbag = new(loc) + transfer_label_component(faxbag) + user.put_in_hands(faxbag) + qdel(src) + return + return ..() + /datum/fax var/data var/list/photo_list diff --git a/code/game/machinery/fuelcell_recycler.dm b/code/game/machinery/fuelcell_recycler.dm index 697d7385a012..52c01beaf6fe 100644 --- a/code/game/machinery/fuelcell_recycler.dm +++ b/code/game/machinery/fuelcell_recycler.dm @@ -1,144 +1,220 @@ /obj/structure/machinery/fuelcell_recycler - name = "fuel cell recycler" + name = "\improper fuel cell recycler" desc = "A large machine with whirring fans and two cylindrical holes in the top. Used to regenerate fuel cells." icon = 'icons/obj/structures/machinery/fusion_eng.dmi' icon_state = "recycler" - anchored = TRUE density = TRUE - idle_power_usage = 5 active_power_usage = 15000 - bound_height = 32 - bound_width = 32 - var/obj/item/fuelCell/cell_left = null - var/obj/item/fuelCell/cell_right = null unslashable = TRUE unacidable = TRUE + indestructible = TRUE -/obj/structure/machinery/fuelcell_recycler/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/fuelCell)) - if(!cell_left) - if(user.drop_inv_item_to_loc(I, src)) - cell_left = I - start_processing() - else if(!cell_right) - if(user.drop_inv_item_to_loc(I, src)) - cell_right = I - start_processing() - else - to_chat(user, SPAN_NOTICE("The recycler is full!")) - return - update_icon() - else - to_chat(user, SPAN_NOTICE("You can't see how you'd use [I] with [src]...")) + ///How much to recharge the cells per process + var/recharge_amount = 5 + ///A fuel cell in the recycler + var/obj/item/fuel_cell/cell_left + ///A fuel cell in the recycler + var/obj/item/fuel_cell/cell_right + +/obj/structure/machinery/fuelcell_recycler/Destroy() + . = ..() + QDEL_NULL(cell_left) + QDEL_NULL(cell_right) + +/obj/structure/machinery/fuelcell_recycler/get_examine_text(mob/user) + . = ..() + . += SPAN_INFO("It is [machine_processing ? "online" : "offline"].") + if(!ishuman(user)) + return + + if(cell_left) + . += SPAN_INFO("The left cell is at [cell_left.get_fuel_percent()]%.") + if(cell_right) + . += SPAN_INFO("The right cell is at [cell_right.get_fuel_percent()]%.") + +/obj/structure/machinery/fuelcell_recycler/attackby(obj/item/attacking_item, mob/user) + if(!istype(attacking_item, /obj/item/fuel_cell)) + to_chat(user, SPAN_NOTICE("[src] rejects [attacking_item]. It can only regenerate fuel cells.")) + return + var/obj/item/fuel_cell/cell = attacking_item + + if(cell_left && cell_right) + to_chat(user, SPAN_NOTICE("[src] cannot regenerate any more fuel cells. Remove [cell_left] or [cell_right] first.")) + return + + if(cell.get_fuel_percent() == 100) + to_chat(user, SPAN_NOTICE("[cell] is already full and does not need to be regenerated.")) return -/obj/structure/machinery/fuelcell_recycler/attack_hand(mob/M) - if(cell_left == null && cell_right == null) - to_chat(M, SPAN_NOTICE("The recycler is empty.")) + if(!user.drop_inv_item_to_loc(cell, src)) + to_chat(user, SPAN_WARNING("You fail to insert [cell] into [src].")) return - add_fingerprint(M) + add_fingerprint(user) + var/inserted_to_left = TRUE + if(!cell_left) + cell_left = cell + else if(!cell_right) + inserted_to_left = FALSE + cell_right = cell + + to_chat(user, SPAN_NOTICE("You insert [cell] into the [inserted_to_left ? "left" : "right"] fuel cell receptacle.")) + update_icon() + if(!machine_processing) + visible_message(SPAN_NOTICE("[src] starts whirring as it turns on.")) + update_use_power(USE_POWER_ACTIVE) + start_processing() + +/obj/structure/machinery/fuelcell_recycler/attack_hand(mob/user) + if(!cell_left && !cell_right) + to_chat(user, SPAN_NOTICE("[src] is empty.")) + return - if(cell_right == null) - cell_left.update_icon() - M.put_in_hands(cell_left) + add_fingerprint(user) + cell_left?.update_icon() + cell_right?.update_icon() + + if(cell_left && cell_right) + if(cell_left.get_fuel_percent() >= cell_right.get_fuel_percent()) + user.put_in_hands(cell_left) + cell_left = null + else + user.put_in_hands(cell_right) + cell_right = null + update_icon() + return + + if(cell_left) + user.put_in_hands(cell_left) cell_left = null update_icon() - else if(cell_left == null) - cell_right.update_icon() - M.put_in_hands(cell_right) + return + + if(cell_right) + user.put_in_hands(cell_right) cell_right = null update_icon() - else - if(cell_left.get_fuel_percent() > cell_right.get_fuel_percent()) - cell_left.update_icon() - M.put_in_hands(cell_left) - cell_left = null - update_icon() - else - cell_right.update_icon() - M.put_in_hands(cell_right) - cell_right = null - update_icon() /obj/structure/machinery/fuelcell_recycler/process() if(inoperable()) - update_use_power(USE_POWER_NONE) - update_icon() + turn_off() return + if(!cell_left && !cell_right) - update_use_power(USE_POWER_IDLE) - update_icon() - stop_processing() + balloon_alert_to_viewers("no cells detected.") + turn_off() return - else - var/active = FALSE - if(cell_left != null) - if(!cell_left.is_regenerated()) - active = TRUE - cell_left.give(active_power_usage*(CELLRATE * 0.1)) - if(cell_right != null) - if(!cell_right.is_regenerated()) - active = TRUE - cell_right.give(active_power_usage*(CELLRATE * 0.1)) - if(active) - update_use_power(USE_POWER_ACTIVE) - else - update_use_power(USE_POWER_IDLE) - stop_processing() - update_icon() + if((!cell_right && cell_left?.is_regenerated()) || (!cell_left && cell_right?.is_regenerated()) || (cell_left?.is_regenerated() && cell_right?.is_regenerated())) + balloon_alert_to_viewers("all cells charged.") + turn_off() + return + + if(cell_left && !cell_left.is_regenerated()) + recharge_cell(cell_left) + + if(cell_right && !cell_right.is_regenerated()) + recharge_cell(cell_right) + + update_icon() /obj/structure/machinery/fuelcell_recycler/power_change() ..() update_icon() /obj/structure/machinery/fuelcell_recycler/update_icon() - src.overlays.Cut() + overlays.Cut() + + if(cell_left) + overlays += "overlay_left_cell" + if(cell_right) + overlays += "overlay_right_cell" if(inoperable()) - icon_state = "recycler0" - if(cell_left != null) - src.overlays += "recycler-left-cell" - if(cell_right != null) - src.overlays += "recycler-right-cell" - return - else icon_state = "recycler" - - var/overlay_builder = "recycler-" - if(cell_left == null && cell_right == null) return - if(cell_right == null) + + if(cell_left) if(cell_left.is_regenerated()) - overlay_builder += "left-charged" + overlays += "overlay_left_charged" else - overlay_builder += "left-charging" + overlays += "overlay_left_charging" - src.overlays += overlay_builder - src.overlays += "recycler-left-cell" - return - else if(cell_left == null) + if(cell_right) if(cell_right.is_regenerated()) - overlay_builder += "right-charged" + overlays += "overlay_right_charged" else - overlay_builder += "right-charging" + overlays += "overlay_right_charging" - src.overlays += overlay_builder - src.overlays += "recycler-right-cell" + if(!machine_processing) + icon_state = "recycler" return - else // both left and right cells are there - if(cell_left.is_regenerated()) - overlay_builder += "left-charged" - else - overlay_builder += "left-charging" + icon_state = "recycler_on" - if(cell_right.is_regenerated()) - overlay_builder += "-right-charged" - else - overlay_builder += "-right-charging" - - src.overlays += overlay_builder - src.overlays += "recycler-left-cell" - src.overlays += "recycler-right-cell" +/obj/structure/machinery/fuelcell_recycler/ex_act(severity) + if(indestructible) return + . = ..() + +/obj/structure/machinery/fuelcell_recycler/proc/turn_off() + visible_message(SPAN_NOTICE("[src] stops whirring as it turns off.")) + stop_processing() + update_icon() + update_use_power(USE_POWER_NONE) + +/obj/structure/machinery/fuelcell_recycler/proc/recharge_cell(obj/item/fuel_cell/cell) + cell.modify_fuel(recharge_amount) + if(!cell.new_cell) + cell.new_cell = TRUE + +/obj/structure/machinery/fuelcell_recycler/full/Initialize(mapload, ...) + . = ..() + cell_left = new(src) + cell_right = new(src) + update_icon() + +//reactor full cells +/obj/item/fuel_cell + name = "\improper WL-6 universal fuel cell" + icon = 'icons/obj/structures/machinery/shuttle-parts.dmi' + icon_state = "cell-full" + desc = "A rechargeable fuel cell designed to work as a power source for the Cheyenne-Class transport or for Westingland S-52 Reactors." + ///How much fuel is in the reactor + var/fuel_amount = 100 + ///Max amount that the cell can hold + var/max_fuel_amount = 100 + ///If the fuel cell has been used since last recharge + var/new_cell = TRUE + +/obj/item/fuel_cell/update_icon() + switch(get_fuel_percent()) + if(-INFINITY to 0) + icon_state = "cell-empty" + if(0 to 25) + icon_state = "cell-low" + if(25 to 75) + icon_state = "cell-medium" + if(75 to 99) + icon_state = "cell-high" + if(100 to INFINITY) + icon_state = "cell-full" + +/obj/item/fuel_cell/get_examine_text(mob/user) + . = ..() + if(ishuman(user)) + . += "The fuel indicator reads: [get_fuel_percent()]%" + +///Percentage of fuel left in the cell +/obj/item/fuel_cell/proc/get_fuel_percent() + return round(100 * fuel_amount/max_fuel_amount) + +///Whether the fuel cell is full +/obj/item/fuel_cell/proc/is_regenerated() + return (fuel_amount == max_fuel_amount) + +/// increase or decrease fuel, making sure it cannot go above the max +/obj/item/fuel_cell/proc/modify_fuel(amount) + fuel_amount = clamp(fuel_amount + amount, 0, max_fuel_amount) + +/obj/item/fuel_cell/used + new_cell = FALSE diff --git a/code/game/machinery/fusion_engine.dm b/code/game/machinery/fusion_engine.dm index 0e5f8142c2be..72f836717b0f 100644 --- a/code/game/machinery/fusion_engine.dm +++ b/code/game/machinery/fusion_engine.dm @@ -1,417 +1,463 @@ -//Experimental engine for the Almayer. Should be fancier. I expect I'll eventually make it totally separate from the Geothermal as I don't like the procs... - Apop +//Reactor damage states +#define BUILDSTATE_FUNCTIONAL 0 +#define BUILDSTATE_DAMAGE_WRENCH 1 +#define BUILDSTATE_DAMAGE_WIRE 2 +#define BUILDSTATE_DAMAGE_WELD 3 +//How often it checks if the reactor has failed +#define REACTOR_FAIL_CHECK_TICKS 100 -#define FUSION_ENGINE_MAX_POWER_GEN 50000 //Full capacity - -#define FUSION_ENGINE_FAIL_CHECK_TICKS 100 //Check for failure every this many ticks - -/obj/structure/machinery/power/fusion_engine +/obj/structure/machinery/power/reactor name = "\improper S-52 fusion reactor" icon = 'icons/obj/structures/machinery/fusion_eng.dmi' - icon_state = "off-0" - desc = "A Westingland S-52 Fusion Reactor. Takes fuels cells and converts them to power for the ship. Also produces a large amount of heat." - directwired = 0 //Requires a cable directly underneath + icon_state = "off" + desc = "A Westingland S-52 Fusion Reactor." + directwired = FALSE //Requires a cable directly underneath unslashable = TRUE - unacidable = TRUE //NOPE.jpg + unacidable = TRUE 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 - var/is_on = TRUE //Is this damn thing on or what? - var/fail_rate = FALSE //% chance of failure each fail_tick check + throwpass = FALSE + + ///Whether the reactor is functional + var/is_on = TRUE + ///Whether the reactor is on the ship + var/is_ship_reactor = FALSE + ///If the generator is overloaded + var/overloaded = FALSE //Only possible during hijack once fuel is at 100% + + ///How damaged the reactor is + var/buildstate = BUILDSTATE_FUNCTIONAL + + ///Original fail rate of the reactor + var/original_fail_rate = 0 + ///% chance of the reactor failing every check_failure + var/fail_rate = 0 + ///How often the reactor checks if it can fail + var/fail_check_ticks = REACTOR_FAIL_CHECK_TICKS + ///How many ticks since last fail check var/cur_tick = 0 //Tick updater - 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. - /// If the generator is overloaded. Only possible during hijack once fuel is at 100%. - var/overloaded = FALSE + ///% of power produced, increases to 100% over time + var/power_gen_percent = 0 + ///How much the reactor will generate at max power_gen_percent + var/power_generation_max = 50000 //50,000W + ///All icon states split by power_gen_percent + var/list/power_percent_states = list(10, 25, 50, 75, 100) //Easier to add more icon states to one without also adding them to the other -/obj/structure/machinery/power/fusion_engine/Initialize(mapload, ...) + ///Whether the reactor requires a fusion cell + var/require_fusion_cell = TRUE + ///The reactors fuel cell, fail rate increases if empty + var/obj/item/fuel_cell/fusion_cell + +/obj/structure/machinery/power/reactor/Initialize(mapload, ...) . = ..() - fusion_cell.fuel_amount = 100 + if(is_mainship_level(z)) //Only ship reactors can overload + is_ship_reactor = TRUE + + if(!buildstate && is_ground_level(z)) //Colony reactors start damaged + switch(rand(1, 6)) + if(1 to 3) //50% + buildstate = BUILDSTATE_DAMAGE_WELD + if(4 to 5) //34% + buildstate = BUILDSTATE_DAMAGE_WIRE + if(6) //16% + buildstate = BUILDSTATE_DAMAGE_WRENCH + + if(require_fusion_cell) //Set up fuel cell if needed + fusion_cell = new /obj/item/fuel_cell/used(src) + fusion_cell.fuel_amount = fusion_cell.max_fuel_amount + + fail_rate = original_fail_rate update_icon() - connect_to_network() //Should start with a cable piece underneath, if it doesn't, something's messed up in mapping - start_processing() -/obj/structure/machinery/power/fusion_engine/Destroy() + if(is_on) + start_processing() + + return INITIALIZE_HINT_ROUNDSTART + +/obj/structure/machinery/power/reactor/LateInitialize() //Need to wait for powernets to start existing first + . = ..() + + if(QDELETED(src)) + return + if(powernet) + return + + if(!connect_to_network()) //Make sure its connected to a powernet + CRASH("[src] has failed to connect to a power network. Check that it has been mapped correctly.") + +/obj/structure/machinery/power/reactor/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 +/obj/structure/machinery/power/reactor/get_examine_text(mob/user) + . = ..() - 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 + if(!is_on) + . += SPAN_INFO("It is offline.") + + if(!ishuman(user)) + return + if(is_on) + . += SPAN_INFO("The power gauge reads: [power_gen_percent]%") + + switch(buildstate) + if(BUILDSTATE_DAMAGE_WELD) + . += SPAN_INFO(SPAN_BOLD("Use a blowtorch to repair it.")) + if(BUILDSTATE_DAMAGE_WIRE) + . += SPAN_INFO(SPAN_BOLD("Use wirecutters to repair it.")) + if(BUILDSTATE_DAMAGE_WRENCH) + . += SPAN_INFO(SPAN_BOLD("Use a wrench to repair it.")) + + if(buildstate || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) + if(is_on) + . += SPAN_INFO("The emergency shutdown button is visible.") + else + . += SPAN_INFO("The emergency start lever is visible.") + + if(!fusion_cell) + . += SPAN_INFO("There is no fuel cell in it.") + else + switch(fusion_cell.get_fuel_percent()) + if(-INFINITY to 0) + . += SPAN_INFO("[fusion_cell] is empty.") + if(1 to 9) + . += SPAN_INFO("[fusion_cell] is critically low.") + if(10 to 24) + . += SPAN_INFO("[fusion_cell] is low.") + if(25 to 49) + . += SPAN_INFO("[fusion_cell] is less than half full.") + if(50 to 74) + . += SPAN_INFO("[fusion_cell] is over half full.") + if(75 to 99) + . += SPAN_INFO("[fusion_cell] is nearly full.") + if(99 to INFINITY) + . += SPAN_INFO("[fusion_cell] is full.") + + if(is_ship_reactor && SShijack.sd_unlocked) + if(overloaded) + . += SPAN_INFO("It is overloaded.") + return + if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + . += SPAN_INFO("You could overload its safeties with a multitool.") -/obj/structure/machinery/power/fusion_engine/power_change() +/obj/structure/machinery/power/reactor/power_change() . = ..() if(overloaded) set_overloading(FALSE) - visible_message("[icon2html(src, viewers(src))] [src]'s overload suddenly ceases as primary power is lost.") + visible_message(SPAN_NOTICE("[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 - if(is_on) - is_on = FALSE - power_gen_percent = 0 - update_icon() - stop_processing() - return 0 - if (fusion_cell.fuel_amount <= 0) - visible_message("[icon2html(src, viewers(src))] [src] flashes that the fuel cell is empty as the engine seizes.") - fuel_rate = 0 - buildstate = 2 //No fuel really fucks it. - is_on = 0 - power_gen_percent = 0 - fail_rate+=2 //Each time the engine is allowed to seize up it's fail rate for the future increases because reasons. - update_icon() - stop_processing() - return FALSE +/obj/structure/machinery/power/reactor/process() + if(!is_on) //if off, turn off + start_functioning(FALSE) + return + + if(buildstate) + if(require_fusion_cell) //if broken and fuel cell, lose fuel + if(fusion_cell && fusion_cell.fuel_amount) + fusion_cell.modify_fuel(rand(-5, -20)) + visible_message(SPAN_DANGER("[src] hisses as fuel starts to pool around it.")) + else //Otherwise just start to break down faster + visible_message(SPAN_DANGER("[src] sparks and seizes.")) + fail_rate += 2.5 + + if(require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) //empty fuel + if(prob(20)) + visible_message(SPAN_DANGER("[src] flashes that the fuel cell is [fusion_cell ? "empty" : "missing"] as the engine seizes.")) + fail_rate += 2.5 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(!check_failure()) - if(power_gen_percent < 100) - power_gen_percent++ - - switch(power_gen_percent) //Flavor text! - if(10) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to whirr as it powers up.")]") - fuel_rate = 0.025 - if(50) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] begins to hum loudly as it reaches half capacity.")]") - fuel_rate = 0.05 - if(99) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] rumbles loudly as the combustion and thermal chambers reach full strength.")]") - fuel_rate = 0.1 - - add_avail(FUSION_ENGINE_MAX_POWER_GEN * (power_gen_percent / 100) ) //Nope, all good, just add the power + if(prob(50)) + visible_message(SPAN_NOTICE("[src] loudly hums.")) + playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE) + else + visible_message(SPAN_NOTICE("[src] makes a worrying hiss.")) + playsound(src, 'sound/machines/hiss.ogg', 60, TRUE) - update_icon() + if(power_gen_percent < 100) + power_gen_percent = min(power_gen_percent + 1, 100) + add_avail(power_generation_max * (power_gen_percent / 100)) + check_failure(buildstate > BUILDSTATE_DAMAGE_WIRE || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) + update_icon() -/obj/structure/machinery/power/fusion_engine/attack_hand(mob/user) - if(!ishuman(user)) - to_chat(user, SPAN_WARNING("You have no idea how to use that.")) //No ayylamos +/obj/structure/machinery/power/reactor/proc/check_failure(damaged_reactor = FALSE) + if(cur_tick < fail_check_ticks) //Nope, not time for it yet + cur_tick++ + if(damaged_reactor) + cur_tick += fail_check_ticks/5 //fail much faster if damaged + return + cur_tick = 0 //reset the timer + + fail_rate = clamp(fail_rate, 0, 100) + if(!prob(fail_rate)) //Oh snap, we failed! Shut it down! + return + + visible_message(SPAN_DANGER("[src] seizes and breaks down.")) + if(buildstate >= BUILDSTATE_DAMAGE_WELD) + start_functioning(FALSE) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) + +/obj/structure/machinery/power/reactor/attack_hand(mob/user) + . = TRUE + if(overloaded) + to_chat(user, SPAN_DANGER("[src] is not responding to your attempt to shut the reactor down.")) return FALSE add_fingerprint(user) - switch(buildstate) - if(1) - to_chat(user, SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.")) - return FALSE - if(2) - to_chat(user, SPAN_NOTICE("Use a wirecutters, then wrench to repair it.")) - return FALSE - if(3) - to_chat(user, SPAN_NOTICE("Use a wrench to repair it.")) + + if(buildstate || require_fusion_cell && (!fusion_cell || fusion_cell.fuel_amount <= 0)) + if(is_on) + to_chat(user, SPAN_NOTICE("You press [src]'s emergency shutdown button.")) + visible_message(SPAN_NOTICE("[user] presses [src]'s emergency shutdown button.")) + start_functioning(FALSE) + return + + visible_message(SPAN_NOTICE("[user] starts to hold [src]'s emergency start lever.")) + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD, src)) + to_chat(user, SPAN_NOTICE("You let go of the emergency start lever.")) return FALSE + start_functioning(TRUE) + return + if(is_on) - if(overloaded) - to_chat(user, SPAN_WARNING("You can't shut off [src] while it's overloaded!")) - return + visible_message(SPAN_WARNING("[src] beeps softly and stops humming as [user] shuts off the generator.")) + start_functioning(FALSE) + 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 - cur_tick = 0 + visible_message(SPAN_NOTICE("[src] beeps loudly as [user] starts the reactor.")) + start_functioning(TRUE) + +/obj/structure/machinery/power/reactor/attack_alien(mob/living/carbon/xenomorph/xeno) + . = XENO_NONCOMBAT_ACTION + if(buildstate >= BUILDSTATE_DAMAGE_WELD) + to_chat(xeno, SPAN_WARNING("You see no reason to attack [src].")) + return + + if(xeno.action_busy) + to_chat(xeno, SPAN_WARNING("You cannot damage [src] while doing something else.")) + return + + if(overloaded) + 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 + + var/looping = FALSE + while(buildstate < BUILDSTATE_DAMAGE_WELD) + to_chat(xeno, SPAN_NOTICE("You [looping ? "continue damaging" : "start to damage"] [src].")) + if(!do_after(xeno, 10 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src)) + to_chat(xeno, SPAN_DANGER("You stop damaging [src].")) + break + xeno.animation_attack_on(src) + playsound(src, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], [is_on ? "disabling" : "damaging"] it!")) + switch(buildstate) + if(BUILDSTATE_FUNCTIONAL) + visible_message(SPAN_DANGER("[src] starts to fall apart!")) + if(BUILDSTATE_DAMAGE_WRENCH) + visible_message(SPAN_DANGER("[src] sparks as wires fall out!")) + if(BUILDSTATE_DAMAGE_WIRE) + visible_message(SPAN_DANGER("[src] gets torn apart!")) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) update_icon() - stop_processing() - return TRUE + looping = TRUE - if(!fusion_cell) - to_chat(user, SPAN_NOTICE("The reactor requires a fuel cell before you can turn it on.")) - return FALSE +/obj/structure/machinery/power/reactor/attackby(obj/item/attacking_item, mob/user) + //Fuel Cells + if(user.action_busy) + return - if(!powernet) - if(!connect_to_network()) - to_chat(user, SPAN_WARNING("Power network not found, make sure the engine is connected to a cable.")) - return FALSE + if(istype(attacking_item, /obj/item/fuel_cell)) + var/obj/item/fuel_cell/cell = attacking_item + if(fusion_cell) + to_chat(user, SPAN_WARNING("[src] already has [fusion_cell]. Before you can replace it with [cell] you need to remove it with a crowbar.")) + return - if(fusion_cell.fuel_amount <= 10) - to_chat(user, "[icon2html(src, user)] [SPAN_WARNING("[src]: Fuel levels critically low.")]") - visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps loudly as [user] turns the generator on and begins the process of fusion...")]") - fuel_rate = 0.01 - is_on = 1 - cur_tick = 0 - update_icon() - start_processing() - return TRUE + to_chat(user, SPAN_NOTICE("You start inserting [cell] into [src].")) + if(!do_after(user, 10 SECONDS * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_BUILD, src)) + return + if(!user.drop_inv_item_to_loc(cell, src)) + to_chat(user, SPAN_NOTICE("You fail to insert [cell] into [src].")) + return + to_chat(user, SPAN_NOTICE("You insert [cell] into [src].")) + fusion_cell = cell + update_icon() + if(cell.new_cell) + fail_rate = original_fail_rate + cell.new_cell = FALSE + return -/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("[src] needs to be turned off first.")) - return TRUE + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR)) if(!fusion_cell) - if(user.drop_inv_item_to_loc(O, src)) - fusion_cell = O - update_icon() - 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.")) - return TRUE - else if(iswelder(O)) - if(!HAS_TRAIT(O, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) + to_chat(user, SPAN_WARNING("There is no fuel cell to remove from [src].")) return - if(buildstate == 1) - var/obj/item/tool/weldingtool/WT = O - if(WT.remove_fuel(1, user)) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s internals."), - SPAN_NOTICE("You fumble around figuring out [src]'s internals.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) - user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s internal damage."), - SPAN_NOTICE("You start welding [src]'s internal damage.")) - if(do_after(user, 200 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 1 || is_on || !WT.isOn()) - return FALSE - playsound(loc, 'sound/items/Welder2.ogg', 25, 1) - buildstate = 2 - user.visible_message(SPAN_NOTICE("[user] welds [src]'s internal damage."), - SPAN_NOTICE("You weld [src]'s internal damage.")) - update_icon() - return TRUE - else - to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) - return FALSE - else if(HAS_TRAIT(O, TRAIT_TOOL_WIRECUTTERS)) - if(buildstate == 2 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s wiring."), - SPAN_NOTICE("You fumble around figuring out [src]'s wiring.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts securing [src]'s wiring."), - SPAN_NOTICE("You start securing [src]'s wiring.")) - if(do_after(user, 120 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, numticks = 12)) - if(buildstate != 2 || is_on) - return FALSE - playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) - buildstate = 3 - user.visible_message(SPAN_NOTICE("[user] secures [src]'s wiring."), - SPAN_NOTICE("You secure [src]'s wiring.")) - update_icon() - return TRUE - else if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) - if(buildstate == 3 && !is_on) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_NOTICE("[user] fumbles around figuring out [src]'s tubing and plating."), - SPAN_NOTICE("You fumble around figuring out [src]'s tubing and plating.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts repairing [src]'s tubing and plating."), - SPAN_NOTICE("You start repairing [src]'s tubing and plating.")) - if(do_after(user, 150 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 3 || is_on) - return FALSE - playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) - buildstate = 0 - user.count_niche_stat(STATISTICS_NICHE_REPAIR_GENERATOR) - user.visible_message(SPAN_NOTICE("[user] repairs [src]'s tubing and plating."), - SPAN_NOTICE("You repair [src]'s tubing and plating.")) - update_icon() - return TRUE - else if(HAS_TRAIT(O, TRAIT_TOOL_CROWBAR)) - if(buildstate) - to_chat(user, SPAN_WARNING("You must repair the generator before working with its fuel cell.")) + + to_chat(user, SPAN_NOTICE("You start prying [fusion_cell] out of [src].")) + if(!do_after(user, 10 SECONDS * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_BUILD, src)) return - if(overloaded) - to_chat(user, SPAN_WARNING("You must restore the safeties on the generator before working with its fuel cell.")) + to_chat(user, SPAN_NOTICE("You remove [fusion_cell] from [src].")) + fusion_cell.update_icon() + user.put_in_hands(fusion_cell) + fusion_cell = null + update_icon() + return + + //Repairing + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_BLOWTORCH)) + if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WELD, user)) + return + var/obj/item/tool/weldingtool/welder = attacking_item + if(!welder.remove_fuel(1, user)) return + playsound(loc, 'sound/items/Welder2.ogg', 25, 1) + buildstate = BUILDSTATE_DAMAGE_WIRE + update_icon() + return - if(is_on) - to_chat(user, SPAN_WARNING("You must turn off the generator before working with its fuel cell.")) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WIRECUTTERS)) + if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WIRE, user)) return + playsound(loc, 'sound/items/Wirecutter.ogg', 25, 1) + buildstate = BUILDSTATE_DAMAGE_WRENCH + update_icon() + return - if(!fusion_cell) - to_chat(user, SPAN_WARNING("There is no cell to remove.")) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_WRENCH)) + if(!attempt_repair(attacking_item, BUILDSTATE_DAMAGE_WRENCH, user)) + return + playsound(loc, 'sound/items/Ratchet.ogg', 25, 1) + buildstate = BUILDSTATE_FUNCTIONAL + update_icon() + return + + //Self Destruct + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_MULTITOOL)) + if(!SShijack.sd_unlocked) + return + if(!is_ship_reactor) + return - else - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - user.visible_message(SPAN_WARNING("[user] fumbles around figuring out [src]'s fuel receptacle."), - SPAN_WARNING("You fumble around figuring out [src]'s fuel receptacle.")) - var/fumbling_time = 50 - if(!do_after(user, fumbling_time, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) return - playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts prying [src]'s fuel receptacle open."), - SPAN_NOTICE("You start prying [src]'s fuel receptacle open.")) - if(do_after(user, 100 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(buildstate != 0 || is_on || !fusion_cell) - return FALSE - user.visible_message(SPAN_NOTICE("[user] pries [src]'s fuel receptacle open and removes the cell."), - SPAN_NOTICE("You pry [src]'s fuel receptacle open and remove the cell.")) - fusion_cell.update_icon() - user.put_in_hands(fusion_cell) - 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 + to_chat(user, SPAN_WARNING("You start [overloaded ? "overloading" : "restoring"] the safeties on [src].")) + if(!do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD)) + return - if(inoperable()) - to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to overload it!")) - return + if(inoperable()) + to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to be overloaded.")) + 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 + set_overloading(!overloaded) + to_chat(user, SPAN_WARNING("You finish [overloaded ? "overloading" : "restoring"] the safeties on [src].")) + log_game("[key_name(user)] has [overloaded ? "overloaded" : "restored the safeties of"] a generator.") + 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.") +/obj/structure/machinery/power/reactor/update_icon() + switch(buildstate) + if(BUILDSTATE_DAMAGE_WELD) + icon_state = "weld" + if(BUILDSTATE_DAMAGE_WIRE) + icon_state = "wire" + if(BUILDSTATE_DAMAGE_WRENCH) + icon_state = "wrench" + if(buildstate) + return - 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(!is_on) + icon_state = "off" + return + + if(require_fusion_cell && !fusion_cell) + icon_state = "cell_missing" + return - if(inoperable()) - return + if(overloaded) + icon_state = "overloaded" + 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) + var/abs_percent = 100 + var/closest_percent + for(var/current_percent in power_percent_states) + if(abs(current_percent-power_gen_percent) >= abs_percent) + continue + abs_percent = abs(current_percent-power_gen_percent) + closest_percent = current_percent + if(!abs_percent) + break + icon_state = "on-[closest_percent]" + +/obj/structure/machinery/power/reactor/ex_act(severity) + . = FALSE + if(severity <= EXPLOSION_THRESHOLD_MLOW) + return - return TRUE + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(7, FALSE, loc) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) + sparks.start() - else - return ..() + if(!overloaded) + return + set_overloading(FALSE) -/obj/structure/machinery/power/fusion_engine/get_examine_text(mob/user) +/obj/structure/machinery/power/reactor/bullet_act(obj/projectile/bullet) . = ..() - 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.") - if(2) - . += SPAN_INFO("Use a wirecutters, then wrench to repair it.") - if(3) - . += SPAN_INFO("Use a wrench to repair it.") - return FALSE + if(buildstate >= BUILDSTATE_DAMAGE_WELD) + return + if(!prob(5)) + return - 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.") + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(7, FALSE, loc) + buildstate = clamp(buildstate + 1, BUILDSTATE_FUNCTIONAL, BUILDSTATE_DAMAGE_WELD) + sparks.start() - if(!is_on) - . += SPAN_INFO("It looks offline.") - else - . += SPAN_INFO("The power gauge reads: [power_gen_percent]%") - if(fusion_cell) - . += SPAN_INFO("You can see a fuel cell in the receptacle.") - if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - switch(fusion_cell.get_fuel_percent()) - if(0 to 10) - . += SPAN_DANGER("The fuel cell is critically low.") - if(10 to 25) - . += SPAN_WARNING("The fuel cell is running low.") - if(25 to 50) - . += SPAN_INFO("The fuel cell is a little under halfway.") - if(50 to 75) - . += SPAN_INFO("The fuel cell is a little above halfway.") - if(75 to INFINITY) - . += SPAN_INFO("The fuel cell is nearly full.") - else - . += SPAN_INFO("There is no fuel cell in the receptacle.") +/obj/structure/machinery/power/reactor/proc/start_functioning(enabling) + if(enabling) + is_on = TRUE + start_processing() + update_icon() + return + is_on = FALSE + power_gen_percent = 0 + cur_tick = 0 + set_overloading(FALSE) + update_icon() -/obj/structure/machinery/power/fusion_engine/ex_act(severity) - if(overloaded && severity >= EXPLOSION_THRESHOLD_MLOW) - set_overloading(FALSE) - return +/obj/structure/machinery/power/reactor/proc/attempt_repair(obj/item/tool, repair_type, mob/user) + if(!tool || !repair_type) + return + if(!buildstate) + to_chat(user, SPAN_NOTICE("[src] does not need repairs.")) + return + if(buildstate != repair_type) + to_chat(user, SPAN_WARNING("You need a different tool to repair [src].")) + return -/obj/structure/machinery/power/fusion_engine/update_icon() - switch(buildstate) - if(0) - if(fusion_cell) - 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" - - if(1) - icon_state = "weld" - if(2) - icon_state = "wire" - if(3) - icon_state = "wrench" + var/repair_time = 20 SECONDS + repair_time *= user.get_skill_duration_multiplier(SKILL_ENGINEER) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + repair_time += 5 SECONDS + to_chat(user, SPAN_NOTICE("You start repairing [src] with [tool].")) + if(!do_after(user, repair_time, INTERRUPT_ALL, BUSY_ICON_BUILD, src)) + return -/obj/structure/machinery/power/fusion_engine/proc/check_failure() - if(cur_tick < FUSION_ENGINE_FAIL_CHECK_TICKS) //Nope, not time for it yet - cur_tick++ - return 0 - cur_tick = 0 //reset the timer - if(rand(1,100) < fail_rate) //Oh snap, we failed! Shut it down! - if(prob(25)) - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and a fuse blows! Use wirecutters, then a wrench to repair it.")]") - buildstate = 2 - else - visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] beeps wildly and sprays random pieces everywhere! Use a wrench to repair it.")]") - buildstate = 3 - is_on = 0 - power_gen_percent = 0 - update_icon() - stop_processing() - return 1 - else - return 0 + return TRUE -/obj/structure/machinery/power/fusion_engine/proc/set_overloading(new_overloading) +/obj/structure/machinery/power/reactor/proc/set_overloading(new_overloading) + if(!is_ship_reactor) + return if(overloaded == new_overloading) return @@ -419,42 +465,17 @@ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_GENERATOR_SET_OVERLOADING, overloaded) update_icon() +/obj/structure/machinery/power/reactor/colony + name = "\improper G-11 geothermal generator" + icon = 'icons/obj/structures/machinery/geothermal.dmi' + desc = "A thermoelectric generator sitting atop a plasma-filled borehole." + is_on = FALSE + power_generation_max = 100000 //100,000W at full capacity + original_fail_rate = 10 -//FUEL CELL -/obj/item/fuelCell - name = "\improper WL-6 universal fuel cell" - icon = 'icons/obj/structures/machinery/shuttle-parts.dmi' - icon_state = "cell-full" - desc = "A rechargeable fuel cell designed to work as a power source for the Cheyenne-Class transport or for Westingland S-52 Reactors." - var/fuel_amount = 100 - var/max_fuel_amount = 100 - -/obj/item/fuelCell/update_icon() - switch(get_fuel_percent()) - if(-INFINITY to 0) - icon_state = "cell-empty" - if(0 to 25) - icon_state = "cell-low" - if(25 to 75) - icon_state = "cell-medium" - if(75 to 99) - icon_state = "cell-high" - else - icon_state = "cell-full" - -/obj/item/fuelCell/get_examine_text(mob/user) - . = ..() - if(ishuman(user)) - . += "The fuel indicator reads: [get_fuel_percent()]%" - -/obj/item/fuelCell/proc/get_fuel_percent() - return round(100*fuel_amount/max_fuel_amount) - -/obj/item/fuelCell/proc/is_regenerated() - return (fuel_amount == max_fuel_amount) - -/obj/item/fuelCell/proc/give(amount) - fuel_amount += amount - if(fuel_amount > max_fuel_amount) - fuel_amount = max_fuel_amount +#undef BUILDSTATE_FUNCTIONAL +#undef BUILDSTATE_DAMAGE_WELD +#undef BUILDSTATE_DAMAGE_WIRE +#undef BUILDSTATE_DAMAGE_WRENCH +#undef REACTOR_FAIL_CHECK_TICKS diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm index a18f5db8af43..4918df4d9a5b 100644 --- a/code/game/machinery/kitchen/processor.dm +++ b/code/game/machinery/kitchen/processor.dm @@ -19,15 +19,44 @@ /datum/food_processor_process/process(loc, what) if (src.output && loc) - new src.output(loc) + var/obj/item/reagent_container/food/snacks/created_food = new src.output(loc) + var/obj/item/reagent_container/food/snacks/original_food = what + if(original_food.made_from_player) + created_food.made_from_player = original_food.made_from_player + created_food.name = (created_food.made_from_player + created_food.name) if (what) qdel(what) +/datum/food_processor_process/proc/can_use(mob/user) + // By default, anyone can do it. + return TRUE + /* objs */ + +/datum/food_processor_process/xenomeat + input = /obj/item/reagent_container/food/snacks/meat/xenomeat + output = /obj/item/reagent_container/food/snacks/meat/xenomeat/processed + +/datum/food_processor_process/xenomeat/can_use(mob/user) + if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER)) + to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!")) + return FALSE + return TRUE + /datum/food_processor_process/meat input = /obj/item/reagent_container/food/snacks/meat output = /obj/item/reagent_container/food/snacks/rawmeatball +/datum/food_processor_process/carpmeat + input = /obj/item/reagent_container/food/snacks/carpmeat + output = /obj/item/reagent_container/food/snacks/carpmeat/processed + +/datum/food_processor_process/carpmeat/can_use(mob/user) + if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER)) + to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!")) + return FALSE + return TRUE + /datum/food_processor_process/potato input = /obj/item/reagent_container/food/snacks/grown/potato output = /obj/item/reagent_container/food/snacks/rawsticks @@ -88,6 +117,8 @@ if (!P) to_chat(user, SPAN_DANGER("That probably won't blend.")) return 1 + if(!P.can_use(user)) + return 1 user.visible_message("[user] put [what] into [src].", \ "You put [what] into [src].") user.drop_held_item() diff --git a/code/game/machinery/medical_pod/sleeper.dm b/code/game/machinery/medical_pod/sleeper.dm index 84ef2f579ba1..5868df901c6a 100644 --- a/code/game/machinery/medical_pod/sleeper.dm +++ b/code/game/machinery/medical_pod/sleeper.dm @@ -208,6 +208,14 @@ var/amount = text2num(params["amount"]) if(!length(chemical) || amount <= 0) return + if(!(amount in connected.amounts)) + log_debug("[amount] is an invalid amount to inject in [src]!") + return + if(!(chemical in connected.available_chemicals)) + log_debug("[chemical] is not available to inject in [src]!") + return + if(connected.occupant.reagents && connected.occupant.reagents.get_reagent_amount(chemical) + amount > connected.max_chem) + return if(connected.occupant.health > connected.min_health || (chemical in connected.emergency_chems)) connected.inject_chemical(usr, chemical, amount) else diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index d9aa42dbd1f1..96e1635bb0b8 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -1,742 +1,12 @@ -//############################################## -//################### NEWSCASTERS BE HERE! #### -//###-Agouri################################### - -/datum/feed_message - var/author ="" - var/body ="" - var/message_type ="Story" - //var/parent_channel - var/backup_body ="" - var/backup_author ="" - var/is_admin_message = 0 - var/icon/img = null - var/icon/backup_img - -/datum/feed_channel - var/channel_name="" - var/list/datum/feed_message/messages = list() - //var/message_count = 0 - var/locked=0 - var/author="" - var/backup_author="" - var/censored=0 - var/is_admin_channel=0 - //var/page = null //For newspapers - -/datum/feed_message/proc/clear() - src.author = "" - src.body = "" - src.backup_body = "" - src.backup_author = "" - src.img = null - src.backup_img = null - -/datum/feed_channel/proc/clear() - src.channel_name = "" - src.messages = list() - src.locked = 0 - src.author = "" - src.backup_author = "" - src.censored = 0 - src.is_admin_channel = 0 - -/datum/feed_network - var/list/datum/feed_channel/network_channels = list() - var/datum/feed_message/wanted_issue - -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" desc = "A standard Weyland-Yutani-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" icon = 'icons/obj/structures/machinery/terminals.dmi' icon_state = "newscaster_normal" - var/isbroken = FALSE //1 if someone banged it with something heavy - var/ispowered = TRUE //starts powered, changes with power_change() - //var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored. - //OBSOLETE: We're now using a global news network - var/screen = 0 //Or maybe I'll make it into a list within a list afterwards... whichever I prefer, go fuck yourselves :3 - // 0 = welcome screen - main menu - // 1 = view feed channels - // 2 = create feed channel - // 3 = create feed story - // 4 = feed story submited sucessfully - // 5 = feed channel created successfully - // 6 = ERROR: Cannot create feed story - // 7 = ERROR: Cannot create feed channel - // 8 = print newspaper - // 9 = viewing channel feeds - // 10 = censor feed story - // 11 = censor feed channel - //Holy shit this is outdated, made this when I was still starting newscasters :3 - var/paper_remaining = 0 - var/securityCaster = 0 - // 0 = Caster cannot be used to issue wanted posters - // 1 = the opposite - var/unit_no = 0 //Each newscaster has a unit number - //var/datum/feed_message/wanted //We're gonna use a feed_message to store data of the wanted person because fields are similar - //var/wanted_issue = 0 //OBSOLETE - // 0 = there's no WANTED issued, we don't need a special icon_state - // 1 = Guess what. - var/alert_delay = 500 - var/alert = 0 - // 0 = there hasn't been a news/wanted update in the last alert_delay - // 1 = there has - var/scanned_user = "Unknown" //Will contain the name of the person who currently uses the newscaster - var/msg = ""; //Feed message - var/obj/item/photo/photo = null - var/channel_name = ""; //the feed channel which will be receiving the feed, or being created - var/c_locked=0; //Will our new channel be locked to public submissions? - var/hitstaken = 0 //Death at 3 hits from an item with force>=15 - var/datum/feed_channel/viewing_channel = null anchored = TRUE - -/obj/structure/machinery/newscaster/security_unit //Security unit +/obj/structure/machinery/newscaster/security_unit name = "Security Newscaster" - securityCaster = 1 - -/obj/structure/machinery/newscaster/security_unit/New() //Constructor, ho~ - GLOB.allCasters += src - src.paper_remaining = 15 // Will probably change this to something better - 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() - GLOB.allCasters -= src - return ..() - -/obj/structure/machinery/newscaster/update_icon() - if(!ispowered || isbroken) - icon_state = "newscaster_off" - if(isbroken) //If the thing is smashed, add crack overlay on top of the unpowered sprite. - src.overlays.Cut() - src.overlays += image(src.icon, "crack3") - return - - src.overlays.Cut() //reset overlays - - 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 - - if(alert) //new message alert overlay - src.overlays += "newscaster_alert" - - if(hitstaken > 0) //Cosmetic damage overlay - src.overlays += image(src.icon, "crack[hitstaken]") - - icon_state = "newscaster_normal" - return - -/obj/structure/machinery/newscaster/power_change() - if(isbroken) //Broken shit can't be powered. - return - ..() - if( !(stat & NOPOWER) ) - src.ispowered = TRUE - src.update_icon() - else - spawn(rand(0, 15)) - src.ispowered = FALSE - src.update_icon() - - -/obj/structure/machinery/newscaster/ex_act(severity) - switch(severity) - if(0 to EXPLOSION_THRESHOLD_LOW) - if(prob(50)) - src.isbroken=1 - src.update_icon() - return - if(EXPLOSION_THRESHOLD_LOW to EXPLOSION_THRESHOLD_MEDIUM) - src.isbroken=1 - if(prob(50)) - deconstruct(FALSE) - else - src.update_icon() //can't place it above the return and outside the if-else. or we might get runtimes of null.update_icon() if(prob(50)) goes in. - return - if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) - deconstruct(FALSE) - return - return - -/obj/structure/machinery/newscaster/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/newscaster/attack_hand(mob/user as mob) //########### THE MAIN BEEF IS HERE! And in the proc below this...############ - if(!src.ispowered || src.isbroken) - return - if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) ) - var/mob/living/human_or_robot_user = user - var/dat - dat = text("Newscaster

Newscaster Unit #[src.unit_no]

") - - src.scan_user(human_or_robot_user) //Newscaster scans you - - switch(screen) - if(0) - dat += "Welcome to Newscasting Unit #[src.unit_no].
Interface & News networks Operational." - dat += "
Property of Weyland-Yutani" - if(GLOB.news_network.wanted_issue) - dat+= "
Read Wanted Issue" - dat+= "

Create Feed Channel" - dat+= "
View Feed Channels" - dat+= "
Submit new Feed story" - dat+= "
Print newspaper" - dat+= "
Re-scan User" - dat+= "

Exit" - if(src.securityCaster) - var/wanted_already = 0 - if(GLOB.news_network.wanted_issue) - wanted_already = 1 - - dat+="
Feed Security functions:
" - dat+="
[(wanted_already) ? ("Manage") : ("Publish")] \"Wanted\" Issue" - dat+="
Censor Feed Stories" - dat+="
Mark Feed Channel with Weyland-Yutani D-Notice" - dat+="

The newscaster recognises you as: [src.scanned_user]" - if(1) - dat+= "Station Feed Channels
" - if(!length(GLOB.news_network.network_channels) ) - dat+="No active channels found..." - else - for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) - if(CHANNEL.is_admin_channel) - dat+="[CHANNEL.channel_name]
" - else - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
" - /*for(var/datum/feed_channel/CHANNEL in src.channel_list) - dat+="[CHANNEL.channel_name]:
\[created by: [CHANNEL.author]\]

" - if(!length(CHANNEL.messages) ) - dat+="No feed messages found in channel...

" - else - for(var/datum/feed_message/MESSAGE in CHANNEL.messages) - dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
"*/ - - dat+="

Refresh" - dat+="
Back" - if(2) - dat+="Creating new Feed Channel..." - dat+="
Channel Name: [src.channel_name]
" - dat+="Channel Author: [src.scanned_user]
" - dat+="Will Accept Public Feeds: [(src.c_locked) ? ("NO") : ("YES")]

" - dat+="
Submit

Cancel
" - if(3) - dat+="Creating new Feed Message..." - dat+="
Receiving Channel: [src.channel_name]
" //MARK - dat+="Message Author: [src.scanned_user]
" - dat+="Message Body: [src.msg]
" - dat+="Attach Photo: [(src.photo ? "Photo Attached" : "No Photo")]
" - dat+="
Submit

Cancel
" - if(4) - dat+="Feed story successfully submitted to [src.channel_name].

" - dat+="
Return
" - if(5) - dat+="Feed Channel [src.channel_name] created successfully.

" - dat+="
Return
" - if(6) - dat+="ERROR: Could not submit Feed story to Network.

" - if(src.channel_name=="") - dat+="�Invalid receiving channel name.
" - if(src.scanned_user=="Unknown") - dat+="�Channel author unverified.
" - if(src.msg == "" || src.msg == "\[REDACTED\]") - dat+="�Invalid message body.
" - - dat+="
Return
" - if(7) - 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 GLOB.news_network.network_channels) - //existing_channels += FC.channel_name //OBSOLETE - if(FC.author == "\[REDACTED\]") - existing_authors += FC.backup_author - else - existing_authors += FC.author - if(src.scanned_user in existing_authors) - dat+="�There already exists a Feed channel under your name.
" - if(src.channel_name=="" || src.channel_name == "\[REDACTED\]") - dat+="�Invalid channel name.
" - var/check = 0 - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == src.channel_name) - check = 1 - break - if(check) - dat+="�Channel name already in use.
" - if(src.scanned_user=="Unknown") - dat+="�Channel author unverified.
" - dat+="
Return
" - if(8) - 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 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 - active_num-- - dat+="Network currently serves a total of [total_num] Feed channels, [active_num] of which are active, and a total of [message_num] Feed Stories." //TODO: CONTINUE - dat+="

Liquid Paper remaining: [(src.paper_remaining) *100 ] cm^3" - dat+="

Print Paper" - dat+="
Cancel" - if(9) - dat+="[src.viewing_channel.channel_name]: \[created by: [src.viewing_channel.author]\]
" - if(src.viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Weyland-Yutani D-Notice.
" - dat+="No further feed story additions are allowed while the D-Notice is in effect.

" - else - if(!length(src.viewing_channel.messages) ) - dat+="No feed messages found in channel...
" - else - var/i = 0 - for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - i++ - dat+="-[MESSAGE.body]
" - if(MESSAGE.img) - usr << browse_rsc(MESSAGE.img, "tmp_photo[i].png") - dat+="

" - dat+="\[[MESSAGE.message_type] by [MESSAGE.author]\]
" - dat+="

Refresh" - dat+="
Back" - if(10) - dat+="Weyland-Yutani Feed Censorship Tool
" - 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(GLOB.news_network.network_channels)) - dat+="No feed channels found active...
" - else - for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
" - dat+="
Cancel" - if(11) - dat+="Weyland-Yutani D-Notice Handler
" - 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(GLOB.news_network.network_channels)) - dat+="No feed channels found active...
" - else - for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels) - dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : null]
" - - dat+="
Back" - if(12) - dat+="[src.viewing_channel.channel_name]: \[ created by: [src.viewing_channel.author] \]
" - dat+="[(src.viewing_channel.author=="\[REDACTED\]") ? ("Undo Author censorship") : ("Censor channel Author")]
" - - - if(!length(src.viewing_channel.messages) ) - dat+="No feed messages found in channel...
" - else - for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
" - dat+="[(MESSAGE.body == "\[REDACTED\]") ? ("Undo story censorship") : ("Censor story")] - [(MESSAGE.author == "\[REDACTED\]") ? ("Undo Author Censorship") : ("Censor message Author")]
" - dat+="
Back" - if(13) - dat+="[src.viewing_channel.channel_name]: \[ created by: [src.viewing_channel.author] \]
" - dat+="Channel messages listed below. If you deem them dangerous to the station, you can Bestow a D-Notice upon the channel.
" - if(src.viewing_channel.censored) - dat+="ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a Weyland-Yutani D-Notice.
" - dat+="No further feed story additions are allowed while the D-Notice is in effect.

" - else - if(!length(src.viewing_channel.messages) ) - dat+="No feed messages found in channel...
" - else - for(var/datum/feed_message/MESSAGE in src.viewing_channel.messages) - dat+="-[MESSAGE.body]
\[[MESSAGE.message_type] by [MESSAGE.author]\]
" - - dat+="
Back" - if(14) - dat+="Wanted Issue Handler:" - var/wanted_already = 0 - var/end_param = 1 - if(GLOB.news_network.wanted_issue) - wanted_already = 1 - end_param = 2 - - if(wanted_already) - dat+="
A wanted issue is already in Feed Circulation. You can edit or cancel it below.
" - dat+="
" - dat+="Criminal Name: [src.channel_name]
" - dat+="Description: [src.msg]
" - dat+="Attach Photo: [(src.photo ? "Photo Attached" : "No Photo")]
" - if(wanted_already) - 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")]" - if(wanted_already) - dat+="
Take down Issue" - dat+="
Cancel" - if(15) - dat+="Wanted issue for [src.channel_name] is now in Network Circulation.

" - dat+="
Return
" - if(16) - dat+="ERROR: Wanted Issue rejected by Network.

" - if(src.channel_name=="" || src.channel_name == "\[REDACTED\]") - dat+="�Invalid name for person wanted.
" - if(src.scanned_user=="Unknown") - dat+="�Issue author unverified.
" - if(src.msg == "" || src.msg == "\[REDACTED\]") - dat+="�Invalid description.
" - dat+="
Return
" - if(17) - dat+="Wanted Issue successfully deleted from Circulation
" - dat+="
Return
" - if(18) - 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(GLOB.news_network.wanted_issue.img) - usr << browse_rsc(GLOB.news_network.wanted_issue.img, "tmp_photow.png") - dat+="
" - else - dat+="None" - dat+="

Back
" - if(19) - dat+="Wanted issue for [src.channel_name] successfully edited.

" - dat+="
Return
" - if(20) - dat+="Printing successful. Please receive your newspaper from the bottom of the machine.

" - dat+="Return" - if(21) - dat+="Unable to print newspaper. Insufficient paper. Please notify maintenance personnel to refill machine storage.

" - dat+="Return" - else - dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" - - - human_or_robot_user << browse(dat, "window=newscaster_main;size=400x600") - onclose(human_or_robot_user, "newscaster_main") - - /*if(src.isbroken) //debugging shit - return - src.hitstaken++ - if(src.hitstaken==3) - src.isbroken = TRUE - src.update_icon()*/ - - -/obj/structure/machinery/newscaster/Topic(href, href_list) - if(..()) - return - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (isRemoteControlling(usr))) - usr.set_interaction(src) - if(href_list["set_channel_name"]) - src.channel_name = strip_html(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")) - while (findtext(src.channel_name," ") == 1) - src.channel_name = copytext(src.channel_name,2,length(src.channel_name)+1) - src.updateUsrDialog() - //src.update_icon() - - else if(href_list["set_channel_lock"]) - src.c_locked = !src.c_locked - src.updateUsrDialog() - //src.update_icon() - - 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 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 GLOB.news_network.network_channels) - if(FC.channel_name == src.channel_name) - check = 1 - break - if(src.channel_name == "" || src.channel_name == "\[REDACTED\]" || src.scanned_user == "Unknown" || check || (src.scanned_user in existing_authors) ) - src.screen=7 - else - var/choice = alert("Please confirm Feed channel creation","Network Channel Handler","Confirm","Cancel") - if(choice=="Confirm") - var/datum/feed_channel/newChannel = new /datum/feed_channel - newChannel.channel_name = src.channel_name - newChannel.author = src.scanned_user - newChannel.locked = c_locked - GLOB.news_network.network_channels += newChannel //Adding channel to the global network - src.screen=5 - src.updateUsrDialog() - //src.update_icon() - - 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 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 )) - src.updateUsrDialog() - - else if(href_list["set_new_message"]) - src.msg = strip_html(input(usr, "Write your Feed story", "Network Channel Handler", "")) - while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,length(src.msg)+1) - src.updateUsrDialog() - - else if(href_list["set_attachment"]) - AttachPhoto(usr) - src.updateUsrDialog() - - else if(href_list["submit_new_message"]) - if(src.msg =="" || src.msg=="\[REDACTED\]" || src.scanned_user == "Unknown" || src.channel_name == "" ) - src.screen=6 - else - var/datum/feed_message/newMsg = new /datum/feed_message - newMsg.author = src.scanned_user - newMsg.body = src.msg - if(photo) - newMsg.img = photo.img - 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 GLOB.allCasters) - NEWSCASTER.newsAlert(src.channel_name) - - src.updateUsrDialog() - - else if(href_list["create_channel"]) - src.screen=2 - src.updateUsrDialog() - - else if(href_list["create_feed_story"]) - src.screen=3 - src.updateUsrDialog() - - else if(href_list["menu_paper"]) - src.screen=8 - src.updateUsrDialog() - else if(href_list["print_paper"]) - if(!src.paper_remaining) - src.screen=21 - else - src.print_paper() - src.screen = 20 - src.updateUsrDialog() - - else if(href_list["menu_censor_story"]) - src.screen=10 - src.updateUsrDialog() - - else if(href_list["menu_censor_channel"]) - src.screen=11 - src.updateUsrDialog() - - else if(href_list["menu_wanted"]) - var/already_wanted = 0 - if(GLOB.news_network.wanted_issue) - already_wanted = 1 - - if(already_wanted) - src.channel_name = GLOB.news_network.wanted_issue.author - src.msg = GLOB.news_network.wanted_issue.body - src.screen = 14 - src.updateUsrDialog() - - else if(href_list["set_wanted_name"]) - src.channel_name = strip_html(input(usr, "Provide the name of the Wanted person", "Network Security Handler", "")) - while (findtext(src.channel_name," ") == 1) - src.channel_name = copytext(src.channel_name,2,length(src.channel_name)+1) - src.updateUsrDialog() - - else if(href_list["set_wanted_desc"]) - src.msg = strip_html(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", "")) - while (findtext(src.msg," ") == 1) - src.msg = copytext(src.msg,2,length(src.msg)+1) - src.updateUsrDialog() - - else if(href_list["submit_wanted"]) - var/input_param = text2num(href_list["submit_wanted"]) - if(src.msg == "" || src.channel_name == "" || src.scanned_user == "Unknown") - src.screen = 16 - else - var/choice = alert("Please confirm Wanted Issue [(input_param==1) ? ("creation.") : ("edit.")]","Network Security Handler","Confirm","Cancel") - if(choice=="Confirm") - if(input_param==1) //If input_param == 1 we're submitting a new wanted issue. At 2 we're just editing an existing one. See the else below - var/datum/feed_message/WANTED = new /datum/feed_message - WANTED.author = src.channel_name - WANTED.body = src.msg - WANTED.backup_author = src.scanned_user //I know, a bit wacky - if(photo) - WANTED.img = photo.img - 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(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 - 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) - GLOB.news_network.wanted_issue.img = photo.img - src.screen = 19 - - src.updateUsrDialog() - - else if(href_list["cancel_wanted"]) - 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") - GLOB.news_network.wanted_issue = null - for(var/obj/structure/machinery/newscaster/NEWSCASTER in GLOB.allCasters) - NEWSCASTER.update_icon() - src.screen=17 - src.updateUsrDialog() - - else if(href_list["view_wanted"]) - src.screen=18 - src.updateUsrDialog() - else if(href_list["censor_channel_author"]) - var/datum/feed_channel/FC = locate(href_list["censor_channel_author"]) - if(FC.is_admin_channel) - alert("This channel was created by a Weyland-Yutani Officer. You cannot censor it.","Ok") - return - if(FC.author != "\[REDACTED\]") - FC.backup_author = FC.author - FC.author = "\[REDACTED\]" - else - FC.author = FC.backup_author - src.updateUsrDialog() - - else if(href_list["censor_channel_story_author"]) - var/datum/feed_message/MSG = locate(href_list["censor_channel_story_author"]) - if(MSG.is_admin_message) - alert("This message was created by a Weyland-Yutani Officer. You cannot censor its author.","Ok") - return - if(MSG.author != "\[REDACTED\]") - MSG.backup_author = MSG.author - MSG.author = "\[REDACTED\]" - else - MSG.author = MSG.backup_author - src.updateUsrDialog() - - else if(href_list["censor_channel_story_body"]) - var/datum/feed_message/MSG = locate(href_list["censor_channel_story_body"]) - if(MSG.is_admin_message) - alert("This channel was created by a Weyland-Yutani Officer. You cannot censor it.","Ok") - return - if(MSG.img != null) - MSG.backup_img = MSG.img - MSG.img = null - else - MSG.img = MSG.backup_img - if(MSG.body != "\[REDACTED\]") - MSG.backup_body = MSG.body - MSG.body = "\[REDACTED\]" - else - MSG.body = MSG.backup_body - src.updateUsrDialog() - - else if(href_list["pick_d_notice"]) - var/datum/feed_channel/FC = locate(href_list["pick_d_notice"]) - src.viewing_channel = FC - src.screen=13 - src.updateUsrDialog() - - else if(href_list["toggle_d_notice"]) - var/datum/feed_channel/FC = locate(href_list["toggle_d_notice"]) - if(FC.is_admin_channel) - alert("This channel was created by a Weyland-Yutani Officer. You cannot place a D-Notice upon it.","Ok") - return - FC.censored = !FC.censored - src.updateUsrDialog() - - else if(href_list["view"]) - src.screen=1 - src.updateUsrDialog() - - else if(href_list["setScreen"]) //Brings us to the main menu and resets all fields~ - src.screen = text2num(href_list["setScreen"]) - if (src.screen == 0) - src.scanned_user = "Unknown"; - msg = ""; - src.c_locked=0; - channel_name=""; - src.viewing_channel = null - src.updateUsrDialog() - - else if(href_list["show_channel"]) - var/datum/feed_channel/FC = locate(href_list["show_channel"]) - src.viewing_channel = FC - src.screen = 9 - src.updateUsrDialog() - - else if(href_list["pick_censor_channel"]) - var/datum/feed_channel/FC = locate(href_list["pick_censor_channel"]) - src.viewing_channel = FC - src.screen = 12 - src.updateUsrDialog() - - else if(href_list["refresh"]) - src.updateUsrDialog() - - -/obj/structure/machinery/newscaster/attackby(obj/item/I as obj, mob/user as mob) - - if (src.isbroken) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 25, 1) - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] further abuses the shattered [src.name].", SHOW_MESSAGE_VISIBLE) - else - if(!(I.flags_item & NOBLUDGEON) && I.force) - if(I.force <15) - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] hits the [src.name] with the [I.name] with no visible effect.", SHOW_MESSAGE_VISIBLE) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) - else - src.hitstaken++ - if(src.hitstaken==3) - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] smashes the [src.name]!", SHOW_MESSAGE_VISIBLE) - src.isbroken=1 - playsound(src.loc, 'sound/effects/Glassbr3.ogg', 50, 1) - else - for (var/mob/O in hearers(5, src.loc)) - O.show_message("[user.name] forcefully slams the [src.name] with the [I.name]!", SHOW_MESSAGE_VISIBLE) - playsound(src.loc, 'sound/effects/Glasshit.ogg', 25, 1) - else - to_chat(user, "This does nothing.") - src.update_icon() - -/obj/structure/machinery/newscaster/attack_remote(mob/user as mob) - return src.attack_hand(user) //or maybe it'll have some special functions? No idea. - -/obj/structure/machinery/newscaster/proc/AttachPhoto(mob/user as mob) - if(photo) - if(!isRemoteControlling(user)) - photo.forceMove(loc) - user.put_in_inactive_hand(photo) - photo = null - var/obj/item/photo/PH = user.get_active_hand() - if(istype(PH)) - if(user.drop_inv_item_to_loc(photo, src)) - photo = PH - - -//######################################################################################################################## -//###################################### NEWSPAPER! ###################################################################### -//######################################################################################################################## /obj/item/newspaper name = "newspaper" @@ -745,191 +15,3 @@ GLOBAL_LIST_INIT_TYPED(allCasters, /obj/structure/machinery/newscaster, list()) icon_state = "newspaper" w_class = SIZE_TINY //Let's make it fit in trashbags! attack_verb = list("bapped") - var/screen = 0 - var/pages = 0 - var/curr_page = 0 - var/list/datum/feed_channel/news_content = list() - var/datum/feed_message/important_message = null - var/scribble="" - var/scribble_page = null - -/obj/item/newspaper/attack_self(mob/user as mob) - ..() - if(!ishuman(user)) - to_chat(user, "The paper is full of intelligible symbols!") - return - - var/mob/living/carbon/human/human_user = user - var/dat - src.pages = 0 - switch(screen) - if(0) //Cover - dat+="
The Griffon
" - dat+="
Weyland-Yutani-standard newspaper, for use on Weyland-Yutani� Space Facilities

" - if(!length(src.news_content)) - if(src.important_message) - dat+="Contents:
" - else - dat+="Other than the title, the rest of the newspaper is unprinted..." - else - dat+="Contents:
" - if(scribble_page==curr_page) - dat+="
There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "
Next Page
Done reading
" - if(1) // X channel pages inbetween. - for(var/datum/feed_channel/NP in src.news_content) - src.pages++ //Let's get it right again. - var/datum/feed_channel/C = src.news_content[src.curr_page] - dat+="[C.channel_name] \[created by: [C.author]\]

" - if(C.censored) - dat+="This channel was deemed dangerous to the general welfare of the station and therefore marked with a D-Notice. Its contents were not transferred to the newspaper at the time of printing." - else - if(!length(C.messages)) - dat+="No Feed stories stem from this channel..." - else - dat+="" - if(scribble_page==curr_page) - dat+="
There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "

Previous Page
Next Page
" - if(2) //Last page - for(var/datum/feed_channel/NP in src.news_content) - src.pages++ - if(src.important_message!=null) - dat+="
Wanted Issue:


" - dat+="Criminal name: [important_message.author]
" - dat+="Description: [important_message.body]
" - dat+="Photo:: " - if(important_message.img) - user << browse_rsc(important_message.img, "tmp_photow.png") - dat+="
" - else - dat+="None" - else - dat+="Apart from some uninteresting Classified ads, there's nothing on this page..." - if(scribble_page==curr_page) - dat+="
There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "
Previous Page
" - else - dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" - - dat+="

[src.curr_page+1]
" - human_user << browse(dat, "window=newspaper_main;size=300x400") - onclose(human_user, "newspaper_main") - - -/obj/item/newspaper/Topic(href, href_list) - var/mob/living/U = usr - ..() - if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) )) - U.set_interaction(src) - if(href_list["next_page"]) - if(curr_page==src.pages+1) - return //Don't need that at all, but anyway. - if(src.curr_page == src.pages) //We're at the middle, get to the end - src.screen = 2 - else - if(curr_page == 0) //We're at the start, get to the middle - src.screen=1 - src.curr_page++ - playsound(src.loc, "pageturn", 15, 1) - - else if(href_list["prev_page"]) - if(curr_page == 0) - return - if(curr_page == 1) - src.screen = 0 - - else - if(curr_page == src.pages+1) //we're at the end, let's go back to the middle. - src.screen = 1 - src.curr_page-- - playsound(src.loc, "pageturn", 15, 1) - - if (istype(src.loc, /mob)) - src.attack_self(src.loc) - - -/obj/item/newspaper/attackby(obj/item/W as obj, mob/user as mob) - if(HAS_TRAIT(W, TRAIT_TOOL_PEN)) - if(src.scribble_page == src.curr_page) - to_chat(user, "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?") - else - var/s = strip_html( input(user, "Write something", "Newspaper", "") ) - s = strip_html(s) - if (!s) - return - if (!in_range(src, usr) && src.loc != usr) - return - src.scribble_page = src.curr_page - src.scribble = s - src.attack_self(user) - return - - -////////////////////////////////////helper procs - - -/obj/structure/machinery/newscaster/proc/scan_user(mob/living/user as mob) - if(istype(user,/mob/living/carbon/human)) //User is a human - var/mob/living/carbon/human/human_user = user - if(human_user.wear_id) //Newscaster scans you - if(istype(human_user.wear_id, /obj/item/card/id) ) - var/obj/item/card/id/ID = human_user.wear_id - src.scanned_user ="[ID.registered_name] ([ID.assignment])" - else - src.scanned_user ="Unknown" - else - src.scanned_user ="Unknown" - else - var/mob/living/silicon/ai_user = user - src.scanned_user = "[ai_user.name] ([ai_user.job])" - - -/obj/structure/machinery/newscaster/proc/print_paper() - var/obj/item/newspaper/NEWSPAPER = new /obj/item/newspaper - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - NEWSPAPER.news_content += FC - if(GLOB.news_network.wanted_issue) - NEWSPAPER.important_message = GLOB.news_network.wanted_issue - NEWSPAPER.forceMove(get_turf(src)) - src.paper_remaining-- - return - -//Removed for now so these aren't even checked every tick. Left this here in-case Agouri needs it later. -///obj/structure/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not -// return //bode well with a newscaster network of 10+ machines. Let's just return it, as it's added in the machines list. - -/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(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() - spawn(30 SECONDS) - src.alert = 0 - src.update_icon() - playsound(src.loc, 'sound/machines/twobeep.ogg', 25, 1) - else - 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/rechargestation.dm b/code/game/machinery/rechargestation.dm index e87bb56da489..d86a5c0e30d0 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -8,14 +8,23 @@ use_power = USE_POWER_IDLE idle_power_usage = 50 active_power_usage = 50 + can_buckle = TRUE + /// the borg inside var/mob/living/occupant = null - var/max_internal_charge = 15000 // Two charged borgs in a row with default cell - var/current_internal_charge = 15000 // Starts charged, to prevent power surges on round start - var/charging_cap_active = 25000 // Active Cap - When cyborg is inside - var/charging_cap_passive = 2500 // Passive Cap - Recharging internal capacitor when no cyborg is inside - var/icon_update_tick = 0 // Used to update icon only once every 10 ticks + /// Two charged borgs in a row with default cell + var/max_internal_charge = 15000 + /// Starts charged, to prevent power surges on round start + var/current_internal_charge = 15000 + /// Active Cap - When cyborg is inside + var/charging_cap_active = 25000 + /// Passive Cap - Recharging internal capacitor when no cyborg is inside + var/charging_cap_passive = 2500 + /// Used to update icon only once every 10 ticks + var/icon_update_tick = 0 + /// implants to not remove var/known_implants = list(/obj/item/implant/chem, /obj/item/implant/death_alarm, /obj/item/implant/loyalty, /obj/item/implant/tracking, /obj/item/implant/neurostim) - can_buckle = TRUE + ///stun time upon exiting, if at all + var/exit_stun = 2 /obj/structure/machinery/recharge_station/Initialize(mapload, ...) @@ -183,18 +192,23 @@ /obj/structure/machinery/recharge_station/proc/go_out() - if(!( src.occupant )) + if(!occupant) return - //for(var/obj/O in src) - // O.forceMove(src.loc) - if (src.occupant.client) - src.occupant.client.eye = src.occupant.client.mob - src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.forceMove(loc) - src.occupant = null + var/mob/living/synth = occupant + + if(synth.client) + synth.client.eye = synth.client.mob + synth.client.perspective = MOB_PERSPECTIVE + + synth.forceMove(loc) + if(exit_stun) + synth.Stun(exit_stun) //Action delay when going out of a closet + if(synth.mobility_flags & MOBILITY_MOVE) + synth.visible_message(SPAN_WARNING("[synth] suddenly gets out of [src]!"), SPAN_WARNING("You get out of [src] and get your bearings!")) + + occupant = null update_icon() update_use_power(USE_POWER_IDLE) - return /obj/structure/machinery/recharge_station/verb/move_eject() set category = "Object" diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index c97a28932262..459eddc4a544 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -155,7 +155,7 @@ toggle_state(user) // just flip dat switch /obj/structure/machinery/telecomms/relay/preset/tower/all - freq_listening = list() + freq_listening = list(UNIVERSAL_FREQ) /obj/structure/machinery/telecomms/relay/preset/tower/faction name = "UPP telecommunications relay" @@ -267,8 +267,8 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) to_chat(user, SPAN_WARNING("\The [src.name] needs repairs to have frequencies added to its software!")) return var/choice = tgui_input_list(user, "What do you wish to do?", "TC-3T comms tower", list("Wipe communication frequencies", "Add your faction's frequencies")) - if(choice == "Wipe frequencies") - freq_listening = null + if(choice == "Wipe communication frequencies") + freq_listening.Cut() to_chat(user, SPAN_NOTICE("You wipe the preexisting frequencies from \the [src].")) return else if(choice == "Add your faction's frequencies") @@ -277,12 +277,16 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) switch(user.faction) if(FACTION_SURVIVOR) freq_listening |= COLONY_FREQ + if(FACTION_MARINE in user.faction_group) //FORECON survivors + freq_listening |= SOF_FREQ if(FACTION_CLF) freq_listening |= CLF_FREQS if(FACTION_UPP) freq_listening |= UPP_FREQS if(FACTION_WY,FACTION_PMC) freq_listening |= PMC_FREQS + if(FACTION_TWE) + freq_listening |= RMC_FREQ if(FACTION_YAUTJA) to_chat(user, SPAN_WARNING("You decide to leave the human machine alone.")) return diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 8b8b12dfd170..7652ac601f56 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -26,7 +26,7 @@ GLOBAL_LIST_EMPTY_TYPED(telecomms_list, /obj/structure/machinery/telecomms) var/traffic = 0 // value increases as traffic increases var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed) var/list/autolinkers = list() // list of text/number values to link with - var/list/freq_listening = list() // list of frequencies to tune into: if none, will listen to all + var/list/freq_listening = list(UNIVERSAL_FREQ) // list of frequencies to tune into: if universal frequency is included, will listen to all var/machinetype = 0 // just a hacky way of preventing alike machines from pairing var/delay = 10 // how many process() ticks to delay per heat var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub) diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm index 2ba1ac089826..4f825030d627 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -900,7 +900,7 @@ GLOBAL_LIST_EMPTY(vending_products) for(var/list/vendspec in listed_products) var/multiplier = vendspec[2] if(multiplier > 0) - var/awarded = round(vendspec[2] * scale) // Starting amount + var/awarded = round(vendspec[2] * scale, 1) // 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 @@ -920,8 +920,8 @@ GLOBAL_LIST_EMPTY(vending_products) 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 + var/projected_max_amount = round(new_scale * multiplier, 1) // How much we would have had total now in total + var/amount_to_add = round(projected_max_amount - previous_max_amount, 1) // Rounding just in case if(amount_to_add > 0) metadata[2] += amount_to_add vendspec[2] += amount_to_add diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm index 0a7b85cae7e2..92ba81af4d94 100644 --- a/code/game/machinery/vending/vending_types.dm +++ b/code/game/machinery/vending/vending_types.dm @@ -200,25 +200,30 @@ /obj/item/storage/fancy/cigarettes/arcturian_ace = 15, /obj/item/storage/fancy/cigarettes/emeraldgreen = 15, /obj/item/storage/fancy/cigarettes/wypacket = 15, + /obj/item/storage/fancy/cigarettes/trading_card = 15, /obj/item/storage/fancy/cigarettes/lady_finger = 15, /obj/item/storage/fancy/cigarettes/blackpack = 10, /obj/item/storage/fancy/cigar/tarbacks = 5, + /obj/item/storage/box/matches = 10, /obj/item/tool/lighter/random = 20, /obj/item/tool/lighter/zippo = 5, + ) prices = list( /obj/item/storage/fancy/cigarettes/kpack = 40, /obj/item/storage/fancy/cigarettes/arcturian_ace = 25, /obj/item/storage/fancy/cigarettes/emeraldgreen = 35, - /obj/item/storage/fancy/cigarettes/wypacket = 35, + /obj/item/storage/fancy/cigarettes/wypacket = 30, + /obj/item/storage/fancy/cigarettes/trading_card = 35, /obj/item/storage/fancy/cigarettes/lady_finger = 30, /obj/item/storage/fancy/cigarettes/blackpack = 75, /obj/item/storage/fancy/cigar/tarbacks = 35, /obj/item/storage/box/matches = 1, /obj/item/tool/lighter/random = 10, /obj/item/tool/lighter/zippo = 25, + ) /obj/structure/machinery/vending/security @@ -407,7 +412,7 @@ name = "\improper Rec-Vend" desc = "Contains Weyland-Yutani approved recreational items, like Walkmans and Cards." icon_state = "walkman" - product_ads = "The only place to have fun in the entire Marine Corps!;You'll find no better music from here to Arcturus!;Instructions not included with decks of cards!;No volume controls - you don't need them!;All products responsibly made by people having just as much fun as you will be!" + product_ads = "The only place to have fun in the entire Marine Corps!;You'll find no better music from here to Arcturus!;Instructions not included with decks of cards!;No volume controls - you don't need them!;All products responsibly made by people having just as much fun as you will be!;Say goodbye to the lucky strike military tobacco monopoly, with the new Weyland Yutani Military Trading Card Gold cigarette pack!" vend_delay = 0.5 SECONDS idle_power_usage = 200 @@ -436,6 +441,10 @@ /obj/item/tool/pen/blue = 10, /obj/item/tool/pen/red = 10, /obj/item/tool/pen/fountain = 3, + /obj/item/storage/fancy/cigarettes/trading_card = 20, + /obj/item/storage/fancy/trading_card = 20, + /obj/item/toy/trading_card = 50, + ) contraband = list(/obj/item/toy/sword = 2) @@ -463,6 +472,10 @@ /obj/item/tool/pen/blue = 2, /obj/item/tool/pen/red = 2, /obj/item/tool/pen/fountain = 30, + /obj/item/storage/fancy/cigarettes/trading_card = 30, + /obj/item/storage/fancy/trading_card = 20, + /obj/item/toy/trading_card = 5, + ) product_type = VENDOR_PRODUCT_TYPE_RECREATIONAL diff --git a/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm b/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm new file mode 100644 index 000000000000..b0894ca2a5a2 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/crew/combat_correspondent.dm @@ -0,0 +1,51 @@ +//------------ CC CLOTHING VENDOR--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_combat_correspondent, list( + list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Essential Reporter's Set", 0, /obj/effect/essentials_set/cc, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + list("Portable Press Fax Machine", 0, /obj/item/device/fax_backpack, CIVILIAN_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + list("Press Broadcasting Camera", 0, /obj/item/device/camera/broadcasting, CIVILIAN_CAN_BUY_UTILITY, VENDOR_ITEM_RECOMMENDED), + list("Leather Satchel", 0, /obj/item/storage/backpack/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + + list("UNIFORM (CHOOSE 1)", 0, null, null, null), + list("Black Uniform", 0, /obj/item/clothing/under/marine/reporter/black, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Orange Uniform", 0, /obj/item/clothing/under/marine/reporter/orange, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Red Uniform", 0, /obj/item/clothing/under/marine/reporter/red, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + + list("ARMOR (CHOOSE 1)", 0, null, null, null), + list("Combat Correspondent's Armor", 0, /obj/item/clothing/suit/storage/marine/light/reporter, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("Blue Vest", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/blue, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Black Vest", 0, /obj/item/clothing/suit/storage/hazardvest/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Black Coat", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Green Coat", 0, /obj/item/clothing/suit/storage/jacket/marine/reporter/green, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + + list("HELMET (CHOOSE 1)", 0, null, null, null), + list("Combat Correspondent's Helmet", 0, /obj/item/clothing/head/helmet/marine/reporter, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), + list("Combat Correspondent's Cap", 0, /obj/item/clothing/head/cmcap/reporter, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Fedora", 0, /obj/item/clothing/head/fedora, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + + list("REFILLS", 0, null, null, null), + list("Camera", 10, /obj/item/device/camera, null, VENDOR_ITEM_REGULAR), + list("Camera Film", 5, /obj/item/device/camera_film, null, VENDOR_ITEM_REGULAR), + list("Toner", 5, /obj/item/device/toner, null, VENDOR_ITEM_REGULAR), + list("Regulation Tapes", 15, /obj/item/storage/box/tapes, null, VENDOR_ITEM_REGULAR), + list("Paper Bin", 10, /obj/item/paper_bin/uscm, null, VENDOR_ITEM_REGULAR), + )) + +/obj/structure/machinery/cm_vending/clothing/combat_correspondent + name = "\improper ColMarTech Combat Correspondent Equipment Rack" + desc = "An automated rack hooked up to a colossal storage of Reporter standard-issue equipment." + req_access = list(ACCESS_PRESS) + vendor_role = list(JOB_COMBAT_REPORTER) + +/obj/structure/machinery/cm_vending/clothing/combat_correspondent/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_combat_correspondent + +/obj/effect/essentials_set/cc + spawned_gear_list = list( + /obj/item/device/flashlight, + /obj/item/tool/pen, + /obj/item/device/binoculars, + /obj/item/notepad, + /obj/item/device/taperecorder, + ) diff --git a/code/game/machinery/vending/vendor_types/crew/engineering.dm b/code/game/machinery/vending/vendor_types/crew/engineering.dm new file mode 100644 index 000000000000..9d5a809e52f7 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/crew/engineering.dm @@ -0,0 +1,74 @@ +//------------ MT CLOTHING VENDOR--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_maintenance_technician, list( + list("MAINTENANCE SET (MANDATORY)", 0, null, null, null), + list("Essential Maintenance Set", 0, /obj/effect/essentials_set/maintenance, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + + list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Insulated Gloves", 0, /obj/item/clothing/gloves/yellow, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), + list("Headset", 0, /obj/item/device/radio/headset/almayer/mt, MARINE_CAN_BUY_EAR, 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("HELMET (CHOOSE 1)", 0, null, null, null), + list("Beret, Engineering", 0, /obj/item/clothing/head/beret/eng, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("White Hardhat", 0, /obj/item/clothing/head/hardhat/white, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Orange Hardhat", 0, /obj/item/clothing/head/hardhat/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Blue Hardhat", 0, /obj/item/clothing/head/hardhat/dblue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Welding Helmet", 0, /obj/item/clothing/head/welding, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Black Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/black, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Blue Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/blue, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Orange Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + list("Yellow Hazard Vest", 0, /obj/item/clothing/suit/storage/hazardvest/yellow, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), + + list("BACKPACK (CHOOSE 1)", 0, null, null, null), + list("Technician Backpack", 0, /obj/item/storage/backpack/marine/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Technician Satchel", 0, /obj/item/storage/backpack/marine/satchel/tech, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Technician Welderpack", 0, /obj/item/storage/backpack/marine/engineerpack, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Technician Welder-Satchel", 0, /obj/item/storage/backpack/marine/engineerpack/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + list("Technician Welder Chestrig", 0, /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + + 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_REGULAR), + list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_MANDATORY), + + list("POUCHES (CHOOSE 2)", 0, null, null, null), + list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, 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_RECOMMENDED), + list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, 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("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, 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("Rebreather", 0, /obj/item/clothing/mask/rebreather, MARINE_CAN_BUY_MASK, 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_RECOMMENDED), + list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + )) + +/obj/structure/machinery/cm_vending/clothing/maintenance_technician + name = "\improper ColMarTech Maintenance Technician Equipment Rack" + desc = "An automated rack hooked up to a colossal storage of Maintenance Technician standard-issue equipment." + req_access = list(ACCESS_MARINE_ENGINEERING) + vendor_role = list(JOB_MAINT_TECH) + +/obj/structure/machinery/cm_vending/clothing/maintenance_technician/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_maintenance_technician + +/obj/effect/essentials_set/maintenance + spawned_gear_list = list( + /obj/item/device/lightreplacer, + /obj/item/device/demo_scanner, + /obj/item/storage/bag/trash, + /obj/item/storage/toolbox/mechanical, + /obj/item/device/flashlight, + ) diff --git a/code/game/machinery/vending/vendor_types/crew/medical.dm b/code/game/machinery/vending/vendor_types/crew/medical.dm index 29838f3b57d0..af519a908ee6 100644 --- a/code/game/machinery/vending/vendor_types/crew/medical.dm +++ b/code/game/machinery/vending/vendor_types/crew/medical.dm @@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_doctor, list( list("UNIFORM (CHOOSE 1)", 0, null, null, null), list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("SUIT (CHOOSE 1)", 0, null, null, null), @@ -106,7 +107,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_nurse, list( list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), list("UNIFORM (CHOOSE 1)", 0, null, null, null), - list("Medical Nurse Scrubs", 0, /obj/item/clothing/under/rank/medical/nurse, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), @@ -178,6 +179,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list( list("Researcher Uniform", 0, /obj/item/clothing/under/marine/officer/researcher, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("SUIT (CHOOSE 1)", 0, null, null, null), 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 96e7bf058924..a5d3cbe85b01 100644 --- a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm +++ b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm @@ -162,6 +162,9 @@ GLOBAL_LIST_INIT(cm_vending_clothing_chief_engineer, list( list("M41A Pulse Rifle MK2", 0, /obj/item/storage/box/guncase/m41a, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR), list("M240 Incinerator Unit", 0, /obj/item/storage/box/guncase/flamer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR), + list("Spare Equipment", 0, null, null, null), + list("Technician's Headset", 15, /obj/item/device/radio/headset/almayer/mt, null, VENDOR_ITEM_REGULAR), + )) @@ -228,6 +231,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list( list("Doctor Uniform", 0, /obj/item/clothing/under/rank/medical, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Green Scrubs", 0, /obj/item/clothing/under/rank/medical/green, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/blue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + list("Light Blue Scrubs", 0, /obj/item/clothing/under/rank/medical/lightblue, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Purple Scrubs", 0, /obj/item/clothing/under/rank/medical/purple, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("SUIT (CHOOSE 1)", 0, null, null, null), @@ -287,6 +291,10 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list( 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_REGULAR), list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + + list("Spare Equipment", 0, null, null, null), + list("Doctor's Headset", 15, /obj/item/device/radio/headset/almayer/doc, null, VENDOR_ITEM_REGULAR), + list("Researcher's Headset", 15, /obj/item/device/radio/headset/almayer/research, 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 2395d572bad7..c3fa77be3798 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -183,6 +183,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("USCM UNIFORMS", 0, null, null, null), list("Medical Scrubs, Blue", 12, /obj/item/clothing/under/rank/medical/blue, null, VENDOR_ITEM_REGULAR), + list("Medical Scrubs, Light Blue", 0, /obj/item/clothing/under/rank/medical/lightblue, null, VENDOR_ITEM_REGULAR), list("Medical Scrubs, Green", 12, /obj/item/clothing/under/rank/medical/green, null, VENDOR_ITEM_REGULAR), list("Medical Scrubs, Purple", 12, /obj/item/clothing/under/rank/medical/purple, null, VENDOR_ITEM_REGULAR), list("Medical Scrubs, White", 12, /obj/item/clothing/under/rank/medical, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index 1a9ec9156e20..9ce8390095e8 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -409,6 +409,7 @@ list("Engineering Radio Encryption Key", 5, /obj/item/device/encryptionkey/engi, VENDOR_ITEM_REGULAR), list("Intel Radio Encryption Key", 5, /obj/item/device/encryptionkey/intel, VENDOR_ITEM_REGULAR), list("JTAC Radio Encryption Key", 5, /obj/item/device/encryptionkey/jtac, VENDOR_ITEM_REGULAR), + list("Medical Radio Encryption Key", 5, /obj/item/device/encryptionkey/med, VENDOR_ITEM_REGULAR), list("Sentry Gun Network Encryption Key", 8, /obj/item/device/encryptionkey/sentry_laptop, VENDOR_ITEM_REGULAR), list("Marine Radio Headset", 5, /obj/item/device/radio/headset/almayer, VENDOR_ITEM_REGULAR), list("Supply Radio Encryption Key", 5, /obj/item/device/encryptionkey/req, VENDOR_ITEM_REGULAR), 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 6d015c203bd7..95864404f4e8 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 @@ -36,16 +36,22 @@ GLOBAL_LIST_INIT(cm_vending_gear_engi, list( list("M20 Mine Box (x4 mines)", 18, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), list("M40 MFHS Metal Foam Grenade", 5, /obj/item/explosive/grenade/metal_foam, null, VENDOR_ITEM_REGULAR), - list("AMMUNITION", 0, null, null, null), + list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("ARMORS", 0, null, null, null), 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("M4 Pattern Armor", 16, /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), 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 6c7cbf2db740..0039d5b03250 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,7 +16,7 @@ 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/medium/rto, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 16, /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), @@ -79,12 +79,20 @@ GLOBAL_LIST_INIT(cm_vending_gear_leader, list( list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 2, /obj/item/roller, null, VENDOR_ITEM_REGULAR), - list("SPECIAL AMMUNITION", 0, null, null, null), + list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + + list("SPECIAL AMMUNITION", 0, null, null, null), list("M240 Incinerator Tank (Napthal)", 3, /obj/item/ammo_magazine/flamer_tank, null, VENDOR_ITEM_REGULAR), list("M240 Incinerator Tank (B-Gel)", 3, /obj/item/ammo_magazine/flamer_tank/gellied, null, VENDOR_ITEM_REGULAR), 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 6b4954ee5e92..b29b528ded13 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 @@ -58,16 +58,22 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 20, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR), list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), - list("AMMUNITION", 0, null, null, null), + list("PRIMARY AMMUNITION", 0, null, null, null), list("M4RA AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), list("M39 AP Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), list("M39 Extended Magazine (10x20mm)", 6, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 6, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + list("SIDEARM AMMUNITION", 0, null, null, null), + list("M44 Heavy Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), + list("M4A3 HP Magazine", 3, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), + list("M4A3 AP Magazine", 3, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("VP78 Magazine", 3, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), + list("ARMORS", 0, null, null, null), - 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("M3 B12 Pattern Marine Armor", 24, /obj/item/clothing/suit/storage/marine/medium/leader, null, VENDOR_ITEM_REGULAR), + list("M4 Pattern Armor", 16, /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), 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 27c041312765..2736de3a981d 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 @@ -130,6 +130,7 @@ list("Technician Backpack", round(scale * 15), /obj/item/storage/backpack/marine/tech, VENDOR_ITEM_REGULAR), list("Medical Backpack", round(scale * 15), /obj/item/storage/backpack/marine/medic, VENDOR_ITEM_REGULAR), list("USCM Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel, VENDOR_ITEM_REGULAR), + list("USCM Chestrig", round(scale * 15), /obj/item/storage/backpack/marine/satchel/chestrig, VENDOR_ITEM_REGULAR), list("USCM Technical Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel/tech, VENDOR_ITEM_REGULAR), list("USCM Technical Chestrig", round(scale * 15), /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, VENDOR_ITEM_REGULAR), list("Medical Satchel", round(scale * 15), /obj/item/storage/backpack/marine/satchel/medic, VENDOR_ITEM_REGULAR), 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 15661cc4b661..0b980fc31960 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 @@ -67,23 +67,28 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 15, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR), list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), - list("AMMUNITION", 0, null, null, null), + 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), list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + + list("SIDEARM AMMUNITION", 0, null, null, null), 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("ARMORS", 0, null, null, null), 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("M4 Pattern Armor", 20, /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), list("Brown Webbing Vest", 15, /obj/item/clothing/accessory/storage/black_vest/brown_vest, null, VENDOR_ITEM_REGULAR), list("Black Webbing Vest", 15, /obj/item/clothing/accessory/storage/black_vest, null, VENDOR_ITEM_REGULAR), - list("Drop Pouch", 15, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR), + list("Drop Pouch", 10, /obj/item/clothing/accessory/storage/droppouch, null, VENDOR_ITEM_REGULAR), list("Shoulder Holster", 15, /obj/item/clothing/accessory/storage/holster, null, VENDOR_ITEM_REGULAR), list("Machete Scabbard (Full)", 15, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), list("Machete Pouch (Full)", 15, /obj/item/storage/pouch/machete/full, 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 04061370168d..8c64e48f0f84 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 @@ -20,6 +20,16 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list( list("M74 AGM-Hornet Airburst Packet (x3 airburst grenades", 20, /obj/item/storage/box/packet/hornet, null, VENDOR_ITEM_REGULAR), list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), + list("SIDEARM AMMUNITION", 0, null, null, null), + 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("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), + list("CLOTHING ITEMS", 0, null, null, null), list("Machete Scabbard (Full)", 6, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR), list("Fuel Tank Strap Pouch", 5, /obj/item/storage/pouch/flamertank, null, VENDOR_ITEM_REGULAR), 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 d9ba7ee97c26..a013ddb15212 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 @@ -1,17 +1,6 @@ //------------GEAR VENDOR--------------- GLOBAL_LIST_INIT(cm_vending_gear_tl, list( - - list("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), - list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), - list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), - list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), - 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("EXPLOSIVES", 0, null, null, null), list("M40 HEDP High Explosive Packet (x3 grenades)", 18, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR), list("M40 HIDP Incendiary Packet (x3 grenades)", 18, /obj/item/storage/box/packet/incendiary, null, VENDOR_ITEM_REGULAR), @@ -24,6 +13,19 @@ GLOBAL_LIST_INIT(cm_vending_gear_tl, list( list("M20 Mine Box (x4 mines)", 20, /obj/item/storage/box/explosive_mines, null, VENDOR_ITEM_REGULAR), list("M40 MFHS Metal Foam Grenade", 5, /obj/item/explosive/grenade/metal_foam, 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), + list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), + list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), + list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), + + list("SIDEARM AMMUNITION", 0, null, null, null), + 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("RESTRICTED FIREARMS", 0, null, null, null), list("VP78 Pistol", 10, /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), diff --git a/code/game/objects/effects/elevator.dm b/code/game/objects/effects/elevator.dm index 443652a7f7a7..f3b6da2e442a 100644 --- a/code/game/objects/effects/elevator.dm +++ b/code/game/objects/effects/elevator.dm @@ -1,6 +1,6 @@ -/obj/effect/elevator/supply - name = "\improper empty space" - desc = "There seems to be an awful lot of machinery down below" +/obj/effect/elevator + name = "\proper empty space" + desc = "There seems to be an awful lot of machinery down below..." icon = 'icons/effects/160x160.dmi' icon_state = "supply_elevator_lowered" unacidable = TRUE @@ -8,17 +8,25 @@ layer = ABOVE_TURF_LAYER appearance_flags = KEEP_TOGETHER -/obj/effect/elevator/supply/ex_act(severity) +/obj/effect/elevator/ex_act(severity) return -/obj/effect/elevator/supply/Destroy(force) +/obj/effect/elevator/Destroy(force) if(!force) return QDEL_HINT_LETMELIVE return ..() -/obj/effect/elevator/supply/visible_message() //Prevents message spam with empty elevator shaft - "The empty space falls into the depths!" +// Don't move with the elevator. +/obj/effect/elevator/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock) + return +/obj/effect/elevator/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation) + return +/obj/effect/elevator/lateShuttleMove(turf/oldT, list/movement_force, move_dir) return /obj/effect/elevator/animation_overlay blend_mode = BLEND_INSET_OVERLAY appearance_flags = KEEP_TOGETHER + +/obj/effect/elevator/vehicle + icon_state = "vehicle_elevator_lowered" diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index a7afb80ef080..bf3b952edcf5 100644 --- a/code/game/objects/effects/landmarks/landmarks.dm +++ b/code/game/objects/effects/landmarks/landmarks.dm @@ -90,9 +90,11 @@ return GLOB.nightmare_landmarks[insert_tag] = get_turf(src) /obj/effect/landmark/nightmare/Destroy() - if(insert_tag && autoremove \ - && GLOB.nightmare_landmarks[insert_tag] == get_turf(src)) - GLOB.nightmare_landmarks.Remove(insert_tag) + if(insert_tag) + var/turf/turf = get_turf(src) + if(autoremove && GLOB.nightmare_landmarks[insert_tag] == turf) + GLOB.nightmare_landmarks.Remove(insert_tag) + GLOB.nightmare_landmark_tags_removed += insert_tag return ..() /obj/effect/landmark/ert_spawns/distress diff --git a/code/game/objects/effects/landmarks/survivor_spawner.dm b/code/game/objects/effects/landmarks/survivor_spawner.dm index 39c7dbffa6ee..803d73151aeb 100644 --- a/code/game/objects/effects/landmarks/survivor_spawner.dm +++ b/code/game/objects/effects/landmarks/survivor_spawner.dm @@ -35,13 +35,27 @@ intro_text = list("

You are a survivor of a crash landing!

",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones." + story_text = "You are a soldier fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 spawn_priority = SPAWN_PRIORITY_HIGH +/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_leader + hostile = TRUE + equipment = /datum/equipment_preset/clf/leader + synth_equipment = /datum/equipment_preset/clf/synth + intro_text = list("

You are a survivor of a crash landing!

",\ + "You are NOT aware of the xenomorph threat.",\ + "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") + story_text = "You are the leader of a squad fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants and under your orders, you and your team small boarded a small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of your pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked up at the few remaining survivors of your squad, all limping and trying to tend to their wounds, luckily, none of your men were seriously hurt, and all seem to be responsive to your orders." + roundstart_damage_min = 2 + roundstart_damage_max = 10 + roundstart_damage_times = 2 + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + /obj/effect/landmark/survivor_spawner/lv624_crashed_clf_engineer hostile = TRUE equipment = /datum/equipment_preset/clf/engineer @@ -49,7 +63,7 @@ intro_text = list("

You are a survivor of a crash landing!

",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones." + story_text = "You are an engineer fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -63,13 +77,35 @@ intro_text = list("

You are a survivor of a crash landing!

",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are a soldier of Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rose up and noticed that one of your limbs is at a weird angle, broken. You looked at other survivors, also limping and trying to fix their broken bones." + story_text = "You are a doctor fighting for the Colonial Liberation Front. Your ship received a distress signal from a planet bordering the CLF controlled space under USCM control. Ready and willing to save poor colonists from parasitic tyrants, you and your team boarded small ship called Marie Curie. Unfortunately, right before you came close to a landing zone, a glob of acid hit the ship, damaging one of the engines. Despite all the efforts of the pilot, the ship went straight into nearby mountain. You were hurt pretty badly in the crash. Dumbfounded, you rise up and notice that one of your limbs is badly bruised. You looked at other survivors, also limping and trying to tend to their wounds, luckily, none of you were seriously hurt." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 spawn_priority = SPAWN_PRIORITY_VERY_HIGH +//Weyland-Yutani Survivors// + +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl + equipment = /datum/equipment_preset/survivor/wy/executive + synth_equipment = /datum/equipment_preset/synth/survivor/wy/security_synth + intro_text = list("

You are the last alive Executive of Lazarus Landing!

",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Corporate Liaison stationed on LV-624 from Weyland-Yutani. You were tipped off about some very peculiar looking eggs recovered from the alien temple North-East of the colony. Being the smart Executive the Company hired you to be, you decided to prepare your office for the worst when the first 'facehugger' was born in the vats of the Research Dome. Turned out, you were right, everyone who called you crazy and called these the new 'synthetics' is now dead, you along with your Corporate Security detail are the only survivors due to your paranoia. The xenomorph onslaught was relentless, a fuel tank was shot by one of the Officers, leading to the destruction of a part of the dome, along with alot of the defences being melted. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon + equipment = /datum/equipment_preset/survivor/goon + synth_equipment = /datum/equipment_preset/synth/survivor/wy/security_synth + intro_text = list("

You are a Corporate Security Officer!

",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Corporate Security Officer stationed on LV-624 from Weyland-Yutani. Suddenly one day you were pulled aside by the Corporate Liaison and told to bring supplies from both Engineering and the Marshals Offices to their office, and fast. You began fortifying the Corporate Dome and was told by the Executive that something big will ravage the entire colony, excluding you. Turns out, the Liaison was right, these so called 'xenomorphs' broke containment from the Research Dome and began destroying the entire colony. Once they came for the Dome and tried to kill all of you, you barely managed to hold them off even after losing one Officer and alot of the defences. The Liaison said they will soon find a way to contact Weyland-Yutani and to remain steadfast until rescue arrives." + + spawn_priority = SPAWN_PRIORITY_HIGH + /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc equipment = /datum/equipment_preset/survivor/pmc synth_equipment = /datum/equipment_preset/synth/survivor/pmc @@ -115,13 +151,75 @@ intro_text = list("

You are a survivor of a crash landing!

",\ "You are NOT aware of the xenomorph threat.",\ "Your primary objective is to heal up and survive. If you want to assault the hive - adminhelp.") - story_text = "You are an Assistant Manager from Weyland-Yutani. You were being escorted onboard a PMC ship to Solaris Ridge. On the way, the ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, the pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. The shipcrew lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You must get up and find a way to contact Weyland-Yutani." + story_text = "You are an Assistant Manager from Weyland-Yutani. You were being escorted onboard a PMC ship to Solaris Ridge. On the way, the ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, the pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconscious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your PMC escorts lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You must get up and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 spawn_priority = SPAWN_PRIORITY_VERY_HIGH +/obj/effect/landmark/survivor_spawner/shivas_panic_room_cl + equipment = /datum/equipment_preset/survivor/wy/asstmanager + synth_equipment = /datum/equipment_preset/synth/survivor/wy/corporate_synth + intro_text = list("

You are the last alive Senior Administrator on the Colony!

",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are the Assistant Operations Manager stationed on 'Ifrit' by Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons you one-day said were 'useless' and a waste of Company dollars. You remember that Administrator Stahl sent out a distress beacon to any ship in range, hoping to get picked up by the Company, he ran to the Spaceport. You have not seen him since. In their attempts at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc + equipment = /datum/equipment_preset/survivor/doctor + synth_equipment = /datum/equipment_preset/synth/survivor/emt_synth + intro_text = list("

You are a Medical Doctor on the Colony!

",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Doctor working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember that the xenomorphs have a sort of implanter which latches on to your face and then... something bursts out of your chest, through the rib cage. You had plenty of those cases at the Medical Bay. In their attempts at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_HIGH + +/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci + equipment = /datum/equipment_preset/survivor/scientist + synth_equipment = /datum/equipment_preset/synth/survivor/scientist_synth + intro_text = list("

You are a Weyland-Yutani Scientist on the Colony!

",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a Scientist working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember that the XX-121 species, codenamed that by Research Director Clarke, have a variety of different species, what you can assume a 'leader' of some sort and that their acid is deadly should it come in contact with you or the shutters. You ran far from the labs and have not seen some your coworkers since. In their attempts at trying to breach in, these so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_HIGH + +/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ + equipment = /datum/equipment_preset/survivor/civilian + synth_equipment = /datum/equipment_preset/synth/survivor/chef_synth + intro_text = list("

You are a worker on the Colony!

",\ + "You are aware of the xenomorph threat.",\ + "Your primary objective is to survive the outbreak.") + story_text = "You are a civilian working on 'Ifrit' for Weyland-Yutani. This whole outbreak has been a giant mess, you and all other Company personnel ran to the Operations Panic Room, until you heard shooting outside and closed the shutters. You are running low on food, water and ammunition for the weapons. You remember hearing the alarms blaring and decided to run with a couple others to the Panic Room, hoping to be safe from the threat until rescue arrives. Now you wait along with others for their second attack on the Panic Room. In their first attempt at trying to breach in, the so called 'xenomorphs' have tried attacking the shutters, but to no avail. They will soon try again. You must survive and find a way to contact Weyland-Yutani." + + spawn_priority = SPAWN_PRIORITY_MEDIUM + +//CMB Survivors// + +/obj/effect/landmark/survivor_spawner/fiorina_armory_cmb + equipment = /datum/equipment_preset/survivor/colonial_marshal + synth_equipment = /datum/equipment_preset/synth/survivor/cmb_synth + intro_text = list("

You are a CMB Deputy!

",\ + "You are aware of the 'alien' threat.",\ + "Your primary objective is to survive the infestation.") + story_text = "You are a Deputy of the Office of the Colonial Marshals. Your dispatcher received a distress signal from the infamous Fiorina Maximum Penitentiary. You figured it was just another typical case of the prison dealing with a riot their understaffed security force couldn't handle, with more and more of its personnel getting dispatched elsewhere in the galaxy. This wasn't the first time OCM officers were called in to assist, but unfortunately for you, this time it also wasn't the 'minor riot' you expected it to be. Loaded up with only beanbags and finding nobody to greet you on the LZ after being dropped off, you and the rest of your team had gone towards the armory to speak to the Quartermaster, but only found corpses of both prisoners and security littered around on the way. Worried about armed prisoners, your team was in the process of switching to lethals in the armory when some sort of huge alien jumped out from the shadows and snatched Jerry away while he was off praying. The thing dragged him off too fast to catch and his screams faded away down the halls, poor bastard. Now, you'll need to decide whether to look for more clues about what the hell happened here, hunt whatever's out there, or hold a position and hope someone else will respond to the distress signal before it's too late..." + + spawn_priority = SPAWN_PRIORITY_VERY_HIGH + +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control + equipment = /datum/equipment_preset/survivor/colonial_marshal/fiorina + synth_equipment = /datum/equipment_preset/synth/survivor/cmb_synth + intro_text = list("

You are a United Americas Riot Control Officer!

",\ + "You are aware of the 'alien' threat.",\ + "Your primary objective is to survive the infestation.") + story_text = "You are a United Americas Riot Control Officer. Your dispatcher received a request from the local OCM Outpost, requesting some men to intervene assist a Deputy with handling a riot at Fiorina. The prison was an understaffed mess so you weren't too surprised they had sent out a distress signal, calling you in to do their jobs yet again. Unfortunately for you, this time it also wasn't the 'minor riot' you expected it to be. Loaded up with only beanbags and finding nobody to greet you on the LZ after being dropped off, you and the rest of your team had gone towards the armory to speak to the Quartermaster, but only found corpses of both prisoners and security littered around on the way. Worried about armed prisoners, your team was in the process of switching to lethals in the armory when some sort of huge alien jumped out from the shadows and snatched Jerry away while he was off praying. The thing dragged him off too fast to catch and his screams faded away down the halls, poor bastard. Now, you'll need to decide whether to look for more clues about what the hell happened here, hunt whatever's out there, or hold a position and hope someone else will respond to the distress signal before it's too late..." + + spawn_priority = SPAWN_PRIORITY_HIGH + //Military Survivors// /obj/effect/landmark/survivor_spawner/lv522_forecon_tech diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 69eababfe000..6a5d31010ef1 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -22,9 +22,9 @@ /obj/effect/spider/attackby(obj/item/W, mob/user) if(LAZYLEN(W.attack_verb)) - visible_message(SPAN_DANGER("\The [src] have been [pick(W.attack_verb)] with \the [W][(user ? "by [user]." : ".")]")) + visible_message(SPAN_DANGER("[src] has been [pick(W.attack_verb)] with [W][(user ? " by [user]." : ".")]")) else - visible_message(SPAN_DANGER("\The [src] have been attacked with \the [W][(user ? "by [user]." : ".")]")) + visible_message(SPAN_DANGER("[src] has been attacked with [W][(user ? " by [user]." : ".")]")) var/damage = W.force / 4 diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 9addf3346a39..31158d055327 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -67,7 +67,7 @@ /// The name registered_name on the card var/registered_name = "Unknown" - var/registered_ref = null + var/datum/weakref/registered_ref = null var/registered_gid = 0 flags_equip_slot = SLOT_ID diff --git a/code/game/objects/items/devices/dummy_tablet.dm b/code/game/objects/items/devices/dummy_tablet.dm index d1036ebfa93b..3172c84c8b01 100644 --- a/code/game/objects/items/devices/dummy_tablet.dm +++ b/code/game/objects/items/devices/dummy_tablet.dm @@ -1,6 +1,6 @@ /obj/item/device/professor_dummy_tablet icon = 'icons/obj/items/devices.dmi' - name = "Professor DUMMY tablet" + name = "\improper Professor DUMMY tablet" desc = "A Professor DUMMY Control Tablet." suffix = "\[3\]" icon_state = "Cotablet" @@ -21,23 +21,35 @@ */ /obj/item/device/professor_dummy_tablet/proc/is_adjacent_to_dummy(mob/user) if (get_dist(linked_dummy, user) > 1) - to_chat(user, "You are too far away to use the tablet.") + to_chat(user, SPAN_WARNING("You are too far away from the dummy to use its tablet.")) return FALSE - return TRUE -/obj/item/device/professor_dummy_tablet/proc/link_mob(mob/living/carbon/human/H) - linked_dummy = H +/obj/item/device/professor_dummy_tablet/proc/link_dummy(mob/living/carbon/human/dummy_to_link) + if(dummy_to_link) + linked_dummy = dummy_to_link + RegisterSignal(linked_dummy, COMSIG_PARENT_QDELETING, PROC_REF(self_delete)) + return + +/obj/item/device/professor_dummy_tablet/proc/self_delete() + SIGNAL_HANDLER + + UnregisterSignal(linked_dummy, COMSIG_PARENT_QDELETING) + linked_dummy = null + if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src, get_turf(src)) + qdel(src) /obj/item/device/professor_dummy_tablet/attack_self(mob/user as mob) ..() interact(user) /obj/item/device/professor_dummy_tablet/interact(mob/user as mob) - if (isnull(linked_dummy)) + if(isnull(linked_dummy)) return - if (!is_adjacent_to_dummy(user)) + if(!is_adjacent_to_dummy(user)) return user.set_interaction(src) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 58e86998f39a..2af343c8de26 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -238,7 +238,7 @@ desc = "A red USCM issued flare. There are instructions on the side, it reads 'pull cord, make light'." w_class = SIZE_SMALL light_power = 2 - light_range = 7 + light_range = 5 icon_state = "flare" item_state = "flare" actions = list() //just pull it manually, neckbeard. diff --git a/code/game/objects/items/devices/helmet_visors.dm b/code/game/objects/items/devices/helmet_visors.dm index 05d75a9fefd6..4d1b38491791 100644 --- a/code/game/objects/items/devices/helmet_visors.dm +++ b/code/game/objects/items/devices/helmet_visors.dm @@ -6,7 +6,7 @@ w_class = SIZE_TINY ///The type of HUD our visor shows - var/hud_type = MOB_HUD_FACTION_USCM + var/hud_type = MOB_HUD_FACTION_MARINE ///The sound when toggling on the visor var/toggle_on_sound = 'sound/handling/hud_on.ogg' @@ -302,7 +302,7 @@ /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) + hud_type = list(MOB_HUD_FACTION_MARINE, MOB_HUD_MEDICAL_ADVANCED) helmet_overlay = "nvg_sight_right_raider" power_use = 0 visor_glows = FALSE diff --git a/code/game/objects/items/devices/motion_detector.dm b/code/game/objects/items/devices/motion_detector.dm index c26db692f082..7db2825deedf 100644 --- a/code/game/objects/items/devices/motion_detector.dm +++ b/code/game/objects/items/devices/motion_detector.dm @@ -191,6 +191,14 @@ if(ishuman(A.loc)) return A.loc +/obj/item/device/motiondetector/xm4 + +///Forces the blue blip to appear around the detected mob +/obj/item/device/motiondetector/xm4/get_user() + var/atom/holder = loc + if(ishuman(holder.loc)) + return holder.loc + /obj/item/device/motiondetector/proc/apply_debuff(mob/M) return diff --git a/code/game/objects/items/devices/portable_vendor.dm b/code/game/objects/items/devices/portable_vendor.dm index da399192b713..8e7c8df1d9a7 100644 --- a/code/game/objects/items/devices/portable_vendor.dm +++ b/code/game/objects/items/devices/portable_vendor.dm @@ -267,8 +267,11 @@ req_role = JOB_CORPORATE_LIAISON listed_products = list( list("INCENTIVES", 0, null, null, null), + list("Corporate Security Bodyguard", 50, /obj/item/handheld_distress_beacon/bodyguard, "white", "A beacon which sends the Corporate Security Division an encoded message informing them of your request for a Corporate Security Bodyguard."), + list("Corporate Lawyer Team", 50, /obj/item/handheld_distress_beacon/lawyer, "white", "A beacon which sends the Corporate Affairs Division an encoded message informing them of your request for a Corporate Lawyer, required when a contract signee breaks one of their clauses."), list("Neurostimulator Implant", 30, /obj/item/implanter/neurostim, "white", "Implant which regulates nociception and sensory function. Benefits include pain reduction, improved balance, and improved resistance to overstimulation and disorientation. To encourage compliance, negative stimulus is applied if the implant hears a (non-radio) spoken codephrase. Implant will be degraded by the body's immune system over time, and thus malfunction with gradually increasing frequency. Personal use not recommended."), list("Ultrazine Injector", 25, /obj/item/reagent_container/hypospray/autoinjector/ultrazine/liaison, "white", "Highly-addictive stimulant. Enhances short-term physical performance, particularly running speed. Effects last approximately 10 minutes per injection. More than two injections at a time will result in overdose. Withdrawal causes extreme discomfort and hallucinations. Long-term use results in halluciations and organ failure. Conditional distribution secures subject compliance. Not for personal use."), + list("Cyanide Pill", 20, /obj/item/reagent_container/pill/cyanide, "white", "A cyanide pill, also known as a suicide pill. For the easy way out."), list("Ceramic Plate", 10, /obj/item/trash/ceramic_plate, "white", "A ceramic plate, useful in a variety of situations."), list("Cash", 5, /obj/item/spacecash/c1000/counterfeit, "white", "$1000 USD, unmarked bills"), list("WY Encryption Key", 5, /obj/item/device/encryptionkey/WY, "white", "WY private comms encryption key, for conducting private business."), @@ -282,6 +285,7 @@ list("Sake", 5, /obj/item/reagent_container/food/drinks/bottle/sake, "white", "Weyland-Yutani Sake, for a proper business dinner."), list("Beer", 5, /obj/item/reagent_container/food/drinks/cans/aspen, "white", "Weyland-Yutani Aspen Beer, for a more casual night."), list("Drinking Glass", 1, /obj/item/reagent_container/food/drinks/drinkingglass, "white", "A Drinking Glass, because you have class."), + list("Weyland-Yutani Coffee Mug", 1, /obj/item/reagent_container/food/drinks/coffeecup/wy, "white", "A Weyland-Yutani coffee mug, for any Marines who want a Company souvenir."), list("STATIONARY", 0, null, null, null), list("WY pen, black", 1, /obj/item/tool/pen/clicky, "white", "A WY pen, for writing formally on the go."), diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 7b987752011c..00f0ad16220c 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -35,7 +35,7 @@ var/headset_hud_on = FALSE var/locate_setting = TRACKER_SL var/misc_tracking = FALSE - var/hud_type = MOB_HUD_FACTION_USCM + var/hud_type = MOB_HUD_FACTION_MARINE var/default_freq ///The type of minimap this headset is added to @@ -233,7 +233,7 @@ ), PROC_REF(turn_on)) wearer = user RegisterSignal(user, COMSIG_MOB_STAT_SET_ALIVE, PROC_REF(update_minimap_icon)) - RegisterSignal(user, COMSIG_MOB_LOGIN, PROC_REF(add_hud_tracker)) + RegisterSignal(user, COMSIG_MOB_LOGGED_IN, PROC_REF(add_hud_tracker)) 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) @@ -250,7 +250,7 @@ UnregisterSignal(user, list( COMSIG_LIVING_REJUVENATED, COMSIG_HUMAN_REVIVED, - COMSIG_MOB_LOGIN, + COMSIG_MOB_LOGGED_IN, COMSIG_MOB_DEATH, COMSIG_HUMAN_SET_UNDEFIBBABLE, COMSIG_MOB_STAT_SET_ALIVE @@ -341,7 +341,7 @@ var/z_level = turf_gotten.z if(wearer.assigned_equipment_preset.always_minimap_visible == TRUE || wearer.stat == DEAD) //We show to all marines if we have this flag, separated by faction - if(hud_type == MOB_HUD_FACTION_USCM) + if(hud_type == MOB_HUD_FACTION_MARINE) marker_flags = MINIMAP_FLAG_USCM else if(hud_type == MOB_HUD_FACTION_UPP) marker_flags = MINIMAP_FLAG_UPP @@ -1013,7 +1013,7 @@ icon_state = "cmb_headset" initial_keys = list(/obj/item/device/encryptionkey/cmb) has_hud = TRUE - hud_type = MOB_HUD_FACTION_USCM + hud_type = MOB_HUD_FACTION_MARINE /obj/item/device/radio/headset/distress/CMB/limited name = "\improper Damaged CMB Earpiece" @@ -1058,7 +1058,7 @@ initial_keys = list(/obj/item/device/encryptionkey/soc/forecon) volume = RADIO_VOLUME_QUIET has_hud = TRUE - hud_type = MOB_HUD_FACTION_USCM + hud_type = MOB_HUD_FACTION_MARINE /obj/item/device/radio/headset/almayer/mcom/vc name = "marine vehicle crew radio headset" diff --git a/code/game/objects/items/explosives/plastic.dm b/code/game/objects/items/explosives/plastic.dm index 1d2986f79e55..58cbca9a5ab3 100644 --- a/code/game/objects/items/explosives/plastic.dm +++ b/code/game/objects/items/explosives/plastic.dm @@ -24,6 +24,9 @@ var/list/breachable = list(/obj/structure/window, /turf/closed, /obj/structure/machinery/door, /obj/structure/mineral_door , /obj/structure/cargo_container) antigrief_protection = TRUE //Should it be checked by antigrief? + var/req_skill = SKILL_ENGINEER + var/req_skill_level = SKILL_ENGINEER_TRAINED + /obj/item/explosive/plastic/Destroy() disarm() return ..() @@ -65,7 +68,7 @@ if(user.action_busy || !flag) return - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) + if(!skillcheck(user, req_skill, req_skill_level)) to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]...")) return if(!can_place(user, target)) @@ -363,6 +366,9 @@ overlay_image = "riot-active" shrapnel_volume = 20 shrapnel_type = /datum/ammo/bullet/shrapnel/rubber + req_skill = SKILL_POLICE + req_skill_level = SKILL_POLICE_SKILLED + antigrief_protection = FALSE /obj/item/explosive/plastic/breaching_charge/plasma name = "plasma charge" diff --git a/code/game/objects/items/fulton.dm b/code/game/objects/items/fulton.dm index e36d269c8b90..664c7871ba7f 100644 --- a/code/game/objects/items/fulton.dm +++ b/code/game/objects/items/fulton.dm @@ -140,10 +140,12 @@ GLOBAL_LIST_EMPTY(deployed_fultons) sleep(30) original_location = get_turf(attached_atom) playsound(loc, 'sound/items/fulton.ogg', 50, 1) - reservation = SSmapping.RequestBlockReservation(3, 3, turf_type_override = /turf/open/space) - var/middle_x = reservation.bottom_left_coords[1] + Floor((reservation.top_right_coords[1] - reservation.bottom_left_coords[1]) / 2) - var/middle_y = reservation.bottom_left_coords[2] + Floor((reservation.top_right_coords[2] - reservation.bottom_left_coords[2]) / 2) - var/turf/space_tile = locate(middle_x, middle_y, reservation.bottom_left_coords[3]) + reservation = SSmapping.request_turf_block_reservation(3, 3, 1, turf_type_override = /turf/open/space) + var/turf/bottom_left_turf = reservation.bottom_left_turfs[1] + var/turf/top_right_turf = reservation.top_right_turfs[1] + var/middle_x = bottom_left_turf.x + Floor((top_right_turf.x - bottom_left_turf.x) / 2) + var/middle_y = bottom_left_turf.y + Floor((top_right_turf.y - bottom_left_turf.y) / 2) + var/turf/space_tile = locate(middle_x, middle_y, bottom_left_turf.z) if(!space_tile) visible_message(SPAN_WARNING("[src] begins beeping like crazy. Something is wrong!")) return diff --git a/code/game/objects/items/handheld_distress_beacon.dm b/code/game/objects/items/handheld_distress_beacon.dm index c11a7a57c350..5764604c9a2f 100644 --- a/code/game/objects/items/handheld_distress_beacon.dm +++ b/code/game/objects/items/handheld_distress_beacon.dm @@ -12,9 +12,9 @@ ///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)") + var/list/ert_paths = list(/datum/emergency_call/pmc/chem_retrieval) // "Weyland-Yutani PMC (Chemical Investigation Squad)" ///The clickable version that will be sent in message_admins - var/list/ert_short_name = list("SEND PMCs") + var/list/ert_short_names = list("SEND PMCs") ///Whether beacon can be used, or has already been used var/active = FALSE @@ -41,13 +41,13 @@ 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 + if(!ert_paths || !ert_short_names || (length(ert_paths) != length(ert_short_names))) //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/current_ert_num in 1 to length(ert_paths)) + beacon_call_buttons += "([ert_short_names[current_ert_num]]) " for(var/client/admin_client in GLOB.admins) if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) @@ -62,5 +62,26 @@ 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") + // "CMB - Patrol Team - Marshals in Distress (Friendly)", "CMB - Anchorpoint Station Colonial Marine QRF (Friendly)" + ert_paths = list(/datum/emergency_call/cmb/alt, /datum/emergency_call/cmb/anchorpoint) + ert_short_names = list("SEND CMB", "SEND QRF") + +// Corporate Lawyer beacon available for 50 points at the CLs briefcase +/obj/item/handheld_distress_beacon/lawyer + name = "\improper Corporate Affairs Division handheld beacon" + desc = "An encoded beacon. This one is branded with the Weyland-Yutani slogan, 'Building Better Worlds since 2099'. Etched in stencil on the side is 'FOR CONTRACT BREAKERS ONLY'. This one is branded with the Corporate Affairs Division symbol and provided to most Executives situated in UA or TWE space." + + beacon_type = "Lawyer beacon" + recipient = "the Corporate Affairs Division" + ert_paths = list(/datum/emergency_call/inspection_wy/lawyer) // "Lawyers - Corporate" + ert_short_names = list("SEND LAWYERS") + +// Corporate Security Bodyguard beacon available for 50 points at the CLs briefcase +/obj/item/handheld_distress_beacon/bodyguard + name = "\improper Corporate Security Division handheld beacon" + desc = "An standard Corporate Security beacon. This one is branded with the Weyland-Yutani slogan, 'Building Better Worlds since 2099'. This one is branded with the Corporate Security Division symbol and provided to Executives stationed in very dangerous sites across the entire Galaxy." + + beacon_type = "Bodyguard beacon" + recipient = "the Corporate Security Division" + ert_paths = list(/datum/emergency_call/goon/bodyguard) // "Weyland-Yutani Goon (Executive Bodyguard Detail)" + ert_short_names = list("SEND BODYGUARD") diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm index 3ae57723668f..112a8e40e85b 100644 --- a/code/game/objects/items/reagent_containers/food/snacks.dm +++ b/code/game/objects/items/reagent_containers/food/snacks.dm @@ -641,9 +641,17 @@ /obj/item/reagent_container/food/snacks/carpmeat/Initialize() . = ..() reagents.add_reagent("fish", 3) - reagents.add_reagent("carpotoxin", 3) + reagents.add_reagent("carpotoxin", 6) src.bitesize = 6 +/obj/item/reagent_container/food/snacks/carpmeat/processed + name = "processed carp fillet" + desc = "A fillet of spess carp meat. This one has been processed to remove carpotoxin." + +/obj/item/reagent_container/food/snacks/carpmeat/processed/Initialize() + . = ..() + reagents.remove_reagent("carpotoxin", 6) + /obj/item/reagent_container/food/snacks/fishfingers name = "Fish Fingers" desc = "A finger of fish." @@ -653,7 +661,6 @@ /obj/item/reagent_container/food/snacks/fishfingers/Initialize() . = ..() reagents.add_reagent("fish", 4) - reagents.add_reagent("carpotoxin", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/hugemushroomslice @@ -802,7 +809,6 @@ . = ..() reagents.add_reagent("bread", 3) reagents.add_reagent("fish", 3) - reagents.add_reagent("carpotoxin", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/tofuburger @@ -850,7 +856,6 @@ . = ..() reagents.add_reagent("bread", 3) reagents.add_reagent("meatprotein", 3) - reagents.add_reagent("xenoblood", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/clownburger @@ -1070,7 +1075,6 @@ . = ..() reagents.add_reagent("bread", 4) reagents.add_reagent("meatprotein", 2) - reagents.add_reagent("xenoblood", 4) bitesize = 2 /obj/item/reagent_container/food/snacks/wingfangchu @@ -1084,7 +1088,6 @@ . = ..() reagents.add_reagent("soysauce", 4) reagents.add_reagent("meatprotein", 4) - reagents.add_reagent("xenoblood", 4) bitesize = 2 /obj/item/reagent_container/food/snacks/human/kabob @@ -1133,7 +1136,6 @@ /obj/item/reagent_container/food/snacks/cubancarp/Initialize() . = ..() reagents.add_reagent("fish", 6) - reagents.add_reagent("carpotoxin", 3) reagents.add_reagent("hotsauce", 3) bitesize = 3 @@ -1690,7 +1692,6 @@ /obj/item/reagent_container/food/snacks/fishandchips/Initialize() . = ..() reagents.add_reagent("fish", 6) - reagents.add_reagent("carpotoxin", 3) bitesize = 3 /obj/item/reagent_container/food/snacks/sandwich @@ -2172,7 +2173,6 @@ reagents.add_reagent("bread", 10) reagents.add_reagent("meatprotein", 10) reagents.add_reagent("cheese", 10) - reagents.add_reagent("xenoblood", 10) bitesize = 2 /obj/item/reagent_container/food/snacks/xenomeatbreadslice diff --git a/code/game/objects/items/reagent_containers/food/snacks/meat.dm b/code/game/objects/items/reagent_containers/food/snacks/meat.dm index f459d1b169ae..f68f488f268d 100644 --- a/code/game/objects/items/reagent_containers/food/snacks/meat.dm +++ b/code/game/objects/items/reagent_containers/food/snacks/meat.dm @@ -57,9 +57,16 @@ /obj/item/reagent_container/food/snacks/meat/xenomeat/Initialize() . = ..() - reagents.add_reagent("xenoblood", 3) + reagents.add_reagent("xenoblood", 6) src.bitesize = 6 +/obj/item/reagent_container/food/snacks/meat/xenomeat/processed + desc = "A slab of acrid smelling meat. This one has been processed to remove acid." + +/obj/item/reagent_container/food/snacks/meat/xenomeat/processed/Initialize() + . = ..() + reagents.remove_reagent("xenoblood", 6) + //fishable atoms meat // todo: rewrite this into a procgen'ed item when gutting fish? May be incompatible with recipe code if done that way and not hardcoded. /obj/item/reagent_container/food/snacks/meat/fish diff --git a/code/game/objects/items/reagent_containers/glass.dm b/code/game/objects/items/reagent_containers/glass.dm index 2a7bde748fba..fc8d03f5d24d 100644 --- a/code/game/objects/items/reagent_containers/glass.dm +++ b/code/game/objects/items/reagent_containers/glass.dm @@ -217,17 +217,16 @@ overlays.Cut() if(reagents && reagents.total_volume) - var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]10") + var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]-20") var/percent = round((reagents.total_volume / volume) * 100) switch(percent) - if(0 to 9) filling.icon_state = "[icon_state]-10" - if(10 to 24) filling.icon_state = "[icon_state]10" - if(25 to 49) filling.icon_state = "[icon_state]25" - if(50 to 74) filling.icon_state = "[icon_state]50" - if(75 to 79) filling.icon_state = "[icon_state]75" - if(80 to 90) filling.icon_state = "[icon_state]80" - if(91 to INFINITY) filling.icon_state = "[icon_state]100" + if(0) filling.icon_state = null + if(1 to 20) filling.icon_state = "[icon_state]-20" + if(21 to 40) filling.icon_state = "[icon_state]-40" + if(41 to 60) filling.icon_state = "[icon_state]-60" + if(61 to 80) filling.icon_state = "[icon_state]-80" + if(81 to INFINITY) filling.icon_state = "[icon_state]-100" filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling @@ -345,8 +344,8 @@ flags_atom = FPRINT|OPENCONTAINER|NOREACT /obj/item/reagent_container/glass/beaker/bluespace - name = "bluespace beaker" - desc = "A beaker with an enlarged holding capacity, made with blue-tinted plexiglass in order to withstand greater pressure - affectionately nicknamed \"bluespace\". Can hold up to 300 units." + name = "high-capacity beaker" + desc = "A beaker with an enlarged holding capacity, made with blue-tinted plexiglass in order to withstand greater pressure. Can hold up to 300 units." icon_state = "beakerbluespace" matter = list("glass" = 10000) volume = 300 diff --git a/code/game/objects/items/reagent_containers/glass/bottle.dm b/code/game/objects/items/reagent_containers/glass/bottle.dm index 01eb751774e1..9e0215b535b6 100644 --- a/code/game/objects/items/reagent_containers/glass/bottle.dm +++ b/code/game/objects/items/reagent_containers/glass/bottle.dm @@ -4,13 +4,14 @@ name = "bottle" desc = "A small bottle." icon = 'icons/obj/items/chemistry.dmi' - icon_state = null + icon_state = "bottle-1" item_state = "atoxinbottle" amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5, 10, 15, 25, 30, 40, 60) flags_atom = FPRINT|OPENCONTAINER volume = 60 attack_speed = 4 + var/randomize = TRUE /obj/item/reagent_container/glass/bottle/on_reagent_change() update_icon() @@ -29,247 +30,224 @@ /obj/item/reagent_container/glass/bottle/Initialize() . = ..() - if(!icon_state) + if(randomize) icon_state = "bottle-[rand(1,4)]" /obj/item/reagent_container/glass/bottle/update_icon() overlays.Cut() - if(reagents.total_volume && (icon_state == "bottle-1" || icon_state == "bottle-2" || icon_state == "bottle-3" || icon_state == "bottle-4")) + if(reagents.total_volume) var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]10") var/percent = round((reagents.total_volume / volume) * 100) switch(percent) - if(0 to 9) filling.icon_state = "[icon_state]--10" - if(10 to 24) filling.icon_state = "[icon_state]-10" - if(25 to 49) filling.icon_state = "[icon_state]-25" - if(50 to 74) filling.icon_state = "[icon_state]-50" - if(75 to 79) filling.icon_state = "[icon_state]-75" - if(80 to 90) filling.icon_state = "[icon_state]-80" - if(91 to INFINITY) filling.icon_state = "[icon_state]-100" + if(0) filling.icon_state = null + if(1 to 20) filling.icon_state = "[icon_state]-20" + if(21 to 40) filling.icon_state = "[icon_state]-40" + if(41 to 60) filling.icon_state = "[icon_state]-60" + if(61 to 80) filling.icon_state = "[icon_state]-80" + if(81 to INFINITY) filling.icon_state = "[icon_state]-100" filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling - if (!is_open_container()) - var/image/lid = image(icon, src, "lid_bottle") + if(!is_open_container()) + var/image/lid = image(icon, src, "lid_[icon_state]") overlays += lid + /obj/item/reagent_container/glass/bottle/inaprovaline name = "\improper Inaprovaline bottle" desc = "A small bottle. Contains inaprovaline - used to stabilize patients." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle19" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/inaprovaline/Initialize() . = ..() reagents.add_reagent("inaprovaline", 60) + update_icon() /obj/item/reagent_container/glass/bottle/kelotane name = "\improper Kelotane bottle" desc = "A small bottle. Contains kelotane - used to treat burned areas." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/kelotane/Initialize() . = ..() reagents.add_reagent("kelotane", 60) + update_icon() /obj/item/reagent_container/glass/bottle/dexalin name = "\improper Dexalin bottle" - desc = "A small bottle. Contains dexalin - used to treat oxygen deprivation." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle10" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/dexalin/Initialize() . = ..() reagents.add_reagent("dexalin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/spaceacillin name = "\improper Spaceacillin bottle" desc = "A small bottle. Contains spaceacillin - used to treat infected wounds." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle8" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/spaceacillin/Initialize() . = ..() reagents.add_reagent("spaceacillin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/toxin name = "toxin bottle" desc = "A small bottle of toxins. Do not drink, it is poisonous." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle12" - /obj/item/reagent_container/glass/bottle/toxin/Initialize() . = ..() reagents.add_reagent("toxin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/cyanide name = "cyanide bottle" desc = "A small bottle of cyanide. Bitter almonds?" - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle12" /obj/item/reagent_container/glass/bottle/cyanide/Initialize() . = ..() reagents.add_reagent("cyanide", 60) + update_icon() /obj/item/reagent_container/glass/bottle/stoxin name = "Soporific bottle" desc = "A small bottle of soporific. Just the fumes make you sleepy." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle20" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/stoxin/Initialize() . = ..() reagents.add_reagent("stoxin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/chloralhydrate name = "chloral hydrate bottle" desc = "A small bottle of Choral Hydrate. Mickey's Favorite!" - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle20" /obj/item/reagent_container/glass/bottle/chloralhydrate/Initialize() . = ..() reagents.add_reagent("chloralhydrate", 30) //Intentionally low since it is so strong. Still enough to knock someone out. + update_icon() /obj/item/reagent_container/glass/bottle/antitoxin name = "\improper Dylovene bottle" desc = "A small bottle of dylovene. Counters poisons, and repairs toxin damage. A wonder drug." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle7" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/antitoxin/Initialize() . = ..() reagents.add_reagent("anti_toxin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/mutagen name = "unstable mutagen bottle" desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle7" /obj/item/reagent_container/glass/bottle/mutagen/Initialize() . = ..() reagents.add_reagent("mutagen", 60) + update_icon() /obj/item/reagent_container/glass/bottle/ammonia name = "ammonia bottle" desc = "A small bottle." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle20" /obj/item/reagent_container/glass/bottle/ammonia/Initialize() . = ..() reagents.add_reagent("ammonia", 60) + update_icon() /obj/item/reagent_container/glass/bottle/diethylamine name = "diethylamine bottle" desc = "A small bottle. Contains a potent fertiliser." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" /obj/item/reagent_container/glass/bottle/diethylamine/Initialize() . = ..() reagents.add_reagent("diethylamine", 60) + update_icon() /obj/item/reagent_container/glass/bottle/flu_virion name = "flu virion culture bottle" desc = "A small bottle. Contains H13N1 flu virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/flu_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/flu(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/epiglottis_virion name = "epiglottis virion culture bottle" desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/epiglottis_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/voice_change(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/liver_enhance_virion name = "liver enhancement virion culture bottle" desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/liver_enhance_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/heal(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/hullucigen_virion name = "hullucigen virion culture bottle" desc = "A small bottle. Contains hullucigen virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/hullucigen_virion/Initialize() . = ..() var/datum/disease/F = new /datum/disease/advance/hullucigen(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/pierrot_throat name = "\improper Pierrot's Throat culture bottle" desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/pierrot_throat/Initialize() . = ..() var/datum/disease/F = new /datum/disease/pierrot_throat(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/cold name = "rhinovirus culture bottle" desc = "A small bottle. Contains XY-rhinovirus culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/cold/Initialize() . = ..() var/datum/disease/advance/F = new /datum/disease/advance/cold(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/random name = "random culture bottle" desc = "A small bottle. Contains a random disease." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/random/Initialize() . = ..() var/datum/disease/advance/F = new(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/gbs name = "\improper GBS culture bottle" desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" amount_per_transfer_from_this = 5 /obj/item/reagent_container/glass/bottle/gbs/Initialize() @@ -278,24 +256,23 @@ var/datum/disease/F = new /datum/disease/gbs var/list/data = list("virus"= F) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/fake_gbs name = "\improper GBS culture bottle" desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/fake_gbs/Initialize() . = ..() var/datum/disease/F = new /datum/disease/fake_gbs(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() + /* /obj/item/reagent_container/glass/bottle/rhumba_beat name = "Rhumba Beat culture bottle" desc = "A small bottle. Contains The Rhumba Beat culture in synthblood medium."//Or simply - General BullShit - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" amount_per_transfer_from_this = 5 New() @@ -305,126 +282,117 @@ var/datum/disease/F = new /datum/disease/rhumba_beat var/list/data = list("virus"= F) R.add_reagent("blood", 20, data) + update_icon() + */ /obj/item/reagent_container/glass/bottle/brainrot name = "\improper Brainrot culture bottle" desc = "A small bottle. Contains Cryptococcus Cosmosis culture in synthblood medium." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/brainrot/Initialize() . = ..() var/datum/disease/F = new /datum/disease/brainrot(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/magnitis name = "\improper Magnitis culture bottle" desc = "A small bottle. Contains a small dosage of Fukkos Miracos." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/magnitis/Initialize() . = ..() var/datum/disease/F = new /datum/disease/magnitis(0) var/list/data = list("viruses"= list(F)) reagents.add_reagent("blood", 20, data) + update_icon() /obj/item/reagent_container/glass/bottle/pacid name = "polytrinic acid bottle" desc = "A small bottle. Contains a small amount of Polytrinic Acid, an extremely potent and dangerous acid." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" /obj/item/reagent_container/glass/bottle/pacid/Initialize() . = ..() reagents.add_reagent("pacid", 60) + update_icon() /obj/item/reagent_container/glass/bottle/adminordrazine name = "\improper Adminordrazine bottle" desc = "A small bottle. Contains the liquid essence of the gods." - icon = 'icons/obj/items/drinks.dmi' - icon_state = "holyflask" /obj/item/reagent_container/glass/bottle/adminordrazine/Initialize() . = ..() reagents.add_reagent("adminordrazine", 60) + update_icon() /obj/item/reagent_container/glass/bottle/capsaicin name = "\improper Capsaicin bottle" desc = "A small bottle. Contains hot sauce." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle3" /obj/item/reagent_container/glass/bottle/capsaicin/Initialize() . = ..() reagents.add_reagent("capsaicin", 60) + update_icon() /obj/item/reagent_container/glass/bottle/frostoil name = "\improper Frost Oil bottle" desc = "A small bottle. Contains cold sauce." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" /obj/item/reagent_container/glass/bottle/frostoil/Initialize() . = ..() reagents.add_reagent("frostoil", 60) + update_icon() /obj/item/reagent_container/glass/bottle/bicaridine name = "\improper Bicaridine bottle" desc = "A small bottle. Contains Bicaridine - Used to treat brute damage." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/bicaridine/Initialize() . = ..() reagents.add_reagent("bicaridine", 60) + update_icon() /obj/item/reagent_container/glass/bottle/peridaxon name = "\improper Peridaxon bottle" desc = "A small bottle. Contains Peridaxon - Used by lazy doctors to temporarily halt the effects of internal organ damage." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle4" volume = 60 amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/peridaxon/Initialize() . = ..() reagents.add_reagent("peridaxon", 60) + update_icon() /obj/item/reagent_container/glass/bottle/tramadol name = "\improper Tramadol bottle" desc = "A small bottle. Contains Tramadol - Used as a basic painkiller." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle1" volume = 60 amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/tramadol/Initialize() . = ..() reagents.add_reagent("tramadol", 60) + update_icon() /obj/item/reagent_container/glass/bottle/oxycodone name = "\improper Oxycodone bottle" desc = "A small bottle. Contains Oxycodone - Used as an Extreme Painkiller. ILLEGAL TO DISTRIBUTE." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle2" volume = 60 amount_per_transfer_from_this = 60 /obj/item/reagent_container/glass/bottle/oxycodone/Initialize() . = ..() reagents.add_reagent("oxycodone", 60) + update_icon() /obj/item/reagent_container/glass/bottle/tricordrazine name = "\improper Tricordrazine bottle" desc = "A small bottle. Contains tricordrazine - A weak but catch-all medicine for treating all sorts of damage." - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle18" volume = 60 /obj/item/reagent_container/glass/bottle/tricordrazine/Initialize() . = ..() reagents.add_reagent("tricordrazine", 60) + update_icon() diff --git a/code/game/objects/items/reagent_containers/glass/bottle/robot.dm b/code/game/objects/items/reagent_containers/glass/bottle/robot.dm index 553b3e0dcbc3..67c397e30eb5 100644 --- a/code/game/objects/items/reagent_containers/glass/bottle/robot.dm +++ b/code/game/objects/items/reagent_containers/glass/bottle/robot.dm @@ -10,7 +10,6 @@ name = "internal inaprovaline bottle" desc = "A small bottle. Contains inaprovaline - used to stabilize patients." icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" reagent = "inaprovaline" /obj/item/reagent_container/glass/bottle/robot/inaprovaline/Initialize() @@ -23,7 +22,6 @@ name = "internal anti-toxin bottle" desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug." icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle17" reagent = "anti_toxin" /obj/item/reagent_container/glass/bottle/robot/antitoxin/Initialize() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index cb5071326e13..d984f01ae1be 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -107,7 +107,7 @@ GLOBAL_LIST_INIT_TYPED(plasteel_recipes, /datum/stack_recipe, list ( \ /obj/item/stack/sheet/plasteel name = "plasteel sheet" singular_name = "plasteel sheet" - desc = "These sheets are an alloy of iron and phoron." + desc = "Plasteel is an expensive, durable material made from combining platinum, steel, and advanced polymers to create a metal that is corrosion-resistant, highly durable, and lightweight. The only reason this isn't used more often is because of how damn costly it is." icon_state = "sheet-plasteel" item_state = "sheet-plasteel" matter = list("metal" = 3750) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 29c4ec15d03a..5aeef14c536d 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -494,6 +494,12 @@ desc = "A heavy-duty chestrig used by some USCM technicians." icon_state = "marinesatch_techi" +/obj/item/storage/backpack/marine/satchel/chestrig + name = "\improper USCM chestrig" + desc = "A chestrig used by some USCM personnel." + icon_state = "chestrig" + has_gamemode_skin = FALSE + GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/rto) /obj/item/storage/backpack/marine/satchel/rto diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index f7ada8ce220c..5d7aecbc03db 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -218,6 +218,46 @@ default_cig_type = /obj/item/clothing/mask/cigarette/ucigarette storage_slots = 4 +/obj/item/storage/fancy/cigarettes/trading_card + name = "\improper WeyYu Gold Military Trading Card packet" + desc = "Gotta collect 'em all, and smoke 'em all! This fancy military trading card version of Weyland Yutani Gold cigarette packs has one card that is apart of the 3 available 5-card sets." + icon_state = "collectpacket" + item_state = "collectpacket" + storage_slots = 21 + can_hold = list( + /obj/item/clothing/mask/cigarette, + /obj/item/clothing/mask/cigarette/ucigarette, + /obj/item/clothing/mask/cigarette/bcigarette, + /obj/item/tool/lighter, + /obj/item/toy/trading_card, + ) + var/obj/item/toy/trading_card/trading_card + +/obj/item/storage/fancy/cigarettes/trading_card/fill_preset_inventory() + flags_atom |= NOREACT + for(var/i = 1 to (storage_slots-1)) + new default_cig_type(src) + trading_card = new(src) + +/obj/item/storage/fancy/cigarettes/trading_card/attack_hand(mob/user, mods) + if(trading_card?.loc == src && loc == user) + to_chat(user, SPAN_NOTICE("You pull a [trading_card.collection_color] trading card out of the cigarette pack.")) + //have to take two disparate systems n' ram 'em together + remove_from_storage(trading_card, user.loc) + user.put_in_hands(trading_card) + trading_card = null + + return ..() + +/obj/item/storage/fancy/cigarettes/trading_card/attackby(obj/item/attacked_by_item, mob/user) + if(istype(attacked_by_item, /obj/item/toy/trading_card)) + trading_card = attacked_by_item + + return ..() + +///////////// +//CIGAR BOX// +///////////// // CIGAR BOX /obj/item/storage/fancy/cigar @@ -409,3 +449,73 @@ /obj/item/storage/lockbox/vials/attackby(obj/item/W as obj, mob/user as mob) ..() update_icon() + +// Trading Card Pack + +/obj/item/storage/fancy/trading_card + name = "pack of Red WeyYu Military Trading Cards" + desc = "A 5 pack of Red Weyland Yutani Military Trading Cards." + icon = 'icons/obj/items/playing_cards.dmi' + icon_state = "trading_red_pack_closed" + storage_slots = 5 + icon_type = "trading card" + can_hold = list(/obj/item/toy/trading_card) + foldable = /obj/item/stack/sheet/cardboard + var/collection_color = null + var/obj/item/toy/trading_card/top_trading_card + +/obj/item/storage/fancy/trading_card/Initialize() + if(!collection_color) + collection_color = pick("red", "green", "blue") // because of vodoo shenanigans with fill_preset_inventory happening during parent's initalize this'll have to run prior to that + + . = ..() + + name = "pack of [capitalize(collection_color)] WeyYu Military Trading Cards" + desc = "A 5 pack of [capitalize(collection_color)] Weyland Yutani Military Trading Cards." + icon_state = "trading_[collection_color]_pack_closed" + + +/obj/item/storage/fancy/trading_card/fill_preset_inventory() + + for(var/i in 1 to storage_slots) + top_trading_card = new /obj/item/toy/trading_card(src) + +/obj/item/storage/fancy/trading_card/update_icon() + if(!(top_trading_card)) + icon_state = "trading_[collection_color]_pack_empty" + return + if(length(contents) == storage_slots) + icon_state = "trading_[collection_color]_pack_closed" + return + icon_state = "trading_[collection_color]_pack_open" + +/obj/item/storage/fancy/trading_card/attack_hand(mob/user, mods) + if(top_trading_card?.loc == src && loc == user) + to_chat(user, SPAN_NOTICE("You pull a [top_trading_card.collection_color] trading card out of the pack.")) + //have to take two disparate systems n' ram 'em together + remove_from_storage(top_trading_card, user.loc) + user.put_in_hands(top_trading_card) + if(!(length(contents))) + top_trading_card = null + update_icon() + return + top_trading_card = contents[(length(contents))] + update_icon() + return + + return ..() + +/obj/item/storage/fancy/trading_card/attackby(obj/item/attacked_by_item, mob/user) + if(istype(attacked_by_item, /obj/item/toy/trading_card)) + top_trading_card = attacked_by_item + + return ..() + +/obj/item/storage/fancy/trading_card/red + collection_color = "red" + +/obj/item/storage/fancy/trading_card/green + collection_color = "green" + +/obj/item/storage/fancy/trading_card/blue + collection_color = "blue" diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 3b2dbfa33aa4..3e7c00f3d0ff 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -123,7 +123,6 @@ desc = "It's an emergency medical kit containing lifesaving anti-toxic medication. With medical training you can fit this in a backpack." icon_state = "antitoxin" item_state = "firstaid-toxin" - possible_icons_full = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") /obj/item/storage/firstaid/toxin/fill_preset_inventory() new /obj/item/device/healthanalyzer(src) diff --git a/code/game/objects/items/storage/large_holster.dm b/code/game/objects/items/storage/large_holster.dm index 3f653926f8b3..09885db34fc9 100644 --- a/code/game/objects/items/storage/large_holster.dm +++ b/code/game/objects/items/storage/large_holster.dm @@ -64,6 +64,7 @@ can_hold = list( /obj/item/weapon/gun/shotgun/pump, /obj/item/weapon/gun/shotgun/combat, + /obj/item/weapon/gun/shotgun/double/mou53, ) has_gamemode_skin = TRUE diff --git a/code/game/objects/items/tools/hydro_tools.dm b/code/game/objects/items/tools/hydro_tools.dm index 7ae4989104f6..045a5b864555 100644 --- a/code/game/objects/items/tools/hydro_tools.dm +++ b/code/game/objects/items/tools/hydro_tools.dm @@ -31,24 +31,19 @@ /obj/item/tool/plantspray/pests/old name = "bottle of pestkiller" - icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" /obj/item/tool/plantspray/pests/old/carbaryl name = "bottle of carbaryl" - icon_state = "bottle16" toxicity = 4 pest_kill_str = 2 /obj/item/tool/plantspray/pests/old/lindane name = "bottle of lindane" - icon_state = "bottle18" toxicity = 6 pest_kill_str = 4 /obj/item/tool/plantspray/pests/old/phosmet name = "bottle of phosmet" - icon_state = "bottle15" toxicity = 8 pest_kill_str = 7 @@ -57,25 +52,21 @@ /obj/item/tool/weedkiller name = "bottle of weedkiller" icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" var/toxicity = 0 var/weed_kill_str = 0 /obj/item/tool/weedkiller/triclopyr name = "bottle of glyphosate" - icon_state = "bottle16" toxicity = 4 weed_kill_str = 2 /obj/item/tool/weedkiller/lindane name = "bottle of triclopyr" - icon_state = "bottle18" toxicity = 6 weed_kill_str = 4 /obj/item/tool/weedkiller/D24 name = "bottle of 2,4-D" - icon_state = "bottle15" toxicity = 8 weed_kill_str = 7 diff --git a/code/game/objects/items/tools/surgery_tools.dm b/code/game/objects/items/tools/surgery_tools.dm index 2e2725b52b81..7d354d8d8c1c 100644 --- a/code/game/objects/items/tools/surgery_tools.dm +++ b/code/game/objects/items/tools/surgery_tools.dm @@ -201,6 +201,8 @@ icon_state = "bone-gel" w_class = SIZE_SMALL matter = list("plastic" = 7500) + ///base icon state for update_icon() to reference, fixes bonegel/empty + var/base_icon_state = "bone-gel" ///percent of gel remaining in container var/remaining_gel = 100 ///If gel is used when doing bone surgery @@ -215,6 +217,22 @@ ///How much bone gel is needed to mend bones var/mend_bones_fix_cost = 5 +/obj/item/tool/surgery/bonegel/update_icon() + . = ..() + if(remaining_gel >= 100) + icon_state = base_icon_state + return + if(remaining_gel > 50) + icon_state = "[base_icon_state]_75" + return + if(remaining_gel > 25) + icon_state = "[base_icon_state]_50" + return + if(remaining_gel > 0) + icon_state = "[base_icon_state]_25" + return + icon_state = "[base_icon_state]_0" + /obj/item/tool/surgery/bonegel/get_examine_text(mob/user) . = ..() if(unlimited_gel) //Only show how much gel is left if it actually uses bone gel @@ -244,6 +262,7 @@ if(!do_after(user, time_per_refill, INTERRUPT_ALL, BUSY_ICON_FRIENDLY, refilling_obj)) break remaining_gel = clamp(remaining_gel + 10, 0, 100) + update_icon() to_chat(user, SPAN_NOTICE("[refilling_obj] chimes, and displays \"[remaining_gel]% filled\".")) refilling = FALSE @@ -257,14 +276,17 @@ if(remaining_gel < gel_cost) return FALSE remaining_gel -= gel_cost + update_icon() return TRUE /obj/item/tool/surgery/bonegel/empty remaining_gel = 0 + icon_state = "bone-gel_0" /obj/item/tool/surgery/bonegel/predatorbonegel name = "gel gun" desc = "Inside is a liquid that is similar in effect to bone gel, but requires much smaller quantities, allowing near infinite use from a single capsule." + base_icon_state = "predator_bone-gel" icon_state = "predator_bone-gel" unlimited_gel = TRUE diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index 6fa420df35d5..91d8164dcf38 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -396,6 +396,14 @@ src.add_fingerprint(user) addtimer(VARSET_CALLBACK(src, spam_flag, FALSE), 2 SECONDS) +// rubber duck +/obj/item/toy/bikehorn/rubberducky + name = "rubber ducky" + desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "rubberducky" + item_state = "rubberducky" + /obj/item/computer3_part name = "computer part" desc = "Holy jesus you donnit now" diff --git a/code/game/objects/items/toys/trading_cards.dm b/code/game/objects/items/toys/trading_cards.dm new file mode 100644 index 000000000000..9fb83cd1e5e1 --- /dev/null +++ b/code/game/objects/items/toys/trading_cards.dm @@ -0,0 +1,61 @@ +/obj/item/toy/trading_card + name = "WeyYu Military Trading Card" + icon = 'icons/obj/items/playing_cards.dmi' + icon_state = "trading_red" + w_class = SIZE_TINY + + var/trading_card_number = "1" + var/picture_description = "barrel charger" + var/collection_color + var/is_front = FALSE + var/back_name = "Red WeyYu Military Trading Card" + var/front_name = "Red WeyYu Military Trading Card Number One" + var/back_description = "The back of a red trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!" + var/front_description = "A red trading card with a picture of the United Americas flag emblazoned on it. It is number one out of the five red cards." + var/back_icon_state = "trading_red" + var/front_icon_state = "trading_red_one" + var/picture_descriptions = list("5" = list("red" = "a fanatical colonial seditionist", "green" = "Almirante Joelle De La Cruz (the United Americas Secretary of Defense)", "blue" = "the United Americas flag"), + "4" = list("red" = "a UPPA soldier", "green" = "Marechal-do-ar Enzo Gabriel Lurdes (the Chief of Naval Operations of the Latin American Colonial Navy)", "blue" = "the Union of Progressive Peoples flag"), + "3" = list("red" = "a UPPA minigunner", "green" = "Generale d'armee Felix Couture (the Commandant of the Canadian Colonial Armed Forces)", "blue" = "the Three World Empire flag"), + "2" = list("red" = "a UPPA officer", "green" = "General Diego Dellamarggio (the Commandant of the United States Colonial Marines)", "blue" = "the Weyland Yutani logo"), + "1" = list("red" = "a Holy Order of the HEFA cultist", "green" = "General Delyla S. Vaughn (the Assistant Commandant of the United States Colonial Marines)", "blue" = "the Independent Core System Colonies logo",) + ) + +/obj/item/toy/trading_card/Initialize() + . = ..() + + if(istype(loc, /obj/item/storage/fancy/trading_card)) + var/obj/item/storage/fancy/trading_card/packet = loc + collection_color = packet.collection_color + + if(!collection_color) + collection_color = pick("red", "green", "blue") + trading_card_number = pick_weight(list("5" = 25, "4" = 20, "3" = 15, "2" = 10, "1" = 5)) + picture_description = picture_descriptions[trading_card_number][collection_color] + + name = "[capitalize(collection_color)] WeyYu Military Trading Card" + back_name = "[capitalize(collection_color)] WeyYu Military Trading Card" + front_name = "[capitalize(collection_color)] WeyYu Military Trading Card #[trading_card_number]" + + desc = "The back of a [collection_color] trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!" + back_description = "The back of a [collection_color] trading card with the text: WeyYu Military Trading Cards! GOTTA COLLECT EM ALL!" + front_description = "A [collection_color] trading card with a picture of [picture_description] emblazoned on it. It is #[trading_card_number] out of the five [collection_color] cards." + + icon_state = "trading_[collection_color]" + back_icon_state = "trading_[collection_color]" + front_icon_state = "trading_[collection_color]_[trading_card_number]" + +/obj/item/toy/trading_card/attack_self(mob/user) + if(loc == user) + if(is_front) + name = back_name + desc = back_description + icon_state = back_icon_state + is_front = FALSE + else + to_chat(user, SPAN_NOTICE("You reveal the card. It has a picture of [picture_description] on it!")) + name = front_name + desc = front_description + icon_state = front_icon_state + is_front = TRUE + return ..() diff --git a/code/game/objects/structures/barricade/barricade.dm b/code/game/objects/structures/barricade/barricade.dm index 0a37e4bcec59..313067ca6a56 100644 --- a/code/game/objects/structures/barricade/barricade.dm +++ b/code/game/objects/structures/barricade/barricade.dm @@ -5,21 +5,28 @@ climbable = TRUE anchored = TRUE density = TRUE - throwpass = TRUE //You can throw objects over this, despite its density. + /// You can throw objects over this, despite its density. + throwpass = TRUE layer = BELOW_OBJ_LAYER flags_atom = ON_BORDER - var/stack_type //The type of stack the barricade dropped when disassembled if any. - var/stack_amount = 5 //The amount of stack dropped when disassembled at full health - var/destroyed_stack_amount //to specify a non-zero amount of stack to drop when destroyed + /// The type of stack the barricade dropped when disassembled if any. + var/stack_type + /// The amount of stack dropped when disassembled at full health + var/stack_amount = 5 + /// to specify a non-zero amount of stack to drop when destroyed + var/destroyed_stack_amount health = 100 //Pretty tough. Changes sprites at 300 and 150 - var/maxhealth = 100 //Basic code functions + var/maxhealth = 100 /// Used for calculating some stuff related to maxhealth as it constantly changes due to e.g. barbed wire. set to 100 to avoid possible divisions by zero var/starting_maxhealth = 100 - var/crusher_resistant = TRUE //Whether a crusher can ram through it. - var/force_level_absorption = 5 //How much force an item needs to even damage it at all. + /// Whether a crusher can ram through it. + var/crusher_resistant = TRUE + /// How much force an item needs to even damage it at all. + var/force_level_absorption = 5 var/barricade_hitsound var/barricade_type = "barricade" //"metal", "plasteel", etc. - var/wire_icon = 'icons/obj/structures/barricades.dmi' //! Icon file used for the wiring + /// ! Icon file used for the wiring + var/wire_icon = 'icons/obj/structures/barricades.dmi' var/can_change_dmg_state = TRUE var/damage_state = BARRICADE_DMG_NONE var/closed = FALSE @@ -35,6 +42,8 @@ var/burn_flame_multiplier = 1 var/repair_materials = list() var/metallic = TRUE + /// Lower limit of damage beyond which the barricade cannot be fixed by welder. Compared to damage_state. If null it can be repaired at any damage_state. + var/welder_lower_damage_limit = null /obj/structure/barricade/Initialize(mapload, mob/user) . = ..() @@ -357,9 +366,8 @@ if(50 to 75) damage_state = BARRICADE_DMG_SLIGHT if(75 to INFINITY) damage_state = BARRICADE_DMG_NONE -/obj/structure/barricade/proc/weld_cade(obj/item/tool/weldingtool/welder, mob/user) - if(!metallic) - user.visible_message(SPAN_WARNING("You can't weld \the [src]!")) +/obj/structure/barricade/proc/try_weld_cade(obj/item/tool/weldingtool/welder, mob/user, repeat = TRUE, skip_check = FALSE) + if(!skip_check && !can_weld(welder, user)) return FALSE if(!(welder.remove_fuel(2, user))) @@ -378,6 +386,16 @@ user.count_niche_stat(STATISTICS_NICHE_REPAIR_CADES) update_health(-200) playsound(src.loc, 'sound/items/Welder2.ogg', 25, TRUE) + + var/current_tool = user.get_active_hand() + if(current_tool != welder) + return TRUE // Swapped hands or tool + if(repeat && can_weld(welder, user, silent = TRUE)) + // Assumption: The implementation of can_weld will return false if fully repaired + if(!try_weld_cade(welder, user, repeat = TRUE, skip_check = TRUE)) + // If this returned false, then we were interrupted or ran out of fuel, so stop looping + return TRUE + return TRUE /obj/structure/barricade/verb/count_rotate() @@ -466,3 +484,29 @@ nailgun.in_chamber = null nailgun.load_into_chamber() return TRUE + +/obj/structure/barricade/proc/can_weld(obj/item/item, mob/user, silent) + if(user.action_busy) + return FALSE + + if(!metallic) + if(!silent) + user.visible_message(SPAN_WARNING("You can't weld \the [src]!")) + return FALSE + + if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) + if(!silent) + to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) + return FALSE + + if(health == maxhealth) + if(!silent) + to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) + return FALSE + + if(!(isnull(damage_state)) && !(isnull(welder_lower_damage_limit)) && damage_state >= welder_lower_damage_limit) + if(!silent) + to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired.")) + return FALSE + + return TRUE diff --git a/code/game/objects/structures/barricade/deployable.dm b/code/game/objects/structures/barricade/deployable.dm index 0d5275f98a3d..ca35f82bdde5 100644 --- a/code/game/objects/structures/barricade/deployable.dm +++ b/code/game/objects/structures/barricade/deployable.dm @@ -24,40 +24,28 @@ . += SPAN_INFO("Drag its sprite onto yourself to undeploy.") /obj/structure/barricade/deployable/attackby(obj/item/item, mob/user) - if(iswelder(item)) - if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(user.action_busy) - return - var/obj/item/tool/weldingtool/welder = item - if(health == maxhealth) - to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) - return - - weld_cade(welder, user) + try_weld_cade(item, user) return - else if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(user.action_busy) return if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You do not know how to collapse [src] using a crowbar...")) return + user.visible_message(SPAN_NOTICE("[user] starts collapsing [src]."), \ + SPAN_NOTICE("You begin collapsing [src]...")) + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + if(do_after(user, 1.5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY, src)) + collapse(usr) else - user.visible_message(SPAN_NOTICE("[user] starts collapsing [src]."), \ - SPAN_NOTICE("You begin collapsing [src]...")) - playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) - if(do_after(user, 1.5 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_FRIENDLY, src)) - collapse(usr) - else - to_chat(user, SPAN_WARNING("You stop collapsing [src].")) + to_chat(user, SPAN_WARNING("You stop collapsing [src].")) if(try_nailgun_usage(item, user)) return - . = ..() + return ..() /obj/structure/barricade/deployable/MouseDrop(obj/over_object as obj) if(!ishuman(usr)) @@ -202,7 +190,7 @@ to_chat(user, SPAN_INFO("You transfer [to_transfer] between the stacks.")) return - else if(iswelder(item)) + if(iswelder(item)) if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) return @@ -248,7 +236,7 @@ playsound(loc, 'sound/items/Welder2.ogg', 25, TRUE) return - . = ..() + return ..() /obj/item/stack/folding_barricade/attack_hand(mob/user) var/mob/living/carbon/human/human = user diff --git a/code/game/objects/structures/barricade/handrail.dm b/code/game/objects/structures/barricade/handrail.dm index ae166dbbf985..1d641479c3d9 100644 --- a/code/game/objects/structures/barricade/handrail.dm +++ b/code/game/objects/structures/barricade/handrail.dm @@ -67,7 +67,7 @@ reinforced = !reinforced update_icon() -/obj/structure/barricade/handrail/attackby(obj/item/W, mob/user) +/obj/structure/barricade/handrail/attackby(obj/item/item, mob/user) for(var/obj/effect/xenomorph/acid/A in src.loc) if(A.acid_t == src) to_chat(user, "You can't get near that, it's melting!") @@ -75,7 +75,7 @@ switch(build_state) if(BARRICADE_BSTATE_SECURED) //Non-reinforced. Wrench to unsecure. Screwdriver to disassemble into metal. 1 metal to reinforce. - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) // Make unsecure + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) // Make unsecure if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -89,7 +89,7 @@ build_state = BARRICADE_BSTATE_UNSECURED update_icon() return - if(istype(W, /obj/item/stack/sheet/metal)) // Start reinforcing + if(istype(item, /obj/item/stack/sheet/metal)) // Start reinforcing if(!can_be_reinforced) return if(user.action_busy) @@ -97,7 +97,7 @@ if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) to_chat(user, SPAN_WARNING("You are not trained to reinforce [src]...")) return - var/obj/item/stack/sheet/metal/M = W + var/obj/item/stack/sheet/metal/M = item playsound(src.loc, 'sound/items/Screwdriver2.ogg', 25, 1) if(M.amount >= 1 && do_after(user, 30, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) //Shouldnt be possible, but doesnt hurt to check if(!M.use(1)) @@ -109,7 +109,7 @@ return if(BARRICADE_BSTATE_UNSECURED) - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) // Secure again + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) // Secure again if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -123,7 +123,7 @@ build_state = BARRICADE_BSTATE_SECURED update_icon() return - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) // Disassemble into metal + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) // Disassemble into metal if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -141,7 +141,7 @@ if(BARRICADE_BSTATE_FORTIFIED) if(reinforced) - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) // Un-reinforce + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) // Un-reinforce if(user.action_busy) return if(!skillcheck(user, SKILL_CONSTRUCTION, SKILL_CONSTRUCTION_TRAINED)) @@ -155,8 +155,8 @@ reinforce() return else - if(iswelder(W)) // Finish reinforcing - if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) + if(iswelder(item)) // Finish reinforcing + if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) return if(user.action_busy) diff --git a/code/game/objects/structures/barricade/metal.dm b/code/game/objects/structures/barricade/metal.dm index 4f250eed50e9..3e79af2e21e1 100644 --- a/code/game/objects/structures/barricade/metal.dm +++ b/code/game/objects/structures/barricade/metal.dm @@ -19,6 +19,8 @@ var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines var/upgrade = null + welder_lower_damage_limit = BARRICADE_DMG_HEAVY + /obj/structure/barricade/metal/update_icon() . = ..() if(dir > 2) @@ -42,26 +44,20 @@ if(BARRICADE_UPGRADE_ANTIFF) . += SPAN_NOTICE("The cade is protected by a composite upgrade.") -/obj/structure/barricade/metal/attackby(obj/item/item, mob/user) - if(iswelder(item)) - if(!HAS_TRAIT(item, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(user.action_busy) - return - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) +/obj/structure/barricade/metal/can_weld(obj/item/item, mob/user, silent) + if(!..()) + return FALSE + + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) + if(!silent) to_chat(user, SPAN_WARNING("You're not trained to repair [src]...")) - return - var/obj/item/tool/weldingtool/welder = item - if(damage_state == BARRICADE_DMG_HEAVY) - to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired.")) - return + return FALSE - if(health == maxhealth) - to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) - return + return TRUE - weld_cade(welder, user) +/obj/structure/barricade/metal/attackby(obj/item/item, mob/user) + if(iswelder(item)) + try_weld_cade(item, user) return if(try_nailgun_usage(item, user)) @@ -204,11 +200,13 @@ to_chat(user, SPAN_WARNING("You are not trained to assemble [src]...")) return playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] set [src]'s protection panel back."), SPAN_NOTICE("You set [src]'s protection panel back.")) build_state = BARRICADE_BSTATE_SECURED return + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(user.action_busy) return @@ -216,13 +214,15 @@ to_chat(user, SPAN_WARNING("You are not trained to disassemble [src]...")) return playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] loosens [src]'s anchor bolts."), SPAN_NOTICE("You loosen [src]'s anchor bolts.")) anchored = FALSE build_state = BARRICADE_BSTATE_MOVABLE update_icon() //unanchored changes layer return + if(BARRICADE_BSTATE_MOVABLE) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to resecure anchor bolts if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(user.action_busy) @@ -239,13 +239,15 @@ to_chat(user, SPAN_WARNING("[src] must be secured on a proper surface!")) return playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] secures [src]'s anchor bolts."), SPAN_NOTICE("You secure [src]'s anchor bolts.")) build_state = BARRICADE_BSTATE_UNSECURED anchored = TRUE update_icon() //unanchored changes layer return + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(user.action_busy) return @@ -262,7 +264,7 @@ deconstruct(TRUE) //Note : Handles deconstruction too ! return - . = ..() + return ..() /obj/structure/barricade/metal/wired/New() maxhealth += 50 @@ -271,7 +273,7 @@ is_wired = TRUE climbable = FALSE update_icon() - . = ..() + return ..() /obj/structure/barricade/metal/wired/initialize_pass_flags(datum/pass_flags_container/PF) ..() diff --git a/code/game/objects/structures/barricade/misc.dm b/code/game/objects/structures/barricade/misc.dm index 5e0958f974b1..a0465de8f070 100644 --- a/code/game/objects/structures/barricade/misc.dm +++ b/code/game/objects/structures/barricade/misc.dm @@ -44,8 +44,8 @@ user.visible_message(SPAN_NOTICE("\The [user] removes \the [src].")) deconstruct(TRUE) return - else - . = ..() + + return ..() /obj/structure/barricade/snow/hit_barricade(obj/item/I) switch(I.damtype) @@ -101,7 +101,7 @@ if(try_nailgun_usage(W, user)) return - . = ..() + return ..() /obj/structure/barricade/wooden/hit_barricade(obj/item/I) switch(I.damtype) diff --git a/code/game/objects/structures/barricade/plasteel.dm b/code/game/objects/structures/barricade/plasteel.dm index dd95aa3f1baf..1acedae9997d 100644 --- a/code/game/objects/structures/barricade/plasteel.dm +++ b/code/game/objects/structures/barricade/plasteel.dm @@ -20,12 +20,15 @@ repair_materials = list("plasteel" = 0.3) var/build_state = BARRICADE_BSTATE_SECURED //Look at __game.dm for barricade defines - var/tool_cooldown = 0 //Delay to apply tools to prevent spamming - var/busy = FALSE //Standard busy check + /// Delay to apply tools to prevent spamming + var/tool_cooldown = 0 + /// Standard busy check + var/busy = FALSE var/linked = 0 var/recentlyflipped = FALSE var/hasconnectionoverlay = TRUE var/linkable = TRUE + welder_lower_damage_limit = BARRICADE_DMG_HEAVY /obj/structure/barricade/plasteel/update_icon() ..() @@ -44,7 +47,7 @@ if(!closed) // Closed = gate down for plasteel for some reason return ..() else - return 0 + return FALSE /obj/structure/barricade/plasteel/get_examine_text(mob/user) . = ..() @@ -57,35 +60,28 @@ if(BARRICADE_BSTATE_MOVABLE) . += SPAN_INFO("The protection panel has been removed and the anchor bolts loosened. It's ready to be taken apart.") -/obj/structure/barricade/plasteel/weld_cade(obj/item/W, mob/user) +/obj/structure/barricade/plasteel/try_weld_cade(obj/item/item, mob/user, repeat = TRUE, skip_check = FALSE) busy = TRUE ..() busy = FALSE -/obj/structure/barricade/plasteel/attackby(obj/item/W, mob/user) - if(iswelder(W)) - if(!HAS_TRAIT(W, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - if(busy || tool_cooldown > world.time) - return - tool_cooldown = world.time + 10 - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) +/obj/structure/barricade/plasteel/can_weld(obj/item/item, mob/user, silent) + if(!..()) + return FALSE + + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) + if(!silent) to_chat(user, SPAN_WARNING("You're not trained to repair [src]...")) - return - var/obj/item/tool/weldingtool/WT = W - if(damage_state == BARRICADE_DMG_HEAVY) - to_chat(user, SPAN_WARNING("[src] has sustained too much structural damage to be repaired.")) - return + return FALSE - if(health == maxhealth) - to_chat(user, SPAN_WARNING("[src] doesn't need repairs.")) - return + return TRUE - weld_cade(WT, user) +/obj/structure/barricade/plasteel/attackby(obj/item/item, mob/user) + if(iswelder(item)) + try_weld_cade(item, user) return - if(try_nailgun_usage(W, user)) + if(try_nailgun_usage(item, user)) return for(var/obj/effect/xenomorph/acid/A in src.loc) @@ -94,8 +90,8 @@ return switch(build_state) - if(2) //Fully constructed step. Use screwdriver to remove the protection panels to reveal the bolts - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + if(BARRICADE_BSTATE_SECURED) //Fully constructed step. Use screwdriver to remove the protection panels to reveal the bolts + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 @@ -107,13 +103,15 @@ if(B != src && B.dir == dir) to_chat(user, SPAN_WARNING("There's already a barricade here.")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] removes [src]'s protection panel."), SPAN_NOTICE("You remove [src]'s protection panels, exposing the anchor bolts.")) playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) build_state = BARRICADE_BSTATE_UNSECURED return - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You are not trained to modify [src]...")) return @@ -132,28 +130,32 @@ for(var/obj/structure/barricade/plasteel/cade in get_step(src, direction)) cade.update_icon() update_icon() - if(1) //Protection panel removed step. Screwdriver to put the panel back, wrench to unsecure the anchor bolts - if(HAS_TRAIT(W, TRAIT_TOOL_SCREWDRIVER)) + + if(BARRICADE_BSTATE_UNSECURED) //Protection panel removed step. Screwdriver to put the panel back, wrench to unsecure the anchor bolts + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You are not trained to assemble [src]...")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] set [src]'s protection panel back."), SPAN_NOTICE("You set [src]'s protection panel back.")) playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) build_state = BARRICADE_BSTATE_SECURED return - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) + + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) to_chat(user, SPAN_WARNING("You are not trained to assemble [src]...")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] loosens [src]'s anchor bolts."), SPAN_NOTICE("You loosen [src]'s anchor bolts.")) playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) @@ -162,8 +164,8 @@ update_icon() //unanchored changes layer return - if(0) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to rescure anchor bolts - if(HAS_TRAIT(W, TRAIT_TOOL_WRENCH)) + if(BARRICADE_BSTATE_MOVABLE) //Anchor bolts loosened step. Apply crowbar to unseat the panel and take apart the whole thing. Apply wrench to rescure anchor bolts + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 @@ -174,7 +176,8 @@ if(!(istype(T) && T.allow_construction)) to_chat(user, SPAN_WARNING("[src] must be secured on a proper surface!")) return - if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) return + if(!do_after(user, 10, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) + return user.visible_message(SPAN_NOTICE("[user] secures [src]'s anchor bolts."), SPAN_NOTICE("You secure [src]'s anchor bolts.")) playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) @@ -182,7 +185,8 @@ build_state = BARRICADE_BSTATE_UNSECURED update_icon() //unanchored changes layer return - if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + + if(HAS_TRAIT(item, TRAIT_TOOL_CROWBAR)) if(busy || tool_cooldown > world.time) return tool_cooldown = world.time + 10 @@ -194,15 +198,14 @@ playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) busy = TRUE if(do_after(user, 50 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD, src)) - busy = FALSE user.visible_message(SPAN_NOTICE("[user] takes [src]'s panels apart."), SPAN_NOTICE("You take [src]'s panels apart.")) playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) deconstruct(TRUE) //Note : Handles deconstruction too ! - else busy = FALSE + busy = FALSE return - . = ..() + return ..() /obj/structure/barricade/plasteel/attack_hand(mob/user as mob) if(isxeno(user)) @@ -264,7 +267,7 @@ is_wired = TRUE climbable = FALSE update_icon() - . = ..() + return ..() /obj/structure/barricade/plasteel/wired/initialize_pass_flags(datum/pass_flags_container/PF) ..() diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm index 41c27ae47519..c1c0839fa6f5 100644 --- a/code/game/objects/structures/crates_lockers/closets/coffin.dm +++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm @@ -14,6 +14,13 @@ else icon_state = icon_opened +/obj/structure/closet/coffin/uscm + name = "\improper USCM coffin" + desc = "A burial receptacle for dearly departed Marines, adorned in red and finished with the Corps' emblem on the interior. Semper fi." + icon_state = "uscm_coffin" + icon_closed = "uscm_coffin" + icon_opened = "uscm_coffin_open" + /obj/structure/closet/coffin/predator name = "strange coffin" desc = "It's a burial receptacle for the dearly departed. Seems to have weird markings on the side..?" 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 9b473d91f46e..6c711a7bcabe 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 @@ -254,6 +254,7 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/storage/belt/medical/full(src) new /obj/item/clothing/under/rank/medical/green(src) new /obj/item/clothing/under/rank/medical/blue(src) + new /obj/item/clothing/under/rank/medical/lightblue(src) new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/clothing/mask/surgical(src) new /obj/item/clothing/head/surgery/green(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 4244fd82881e..f7518a8c6058 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -93,6 +93,7 @@ new /obj/item/clothing/gloves/latex(src) new /obj/item/clothing/under/rank/medical/green(src) new /obj/item/clothing/under/rank/medical/blue(src) + new /obj/item/clothing/under/rank/medical/lightblue(src) new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/clothing/head/surgery/green(src) new /obj/item/clothing/head/surgery/blue(src) @@ -106,8 +107,6 @@ new /obj/item/storage/pouch/medical(src) new /obj/item/storage/pouch/syringe(src) new /obj/item/storage/pouch/medkit(src) - if(is_mainship_level(z)) - new /obj/item/device/radio/headset/almayer/cmo(src) return /obj/structure/closet/secure_closet/chemical name = "chemical closet" @@ -170,3 +169,63 @@ . = ..() new /obj/item/storage/surgical_tray(src) new /obj/item/roller/surgical(src) + +/obj/structure/closet/secure_closet/professor_dummy + name = "professor dummy cabinet" + desc = "An ultrasafe cabinet containing Professor DUMMY and its tablet. Only accessible by Chief Medical Officers and Senior Listed Advisors." + icon_state = "surgical_wall_locked" + icon_closed = "surgical_wall_unlocked" + icon_locked = "surgical_wall_locked" + icon_opened = "surgical_wall_open" + icon_broken = "surgical_wall_spark" + health = null // Unbreakable + unacidable = TRUE + unslashable = TRUE + store_mobs = TRUE + wall_mounted = TRUE + +/obj/structure/closet/secure_closet/professor_dummy/Initialize() + . = ..() + var/mob/living/carbon/human/dummy/professor_dummy/spawned_dummy = new(src) + var/datum/equipment_preset/dummy_preset = /datum/equipment_preset/other/professor_dummy + arm_equipment(spawned_dummy, initial(dummy_preset.name), TRUE, FALSE) + +/obj/structure/closet/secure_closet/professor_dummy/togglelock(mob/living/user) + if(user.job == JOB_CMO || user.job == JOB_SEA) + return ..() + + to_chat(user, SPAN_WARNING("Only the [JOB_CMO] or the [JOB_SEA] can toggle this lock.")) + +/obj/structure/closet/secure_closet/professor_dummy/dump_contents() + if(locate(/mob/living/carbon/human/dummy/professor_dummy) in src) + visible_message(SPAN_HIGHDANGER("Professor DUMMY should only be used for teaching medical personnel, exclusively done by the [JOB_CMO] or the [JOB_SEA]. Do not abuse it.")) + return ..() + +/obj/structure/closet/secure_closet/professor_dummy/close() + for(var/mob/mob in loc) + if(!istype(mob, /mob/living/carbon/human/dummy/professor_dummy)) + visible_message(SPAN_WARNING("[src] won't budge!")) + return + ..() + + // Force locking upon closing it + locked = TRUE + update_icon() + +/obj/structure/closet/secure_closet/professor_dummy/flashbang(datum/source, obj/item/explosive/grenade/flashbang/FB) + return + +/obj/structure/closet/secure_closet/professor_dummy/proc/check_and_destroy_dummy() + var/mob/dummy = locate(/mob/living/carbon/human/dummy/professor_dummy) in src + if(dummy) + visible_message(SPAN_DANGER("Something in [src] blows apart!")) + playsound(src, 'sound/effects/metal_crash.ogg', 25, 1) + qdel(dummy) + +/obj/structure/closet/secure_closet/professor_dummy/emp_act(severity) + check_and_destroy_dummy() + ..() + +/obj/structure/closet/secure_closet/professor_dummy/ex_act(severity) + check_and_destroy_dummy() + ..() diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index daecf1906c21..eddc0690233c 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -297,6 +297,7 @@ new /obj/item/clothing/under/rank/medical(src) new /obj/item/clothing/under/rank/medical(src) new /obj/item/clothing/under/rank/medical/blue(src) + new /obj/item/clothing/under/rank/medical/lightblue(src) new /obj/item/clothing/under/rank/medical/green(src) new /obj/item/clothing/under/rank/medical/purple(src) new /obj/item/clothing/shoes/white(src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index cfb62812f0c6..d891119a8404 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -335,7 +335,7 @@ icon_closed = "closed_supply" /obj/structure/closet/crate/trashcart - name = "\improper trash cart" + name = "trash cart" desc = "A heavy, metal trashcart with wheels." icon_state = "closed_trashcart" icon_opened = "open_trashcart" @@ -437,4 +437,3 @@ density = TRUE icon_opened = "open_mcart_y" icon_closed = "closed_mcart_y" - diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 39a659c5f397..5620f106b560 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -22,32 +22,18 @@ playsound(src, unpacking_sound, 35) - /// Store the reference of the crate material - var/obj/item/stack/sheet/material_sheet - if(parts_type) // Create the crate material and store its reference - material_sheet = new parts_type(current_turf, 2) - - // Move the objects back to the turf, above the crate material + // Move the contents back to the turf for(var/atom/movable/moving_atom as anything in contents) moving_atom.forceMove(current_turf) - deconstruct(TRUE) - - // Move the crate material to the bottom of the turf's contents - if(material_sheet) - move_to_bottom(material_sheet, current_turf) + if(parts_type) // Create the crate material + new parts_type(current_turf, 2) -/// Custom proc to move an object to the bottom of the turf's contents -/obj/structure/largecrate/proc/move_to_bottom(obj/moving_down, turf/current_turf) - if(!istype(moving_down) || !istype(current_turf)) - return - for(var/atom/movable/checking_atom in current_turf.contents) - if(checking_atom != moving_down) - checking_atom.layer = max(checking_atom.layer, moving_down.layer + 0.1) + deconstruct(TRUE) /obj/structure/largecrate/deconstruct(disassembled = TRUE) if(!disassembled) - new /obj/item/stack/sheet/wood(loc) + new parts_type(loc) return ..() diff --git a/code/game/objects/structures/props.dm b/code/game/objects/structures/props.dm index 8aad7de3e04c..8c03a4dbd66c 100644 --- a/code/game/objects/structures/props.dm +++ b/code/game/objects/structures/props.dm @@ -926,7 +926,7 @@ name = "\improper S-52 fusion reactor" desc = "A Westingland S-52 Fusion Reactor. Takes fuels cells and converts them to power. Also produces a large amount of heat." icon = 'icons/obj/structures/machinery/fusion_eng.dmi' - icon_state = "off-0" + icon_state = "off" /obj/structure/prop/invuln/pipe_water name = "pipe water" diff --git a/code/game/objects/structures/reagent_dispensers.dm b/code/game/objects/structures/reagent_dispensers.dm index 1981dcaba569..a89f35ce38f3 100644 --- a/code/game/objects/structures/reagent_dispensers.dm +++ b/code/game/objects/structures/reagent_dispensers.dm @@ -5,6 +5,7 @@ icon_state = "watertank" density = TRUE anchored = FALSE + drag_delay = 1 health = 100 // Can be destroyed in 2-4 slashes. flags_atom = CAN_BE_SYRINGED wrenchable = TRUE @@ -432,6 +433,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "peppertank" anchored = TRUE + drag_delay = 3 wrenchable = FALSE density = FALSE amount_per_transfer_from_this = 45 @@ -445,6 +447,7 @@ icon_state = "water_cooler" possible_transfer_amounts = null anchored = TRUE + drag_delay = 3 chemical = "water" /obj/structure/reagent_dispensers/water_cooler/walk_past @@ -460,6 +463,7 @@ icon_state = "beertankTEMP" amount_per_transfer_from_this = 10 chemical = "beer" + drag_delay = 3 /obj/structure/reagent_dispensers/beerkeg/alt icon_state = "beertank_alt" @@ -474,6 +478,7 @@ icon_state = "virusfoodtank" amount_per_transfer_from_this = 10 anchored = TRUE + drag_delay = 3 wrenchable = FALSE density = FALSE chemical = "virusfood" diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm new file mode 100644 index 000000000000..b731a2c0e242 --- /dev/null +++ b/code/game/objects/structures/shower.dm @@ -0,0 +1,222 @@ +/obj/structure/machinery/shower + name = "shower" + desc = "The HS-451. Installed in the 2050s by the Weyland Hygiene Division." + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "shower" + density = FALSE + anchored = TRUE + use_power = USE_POWER_NONE + var/on = 0 + var/obj/effect/mist/mymist = null + /// needs a var so we can make it linger~ + var/ismist = 0 + /// freezing, normal, or boiling + var/watertemp = "normal" + /// true if there is a mob on the shower's loc, this is to ease process() + var/mobpresent = 0 + var/is_washing = 0 + +/obj/structure/machinery/shower/Initialize() + . = ..() + create_reagents(2) + +//add heat controls? when emagged, you can freeze to death in it? + +/obj/effect/mist + name = "mist" + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "mist" + layer = FLY_LAYER + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + + +/obj/structure/machinery/shower/attack_hand(mob/M as mob) + on = !on + update_icon() + if(on) + start_processing() + if (M.loc == loc) + wash(M) + check_heat(M) + for (var/atom/movable/G in src.loc) + G.clean_blood() + else + stop_processing() + + +/obj/structure/machinery/shower/attackby(obj/item/I as obj, mob/user as mob) + if(I.type == /obj/item/device/analyzer) + to_chat(user, SPAN_NOTICE("The water temperature seems to be [watertemp].")) + if(HAS_TRAIT(I, TRAIT_TOOL_WRENCH)) + to_chat(user, SPAN_NOTICE("You begin to adjust the temperature valve with \the [I].")) + if(do_after(user, 50, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + switch(watertemp) + if("normal") + watertemp = "freezing" + if("freezing") + watertemp = "boiling" + if("boiling") + watertemp = "normal" + user.visible_message(SPAN_NOTICE("[user] adjusts the shower with \the [I]."), SPAN_NOTICE("You adjust the shower with \the [I].")) + add_fingerprint(user) + + +/obj/structure/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up + overlays.Cut() //once it's been on for a while, in addition to handling the water overlay. + QDEL_NULL(mymist) + + if(on) + overlays += image('icons/obj/structures/props/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) + if(watertemp == "freezing") + return + if(!ismist) + spawn(50) + if(src && on) + ismist = 1 + mymist = new /obj/effect/mist(loc) + else + ismist = 1 + mymist = new /obj/effect/mist(loc) + else if(ismist) + ismist = 1 + mymist = new /obj/effect/mist(loc) + spawn(250) + if(src && !on) + QDEL_NULL(mymist) + ismist = 0 + + +/obj/structure/machinery/shower/Crossed(atom/movable/O) + ..() + wash(O) + if(ismob(O)) + mobpresent++ + check_heat(O) + + +/obj/structure/machinery/shower/Uncrossed(atom/movable/O) + if(ismob(O)) + mobpresent-- + ..() + +//Yes, showers are super powerful as far as washing goes. +/obj/structure/machinery/shower/proc/wash(atom/movable/O as obj|mob) + if(!on) return + + + if(isliving(O)) + var/mob/living/L = O + L.ExtinguishMob() + L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily + to_chat(L, SPAN_WARNING("You've been drenched in water!")) + if(iscarbon(O)) + var/mob/living/carbon/M = O + if(M.r_hand) + M.r_hand.clean_blood() + if(M.l_hand) + M.l_hand.clean_blood() + if(M.back) + if(M.back.clean_blood()) + M.update_inv_back(0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/washgloves = 1 + var/washshoes = 1 + var/washmask = 1 + var/washears = 1 + var/washglasses = 1 + + if(H.wear_suit) + washgloves = !(H.wear_suit.flags_inv_hide & HIDEGLOVES) + washshoes = !(H.wear_suit.flags_inv_hide & HIDESHOES) + + if(H.head) + washmask = !(H.head.flags_inv_hide & HIDEMASK) + washglasses = !(H.head.flags_inv_hide & HIDEEYES) + washears = !(H.head.flags_inv_hide & HIDEEARS) + + if(H.wear_mask) + if (washears) + washears = !(H.wear_mask.flags_inv_hide & HIDEEARS) + if (washglasses) + washglasses = !(H.wear_mask.flags_inv_hide & HIDEEYES) + + if(H.head) + if(H.head.clean_blood()) + H.update_inv_head() + if(H.wear_suit) + if(H.wear_suit.clean_blood()) + H.update_inv_wear_suit() + else if(H.w_uniform) + if(H.w_uniform.clean_blood()) + H.update_inv_w_uniform() + if(H.gloves && washgloves) + if(H.gloves.clean_blood()) + H.update_inv_gloves() + if(H.shoes && washshoes) + if(H.shoes.clean_blood()) + H.update_inv_shoes() + if(H.wear_mask && washmask) + if(H.wear_mask.clean_blood()) + H.update_inv_wear_mask() + if(H.glasses && washglasses) + if(H.glasses.clean_blood()) + H.update_inv_glasses() + if((H.wear_l_ear || H.wear_r_ear) && washears) + if((H.wear_l_ear && H.wear_l_ear.clean_blood()) ||(H.wear_r_ear && H.wear_r_ear.clean_blood())) + H.update_inv_ears() + if(H.belt) + if(H.belt.clean_blood()) + H.update_inv_belt() + H.clean_blood(washshoes) + else + if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags + if(M.wear_mask.clean_blood()) + M.update_inv_wear_mask() + M.clean_blood() + else + O.clean_blood() + + if(isturf(loc)) + var/turf/tile = loc + tile.clean_blood() + for(var/obj/effect/E in tile) + if(istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay)) + qdel(E) + + +/obj/structure/machinery/shower/process() + if(!on) return + wash_floor() + if(!mobpresent) return + for(var/mob/living/carbon/C in loc) + check_heat(C) + + +/obj/structure/machinery/shower/proc/wash_floor() + if(!ismist && is_washing) + return + is_washing = 1 + var/turf/T = get_turf(src) +// reagents.add_reagent("water", 2) + T.clean(src) + addtimer(VARSET_CALLBACK(src, is_washing, FALSE), 10 SECONDS) + + +/obj/structure/machinery/shower/proc/check_heat(mob/M as mob) + if(!on || watertemp == "normal") return + if(iscarbon(M)) + var/mob/living/carbon/C = M + + if(watertemp == "freezing") + C.bodytemperature = max(80, C.bodytemperature - 80) + C.recalculate_move_delay = TRUE + to_chat(C, SPAN_WARNING("The water is freezing!")) + return + if(watertemp == "boiling") + C.bodytemperature = min(500, C.bodytemperature + 35) + C.recalculate_move_delay = TRUE + C.apply_damage(5, BURN) + to_chat(C, SPAN_DANGER("The water is searing!")) + return diff --git a/code/game/objects/structures/sink.dm b/code/game/objects/structures/sink.dm new file mode 100644 index 000000000000..6bac40ea7da4 --- /dev/null +++ b/code/game/objects/structures/sink.dm @@ -0,0 +1,122 @@ +/obj/structure/sink + name = "sink" + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "sink_emptied_animation" + desc = "A sink used for washing one's hands and face." + anchored = TRUE + /// if something's being washed at the moment + var/busy = FALSE + + +/obj/structure/sink/Initialize() + . = ..() + if(prob(50)) + icon_state = "sink_emptied" + + +/obj/structure/sink/proc/stop_flow() //sets sink animation to normal sink (without running water) + + if(prob(50)) + icon_state = "sink_emptied_animation" + else + icon_state = "sink_emptied" + flick("sink_animation_empty", src) + + +/obj/structure/sink/attack_hand(mob/user) + if(isRemoteControlling(user)) + return + + if(!Adjacent(user)) + return + + if(busy) + to_chat(user, SPAN_DANGER("Someone's already washing here.")) + return + + to_chat(usr, SPAN_NOTICE(" You start washing your hands.")) + flick("sink_animation_fill", src) //<- play the filling animation then automatically switch back to the loop + icon_state = "sink_animation_fill_loop" //<- set it to the loop + addtimer(CALLBACK(src, PROC_REF(stop_flow)), 6 SECONDS) + playsound(loc, 'sound/effects/sinkrunning.ogg', 25, TRUE) + + busy = TRUE + sleep(40) + busy = FALSE + + if(!Adjacent(user)) return //Person has moved away from the sink + + user.clean_blood() + if(ishuman(user)) + user:update_inv_gloves() + for(var/mob/V in viewers(src, null)) + V.show_message(SPAN_NOTICE("[user] washes their hands using \the [src]."), SHOW_MESSAGE_VISIBLE) + + +/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob) + if(busy) + to_chat(user, SPAN_DANGER("Someone's already washing here.")) + return + + var/obj/item/reagent_container/RG = O + if (istype(RG) && RG.is_open_container()) + RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + user.visible_message(SPAN_NOTICE("[user] fills \the [RG] using \the [src]."),SPAN_NOTICE("You fill \the [RG] using \the [src].")) + return + + else if (istype(O, /obj/item/weapon/baton)) + var/obj/item/weapon/baton/B = O + if(B.bcell) + if(B.bcell.charge > 0 && B.status == 1) + flick("baton_active", src) + user.apply_effect(10, STUN) + user.stuttering = 10 + user.apply_effect(10, WEAKEN) + B.deductcharge(B.hitcost) + user.visible_message( \ + SPAN_DANGER("[user] was stunned by \his wet [O]!"), \ + SPAN_DANGER("You were stunned by your wet [O]!")) + return + + var/turf/location = user.loc + if(!isturf(location)) return + + var/obj/item/I = O + if(!I || !istype(I,/obj/item)) return + + to_chat(usr, SPAN_NOTICE(" You start washing \the [I].")) + + busy = TRUE + sleep(40) + busy = FALSE + + if(user.loc != location) return //User has moved + if(!I) return //Item's been destroyed while washing + if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands + + O.clean_blood() + user.visible_message( \ + SPAN_NOTICE("[user] washes \a [I] using \the [src]."), \ + SPAN_NOTICE("You wash \a [I] using \the [src].")) + + +/obj/structure/sink/kitchen + name = "kitchen sink" + icon_state = "sink_alt" + + +/obj/structure/sink/puddle //splishy splashy ^_^ + name = "puddle" + icon_state = "puddle" + + +/obj/structure/sink/puddle/attack_hand(mob/M as mob) + icon_state = "puddle-splash" + ..() + icon_state = "puddle" + + +/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob) + icon_state = "puddle-splash" + ..() + icon_state = "puddle" diff --git a/code/game/objects/structures/urinal.dm b/code/game/objects/structures/urinal.dm new file mode 100644 index 000000000000..c6d14f46540a --- /dev/null +++ b/code/game/objects/structures/urinal.dm @@ -0,0 +1,22 @@ +/obj/structure/urinal + name = "urinal" + desc = "The HU-452, an experimental urinal." + icon = 'icons/obj/structures/props/watercloset.dmi' + icon_state = "urinal" + density = FALSE + anchored = TRUE + +/obj/structure/urinal/attackby(obj/item/I, mob/living/user) + if(istype(I, /obj/item/grab)) + if(isxeno(user)) return + var/obj/item/grab/G = I + if(isliving(G.grabbed_thing)) + var/mob/living/GM = G.grabbed_thing + if(user.grab_level > GRAB_PASSIVE) + 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 [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/vulture_spotter.dm b/code/game/objects/structures/vulture_spotter.dm index d90a1ec1615a..4d8e5d06749b 100644 --- a/code/game/objects/structures/vulture_spotter.dm +++ b/code/game/objects/structures/vulture_spotter.dm @@ -87,7 +87,7 @@ if(user.client) RegisterSignal(user.client, COMSIG_PARENT_QDELETING, PROC_REF(do_unscope)) user.client.change_view(scope_zoom, src) - RegisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED), PROC_REF(do_unscope)) + RegisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION), PROC_REF(do_unscope)) user.see_in_dark += darkness_view user.lighting_alpha = 127 user.sync_lighting_plane_alpha() @@ -234,7 +234,7 @@ user.lighting_alpha = user.default_lighting_alpha user.sync_lighting_plane_alpha() user.clear_fullscreen("vulture_spotter") - UnregisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED)) + UnregisterSignal(user, list(COMSIG_MOB_PICKUP_ITEM, COMSIG_MOB_RESISTED, COMSIG_MOB_DEATH, COMSIG_LIVING_SET_BODY_POSITION)) user.pixel_x = 0 user.pixel_y = 0 if(user.client) @@ -295,6 +295,10 @@ return rifle.attachments["rail"] +/obj/structure/vulture_spotter_tripod/check_eye(mob/living/user) + if((user.body_position != STANDING_UP) || (get_dist(user, src) > 0) || user.is_mob_incapacitated() || !user.client) + do_unscope() + /datum/action/vulture_tripod_unscope name = "Stop Using Scope" action_icon_state = "vulture_tripod_close" diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index ea93d868c5a1..1014e8ab7a96 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -1,5 +1,3 @@ -//todo: toothbrushes, and some sort of "toilet-filthinator" for the hos - /obj/structure/toilet name = "toilet" desc = "The HT-451, a torque rotation-based, waste disposal unit for small matter. This one seems remarkably clean." @@ -9,16 +7,19 @@ 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 - var/mob/living/swirlie = null //the mob being given a swirlie + /// if the lid is up + var/open = 0 + /// if the cistern bit is open + var/cistern = 0 + /// the combined w_class of all the items in the cistern + var/w_items = 0 + /// the mob being given a swirlie + var/mob/living/swirlie = null var/list/buckling_y = list("north" = 1, "south" = 4, "east" = 0, "west" = 0) var/list/buckling_x = list("north" = 0, "south" = 0, "east" = -5, "west" = 4) var/atom/movable/overlay/cistern_overlay - /obj/structure/toilet/Initialize() . = ..() open = round(rand(0, 1)) @@ -29,6 +30,7 @@ vis_contents += cistern_overlay update_icon() + /obj/structure/toilet/attack_hand(mob/living/user as mob) if(buckled_mob) manual_unbuckle(user) @@ -69,7 +71,6 @@ flick("cistern[cistern]_flush", cistern_overlay) - /obj/structure/toilet/send_buckling_message(mob/M, mob/user) if (M == user) to_chat(M, SPAN_NOTICE("You seat yourself onto the toilet")) @@ -77,10 +78,10 @@ to_chat(user, SPAN_NOTICE("[M] has been seated onto the toilet by [user].")) to_chat(M, SPAN_NOTICE("You have been seated onto the toilet by [user].")) + /obj/structure/toilet/afterbuckle(mob/M) . = ..() - if(. && buckled_mob == M) var/direction = dir2text(dir) M.pixel_y = buckling_y[direction] + pixel_y @@ -106,7 +107,6 @@ M.overlays -= image("toilet00") - /obj/structure/toilet/verb/flip_lid() set name = "Flip lid" set category = "Object" @@ -116,11 +116,11 @@ update_icon() - /obj/structure/toilet/update_icon() icon_state = "toilet[open][cistern]" cistern_overlay.icon_state = "cistern[cistern]" + /obj/structure/toilet/attackby(obj/item/I, mob/living/user) if(HAS_TRAIT(I, TRAIT_TOOL_CROWBAR)) to_chat(user, SPAN_NOTICE("You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"].")) @@ -168,374 +168,3 @@ w_items += I.w_class to_chat(user, "You carefully place \the [I] into the cistern.") return - - - -/obj/structure/urinal - name = "urinal" - desc = "The HU-452, an experimental urinal." - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "urinal" - density = FALSE - anchored = TRUE - -/obj/structure/urinal/attackby(obj/item/I, mob/living/user) - if(istype(I, /obj/item/grab)) - if(isxeno(user)) return - var/obj/item/grab/G = I - if(isliving(G.grabbed_thing)) - var/mob/living/GM = G.grabbed_thing - if(user.grab_level > GRAB_PASSIVE) - 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 [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.")) - - - -/obj/structure/machinery/shower - name = "shower" - desc = "The HS-451. Installed in the 2050s by the Weyland Hygiene Division." - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "shower" - density = FALSE - anchored = TRUE - use_power = USE_POWER_NONE - var/on = 0 - var/obj/effect/mist/mymist = null - var/ismist = 0 //needs a var so we can make it linger~ - var/watertemp = "normal" //freezing, normal, or boiling - var/mobpresent = 0 //true if there is a mob on the shower's loc, this is to ease process() - var/is_washing = 0 - -/obj/structure/machinery/shower/Initialize() - . = ..() - create_reagents(2) - -//add heat controls? when emagged, you can freeze to death in it? - -/obj/effect/mist - name = "mist" - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "mist" - layer = FLY_LAYER - anchored = TRUE - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - -/obj/structure/machinery/shower/attack_hand(mob/M as mob) - on = !on - update_icon() - if(on) - start_processing() - if (M.loc == loc) - wash(M) - check_heat(M) - for (var/atom/movable/G in src.loc) - G.clean_blood() - else - stop_processing() - -/obj/structure/machinery/shower/attackby(obj/item/I as obj, mob/user as mob) - if(I.type == /obj/item/device/analyzer) - to_chat(user, SPAN_NOTICE("The water temperature seems to be [watertemp].")) - if(HAS_TRAIT(I, TRAIT_TOOL_WRENCH)) - to_chat(user, SPAN_NOTICE("You begin to adjust the temperature valve with \the [I].")) - if(do_after(user, 50, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - switch(watertemp) - if("normal") - watertemp = "freezing" - if("freezing") - watertemp = "boiling" - if("boiling") - watertemp = "normal" - user.visible_message(SPAN_NOTICE("[user] adjusts the shower with \the [I]."), SPAN_NOTICE("You adjust the shower with \the [I].")) - add_fingerprint(user) - -/obj/structure/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up - overlays.Cut() //once it's been on for a while, in addition to handling the water overlay. - QDEL_NULL(mymist) - - if(on) - overlays += image('icons/obj/structures/props/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) - if(watertemp == "freezing") - return - if(!ismist) - spawn(50) - if(src && on) - ismist = 1 - mymist = new /obj/effect/mist(loc) - else - ismist = 1 - mymist = new /obj/effect/mist(loc) - else if(ismist) - ismist = 1 - mymist = new /obj/effect/mist(loc) - spawn(250) - if(src && !on) - QDEL_NULL(mymist) - ismist = 0 - -/obj/structure/machinery/shower/Crossed(atom/movable/O) - ..() - wash(O) - if(ismob(O)) - mobpresent++ - check_heat(O) - -/obj/structure/machinery/shower/Uncrossed(atom/movable/O) - if(ismob(O)) - mobpresent-- - ..() - -//Yes, showers are super powerful as far as washing goes. -/obj/structure/machinery/shower/proc/wash(atom/movable/O as obj|mob) - if(!on) return - - - if(isliving(O)) - var/mob/living/L = O - L.ExtinguishMob() - L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily - to_chat(L, SPAN_WARNING("You've been drenched in water!")) - if(iscarbon(O)) - var/mob/living/carbon/M = O - if(M.r_hand) - M.r_hand.clean_blood() - if(M.l_hand) - M.l_hand.clean_blood() - if(M.back) - if(M.back.clean_blood()) - M.update_inv_back(0) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/washgloves = 1 - var/washshoes = 1 - var/washmask = 1 - var/washears = 1 - var/washglasses = 1 - - if(H.wear_suit) - washgloves = !(H.wear_suit.flags_inv_hide & HIDEGLOVES) - washshoes = !(H.wear_suit.flags_inv_hide & HIDESHOES) - - if(H.head) - washmask = !(H.head.flags_inv_hide & HIDEMASK) - washglasses = !(H.head.flags_inv_hide & HIDEEYES) - washears = !(H.head.flags_inv_hide & HIDEEARS) - - if(H.wear_mask) - if (washears) - washears = !(H.wear_mask.flags_inv_hide & HIDEEARS) - if (washglasses) - washglasses = !(H.wear_mask.flags_inv_hide & HIDEEYES) - - if(H.head) - if(H.head.clean_blood()) - H.update_inv_head() - if(H.wear_suit) - if(H.wear_suit.clean_blood()) - H.update_inv_wear_suit() - else if(H.w_uniform) - if(H.w_uniform.clean_blood()) - H.update_inv_w_uniform() - if(H.gloves && washgloves) - if(H.gloves.clean_blood()) - H.update_inv_gloves() - if(H.shoes && washshoes) - if(H.shoes.clean_blood()) - H.update_inv_shoes() - if(H.wear_mask && washmask) - if(H.wear_mask.clean_blood()) - H.update_inv_wear_mask() - if(H.glasses && washglasses) - if(H.glasses.clean_blood()) - H.update_inv_glasses() - if((H.wear_l_ear || H.wear_r_ear) && washears) - if((H.wear_l_ear && H.wear_l_ear.clean_blood()) ||(H.wear_r_ear && H.wear_r_ear.clean_blood())) - H.update_inv_ears() - if(H.belt) - if(H.belt.clean_blood()) - H.update_inv_belt() - H.clean_blood(washshoes) - else - if(M.wear_mask) //if the mob is not human, it cleans the mask without asking for bitflags - if(M.wear_mask.clean_blood()) - M.update_inv_wear_mask() - M.clean_blood() - else - O.clean_blood() - - if(isturf(loc)) - var/turf/tile = loc - tile.clean_blood() - for(var/obj/effect/E in tile) - if(istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay)) - qdel(E) - -/obj/structure/machinery/shower/process() - if(!on) return - wash_floor() - if(!mobpresent) return - for(var/mob/living/carbon/C in loc) - check_heat(C) - -/obj/structure/machinery/shower/proc/wash_floor() - if(!ismist && is_washing) - return - is_washing = 1 - var/turf/T = get_turf(src) -// reagents.add_reagent("water", 2) - T.clean(src) - addtimer(VARSET_CALLBACK(src, is_washing, FALSE), 10 SECONDS) - -/obj/structure/machinery/shower/proc/check_heat(mob/M as mob) - if(!on || watertemp == "normal") return - if(iscarbon(M)) - var/mob/living/carbon/C = M - - if(watertemp == "freezing") - C.bodytemperature = max(80, C.bodytemperature - 80) - C.recalculate_move_delay = TRUE - to_chat(C, SPAN_WARNING("The water is freezing!")) - return - if(watertemp == "boiling") - C.bodytemperature = min(500, C.bodytemperature + 35) - C.recalculate_move_delay = TRUE - C.apply_damage(5, BURN) - to_chat(C, SPAN_DANGER("The water is searing!")) - return - - - -/obj/item/toy/bikehorn/rubberducky - name = "rubber ducky" - desc = "Rubber ducky you're so fine, you make bathtime lots of fuuun. Rubber ducky I'm awfully fooooond of yooooouuuu~" //thanks doohl - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "rubberducky" - item_state = "rubberducky" - - - -/obj/structure/sink - name = "sink" - icon = 'icons/obj/structures/props/watercloset.dmi' - icon_state = "sink_emptied_animation" - desc = "A sink used for washing one's hands and face." - anchored = TRUE - var/busy = FALSE //Something's being washed at the moment - -/obj/structure/sink/Initialize() - . = ..() - if(prob(50)) - icon_state = "sink_emptied" - - - -/obj/structure/sink/proc/stop_flow() //sets sink animation to normal sink (without running water) - - if(prob(50)) - icon_state = "sink_emptied_animation" - else - icon_state = "sink_emptied" - flick("sink_animation_empty", src) - - - -/obj/structure/sink/attack_hand(mob/user) - if(isRemoteControlling(user)) - return - - if(!Adjacent(user)) - return - - if(busy) - to_chat(user, SPAN_DANGER("Someone's already washing here.")) - return - - to_chat(usr, SPAN_NOTICE(" You start washing your hands.")) - flick("sink_animation_fill", src) //<- play the filling animation then automatically switch back to the loop - icon_state = "sink_animation_fill_loop" //<- set it to the loop - addtimer(CALLBACK(src, PROC_REF(stop_flow)), 6 SECONDS) - playsound(loc, 'sound/effects/sinkrunning.ogg', 25, TRUE) - - busy = TRUE - sleep(40) - busy = FALSE - - if(!Adjacent(user)) return //Person has moved away from the sink - - user.clean_blood() - if(ishuman(user)) - user:update_inv_gloves() - for(var/mob/V in viewers(src, null)) - V.show_message(SPAN_NOTICE("[user] washes their hands using \the [src]."), SHOW_MESSAGE_VISIBLE) - - -/obj/structure/sink/attackby(obj/item/O as obj, mob/user as mob) - if(busy) - to_chat(user, SPAN_DANGER("Someone's already washing here.")) - return - - var/obj/item/reagent_container/RG = O - if (istype(RG) && RG.is_open_container()) - RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) - user.visible_message(SPAN_NOTICE("[user] fills \the [RG] using \the [src]."),SPAN_NOTICE("You fill \the [RG] using \the [src].")) - return - - else if (istype(O, /obj/item/weapon/baton)) - var/obj/item/weapon/baton/B = O - if(B.bcell) - if(B.bcell.charge > 0 && B.status == 1) - flick("baton_active", src) - user.apply_effect(10, STUN) - user.stuttering = 10 - user.apply_effect(10, WEAKEN) - B.deductcharge(B.hitcost) - user.visible_message( \ - SPAN_DANGER("[user] was stunned by \his wet [O]!"), \ - SPAN_DANGER("You were stunned by your wet [O]!")) - return - - var/turf/location = user.loc - if(!isturf(location)) return - - var/obj/item/I = O - if(!I || !istype(I,/obj/item)) return - - to_chat(usr, SPAN_NOTICE(" You start washing \the [I].")) - - busy = TRUE - sleep(40) - busy = FALSE - - if(user.loc != location) return //User has moved - if(!I) return //Item's been destroyed while washing - if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands - - O.clean_blood() - user.visible_message( \ - SPAN_NOTICE("[user] washes \a [I] using \the [src]."), \ - SPAN_NOTICE("You wash \a [I] using \the [src].")) - - -/obj/structure/sink/kitchen - name = "kitchen sink" - icon_state = "sink_alt" - - -/obj/structure/sink/puddle //splishy splashy ^_^ - name = "puddle" - icon_state = "puddle" - -/obj/structure/sink/puddle/attack_hand(mob/M as mob) - icon_state = "puddle-splash" - ..() - icon_state = "puddle" - -/obj/structure/sink/puddle/attackby(obj/item/O as obj, mob/user as mob) - icon_state = "puddle-splash" - ..() - icon_state = "puddle" diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 6ab70b8266f4..226045caaea6 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -599,6 +599,34 @@ unacidable = TRUE health = 1000000 //Failsafe, shouldn't matter +/obj/structure/window/framed/almayer/aicore + icon_state = "ai_rwindow0" + basestate = "ai_rwindow" + window_frame = /obj/structure/window_frame/almayer/aicore + +/obj/structure/window/framed/almayer/aicore/hull + name = "hull window" + desc = "An ultra-reinforced window designed to protect the AI Core. Made out of exotic materials to prevent hull breaches, nothing will get through here." + not_damageable = TRUE + not_deconstructable = TRUE + unslashable = TRUE + unacidable = TRUE + health = 1000000 //Failsafe, shouldn't matter + +/obj/structure/window/framed/almayer/aicore/white + icon_state = "w_ai_rwindow0" + basestate = "w_ai_rwindow" + window_frame = /obj/structure/window_frame/almayer/aicore/white + +/obj/structure/window/framed/almayer/aicore/white/hull + name = "hull window" + desc = "An ultra-reinforced window designed to protect the AI Core. Made out of exotic materials to prevent hull breaches, nothing will get through here." + not_damageable = TRUE + not_deconstructable = TRUE + unslashable = TRUE + unacidable = TRUE + health = 1000000 //Failsafe, shouldn't matter + /obj/structure/window/framed/colony name = "window" icon_state = "col_window0" diff --git a/code/game/objects/structures/window_frame.dm b/code/game/objects/structures/window_frame.dm index 2c165b424dad..460a11af1000 100644 --- a/code/game/objects/structures/window_frame.dm +++ b/code/game/objects/structures/window_frame.dm @@ -174,6 +174,16 @@ basestate = "white_window" window_type = /obj/structure/window/framed/almayer/white +/obj/structure/window_frame/almayer/aicore + icon_state = "ai_window0_frame" + basestate = "ai_window" + window_type = /obj/structure/window/framed/almayer/aicore + +/obj/structure/window_frame/almayer/aicore/white + icon_state = "w_ai_window0_frame" + basestate = "w_ai_window" + window_type = /obj/structure/window/framed/almayer/aicore/white + /obj/structure/window_frame/almayer/requisitions/attackby(obj/item/W, mob/living/user) if(istype(W, sheet_type)) to_chat(user, SPAN_WARNING("You can't repair this window.")) diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 893071c758ed..c4698e5722c5 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -1277,7 +1277,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, 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) + SSticker.mode.get_specific_call(/datum/emergency_call/inspection_cmb/black_market, TRUE, TRUE) // "Inspection - Colonial Marshals Ledger Investigation Team" log_game("Black Market Inspection auto-triggered.") /obj/structure/machinery/computer/supplycomp/proc/is_buyable(datum/supply_packs/supply_pack) @@ -1402,11 +1402,13 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) return dat += "Platform position: " - if (SSshuttle.vehicle_elevator.timeLeft()) + if (SSshuttle.vehicle_elevator.mode != SHUTTLE_IDLE) dat += "Moving" else if(is_mainship_level(SSshuttle.vehicle_elevator.z)) dat += "Raised" + if(!spent) + dat += "
\[Lower\]" else dat += "Lowered" dat += "

" @@ -1442,15 +1444,12 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) world.log << "## ERROR: Eek. The supply/elevator datum is missing somehow." return - 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(isturf(loc) && ( in_range(src, usr) || isSilicon(usr) ) ) usr.set_interaction(src) if(href_list["get_vehicle"]) - if(is_mainship_level(SSshuttle.vehicle_elevator.z)) + if(is_mainship_level(SSshuttle.vehicle_elevator.z) || SSshuttle.vehicle_elevator.mode != SHUTTLE_IDLE) + to_chat(usr, SPAN_WARNING("The elevator needs to be in the cargo bay dock to call a vehicle up!")) return // dunno why the +1 is needed but the vehicles spawn off-center var/turf/middle_turf = get_turf(SSshuttle.vehicle_elevator) @@ -1458,9 +1457,11 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) var/obj/vehicle/multitile/ordered_vehicle var/datum/vehicle_order/VO = locate(href_list["get_vehicle"]) + if(!(VO in vehicles)) + return - if(!VO) return - if(VO.has_vehicle_lock()) return + if(VO?.has_vehicle_lock()) + return spent = TRUE ordered_vehicle = new VO.ordered_vehicle(middle_turf) @@ -1470,5 +1471,11 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_VEHICLE_ORDERED, ordered_vehicle) + else if(href_list["lower_elevator"]) + if(!is_mainship_level(SSshuttle.vehicle_elevator.z)) + return + + SSshuttle.vehicle_elevator.request(SSshuttle.getDock("adminlevel vehicle")) + add_fingerprint(usr) updateUsrDialog() diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index bf84bc04bf10..abc745dbdd45 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -15,6 +15,21 @@ icon_state = "black" mouse_opacity = FALSE +/// Cordon turf marking z-level boundaries and surrounding reservations +/turf/closed/cordon + name = "world border" + icon = 'icons/turf/shuttle.dmi' + icon_state = "pclosed" + layer = ABOVE_TURF_LAYER + baseturfs = /turf/closed/cordon + +/// Used as placeholder turf when something went really wrong, as per /tg/ string lists handler +/turf/closed/cordon/debug + name = "debug turf" + desc = "This turf shouldn't be here and probably result of incorrect turf replacement. Adminhelp about it or report it in an issue." + color = "#660088" + baseturfs = /turf/closed/cordon/debug + /turf/closed/mineral //mineral deposits name = "Rock" icon = 'icons/turf/walls/walls.dmi' diff --git a/code/game/turfs/floor_types.dm b/code/game/turfs/floor_types.dm index f957686fac22..8a8698d0c047 100644 --- a/code/game/turfs/floor_types.dm +++ b/code/game/turfs/floor_types.dm @@ -180,7 +180,22 @@ /turf/open/floor/plating/plating_catwalk/shiva icon = 'icons/turf/floors/ice_colony/shiva_floor.dmi' +/turf/open/floor/plating/plating_catwalk/aicore + icon = 'icons/turf/floors/aicore.dmi' + icon_state = "ai_plating_catwalk" +/turf/open/floor/plating/plating_catwalk/aicore/update_icon() + . = ..() + if(covered) + overlays += image(icon, src, "ai_catwalk", CATWALK_LAYER) + +/turf/open/floor/plating/plating_catwalk/aicore/white + icon_state = "w_ai_plating_catwalk" + +/turf/open/floor/plating/plating_catwalk/aicore/white/update_icon() + . = ..() + if(covered) + overlays += image(icon, src, "w_ai_catwalk", CATWALK_LAYER) /turf/open/floor/plating/ironsand name = "Iron Sand" @@ -210,21 +225,13 @@ plating_type = /turf/open/floor/tdome hull_floor = TRUE -//Cargo elevator +/// Base type of the requisitions and vehicle bay elevator pits. /turf/open/floor/almayer/empty - name = "empty space" - desc = "There seems to be an awful lot of machinery down below" + name = "\proper empty space" + desc = "There seems to be an awful lot of machinery down below..." icon = 'icons/turf/floors/floors.dmi' icon_state = "black" -/turf/open/floor/almayer/empty/Initialize(mapload, ...) - . = ..() - GLOB.asrs_empty_space_tiles_list += src - -/turf/open/floor/almayer/empty/Destroy(force) // may as well - . = ..() - GLOB.asrs_empty_space_tiles_list -= src - /turf/open/floor/almayer/empty/is_weedable() return NOT_WEEDABLE @@ -239,9 +246,14 @@ /turf/open/floor/almayer/empty/Entered(atom/movable/AM) ..() - if(!isobserver(AM)) + if(!isobserver(AM) && !istype(AM, /obj/effect/elevator) && !istype(AM, /obj/docking_port)) addtimer(CALLBACK(src, PROC_REF(enter_depths), AM), 0.2 SECONDS) +/// Returns a list of turfs to be used as a destination for anyone unfortunate enough to fall into the pit. +/turf/open/floor/almayer/empty/proc/get_depths_turfs() + // Empty proc to be overridden. + return + /turf/open/floor/almayer/empty/proc/enter_depths(atom/movable/AM) if(AM.throwing == 0 && istype(get_turf(AM), /turf/open/floor/almayer/empty)) AM.visible_message(SPAN_WARNING("[AM] falls into the depths!"), SPAN_WARNING("You fall into the depths!")) @@ -252,14 +264,12 @@ 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 = GLOB.supply_controller.shuttle?.get_location_area() - if(!area_shuttle) - return - var/list/turflist = list() - for(var/turf/turf in area_shuttle) - turflist |= turf + var/list/depths_turfs = get_depths_turfs() + if(!length(depths_turfs)) + // If this ever happens, something went wrong. + CRASH("get_depths_turfs() didn't return anything!") - thrown_human.forceMove(pick(turflist)) + thrown_human.forceMove(pick(depths_turfs)) var/timer = 0.5 SECONDS for(var/index in 1 to 10) @@ -268,9 +278,34 @@ return else - for(var/obj/effect/decal/cleanable/C in contents) //for the off chance of someone bleeding mid=flight + for(var/obj/effect/decal/cleanable/C in contents) //for the off chance of someone bleeding mid-flight qdel(C) +/// Requisitions pit. +/turf/open/floor/almayer/empty/requisitions + +/turf/open/floor/almayer/empty/requisitions/Initialize(mapload, ...) + . = ..() + GLOB.asrs_empty_space_tiles_list += src + +/turf/open/floor/almayer/empty/requisitions/Destroy(force) + GLOB.asrs_empty_space_tiles_list -= src + return ..() + +/turf/open/floor/almayer/empty/requisitions/get_depths_turfs() + var/area/elevator_area = GLOB.supply_controller.shuttle?.get_location_area() + + var/turf_list = list() + for(var/turf/turf in elevator_area) + turf_list |= turf + return turf_list + +/// Vehicle bay pit. +/turf/open/floor/almayer/empty/vehicle_bay + +/turf/open/floor/almayer/empty/vehicle_bay/get_depths_turfs() + return SSshuttle.vehicle_elevator.return_turfs() + //Others /turf/open/floor/almayer/uscm icon_state = "logo_c" @@ -283,6 +318,27 @@ allow_construction = FALSE hull_floor = TRUE +/turf/open/floor/almayer/aicore + icon = 'icons/turf/floors/aicore.dmi' + icon_state = "ai_floor1" + +/turf/open/floor/almayer/aicore/glowing + icon_state = "ai_floor2" + light_color = "#d69c46" + light_range = 2 + +/turf/open/floor/almayer/aicore/glowing/Initialize(mapload, ...) + . = ..() + set_light_on(TRUE) + +/turf/open/floor/almayer/aicore/no_build + allow_construction = FALSE + hull_floor = TRUE + +/turf/open/floor/almayer/aicore/glowing/no_build + allow_construction = FALSE + hull_floor = TRUE + // RESEARCH STUFF /turf/open/floor/almayer/research/containment/entrance icon_state = "containment_entrance" diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index e21dd142f931..8d9ded899a70 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -95,6 +95,10 @@ edge_overlay.SwapColor(rgb(255, 0, 255, 255), rgb(0, 0, 0, 0)) overlays += edge_overlay + var/area/my_area = loc + if(my_area.lighting_effect) + overlays += my_area.lighting_effect + /turf/open/proc/scorch(heat_level) // All scorched icons should be in the dmi that their unscorched bases are // "name_scorched#" where # is the scorchedness level 0 - 1 - 2 - 3 diff --git a/code/game/turfs/transit.dm b/code/game/turfs/transit.dm index bae6718cfd59..dd6a8d920f6f 100644 --- a/code/game/turfs/transit.dm +++ b/code/game/turfs/transit.dm @@ -11,19 +11,117 @@ if(isobserver(crosser) || crosser.anchored) return - if(!(isitem(crosser) || isliving(crosser))) + if(!isitem(crosser) && !isliving(crosser)) return - var/turf/open/floor/floor = old_loc - if(istype(floor)) - var/fling_dir = get_dir(floor, crosser.loc) - - var/turf/near_turf = get_step(crosser.loc, get_step(crosser.loc, fling_dir)) - var/turf/projected = get_ranged_target_turf(near_turf, fling_dir, 50) + if(!istype(old_loc, /turf/open/space)) + var/turf/projected = get_ranged_target_turf(crosser.loc, dir, 10) INVOKE_ASYNC(crosser, TYPE_PROC_REF(/atom/movable, throw_atom), projected, 50, SPEED_FAST, null, TRUE) - QDEL_IN(crosser, 0.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(handle_crosser), crosser), 0.5 SECONDS) + +/turf/open/space/transit/proc/handle_crosser(atom/movable/crosser) + if(QDELETED(crosser)) + return + qdel(crosser) + +/turf/open/space/transit/dropship + var/shuttle_tag + +/turf/open/space/transit/dropship/handle_crosser(atom/movable/crosser) + if(QDELETED(crosser)) + return + if(!shuttle_tag) + return ..() + + var/obj/docking_port/mobile/marine_dropship/dropship = SSshuttle.getShuttle(shuttle_tag) + if(!istype(dropship) || dropship.mode != SHUTTLE_CALL) + return ..() + + if(dropship.destination.id != DROPSHIP_LZ1 && dropship.destination.id != DROPSHIP_LZ2) + return ..() // we're not heading towards the LZs + + // you just jumped out of a dropship heading towards the LZ, have fun living on the way down! + var/list/ground_z_levels = SSmapping.levels_by_trait(ZTRAIT_GROUND) + if(!length(ground_z_levels)) + return ..() + + var/list/area/potential_areas = shuffle(SSmapping.areas_in_z["[ground_z_levels[1]]"]) + + for(var/area/maybe_this_area in potential_areas) + if(CEILING_IS_PROTECTED(maybe_this_area.ceiling, CEILING_PROTECTION_TIER_1)) // prevents out of bounds too + continue + if(istype(maybe_this_area, /area/space)) // make sure its not space, just in case + continue + + var/turf/open/possible_turf = null + var/list/area_turfs = get_area_turfs(maybe_this_area) + for(var/i in 1 to 10) + possible_turf = pick_n_take(area_turfs) + // we're looking for an open, non-dense, and non-space turf. + if(!istype(possible_turf) || is_blocked_turf(possible_turf) || istype(possible_turf, /turf/open/space)) + continue + + if(!istype(possible_turf) || is_blocked_turf(possible_turf) || istype(possible_turf, /turf/open/space)) + continue // couldnt find one in 10 loops, check another area + + // we found a good turf, lets drop em + INVOKE_ASYNC(src, PROC_REF(handle_drop), crosser, possible_turf, dropship.name) + return + + return ..() // they couldn't be dropped, just delete them + +/turf/open/space/transit/dropship/proc/handle_drop(atom/movable/crosser, turf/target, dropship_name) + if(QDELETED(crosser)) + return + ADD_TRAIT(crosser, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + + crosser.pixel_z = 360 + crosser.forceMove(target) + crosser.visible_message(SPAN_WARNING("[crosser] falls out of the sky."), SPAN_HIGHDANGER("As you fall out of the [dropship_name], you plummet towards the ground.")) + animate(crosser, time = 6, pixel_z = 0, flags = ANIMATION_PARALLEL) + + REMOVE_TRAIT(crosser, TRAIT_IMMOBILIZED, TRAIT_SOURCE_DROPSHIP_INTERACTION) + if(isitem(crosser)) + var/obj/item/item = crosser + item.explosion_throw(200) // give it a bit of a kick + return + + if(!isliving(crosser)) + return // don't know how you got here, but you shouldnt be here. + var/mob/living/fallen_mob = crosser + + playsound(target, "punch", rand(20, 70), TRUE) + playsound(target, "punch", rand(20, 70), TRUE) + playsound(target, "bone_break", rand(20, 70), TRUE) + playsound(target, "bone_break", rand(20, 70), TRUE) + + fallen_mob.KnockDown(10) // 10 seconds + fallen_mob.Stun(3) // 3 seconds + + + if(ishuman(fallen_mob)) + var/mob/living/carbon/human/human = fallen_mob + human.last_damage_data = create_cause_data("falling from [dropship_name]", human) + // I'd say falling from space is pretty much like getting hit by an explosion + human.take_overall_armored_damage(300, ARMOR_BOMB, limb_damage_chance = 100) + // but just in case, you will still take a ton of damage. + human.take_overall_damage(200, used_weapon = "falling", limb_damage_chance = 100) + if(human.stat != DEAD) + human.death(human.last_damage_data) + fallen_mob.status_flags |= PERMANENTLY_DEAD + return + // take a little bit more damage otherwise + fallen_mob.take_overall_damage(400, used_weapon = "falling", limb_damage_chance = 100) + +/turf/open/space/transit/dropship/alamo + shuttle_tag = DROPSHIP_ALAMO + dir = SOUTH + +/turf/open/space/transit/dropship/normandy + shuttle_tag = DROPSHIP_NORMANDY + dir = SOUTH /turf/open/space/transit/south dir = SOUTH diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index be58259e17ba..9b0f457cf074 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -24,7 +24,6 @@ */ - /turf icon = 'icons/turf/floors/floors.dmi' var/intact_tile = 1 //used by floors to distinguish floor with/without a floortile(e.g. plating). @@ -47,7 +46,7 @@ var/changing_turf = FALSE var/chemexploded = FALSE // Prevents explosion stacking - var/flags_turf = NO_FLAGS + var/turf_flags = NO_FLAGS /// Whether we've broken through the ceiling yet var/ceiling_debrised = FALSE @@ -57,6 +56,7 @@ ///Lumcount added by sources other than lighting datum objects, such as the overlay lighting component. var/dynamic_lumcount = 0 + ///List of light sources affecting this turf. ///Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources. var/directional_opacity = NONE @@ -101,11 +101,6 @@ if(opacity) directional_opacity = ALL_CARDINALS - //Get area light - var/area/A = loc - if(A?.lighting_effect) - overlays += A.lighting_effect - return INITIALIZE_HINT_NORMAL /turf/Destroy(force) @@ -145,6 +140,22 @@ /turf/proc/update_icon() //Base parent. - Abby return +/// Call to move a turf from its current area to a new one +/turf/proc/change_area(area/old_area, area/new_area) + //dont waste our time + if(old_area == new_area) + return + + //move the turf + new_area.contents += src + + //changes to make after turf has moved + on_change_area(old_area, new_area) + +/// Allows for reactions to an area change without inherently requiring change_area() be called (I hate maploading) +/turf/proc/on_change_area(area/old_area, area/new_area) + transfer_area_lighting(old_area, new_area) + /turf/proc/add_cleanable_overlays() for(var/cleanable_type in cleanables) var/obj/effect/decal/cleanable/C = cleanables[cleanable_type] @@ -435,6 +446,10 @@ W.levelupdate() return W +//If you modify this function, ensure it works correctly with lateloaded map templates. +/turf/proc/AfterChange(flags, oldType) //called after a turf has been replaced in ChangeTurf() + return // Placeholder. This is mostly used by /tg/ code for atmos updates + // Take off the top layer turf and replace it with the next baseturf down /turf/proc/ScrapeAway(amount=1, flags) if(!amount) @@ -767,6 +782,33 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( change_type = new_baseturfs return ChangeTurf(change_type, null, flags) +/// Places a turf on top - for map loading +/turf/proc/load_on_top(turf/added_layer, flags) + var/area/our_area = get_area(src) + flags = our_area.PlaceOnTopReact(list(baseturfs), added_layer, flags) + + if(flags & CHANGETURF_SKIP) // We haven't been initialized + if(flags_atom & INITIALIZED) + stack_trace("CHANGETURF_SKIP was used in a PlaceOnTop call for a turf that's initialized. This is a mistake. [src]([type])") + assemble_baseturfs() + + var/turf/new_turf + if(!length(baseturfs)) + baseturfs = list(baseturfs) + + var/list/old_baseturfs = baseturfs.Copy() + if(!isclosedturf(src)) + old_baseturfs += type + + new_turf = ChangeTurf(added_layer, null, flags) + new_turf.assemble_baseturfs(initial(added_layer.baseturfs)) // The baseturfs list is created like roundstart + if(!length(new_turf.baseturfs)) + new_turf.baseturfs = list(baseturfs) + + // The old baseturfs are put underneath, and we sort out the unwanted ones + new_turf.baseturfs = baseturfs_string_list(old_baseturfs + (new_turf.baseturfs - GLOB.blacklisted_automated_baseturfs), new_turf) + return new_turf + /turf/proc/insert_self_into_baseturfs() baseturfs += type diff --git a/code/game/turfs/walls/wall_icon.dm b/code/game/turfs/walls/wall_icon.dm index 2b414ca46af8..218d59305bdc 100644 --- a/code/game/turfs/walls/wall_icon.dm +++ b/code/game/turfs/walls/wall_icon.dm @@ -44,6 +44,10 @@ bullet_overlay = image('icons/effects/bulletholes.dmi', src, "bhole_[bullethole_state]_2") overlays += bullet_overlay + var/area/my_area = loc + if(my_area.lighting_effect) + overlays += my_area.lighting_effect + #undef BULLETHOLE_STATES #undef cur_increment diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index d546e7274331..259e386825ff 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -211,7 +211,39 @@ icon_state = "containment_window" opacity = FALSE +//AI Core +/turf/closed/wall/almayer/aicore + walltype = WALL_AICORE + icon = 'icons/turf/walls/almayer_aicore.dmi' + icon_state = "aiwall" + +/turf/closed/wall/almayer/aicore/reinforced + name = "reinforced hull" + damage_cap = HEALTH_WALL_REINFORCED + icon_state = "reinforced" + +/turf/closed/wall/almayer/aicore/hull + name = "ultra reinforced hull" + desc = "An extremely reinforced metal wall used to isolate potentially dangerous areas" + hull = TRUE + icon_state = "hull" + +/turf/closed/wall/almayer/aicore/white + walltype = WALL_AICORE + icon = 'icons/turf/walls/almayer_aicore_white.dmi' + icon_state = "aiwall" + +/turf/closed/wall/almayer/aicore/white/reinforced + name = "reinforced hull" + damage_cap = HEALTH_WALL_REINFORCED + icon_state = "reinforced" + +/turf/closed/wall/almayer/aicore/white/hull + name = "ultra reinforced hull" + desc = "An extremely reinforced metal wall used to isolate potentially dangerous areas" + hull = TRUE + icon_state = "hull" //Sulaco walls. @@ -720,7 +752,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) var/hivenumber = XENO_HIVE_NORMAL var/should_track_build = FALSE var/datum/cause_data/construction_data - flags_turf = TURF_ORGANIC + turf_flags = TURF_ORGANIC /turf/closed/wall/resin/Initialize(mapload) . = ..() diff --git a/code/game/turfs/walls/walls.dm b/code/game/turfs/walls/walls.dm index cb58ad2274a4..251b23ad9c57 100644 --- a/code/game/turfs/walls/walls.dm +++ b/code/game/turfs/walls/walls.dm @@ -173,7 +173,7 @@ 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) + if(turf_flags & TURF_ORGANIC) return // Skip the part below. 'Organic' walls aren't deconstructable with tools. switch(d_state) diff --git a/code/game/verbs/records.dm b/code/game/verbs/records.dm index 743a09d0ab6e..05506804790a 100644 --- a/code/game/verbs/records.dm +++ b/code/game/verbs/records.dm @@ -184,6 +184,7 @@ 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) @@ -194,7 +195,7 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) . = ..() .["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))) + for(var/datum/view_record/medal_view/medal as anything in get_medals(user)) var/xeno_medal = FALSE if(medal.medal_type in GLOB.xeno_medals) xeno_medal = TRUE @@ -212,6 +213,10 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) .["medals"] += list(current_medal) +/datum/medals_view_tgui/proc/get_medals(mob/user) + return DB_VIEW(/datum/view_record/medal_view, DB_COMP("player_id", DB_EQUALS, user.client.player_data.id)) + + /datum/medals_view_tgui/ui_state(mob/user) return GLOB.always_state @@ -225,3 +230,23 @@ GLOBAL_DATUM_INIT(medals_view_tgui, /datum/medals_view_tgui, new) set category = "OOC.Records" GLOB.medals_view_tgui.tgui_interact(mob) + +GLOBAL_DATUM_INIT(medals_view_given_tgui, /datum/medals_view_tgui/given_medals, new) + + +/datum/medals_view_tgui/given_medals/get_medals(mob/user) + return DB_VIEW(/datum/view_record/medal_view, DB_COMP("giver_player_id", DB_EQUALS, user.client.player_data.id)) + + +/datum/medals_view_tgui/given_medals/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 Given Medals") + ui.open() + + +/client/verb/view_given_medals() + set name = "View Medals Given to Others" + set category = "OOC.Records" + + GLOB.medals_view_given_tgui.tgui_interact(mob) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 5871fdc7a152..a73a3b96e5e4 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -17,6 +17,7 @@ FACTION_PMC = 0, FACTION_CLF = 0, FACTION_UPP = 0, + FACTION_TWE = 0, FACTION_FREELANCER = 0, FACTION_SURVIVOR = 0, FACTION_WY_DEATHSQUAD = 0, diff --git a/code/game/world.dm b/code/game/world.dm index f68263412715..e55741ca71e5 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -87,10 +87,6 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) 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)) - ToRban_autoupdate() - // 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) @@ -129,7 +125,8 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) GLOB.world_runtime_log = "[GLOB.log_directory]/runtime.log" GLOB.round_stats = "[GLOB.log_directory]/round_stats.log" GLOB.scheduler_stats = "[GLOB.log_directory]/round_scheduler_stats.log" - GLOB.mutator_logs = "[GLOB.log_directory]/mutator_logs.log" + GLOB.mapping_log = "[GLOB.log_directory]/mapping.log" + GLOB.strain_logs = "[GLOB.log_directory]/strain_logs.log" start_log(GLOB.tgui_log) start_log(GLOB.world_href_log) @@ -138,7 +135,8 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) start_log(GLOB.world_runtime_log) start_log(GLOB.round_stats) start_log(GLOB.scheduler_stats) - start_log(GLOB.mutator_logs) + start_log(GLOB.mapping_log) + start_log(GLOB.strain_logs) if(fexists(GLOB.config_error_log)) fcopy(GLOB.config_error_log, "[GLOB.log_directory]/config_error.log") @@ -321,9 +319,39 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) /world/proc/on_tickrate_change() SStimer.reset_buckets() +/** + * Handles incresing the world's maxx var and intializing the new turfs and assigning them to the global area. + * If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive. + * This is because maploading will handle the turfs it loads itself. + */ +/world/proc/increase_max_x(new_maxx, map_load_z_cutoff = maxz) + if(new_maxx <= maxx) + return +// var/old_max = world.maxx + maxx = new_maxx + if(!map_load_z_cutoff) + return +// var/area/global_area = GLOB.areas_by_type[world.area] // We're guaranteed to be touching the global area, so we'll just do this +// var/list/to_add = block( +// locate(old_max + 1, 1, 1), +// locate(maxx, maxy, map_load_z_cutoff)) +// global_area.contained_turfs += to_add + +/world/proc/increase_max_y(new_maxy, map_load_z_cutoff = maxz) + if(new_maxy <= maxy) + return +// var/old_maxy = maxy + maxy = new_maxy + if(!map_load_z_cutoff) + return +// var/area/global_area = GLOB.areas_by_type[world.area] // We're guarenteed to be touching the global area, so we'll just do this +// var/list/to_add = block( +// locate(1, old_maxy + 1, 1), +// locate(maxx, maxy, map_load_z_cutoff)) +// global_area.contained_turfs += to_add + /world/proc/incrementMaxZ() maxz++ - //SSmobs.MaxZChanged() /** For initializing and starting byond-tracy when BYOND_TRACY is defined * byond-tracy is a useful profiling tool that allows the user to view the CPU usage and execution time of procs as they run. @@ -346,6 +374,7 @@ GLOBAL_LIST_INIT(reboot_sfx, file2list("config/reboot_sfx.txt")) /world/proc/HandleTestRun() // Wait for the game ticker to initialize Master.sleep_offline_after_initializations = FALSE + SSticker.start_immediately = TRUE UNTIL(SSticker.initialized) //trigger things to run the whole process diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm index 94f40629fc6a..85a1028c2296 100644 --- a/code/modules/admin/IsBanned.dm +++ b/code/modules/admin/IsBanned.dm @@ -1,6 +1,6 @@ #ifndef OVERRIDE_BAN_SYSTEM //Blocks an attempt to connect before even creating our client datum thing. -/world/IsBanned(key,address,computer_id, type, real_bans_only=FALSE) +/world/IsBanned(key,address,computer_id, type, real_bans_only=FALSE, is_telemetry = FALSE) var/ckey = ckey(key) // This is added siliently. Thanks to MSO for this fix. You will see it when/if we go OS @@ -17,6 +17,7 @@ message_admins("Failed Login: [key] - Guests not allowed") return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.") + // wait for database to be ready WAIT_DB_READY if(GLOB.admin_datums[ckey] && (GLOB.admin_datums[ckey].rights & R_MOD)) return ..() @@ -26,19 +27,8 @@ var/datum/entity/player/P = get_player_from_key(ckey) - //check if the IP address is a known TOR node - if(CONFIG_GET(flag/ToRban) && ToRban_isbanned(address)) - log_access("Failed Login: [src] - Banned: ToR") - message_admins("Failed Login: [src] - Banned: ToR") - return list("reason"="Using ToR", "desc"="\nReason: The network you are using to connect has been banned.\nIf you believe this is a mistake, please request help at [CONFIG_GET(string/banappeals)]") - - // wait for database to be ready - - . = P.check_ban(computer_id, address) - if(.) - return . - return ..() //default pager ban stuff + . = P.check_ban(computer_id, address, is_telemetry) #endif diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index 7dca354129ff..f4394738fb2d 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -180,15 +180,44 @@ GLOBAL_DATUM(Banlist, /savefile) expiry = "Removal Pending" else expiry = "Permaban" - var/unban_link = "(U)" + var/unban_link + if(ban.is_permabanned) + unban_link = "(UP)" + else + unban_link = "(UT)" - dat += "[unban_link] Key: [ban.ckey]ComputerID: [ban.last_known_cid]IP: [ban.last_known_ip] [expiry](By: [ban.admin])(Reason: [ban.reason])" + dat += "[unban_link] Key: [ban.ckey]ComputerID: [ban.last_known_cid]IP: [ban.last_known_ip] [expiry](By: [ban.admin ? ban.admin : "AdminBot"])(Reason: [ban.reason])" dat += "" - var/dat_header = "
Bans: (U) = Unban" + var/dat_header = "
Bans: (UP) = Unban Perma (UT) = Unban Timed" dat_header += " - Ban Listing
[dat]" show_browser(usr, dat_header, "Unban Panel", "unbanp", "size=875x400") +/datum/admins/proc/stickypanel() + var/add_sticky = "Add Sticky Ban" + var/find_sticky = "Find Sticky Ban" + + var/data = "
Sticky Bans: [add_sticky] [find_sticky]
" + + var/list/datum/view_record/stickyban/stickies = DB_VIEW(/datum/view_record/stickyban, + DB_COMP("active", DB_EQUALS, TRUE) + ) + + for(var/datum/view_record/stickyban/current_sticky in stickies) + var/whitelist_link = "(WHITELIST)" + var/remove_sticky_link = "(REMOVE)" + var/add_to_sticky_link = "(ADD)" + + var/impacted_ckey_link = "CKEYs" + var/impacted_ip_link = "IPs" + var/impacted_cid_link = "CIDs" + + data += "" + + data += "
[whitelist_link][remove_sticky_link][add_to_sticky_link]Identifier: [current_sticky.identifier]Reason: [current_sticky.reason]Message: [current_sticky.message] Admin: [current_sticky.admin] View: [impacted_ckey_link][impacted_ip_link][impacted_cid_link]
" + + show_browser(owner, data, "Stickyban Panel", "sticky", "size=875x400") + //////////////////////////////////// DEBUG //////////////////////////////////// /proc/CreateBans() @@ -251,3 +280,48 @@ GLOBAL_DATUM(Banlist, /savefile) if(P.is_time_banned && alert(usr, "Ban already exists. Proceed?", "Confirmation", "Yes", "No") != "Yes") return P.add_timed_ban(reason, mins) + +/client/proc/cmd_admin_do_stickyban(identifier, reason, message, list/impacted_ckeys, list/impacted_cids, list/impacted_ips) + if(!identifier) + identifier = tgui_input_text(src, "Name of the primary CKEY you are adding a stickyban to.", "BuildABan") + if(!identifier) + return + + if(!message) + message = tgui_input_text(src, "What message should be given to the impacted users?", "BuildABan", encode = FALSE) + if(!message) + return + + if(!reason) + reason = tgui_input_text(src, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "BuildABan", multiline = TRUE, encode = FALSE) + if(!reason) + return + + if(!length(impacted_ckeys)) + impacted_ckeys = splittext(tgui_input_text(src, "Which CKEYs should be impacted by this ban? Include the primary ckey, separated by semicolons.", "BuildABan", "player1;player2;player3"), ";") + + if(!length(impacted_cids)) + impacted_cids = splittext(tgui_input_text(src, "Which CIDs should be impacted by this ban? Separate with semicolons.", "BuildABan", "12345678;87654321"), ";") + + if(!length(impacted_ips)) + impacted_ips = splittext(tgui_input_text(src, "Which IPs should be impacted by this ban? Separate with semicolons.", "BuildABan", "1.1.1.1;8.8.8.8"), ";") + + var/datum/entity/stickyban/new_sticky = SSstickyban.add_stickyban(identifier, reason, message, player_data) + + if(!new_sticky) + to_chat(src, SPAN_ADMIN("Failed to apply stickyban.")) + return + + for(var/ckey in impacted_ckeys) + SSstickyban.add_matched_ckey(new_sticky.id, ckey) + + for(var/cid in impacted_cids) + SSstickyban.add_matched_cid(new_sticky.id, cid) + + for(var/ip in impacted_ips) + SSstickyban.add_matched_ip(new_sticky.id, ip) + + log_admin("STICKYBAN: Identifier: [identifier] Reason: [reason] Message: [message] CKEYs: [english_list(impacted_ckeys)] IPs: [english_list(impacted_ips)] CIDs: [english_list(impacted_cids)]") + message_admins("[key_name_admin(src)] has added a new stickyban with the identifier '[identifier]'.") + var/datum/tgs_chat_embed/field/reason_embed = new("Stickyban Reason", reason) + important_message_external("[src] has added a new stickyban with the identifier '[identifier]'.", "Stickyban Placed", list(reason_embed)) diff --git a/code/modules/admin/ToRban.dm b/code/modules/admin/ToRban.dm deleted file mode 100644 index 549353facfb8..000000000000 --- a/code/modules/admin/ToRban.dm +++ /dev/null @@ -1,88 +0,0 @@ -//By Carnwennan -//fetches an external list and processes it into a list of ip addresses. -//It then stores the processed list into a savefile for later use -#define TORFILE "data/ToR_ban.bdb" -#define TOR_UPDATE_INTERVAL 216000 //~6 hours - -/proc/ToRban_isbanned(ip_address) - var/savefile/F = new(TORFILE) - if(F) - if( ip_address in F.dir ) - return 1 - return 0 - -/proc/ToRban_autoupdate() - var/savefile/F = new(TORFILE) - if(F) - var/last_update - F["last_update"] >> last_update - if((last_update + TOR_UPDATE_INTERVAL) < world.realtime) //we haven't updated for a while - ToRban_update() - return - -/proc/ToRban_update() - spawn(0) - log_misc("Downloading updated ToR data...") - var/http[] = world.Export("https://check.torproject.org/exit-addresses") - - var/list/rawlist = file2list(http["CONTENT"]) - if(rawlist.len) - fdel(TORFILE) - var/savefile/F = new(TORFILE) - for( var/line in rawlist ) - if(!line) continue - if( copytext(line,1,12) == "ExitAddress" ) - var/cleaned = copytext(line,13,length(line)-19) - if(!cleaned) continue - F[cleaned] << 1 - F["last_update"] << world.realtime - log_misc("ToR data updated!") - if(usr) to_chat(usr, "ToRban updated.") - return - log_misc("ToR data update aborted: no data.") - return - -/client/proc/ToRban(task in list("update","toggle","show","remove","remove all","find")) - set name = "ToR Ban Settings" - set category = "Server" - if(!admin_holder) return - switch(task) - if("update") - ToRban_update() - if("toggle") - if(config) - if(CONFIG_GET(flag/ToRban)) - CONFIG_SET(flag/ToRban, FALSE) - message_admins("ToR banning disabled.") - else - CONFIG_SET(flag/ToRban, TRUE) - message_admins("ToR banning enabled.") - if("show") - var/savefile/F = new(TORFILE) - var/dat - if( length(F.dir) ) - for( var/i=1, i<=length(F.dir), i++ ) - dat += "#[i] [F.dir[i]]" - dat = "[dat]
" - else - dat = "No addresses in list." - src << browse(dat,"window=ToRban_show") - if("remove") - var/savefile/F = new(TORFILE) - var/choice = tgui_input_list(src,"Please select an IP address to remove from the ToR banlist:","Remove ToR ban", F.dir) - if(choice) - F.dir.Remove(choice) - to_chat(src, "Address removed") - if("remove all") - to_chat(src, "[TORFILE] was [fdel(TORFILE)?"":"not "]removed.") - if("find") - var/input = input(src,"Please input an IP address to search for:","Find ToR ban",null) as null|text - if(input) - if(ToRban_isbanned(input)) - to_chat(src, "Address is a known ToR address") - else - to_chat(src, "Address is not a known ToR address") - return - -#undef TORFILE -#undef TOR_UPDATE_INTERVAL diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 56002d139599..1463a09457ef 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -68,6 +68,7 @@ GLOBAL_LIST_INIT(admin_verbs_default, list( /datum/admins/proc/alertall, /datum/admins/proc/imaginary_friend, /client/proc/toggle_admin_pings, + /client/proc/cmd_admin_open_ares, /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, @@ -96,8 +97,9 @@ GLOBAL_LIST_INIT(admin_verbs_admin, 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! + /client/proc/unban_panel, + /client/proc/stickyban_panel, + // /client/proc/jobbans // Disabled temporarily due to 15-30 second lag spikes. )) GLOBAL_LIST_INIT(admin_verbs_sounds, list( @@ -110,6 +112,7 @@ 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, + /client/proc/enable_event_mob_verbs, /client/proc/force_hijack, /datum/admins/proc/force_predator_round, //Force spawns a predator round. /client/proc/adjust_predator_round, @@ -140,7 +143,6 @@ GLOBAL_LIST_INIT(admin_verbs_minor_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, /client/proc/drop_bomb, @@ -154,6 +156,7 @@ GLOBAL_LIST_INIT(admin_verbs_major_event, list( /client/proc/load_event_level, /client/proc/cmd_fun_fire_ob, /client/proc/map_template_upload, + /client/proc/force_load_lazy_template, /client/proc/enable_podlauncher, /client/proc/change_taskbar_icon, /client/proc/change_weather, @@ -237,12 +240,12 @@ GLOBAL_LIST_INIT(debug_verbs, list( )) GLOBAL_LIST_INIT(admin_verbs_possess, list( + /client/proc/cmd_assume_direct_control, /client/proc/possess, /client/proc/release )) GLOBAL_LIST_INIT(admin_verbs_permissions, list( - /client/proc/ToRban, /client/proc/whitelist_panel, )) @@ -262,10 +265,7 @@ GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list( /client/proc/editappear, /client/proc/cmd_admin_addhud, /client/proc/cmd_admin_change_their_hivenumber, - /client/proc/cmd_assume_direct_control, /client/proc/free_mob_for_ghosts, - /client/proc/possess, - /client/proc/release, /client/proc/cmd_admin_grantfullaccess, /client/proc/cmd_admin_grantallskills, /client/proc/admin_create_account @@ -273,6 +273,7 @@ GLOBAL_LIST_INIT(admin_mob_event_verbs_hideable, list( //verbs which can be hidden - needs work GLOBAL_LIST_INIT(admin_verbs_hideable, list( + /client/proc/cmd_assume_direct_control, /client/proc/release, /client/proc/possess, /client/proc/callproc_datum, diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 82f25a6ebe3e..3a3ce661e231 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -10,11 +10,6 @@ GLOBAL_PROTECT(href_token) var/rights = 0 var/fakekey = null - var/admincaster_screen = 0 //See newscaster.dm under machinery for a full description - var/datum/feed_message/admincaster_feed_message = new /datum/feed_message //These two will act as admin_holders. - var/datum/feed_channel/admincaster_feed_channel = new /datum/feed_channel - var/admincaster_signature //What you'll sign the newsfeeds as - var/href_token var/datum/marked_datum @@ -31,7 +26,6 @@ GLOBAL_PROTECT(href_token) error("Admin datum created without a ckey argument. Datum has been deleted") qdel(src) return - admincaster_signature = "Weyland-Yutani Officer #[rand(0,9)][rand(0,9)][rand(0,9)]" rank = initial_rank rights = initial_rights href_token = GenerateToken() diff --git a/code/modules/admin/player_panel/actions/punish.dm b/code/modules/admin/player_panel/actions/punish.dm index 576de30ae7ff..1b7d313b6121 100644 --- a/code/modules/admin/player_panel/actions/punish.dm +++ b/code/modules/admin/player_panel/actions/punish.dm @@ -45,6 +45,58 @@ return TRUE +/datum/player_action/permanent_ban + action_tag = "permanent_ban" + name = "Permanent Ban" + permissions_required = R_BAN + +/datum/player_action/permanent_ban/act(client/user, mob/target, list/params) + var/reason = tgui_input_text(user, "What message should be given to the permabanned user?", "Permanent Ban", encode = FALSE) + if(!reason) + return + + var/internal_reason = tgui_input_text(user, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "Permanent Ban", multiline = TRUE, encode = FALSE) + if(!internal_reason) + return + + var/datum/entity/player/target_entity = target.client?.player_data + if(!target_entity) + target_entity = get_player_from_key(target.ckey || target.persistent_ckey) + + if(!target_entity) + return + + if(!target_entity.add_perma_ban(reason, internal_reason, user.player_data)) + to_chat(user, SPAN_ADMIN("The user is already permabanned! If necessary, you can remove the permaban, and place a new one.")) + +/datum/player_action/sticky_ban + action_tag = "sticky_ban" + name = "Sticky Ban" + permissions_required = R_BAN + +/datum/player_action/sticky_ban/act(client/user, mob/target, list/params) + var/datum/entity/player/player = get_player_from_key(target.ckey || target.persistent_ckey) + if(!player) + return + + var/persistent_ip = target.client?.address || player.last_known_ip + var/persistent_cid = target.client?.computer_id || player.last_known_cid + + var/message = tgui_input_text(user, "What message should be given to the impacted users?", "BuildABan", encode = FALSE) + if(!message) + return + + var/reason = tgui_input_text(user, "What's the reason for the ban? This is shown internally, and not displayed in public notes and ban messages. Include as much detail as necessary.", "BuildABan", multiline = TRUE, encode = FALSE) + if(!reason) + return + + user.cmd_admin_do_stickyban(target.ckey, reason, message, impacted_ckeys = list(target.ckey), impacted_cids = list(persistent_cid), impacted_ips = list(persistent_ip)) + player.add_note("Stickybanned | [message]", FALSE, NOTE_ADMIN, TRUE) + player.add_note("Internal reason: [reason]", TRUE, NOTE_ADMIN) + + if(target.client) + qdel(target.client) + /datum/player_action/mute action_tag = "mob_mute" name = "Mute" @@ -67,6 +119,14 @@ user.admin_holder.player_notes_show(target.ckey) return TRUE +/datum/player_action/check_ckey + action_tag = "check_ckey" + name = "Check Ckey" + + +/datum/player_action/check_ckey/act(client/user, mob/target, list/params) + user.admin_holder.check_ckey(target.ckey) + return TRUE /datum/player_action/reset_xeno_name action_tag = "reset_xeno_name" diff --git a/code/modules/admin/player_panel/player_panel.dm b/code/modules/admin/player_panel/player_panel.dm index 772e9d4e3f91..86922c525e32 100644 --- a/code/modules/admin/player_panel/player_panel.dm +++ b/code/modules/admin/player_panel/player_panel.dm @@ -493,6 +493,8 @@ .["client_ckey"] = targetClient.ckey .["client_muted"] = targetClient.prefs.muted + .["client_age"] = targetClient.player_data.byond_account_age + .["first_join"] = targetClient.player_data.first_join_date .["client_rank"] = targetClient.admin_holder ? targetClient.admin_holder.rank : "Player" .["client_muted"] = targetClient.prefs.muted diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm deleted file mode 100644 index 69793a599596..000000000000 --- a/code/modules/admin/stickyban.dm +++ /dev/null @@ -1,66 +0,0 @@ -// BLOCKING PROC, RUN ASYNC - -/proc/stickyban_internal(ckey, address, cid, reason, linked_stickyban, datum/entity/player/banning_admin) - - if(!ckey || !address || !cid) - CRASH("Incorrect data passed to stickyban_internal ([ckey], [address], [cid])") - - var/datum/entity/player/P = get_player_from_key(ckey) - - if(!P) - message_admins("Tried stickybanning ckey \"[ckey]\", player entity was unable to be found. Please try again later.") - return - - var/datum/entity/player_sticky_ban/PSB = DB_ENTITY(/datum/entity/player_sticky_ban) - PSB.player_id = P.id - if(reason) - PSB.reason = reason - PSB.address = address - PSB.computer_id = cid - PSB.ckey = P.ckey - PSB.date = "[time2text(world.realtime, "YYYY-MM-DD hh:mm:ss")]" - - if(linked_stickyban) - PSB.linked_stickyban = linked_stickyban - - if(!reason) - reason = "No reason given." - - if(banning_admin) - PSB.admin_id = banning_admin.id - if(banning_admin.owning_client) - message_admins("[banning_admin.owning_client.ckey] has stickybanned [ckey].") - - message_admins("[ckey] (IP: [address], CID: [cid]) has been stickybanned for: \"[reason]\".") - - if(P.owning_client) - to_chat_forced(P.owning_client, SPAN_WARNING("You have been sticky banned by [banning_admin? banning_admin.ckey : "Host"].\nReason: [sanitize(reason)].")) - to_chat_forced(P.owning_client, SPAN_WARNING("This is a permanent ban")) - QDEL_NULL(P.owning_client) - - PSB.save() - -/datum/entity/player/proc/process_stickyban(address, computer_id, source_id, reason, datum/entity/player/banning_admin, list/PSB) - if(length(PSB) > 0) // sticky ban with identical data already exists, no need for another copy - if(banning_admin) - to_chat(banning_admin, SPAN_WARNING("Failed to add stickyban to [ckey]. Reason: Stickyban already exists.")) - return - - stickyban_internal(ckey, address, computer_id, reason, source_id, banning_admin) - - -/datum/entity/player/proc/check_for_sticky_ban(address, computer_id) - var/list/datum/view_record/stickyban_list_view/SBLW = DB_VIEW(/datum/view_record/stickyban_list_view, - DB_OR( - DB_COMP("ckey", DB_EQUALS, ckey), - DB_COMP("address", DB_EQUALS, address), - DB_COMP("computer_id", DB_EQUALS, computer_id) - )) - - if(length(SBLW) == 0) - return - - if(stickyban_whitelisted) - return - - return SBLW diff --git a/code/modules/admin/tabs/admin_tab.dm b/code/modules/admin/tabs/admin_tab.dm index 8dce41ac8235..356762b5edd7 100644 --- a/code/modules/admin/tabs/admin_tab.dm +++ b/code/modules/admin/tabs/admin_tab.dm @@ -53,6 +53,12 @@ admin_holder.unbanpanel() return +/client/proc/stickyban_panel() + set name = "Stickyban Panel" + set category = "Admin.Panels" + + admin_holder?.stickypanel() + /client/proc/player_panel_new() set name = "Player Panel" set category = "Admin.Panels" diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 5833428c7af6..801bdcc87e18 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -759,7 +759,7 @@ Power ship SMESs and APCs
Power ship SMESs
Power ALL SMESs and APCs everywhere
- Power all ship reactors
+ Repair and power all ship reactors

Events
Break all lights
diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index 825f7c3cdbf4..ecef2627ed3c 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -229,6 +229,200 @@ alert(usr, "This ban has already been lifted / does not exist.", "Error", "Ok") unbanpanel() + else if(href_list["unban_perma"]) + var/datum/entity/player/unban_player = get_player_from_key(href_list["unban_perma"]) + if(!(tgui_alert(owner, "Do you want to unban [unban_player.ckey]? They are currently permabanned for: [unban_player.permaban_reason], since [unban_player.permaban_date].", "Unban Player", list("Yes", "No")) == "Yes")) + return + + if(!unban_player.is_permabanned) + to_chat(owner, "The player is not currently permabanned.") + + unban_player.is_permabanned = FALSE + unban_player.permaban_admin_id = null + unban_player.permaban_date = null + unban_player.permaban_reason = null + + unban_player.save() + + message_admins("[key_name_admin(owner)] has removed the permanent ban on [unban_player.ckey].") + important_message_external("[owner] has removed the permanent ban on [unban_player.ckey].", "Permaban Removed") + + else if(href_list["sticky"]) + if(href_list["view_all_ckeys"]) + var/list/datum/view_record/stickyban_matched_ckey/all_ckeys = DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"]) + ) + + var/list/keys = list() + var/list/whitelisted = list() + for(var/datum/view_record/stickyban_matched_ckey/match as anything in all_ckeys) + if(match.whitelisted) + whitelisted += match.ckey + else + keys += match.ckey + + show_browser(owner, "Impacted: [english_list(keys)]

Whitelisted: [english_list(whitelisted)]", "Stickyban Keys", "stickykeys") + return + + if(href_list["view_all_cids"]) + var/list/datum/view_record/stickyban_matched_cid/all_cids = DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"]) + ) + + var/list/cids = list() + for(var/datum/view_record/stickyban_matched_cid/match as anything in all_cids) + cids += match.cid + + show_browser(owner, english_list(cids), "Stickyban CIDs", "stickycids") + return + + if(href_list["view_all_ips"]) + var/list/datum/view_record/stickyban_matched_ip/all_ips = DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_COMP("linked_stickyban", DB_EQUALS, href_list["sticky"]) + ) + + var/list/ips = list() + for(var/datum/view_record/stickyban_matched_ip/match as anything in all_ips) + ips += match.ip + + show_browser(owner, english_list(ips), "Stickyban IPs", "stickycips") + return + + if(href_list["find_sticky"]) + var/ckey = ckey(tgui_input_text(owner, "Which CKEY should we attempt to find stickybans for?", "FindABan")) + if(!ckey) + return + + var/list/datum/view_record/stickyban/stickies = SSstickyban.check_for_sticky_ban(ckey) + if(!stickies) + to_chat(owner, SPAN_ADMIN("Could not locate any stickbans impacting [ckey].")) + return + + var/list/impacting_stickies = list() + + for(var/datum/view_record/stickyban/sticky as anything in stickies) + impacting_stickies += sticky.identifier + + to_chat(owner, SPAN_ADMIN("Found the following stickybans for [ckey]: [english_list(impacting_stickies)]")) + + if(!check_rights_for(owner, R_BAN)) + return + + if(href_list["new_sticky"]) + owner.cmd_admin_do_stickyban() + return + + var/datum/entity/stickyban/sticky = DB_ENTITY(/datum/entity/stickyban, href_list["sticky"]) + if(!sticky) + return + + sticky.sync() + + if(href_list["whitelist_ckey"]) + var/ckey_to_whitelist = ckey(tgui_input_text(owner, "What CKEY should be whitelisted? Editing stickyban: [sticky.identifier]")) + if(!ckey_to_whitelist) + return + + SSstickyban.whitelist_ckey(sticky.id, ckey_to_whitelist) + message_admins("[key_name_admin(owner)] has whitelisted [ckey_to_whitelist] against stickyban '[sticky.identifier]'.") + important_message_external("[owner] has whitelisted [ckey_to_whitelist] against stickyban '[sticky.identifier]'.", "CKEY Whitelisted") + + if(href_list["add"]) + var/option = tgui_input_list(owner, "What do you want to add?", "AddABan", list("CID", "CKEY", "IP")) + if(!option) + return + + var/to_add = tgui_input_text(owner, "Provide the [option] to add to the stickyban.", "AddABan") + if(!to_add) + return + + switch(option) + if("CID") + SSstickyban.add_matched_cid(sticky.id, to_add) + if("CKEY") + SSstickyban.add_matched_ckey(sticky.id, to_add) + if("IP") + SSstickyban.add_matched_ip(sticky.id, to_add) + + message_admins("[key_name_admin(owner)] has added a [option] ([to_add]) to stickyban '[sticky.identifier]'.") + important_message_external("[owner] has added a [option] ([to_add]) to stickyban '[sticky.identifier]'.", "[option] Added to Stickyban") + + if(href_list["remove"]) + var/option = tgui_input_list(owner, "What do you want to remove?", "DelABan", list("Entire Stickyban", "CID", "CKEY", "IP")) + switch(option) + if("Entire Stickyban") + if(!(tgui_alert(owner, "Are you sure you want to remove this stickyban? Identifier: [sticky.identifier] Reason: [sticky.reason]", "Confirm", list("Yes", "No")) == "Yes")) + return + + sticky.active = FALSE + sticky.save() + + message_admins("[key_name_admin(owner)] has deactivated stickyban '[sticky.identifier]'.") + important_message_external("[owner] has deactivated stickyban '[sticky.identifier]'.", "Stickyban Deactivated") + + if("CID") + var/list/datum/view_record/stickyban_matched_cid/all_cids = DB_VIEW(/datum/view_record/stickyban_matched_cid, + DB_COMP("linked_stickyban", DB_EQUALS, sticky.id) + ) + + var/list/cid_to_record_id = list() + for(var/datum/view_record/stickyban_matched_cid/match in all_cids) + cid_to_record_id["[match.cid]"] = match.id + + var/picked = tgui_input_list(owner, "Which CID to remove?", "DelABan", cid_to_record_id) + if(!picked) + return + + var/selected = cid_to_record_id[picked] + + var/datum/entity/stickyban_matched_cid/sticky_cid = DB_ENTITY(/datum/entity/stickyban_matched_cid, selected) + sticky_cid.delete() + + message_admins("[key_name_admin(owner)] has removed a CID ([picked]) from stickyban '[sticky.identifier]'.") + important_message_external("[owner] has removed a CID ([picked]) from stickyban '[sticky.identifier]'.", "CID Removed from Stickyban") + + if("CKEY") + var/list/datum/view_record/stickyban_matched_ckey/all_ckeys = DB_VIEW(/datum/view_record/stickyban_matched_ckey, + DB_COMP("linked_stickyban", DB_EQUALS, sticky.id) + ) + + var/list/ckey_to_record_id = list() + for(var/datum/view_record/stickyban_matched_ckey/match in all_ckeys) + ckey_to_record_id["[match.ckey]"] = match.id + + var/picked = tgui_input_list(owner, "Which CKEY to remove?", "DelABan", ckey_to_record_id) + if(!picked) + return + + var/selected = ckey_to_record_id[picked] + + var/datum/entity/stickyban_matched_ckey/sticky_ckey = DB_ENTITY(/datum/entity/stickyban_matched_ckey, selected) + sticky_ckey.delete() + + message_admins("[key_name_admin(owner)] has removed a CKEY ([picked]) from stickyban '[sticky.identifier]'.") + important_message_external("[owner] has removed a CKEY ([picked]) from stickyban '[sticky.identifier]'.", "CKEY Removed from Stickyban") + + if("IP") + var/list/datum/view_record/stickyban_matched_ip/all_ips = DB_VIEW(/datum/view_record/stickyban_matched_ip, + DB_COMP("linked_stickyban", DB_EQUALS, sticky.id) + ) + + var/list/ip_to_record_id = list() + for(var/datum/view_record/stickyban_matched_ip/match in all_ips) + ip_to_record_id["[match.ip]"] = match.id + + var/picked = tgui_input_list(owner, "Which IP to remove?", "DelABan", ip_to_record_id) + if(!picked) + return + + var/selected = ip_to_record_id[picked] + + var/datum/entity/stickyban_matched_ip/sticky_ip = DB_ENTITY(/datum/entity/stickyban_matched_ip, selected) + sticky_ip.delete() + + message_admins("[key_name_admin(owner)] has removed an IP ([picked]) from stickyban [sticky.identifier].") + important_message_external("[owner] has removed an IP ([picked]) from stickyban '[sticky.identifier].", "IP Removed from Stickyban") + else if(href_list["warn"]) usr.client.warn(href_list["warn"]) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 5f10b8d24d22..ce02cdb59e20 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -469,6 +469,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /datum/admin_help/proc/Close(key_name = key_name_admin(usr), silent = FALSE) if(state != AHELP_ACTIVE) return + + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + RemoveActive() state = AHELP_CLOSED GLOB.ahelp_tickets.ListInsert(src) @@ -483,6 +491,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /datum/admin_help/proc/Resolve(key_name = key_name_admin(usr), silent = FALSE) if(state != AHELP_ACTIVE) return + + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + RemoveActive() state = AHELP_RESOLVED GLOB.ahelp_tickets.ListInsert(src) @@ -501,6 +517,10 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(state != AHELP_ACTIVE || !initial_message) return + if(marked_admin && marked_admin != usr.ckey) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + return + if(!initiator.current_mhelp) initiator.current_mhelp = new(initiator) @@ -525,7 +545,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) /datum/admin_help/proc/mark_ticket() if(marked_admin) - if(marked_admin == usr.key) + if(marked_admin == usr.ckey) unmark_ticket() return to_chat(usr, SPAN_WARNING("This ticket has already been marked by [marked_admin].")) @@ -543,7 +563,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) message_admins(msg) log_admin_private(msg) log_ahelp(id, "Marked", "Marked by [usr.key]", sender = usr.ckey) - marked_admin = usr.key + marked_admin = usr.ckey /datum/admin_help/proc/unmark_ticket() var/key_name = key_name_admin(usr) @@ -559,6 +579,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) if(state != AHELP_ACTIVE) return + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + if(initiator) initiator.giveadminhelpverb() @@ -582,6 +609,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) to_chat(usr, SPAN_WARNING("This ticket is already closed!")) return + if(marked_admin != usr.ckey) + if(marked_admin) + to_chat(usr, SPAN_WARNING("This ticket is currently marked by [marked_admin]. Please override their mark to interact with this ticket!")) + else + to_chat(usr, SPAN_WARNING("This ticket is not currently marked. Please mark it first to interact with this ticket!")) + return + var/chosen = tgui_input_list(usr, "Which auto response do you wish to send?", "AutoReply", GLOB.adminreplies) var/datum/autoreply/admin/response = GLOB.adminreplies[chosen] diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index e5fed9db2fc4..76525b2cae96 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -60,7 +60,7 @@ var/message_prompt = "Message:" - if((AH?.opening_responders && length(AH.ticket_interactions) == 1 ) || (AH?.marked_admin && AH?.marked_admin != usr.key) && length(AH.ticket_interactions) == 2) + if((AH?.opening_responders && length(AH.ticket_interactions) == 1 ) || ((AH?.marked_admin && AH?.marked_admin != usr.ckey) && length(AH.ticket_interactions) == 2)) SEND_SOUND(src, sound('sound/machines/buzz-sigh.ogg', volume=30)) message_prompt += "\n\n**This ticket is already being responded to by: [length(AH.opening_responders) ? english_list(AH.opening_responders) : AH.marked_admin]**" @@ -228,7 +228,8 @@ if(CLIENT_IS_STAFF(src)) //sender is an admin but recipient is not. Do BIG RED TEXT var/already_logged = FALSE if(!recipient.current_ticket) - new /datum/admin_help(msg, recipient, TRUE) + var/datum/admin_help/new_ticket = new(msg, recipient, TRUE) + new_ticket.marked_admin = ckey already_logged = TRUE log_ahelp(recipient.current_ticket.id, "Ticket Opened", msg, recipient.ckey, src.ckey) diff --git a/code/modules/admin/verbs/autoreplace.dm b/code/modules/admin/verbs/autoreplace.dm index b2fe04cfb4a3..a896c751f5ed 100644 --- a/code/modules/admin/verbs/autoreplace.dm +++ b/code/modules/admin/verbs/autoreplace.dm @@ -32,7 +32,7 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r GLOB.admin_runtime_decorators.Add(SSdecorator.add_decorator(/datum/decorator/manual/admin_runtime, types, subtypes, field, value)) - log_and_message_admins("[src] activated new decorator id: [GLOB.admin_runtime_decorators.len] set for [hint_text] `[types]` for field `[field]` set value `[value]`") + message_admins("[src] activated new decorator id: [GLOB.admin_runtime_decorators.len] set for [hint_text] `[types]` for field `[field]` set value `[value]`") /client/proc/deactivate_autoreplacer() set category = "Admin.Events" @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r GLOB.admin_runtime_decorators[num_value].enabled = FALSE - log_and_message_admins("[src] deactivated decorator id: [num_value]") + message_admins("[src] deactivated decorator id: [num_value]") /client/proc/rerun_decorators() set category = "Admin.Events" @@ -65,4 +65,4 @@ GLOBAL_LIST_INIT_TYPED(admin_runtime_decorators, /datum/decorator/manual/admin_r SSdecorator.force_update() - log_and_message_admins("[src] rerun all decorators.") + message_admins("[src] rerun all decorators.") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 535a55ca47b3..60c2092d8dc3 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -115,8 +115,10 @@ var/height if(istype(SSmapping.z_list[cur_z], /datum/space_level)) var/datum/space_level/cur_level = SSmapping.z_list[cur_z] - width = cur_level.x_bounds - half_chunk_size + 2 - height = cur_level.y_bounds - half_chunk_size + 2 + cur_x += cur_level.bounds[MAP_MINX] - 1 + cur_y += cur_level.bounds[MAP_MINY] - 1 + width = cur_level.bounds[MAP_MAXX] - cur_level.bounds[MAP_MINX] - half_chunk_size + 3 + height = cur_level.bounds[MAP_MAXY] - cur_level.bounds[MAP_MINY] - half_chunk_size + 3 else width = world.maxx - half_chunk_size + 2 height = world.maxy - half_chunk_size + 2 @@ -281,6 +283,8 @@ account_user.mind.store_memory(remembered_info) account_user.mind.initial_account = generated_account + log_admin("[key_name(usr)] has created a new bank account for [key_name(account_user)].") + /client/proc/cmd_assume_direct_control(mob/M in GLOB.mob_list) set name = "Control Mob" set desc = "Assume control of the mob" @@ -339,3 +343,20 @@ show_browser(usr, "[str]", "Ticker Count", "tickercount") + +#ifdef TESTING +GLOBAL_LIST_EMPTY(dirty_vars) + +/client/proc/see_dirty_varedits() + set category = "Debug.Mapping" + set name = "Dirty Varedits" + + var/list/dat = list() + dat += "

Abandon all hope ye who enter here



" + for(var/thing in GLOB.dirty_vars) + dat += "[thing]
" + CHECK_TICK + var/datum/browser/popup = new(usr, "dirty_vars", "Dirty Varedits", nwidth = 900, nheight = 750) + popup.set_content(dat.Join()) + popup.open() +#endif diff --git a/code/modules/admin/verbs/load_event_level.dm b/code/modules/admin/verbs/load_event_level.dm index 165506376b9b..72d004e03261 100644 --- a/code/modules/admin/verbs/load_event_level.dm +++ b/code/modules/admin/verbs/load_event_level.dm @@ -24,8 +24,6 @@ // Get dims & guesstimate center turf (in practice, current implem means min is always 1) var/dim_x = boundaries[MAP_MAXX] - boundaries[MAP_MINX] + 1 var/dim_y = boundaries[MAP_MAXY] - boundaries[MAP_MINY] + 1 - var/center_x = boundaries[MAP_MINX] + round(dim_x / 2) // Technically off by 0.5 due to above +1. Whatever - var/center_y = boundaries[MAP_MINY] + round(dim_y / 2) var/prompt = alert(C, "Are you SURE you want to load this template as level ? This is SLOW and can freeze server for a bit. Dimensions are: [dim_x] x [dim_y]", "Template Confirm" ,"Yes","Nope!") if(prompt != "Yes") @@ -40,6 +38,9 @@ to_chat(C, "Failed to load the template to a Z-Level! Sorry!") return + var/center_x = round(loaded.bounds[MAP_MAXX] / 2) // Technically off by 0.5 due to above +1. Whatever + var/center_y = round(loaded.bounds[MAP_MAXY] / 2) + // Now notify the staff of the load - this goes in addition to the generic template load game log message_admins("Successfully loaded template as new Z-Level by ckey: [logckey], template name: [template.name]", center_x, center_y, loaded.z_value) if(isobserver(C?.mob)) diff --git a/code/modules/admin/verbs/map_template_loadverb.dm b/code/modules/admin/verbs/map_template_loadverb.dm index 59cffa7f5eae..aed4fd6b90d7 100644 --- a/code/modules/admin/verbs/map_template_loadverb.dm +++ b/code/modules/admin/verbs/map_template_loadverb.dm @@ -74,3 +74,30 @@ SSmapping.map_templates[M.name] = M message_admins(SPAN_ADMINNOTICE("[key_name_admin(src)] has uploaded a map template '[map]' ([M.width]x[M.height])[report_link].")) to_chat(src, SPAN_NOTICE("Map template '[map]' ready to place ([M.width]x[M.height])"), confidential = TRUE) + +/client/proc/force_load_lazy_template() + set name = "Map Template - Lazy Load/Jump" + set category = "Admin.Events" + if(!check_rights(R_EVENT)) + return + + var/choice = tgui_input_list(usr, "Key?", "Lazy Loader", GLOB.lazy_templates) + if(!choice) + return + + var/already_loaded = LAZYACCESS(SSmapping.loaded_lazy_templates, choice) + var/force_load = FALSE + if(already_loaded && (tgui_alert(usr, "Template already loaded.", "", list("Jump", "Load Again")) == "Load Again")) + force_load = TRUE + + var/datum/turf_reservation/reservation = SSmapping.lazy_load_template(choice, force = force_load) + if(!reservation) + to_chat(usr, SPAN_BOLDWARNING("Failed to load template!")) + return + + if(!isobserver(usr)) + admin_ghost() + usr.forceMove(reservation.bottom_left_turfs[1]) + + message_admins("[key_name_admin(usr)] has loaded lazy template '[choice]'") + to_chat(usr, SPAN_BOLD("Template loaded, you have been moved to the bottom left of the reservation.")) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index e35974bc6276..0b27cf268a12 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -378,9 +378,16 @@ InsertAll("", icon_file) for(var/obj/item/weapon/gun/current_gun as anything in subtypesof(/obj/item/weapon/gun)) - var/icon_state = initial(current_gun.base_gun_icon) + if(isnull(initial(current_gun.icon_state))) + continue + if(initial(current_gun.flags_gun_features) & GUN_UNUSUAL_DESIGN) + continue // These don't have a way to inspect weapon stats + var/obj/item/weapon/gun/temp_gun = new current_gun + var/icon_state = temp_gun.base_gun_icon // base_gun_icon is set in Initialize generally + qdel(temp_gun) if(icon_state && isnull(sprites[icon_state])) - stack_trace("[current_gun] does not have a valid lineart icon state, icon=[icon_file], icon_state=[json_encode(icon_state)](\ref[icon_state])") + // upgrade this to a stack_trace once all guns have a lineart and we want to lint against that + log_debug("[current_gun] does not have a valid lineart icon state, icon=[icon_file], icon_state=[json_encode(icon_state)]") ..() diff --git a/code/modules/autowiki/pages/guns.dm b/code/modules/autowiki/pages/guns.dm index ad675c51a409..7f63602d56f0 100644 --- a/code/modules/autowiki/pages/guns.dm +++ b/code/modules/autowiki/pages/guns.dm @@ -7,14 +7,18 @@ var/list/gun_to_ammo = list() - for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - subtypesof(/obj/item/ammo_magazine/internal)) + for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - typesof(/obj/item/ammo_magazine/internal)) + if(isnull(initial(typepath.icon_state))) + continue // Skip mags with no icon_state (e.g. base types) LAZYADD(gun_to_ammo[initial(typepath.gun_type)], typepath) for(var/typepath in sort_list(subtypesof(/obj/item/weapon/gun), GLOBAL_PROC_REF(cmp_typepaths_asc))) - var/obj/item/weapon/gun/generating_gun = new typepath() + var/obj/item/weapon/gun/generating_gun = typepath + if(isnull(initial(generating_gun.icon_state))) + continue // Skip guns with no icon_state (e.g. base types) + generating_gun = new typepath() var/filename = SANITIZE_FILENAME(escape_value(format_text(generating_gun.name))) - var/list/gun_data = generating_gun.ui_data() var/list/valid_mag_types = list() @@ -70,6 +74,8 @@ var/list/attachments_by_slot = list() for(var/obj/item/attachable/attachment_typepath as anything in generating_gun.attachable_allowed) + if(isnull(initial(attachment_typepath.icon_state))) + continue // Skip attachments with no icon_state (e.g. base types) LAZYADD(attachments_by_slot[capitalize(initial(attachment_typepath.slot))], attachment_typepath) var/attachments = "" diff --git a/code/modules/clans/client.dm b/code/modules/clans/client.dm index c4948b2a6923..3450b7553c51 100644 --- a/code/modules/clans/client.dm +++ b/code/modules/clans/client.dm @@ -234,7 +234,7 @@ return - log_and_message_admins("[key_name_admin(src)] has set the name of [target_clan.name] to [input].") + message_admins("[key_name_admin(src)] has set the name of [target_clan.name] to [input].") to_chat(src, SPAN_NOTICE("Set the name of [target_clan.name] to [input].")) target_clan.name = trim(input) @@ -247,7 +247,7 @@ if(!input || input == target_clan.description) return - log_and_message_admins("[key_name_admin(src)] has set the description of [target_clan.name].") + message_admins("[key_name_admin(src)] has set the description of [target_clan.name].") to_chat(src, SPAN_NOTICE("Set the description of [target_clan.name].")) target_clan.description = trim(input) @@ -261,7 +261,7 @@ return target_clan.color = color - log_and_message_admins("[key_name_admin(src)] has set the color of [target_clan.name] to [color].") + message_admins("[key_name_admin(src)] has set the color of [target_clan.name] to [color].") to_chat(src, SPAN_NOTICE("Set the name of [target_clan.name] to [color].")) if(CLAN_ACTION_CLAN_SETHONOR) if(!has_clan_permission(CLAN_PERMISSION_ADMIN_MANAGER)) @@ -272,7 +272,7 @@ if((!input && input != 0) || input == target_clan.honor) return - log_and_message_admins("[key_name_admin(src)] has set the honor of clan [target_clan.name] from [target_clan.honor] to [input].") + message_admins("[key_name_admin(src)] has set the honor of clan [target_clan.name] from [target_clan.honor] to [input].") to_chat(src, SPAN_NOTICE("Set the honor of [target_clan.name] from [target_clan.honor] to [input].")) target_clan.honor = input @@ -286,7 +286,7 @@ to_chat(src, "You have decided not to delete [target_clan.name].") return - log_and_message_admins("[key_name_admin(src)] has deleted the clan [target_clan.name].") + message_admins("[key_name_admin(src)] has deleted the clan [target_clan.name].") to_chat(src, SPAN_NOTICE("You have deleted [target_clan.name].")) var/list/datum/view_record/clan_playerbase_view/CPV = DB_VIEW(/datum/view_record/clan_playerbase_view, DB_COMP("clan_id", DB_EQUALS, target_clan.id)) @@ -339,7 +339,7 @@ return var/target_clan = target.clan_id - log_and_message_admins("[key_name_admin(src)] has purged [player_name]'s clan profile.") + message_admins("[key_name_admin(src)] has purged [player_name]'s clan profile.") to_chat(src, SPAN_NOTICE("You have purged [player_name]'s clan profile.")) target.delete() @@ -379,20 +379,20 @@ target.clan_id = null target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG] to_chat(src, SPAN_NOTICE("Removed [player_name] from their clan.")) - log_and_message_admins("[key_name_admin(src)] has removed [player_name] from their current clan.") + message_admins("[key_name_admin(src)] has removed [player_name] from their current clan.") else if(input == "Remove from Ancient") target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_YOUNG] target.permissions = GLOB.clan_ranks[CLAN_RANK_YOUNG].permissions to_chat(src, SPAN_NOTICE("Removed [player_name] from ancient.")) - log_and_message_admins("[key_name_admin(src)] has removed [player_name] from ancient.") + message_admins("[key_name_admin(src)] has removed [player_name] from ancient.") else if(input == "Make Ancient" && is_clan_manager) target.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_ADMIN] target.permissions = CLAN_PERMISSION_ADMIN_ANCIENT to_chat(src, SPAN_NOTICE("Made [player_name] an ancient.")) - log_and_message_admins("[key_name_admin(src)] has made [player_name] an ancient.") + message_admins("[key_name_admin(src)] has made [player_name] an ancient.") else to_chat(src, SPAN_NOTICE("Moved [player_name] to [input].")) - log_and_message_admins("[key_name_admin(src)] has moved [player_name] to clan [input].") + message_admins("[key_name_admin(src)] has moved [player_name] to clan [input].") target.clan_id = clans[input] @@ -455,7 +455,7 @@ target.clan_rank = GLOB.clan_ranks_ordered[chosen_rank.name] target.permissions = chosen_rank.permissions - log_and_message_admins("[key_name_admin(src)] has set the rank of [player_name] to [chosen_rank.name] for their clan.") + message_admins("[key_name_admin(src)] has set the rank of [player_name] to [chosen_rank.name] for their clan.") to_chat(src, SPAN_NOTICE("Set [player_name]'s rank to [chosen_rank.name]")) target.save() diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 44820444a955..5796d5ff505e 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -444,7 +444,7 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( view = GLOB.world_view_size - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_LOGIN, src) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_LOGGED_IN, src) ////////////// //DISCONNECT// diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 221736b5c84f..113d585e44ef 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -245,7 +245,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( var/auto_observe = TRUE /datum/preferences/New(client/C) - key_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys + key_bindings = deep_copy_list(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys macros = new(C, src) if(istype(C)) owner = C diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 0c1a7a31b5e8..c822bedd0f7b 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -515,6 +515,10 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "Card, Uno Reverse - yellow" path = /obj/item/toy/handcard/uno_reverse_yellow +/datum/gear/toy/card/trading_card + display_name = "Card, random WeyYu Trading" + path = /obj/item/toy/trading_card + /datum/gear/toy/deck display_name = "Deck of cards, regular" path = /obj/item/toy/deck @@ -523,6 +527,10 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "Deck of cards, Uno" path = /obj/item/toy/deck/uno +/datum/gear/toy/trading_card + display_name = "Trading Card Packet" + path = /obj/item/storage/fancy/trading_card + /datum/gear/toy/d6 display_name = "Die, 6 sides" path = /obj/item/toy/dice diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 2261ddf5ebfa..8f3d10c102ce 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -100,7 +100,7 @@ /proc/sanitize_keybindings(value) var/list/base_bindings = sanitize_islist(value, list()) if(!length(base_bindings)) - base_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key) + base_bindings = deep_copy_list(GLOB.hotkey_keybinding_list_by_key) for(var/key in base_bindings) base_bindings[key] = base_bindings[key] & GLOB.keybindings_by_name if(!length(base_bindings[key])) diff --git a/code/modules/client/tgui_macro.dm b/code/modules/client/tgui_macro.dm index f245f1d657d4..cd621cebab84 100644 --- a/code/modules/client/tgui_macro.dm +++ b/code/modules/client/tgui_macro.dm @@ -101,6 +101,7 @@ GLOBAL_LIST_EMPTY(ui_data_keybindings) prefs.save_preferences() INVOKE_ASYNC(owner, /client/proc/set_macros) return TRUE + if("clear_keybind") var/list/kbinds = prefs.key_bindings var/kb_name = params["keybinding"] @@ -111,19 +112,21 @@ GLOBAL_LIST_EMPTY(ui_data_keybindings) for(var/key in keys) if(kbinds[key]) kbinds[key] -= kb_name - kbinds["Unbound"] += kb_name if(!length(kbinds[key])) kbinds -= key + // Add the keybind name to the 'unbound' list if it's not already in there. + kbinds["Unbound"] |= kb_name prefs.save_preferences() INVOKE_ASYNC(owner, /client/proc/set_macros) return TRUE + if("clear_all_keybinds") var/choice = tgui_alert(owner, "Would you prefer 'hotkey' or 'classic' defaults?", "Setup keybindings", list("Hotkey", "Classic", "Cancel")) if(choice == "Cancel") return TRUE prefs.hotkeys = (choice == "Hotkey") - prefs.key_bindings = (prefs.hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key) + prefs.key_bindings = (prefs.hotkeys) ? deep_copy_list(GLOB.hotkey_keybinding_list_by_key) : deep_copy_list(GLOB.classic_keybinding_list_by_key) INVOKE_ASYNC(owner, /client/proc/set_macros) prefs.save_preferences() return TRUE diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm index 9121485ee76a..86527457bfce 100644 --- a/code/modules/clothing/head/head.dm +++ b/code/modules/clothing/head/head.dm @@ -416,10 +416,8 @@ /obj/item/clothing/head/cmcap/reporter name = "combat correspondent cap" desc = "A faithful cap for any terrain war correspondents may find themselves in." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_flagcap" - item_state = "wc_flagcap" - contained_sprite = TRUE + icon_state = "cc_flagcap" + item_state = "cc_flagcap" flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE flags_marine_hat = HAT_GARB_OVERLAY diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index e8643e14a144..26c92f632ee2 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -380,7 +380,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( var/obj/item/storage/internal/headgear/pockets var/storage_slots = 2 // keep in mind, one slot is reserved for garb items - var/storage_slots_reserved_for_garb = 1 + var/storage_slots_reserved_for_garb = 2 var/storage_max_w_class = SIZE_TINY // can hold tiny items only, EXCEPT for glasses & metal flask. var/storage_max_storage_space = 4 @@ -476,10 +476,10 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /obj/item/clothing/head/helmet/marine/attackby(obj/item/attacking_item, mob/user) if(istype(attacking_item, /obj/item/ammo_magazine) && world.time > helmet_bash_cooldown && user) var/obj/item/ammo_magazine/M = attacking_item - var/ammo_level = "somewhat" + var/ammo_level = "more than half full." playsound(user, 'sound/items/trayhit1.ogg', 15, FALSE) - if(M.current_rounds > (M.max_rounds/2)) - ammo_level = "more than half full." + if(M.current_rounds == (M.max_rounds/2)) + ammo_level = "half full." if(M.current_rounds < (M.max_rounds/2)) ammo_level = "less than half full." if(M.current_rounds < (M.max_rounds/6)) @@ -511,7 +511,17 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( new_action.give_to(user) return - if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER) && length(inserted_visors)) + if(HAS_TRAIT(attacking_item, TRAIT_TOOL_SCREWDRIVER)) + // If there isn't anything to remove, return. + if(!length(inserted_visors)) + // If the user is trying to remove a built-in visor, give them a more helpful failure message. + switch(length(built_in_visors)) + if(1) // Messy plural handling + to_chat(user, SPAN_WARNING("The visor on [src] is built-in!")) + if(2 to INFINITY) + to_chat(user, SPAN_WARNING("The visors on [src] are built-in!")) + return + if(active_visor) var/obj/item/device/helmet_visor/temp_visor_holder = active_visor active_visor = null @@ -677,7 +687,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( if(length(total_visors) > iterator) var/obj/item/device/helmet_visor/next_visor = total_visors[iterator + 1] - if(!isnull(GLOB.huds[next_visor.hud_type].hudusers[user])) + if(!isnull(GLOB.huds[next_visor.hud_type]?.hudusers[user])) iterator++ skipped_hud = TRUE continue @@ -694,7 +704,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( for(var/obj/item/device/helmet_visor/new_visor in total_visors) - if(!isnull(GLOB.huds[new_visor.hud_type].hudusers[user])) + if(!isnull(GLOB.huds[new_visor.hud_type]?.hudusers[user])) continue active_visor = new_visor @@ -1403,10 +1413,8 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /obj/item/clothing/head/helmet/marine/reporter name = "press helmet" desc = "A helmet designed to make it clear that the wearer is safety aware and not looking for a fight." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_helm" - item_state = "wc_helm" - contained_sprite = TRUE + icon_state = "cc_helmet" + item_state = "cc_helmet" flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE built_in_visors = list() diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 5467e9413695..a0e95f7f0f30 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -89,6 +89,18 @@ cap_color = "ferret" black_market_value = 25 +/obj/item/clothing/head/soft/trucker + name = "\improper blue trucker hat" + desc = "It's a blue trucker hat." + icon_state = "truckercap_bluesoft" + cap_color = "truckercap_blue" + +/obj/item/clothing/head/soft/trucker/red + name = "\improper red trucker hat" + desc = "It's a red trucker hat." + icon_state = "truckercap_redsoft" + cap_color = "truckercap_red" + /obj/item/clothing/head/soft/sec name = "security cap" desc = "It's baseball hat in tasteful red color." diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 1fe48130157f..1a49dc7fe10f 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -72,7 +72,7 @@ /obj/item/clothing/shoes/sandal desc = "A pair of rather plain, wooden sandals." name = "sandals" - icon_state = "wizard" + icon_state = "sandals" flags_armor_protection = 0 /obj/item/clothing/shoes/sandal/marisa diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm deleted file mode 100644 index 1a8de0a89223..000000000000 --- a/code/modules/clothing/suits/marine_armor.dm +++ /dev/null @@ -1,1894 +0,0 @@ -#define DEBUG_ARMOR_PROTECTION 0 - -#if DEBUG_ARMOR_PROTECTION -/mob/living/carbon/human/verb/check_overall_protection() - set name = "Get Armor Value" - set category = "Debug" - set desc = "Shows the armor value of the bullet category." - - var/armor = 0 - var/counter = 0 - for(var/X in H.limbs) - var/obj/limb/E = X - armor = getarmor_organ(E, ARMOR_BULLET) - to_chat(src, SPAN_DEBUG("[E.name] is protected with [armor] armor against bullets.")) - counter += armor - to_chat(src, SPAN_DEBUG("The overall armor score is: [counter].")) -#endif - -//=======================================================================\\ -//=======================================================================\\ - -#define ALPHA 1 -#define BRAVO 2 -#define CHARLIE 3 -#define DELTA 4 -#define ECHO 5 -#define CRYO 6 -#define SOF 7 -#define NOSQUAD 8 - -// MARINE STORAGE ARMOR - -/obj/item/clothing/suit/storage/marine - name = "\improper M3 pattern marine armor" - desc = "A standard Colonial Marines M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon = 'icons/obj/items/clothing/cm_suits.dmi' - icon_state = "1" - item_state = "marine_armor" //Make unique states for Officer & Intel armors. - item_icons = list( - WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' - ) - flags_atom = FPRINT|CONDUCT - flags_inventory = BLOCKSHARPOBJ - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - min_cold_protection_temperature = HELMET_MIN_COLD_PROT - max_heat_protection_temperature = HELMET_MAX_HEAT_PROT - blood_overlay_type = "armor" - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_NONE - armor_bomb = CLOTHING_ARMOR_MEDIUMLOW - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_LIGHT - storage_slots = 3 - siemens_coefficient = 0.7 - slowdown = SLOWDOWN_ARMOR_MEDIUM - allowed = list( - /obj/item/weapon/gun, - /obj/item/prop/prop_gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/storage/bible, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/storage/large_holster/machete, - /obj/item/storage/belt/gun/type47, - /obj/item/storage/belt/gun/m4a3, - /obj/item/storage/belt/gun/m44, - /obj/item/storage/belt/gun/smartpistol, - /obj/item/storage/belt/gun/flaregun, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - /obj/item/storage/belt/gun/m39, - /obj/item/storage/belt/gun/xm51, - ) - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) - - light_power = 3 - light_range = 4 - light_system = MOVABLE_LIGHT - - var/flashlight_cooldown = 0 //Cooldown for toggling the light - var/locate_cooldown = 0 //Cooldown for SL locator - var/armor_overlays[] - actions_types = list(/datum/action/item_action/toggle) - var/flags_marine_armor = ARMOR_SQUAD_OVERLAY|ARMOR_LAMP_OVERLAY - var/specialty = "M3 pattern marine" //Same thing here. Give them a specialty so that they show up correctly in vendors. speciality does NOTHING if you have NO_NAME_OVERRIDE - w_class = SIZE_HUGE - uniform_restricted = list(/obj/item/clothing/under/marine) - sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') - time_to_unequip = 20 - time_to_equip = 20 - pickup_sound = "armorequip" - drop_sound = "armorequip" - equip_sounds = list('sound/handling/putting_on_armor1.ogg') - var/armor_variation = 0 - /// The dmi where the grayscale squad overlays are contained - var/squad_overlay_icon = 'icons/mob/humans/onmob/suit_1.dmi' - - var/atom/movable/marine_light/light_holder - -/obj/item/clothing/suit/storage/marine/Initialize(mapload) - . = ..() - if(!(flags_atom & NO_NAME_OVERRIDE)) - name = "[specialty]" - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - name += " snow armor" //Leave marine out so that armors don't have to have "Marine" appended (see: generals). - else - name += " armor" - - if(!(flags_atom & NO_SNOW_TYPE)) - select_gamemode_skin(type) - armor_overlays = list("lamp") //Just one for now, can add more later. - if(armor_variation && mapload) - set_armor_style("Random") - update_icon() - pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - ) - pockets.max_storage_space = 8 - - light_holder = new(src) - -/obj/item/clothing/suit/storage/marine/Destroy() - QDEL_NULL(light_holder) - return ..() - -/obj/item/clothing/suit/storage/marine/update_icon(mob/user) - var/image/I - armor_overlays["lamp"] = null - if(flags_marine_armor & ARMOR_LAMP_OVERLAY) - if(flags_marine_armor & ARMOR_LAMP_ON) - I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-on") - else - I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-off") - armor_overlays["lamp"] = I - overlays += I - else armor_overlays["lamp"] = null - if(user) user.update_inv_wear_suit() - - -/obj/item/clothing/suit/storage/marine/post_vendor_spawn_hook(mob/living/carbon/human/user) //used for randomizing/selecting a variant for armors. - if(!armor_variation) - return - - if(user?.client?.prefs) - // Set the armor style to the user's preference. - set_armor_style(user.client.prefs.preferred_armor) - else - // Or if that isn't possible, just pick a random one. - set_armor_style("Random") - update_icon(user) - -/obj/item/clothing/suit/storage/marine/attack_self(mob/user) - ..() - - if(!isturf(user.loc)) - to_chat(user, SPAN_WARNING("You cannot turn the light [light_on ? "off" : "on"] while in [user.loc].")) //To prevent some lighting anomalies. - return - - if(flashlight_cooldown > world.time) - return - if(!ishuman(user)) - return - - var/mob/living/carbon/human/H = user - if(H.wear_suit != src) - return - - turn_light(user, !light_on) - -/obj/item/clothing/suit/storage/marine/item_action_slot_check(mob/user, slot) - if(!ishuman(user)) - return FALSE - if(slot != WEAR_JACKET) - return FALSE - return TRUE //only give action button when armor is worn. - -/obj/item/clothing/suit/storage/marine/turn_light(mob/user, toggle_on) - . = ..() - if(. != CHECKS_PASSED) - return - set_light_range(initial(light_range)) - set_light_power(Floor(initial(light_power) * 0.5)) - set_light_on(toggle_on) - flags_marine_armor ^= ARMOR_LAMP_ON - - light_holder.set_light_flags(LIGHT_ATTACHED) - light_holder.set_light_range(initial(light_range)) - light_holder.set_light_power(initial(light_power)) - light_holder.set_light_on(toggle_on) - - if(!toggle_on) - playsound(src, 'sound/handling/click_2.ogg', 50, 1) - - playsound(src, 'sound/handling/suitlight_on.ogg', 50, 1) - update_icon(user) - - for(var/X in actions) - var/datum/action/A = X - A.update_button_icon() - -/obj/item/clothing/suit/storage/marine/mob_can_equip(mob/living/carbon/human/M, slot, disable_warning = 0) - . = ..() - if (.) - if(issynth(M) && M.allow_gun_usage == FALSE && !(flags_marine_armor & SYNTH_ALLOWED)) - M.visible_message(SPAN_DANGER("Your programming prevents you from wearing this!")) - return 0 - -/** - * Updates the armor's `icon_state` to the style represented by `new_style`. - * - * Arguments: - * * new_style - The new armor style. May only be one of `GLOB.armor_style_list`'s keys, or `"Random"`. - */ -/obj/item/clothing/suit/storage/marine/proc/set_armor_style(new_style) - // Regex to match one or more digits. - var/static/regex/digits = new("\\d+") - // Integer for the new armor style's `icon_state`. - var/new_look - - if(new_style == "Random") - // The style icon states are all numbers between 1 and `armor_variation`, so this picks a random one. - new_look = rand(1, armor_variation) - else - new_look = GLOB.armor_style_list[new_style] - - // Replace the digits in the current icon state with `new_look`. (E.g. "L6" -> "L2") - icon_state = digits.Replace(icon_state, new_look) - -/obj/item/clothing/suit/storage/marine/medium/padded - name = "M3 pattern padded marine armor" - icon_state = "1" - specialty = "M3 pattern padded marine" - -/obj/item/clothing/suit/storage/marine/medium/padless - name = "M3 pattern padless marine armor" - icon_state = "2" - specialty = "M3 pattern padless marine" - -/obj/item/clothing/suit/storage/marine/medium/padless_lines - name = "M3 pattern ridged marine armor" - icon_state = "3" - specialty = "M3 pattern ridged marine" - -/obj/item/clothing/suit/storage/marine/medium/carrier - name = "M3 pattern carrier marine armor" - icon_state = "4" - specialty = "M3 pattern carrier marine" - -/obj/item/clothing/suit/storage/marine/medium/skull - name = "M3 pattern skull marine armor" - icon_state = "5" - specialty = "M3 pattern skull marine" - -/obj/item/clothing/suit/storage/marine/medium/smooth - name = "M3 pattern smooth marine armor" - icon_state = "6" - specialty = "M3 pattern smooth marine" - -/obj/item/clothing/suit/storage/marine/medium/rto - icon_state = "io" - armor_variation = 0 - name = "\improper M4 pattern marine armor" - desc = "A well tinkered and crafted hybrid of Smart-Gunner mesh and M3 pattern plates. Robust, yet nimble, with room for all your pouches." - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 4 - light_range = 5 //slightly higher - specialty = "M4 pattern marine" - -/obj/item/clothing/suit/storage/marine/medium/rto/intel - name = "\improper XM4 pattern intelligence officer armor" - uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/marine/officer/intel) - specialty = "XM4 pattern intel" - -/obj/item/clothing/suit/storage/marine/MP - name = "\improper M2 pattern MP armor" - desc = "A standard Colonial Marines M2 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "mp_armor" - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_LOW - armor_laser = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/explosive/grenade, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/device/hailer, - /obj/item/storage/belt/gun, - /obj/item/weapon/sword/ceremonial, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/mp) - specialty = "M2 pattern MP" - item_state_slots = list(WEAR_JACKET = "mp_armor") - black_market_value = 20 - -/obj/item/clothing/suit/storage/marine/MP/warden - icon_state = "warden" - name = "\improper M3 pattern warden MP armor" - desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Wardens. Useful for letting your men know who is in charge." - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - uniform_restricted = list(/obj/item/clothing/under/marine/warden) - specialty = "M3 pattern warden MP" - item_state_slots = list(WEAR_JACKET = "warden") - -/obj/item/clothing/suit/storage/marine/MP/WO - icon_state = "warrant_officer" - name = "\improper M3 pattern chief MP armor" - desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Chief MPs. Useful for letting your men know who is in charge." - uniform_restricted = list(/obj/item/clothing/under/marine/officer/warrant) - specialty = "M3 pattern chief MP" - item_state_slots = list(WEAR_JACKET = "warrant_officer") - black_market_value = 30 - -/obj/item/clothing/suit/storage/marine/MP/general - name = "\improper M3 pattern general officer armor" - desc = "A well-crafted suit of M3 Pattern Armor with a gold shine. It looks very expensive, but shockingly fairly easy to carry and wear." - icon_state = "general" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_bio = CLOTHING_ARMOR_MEDIUM - uniform_restricted = list(/obj/item/clothing/under/marine/officer/general) - specialty = "M3 pattern general" - item_state_slots = list(WEAR_JACKET = "general") - w_class = SIZE_MEDIUM - -/obj/item/clothing/suit/storage/marine/MP/SO - name = "\improper M3 pattern officer armor" - desc = "A well-crafted suit of M3 Pattern Armor typically found in the hands of higher-ranking officers. Useful for letting your men know who is in charge when taking to the field." - icon_state = "officer" - storage_slots = 3 - flags_atom = null - uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/clothing/under/marine/dress) - specialty = "M2 pattern officer" - item_state_slots = list(WEAR_JACKET = "officer") - -//Making a new object because we might want to edit armor values and such. -//Or give it its own sprite. It's more for the future. -/obj/item/clothing/suit/storage/marine/MP/CO - name = "\improper M3 pattern commanding officer armor" - desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge." - icon_state = "co_officer" - item_state = "co_officer" - armor_bullet = CLOTHING_ARMOR_HIGH - storage_slots = 3 - flags_atom = NO_SNOW_TYPE - flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS - uniform_restricted = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/rank/qm_suit) - specialty = "M3 pattern captain" - item_state_slots = list(WEAR_JACKET = "co_officer") - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_PONCHO) - black_market_value = 35 - - -/obj/item/clothing/suit/storage/marine/MP/CO/jacket - name = "\improper M3 pattern commanding officer armored coat" - desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge. This one has a coat over it for added warmth." - icon_state = "bridge_coat_armored" - item_state = "bridge_coat_armored" - item_state_slots = list(WEAR_JACKET = "bridge_coat_armored") - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK) - - -/obj/item/clothing/suit/storage/marine/smartgunner - name = "\improper M56 combat harness" - desc = "A heavy protective vest designed to be worn with the M56 Smartgun System. \nIt has specially designed straps and reinforcement to carry the Smartgun and accessories." - icon_state = "8" - item_state = "armor" - armor_laser = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS - allowed = list( - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine, - /obj/item/explosive/mine, - /obj/item/attachable/bayonet, - /obj/item/weapon/gun/smartgun, - /obj/item/storage/backpack/general_belt, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - -/obj/item/clothing/suit/storage/marine/smartgunner/Initialize() - . = ..() - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD] && name == "M56 combat harness") - name = "M56 snow combat harness" - else - name = "M56 combat harness" - //select_gamemode_skin(type) - -/obj/item/clothing/suit/storage/marine/smartgunner/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE) - . = ..() - - if(equipping_mob.back) - to_chat(equipping_mob, SPAN_WARNING("You can't equip [src] while wearing a backpack.")) - return FALSE - -/obj/item/clothing/suit/storage/marine/smartgunner/equipped(mob/user, slot, silent) - . = ..() - - if(slot == WEAR_JACKET) - RegisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP, PROC_REF(check_equipping)) - -/obj/item/clothing/suit/storage/marine/smartgunner/proc/check_equipping(mob/living/carbon/human/equipping_human, obj/item/equipping_item, slot) - SIGNAL_HANDLER - - if(slot != WEAR_BACK) - return - - . = COMPONENT_HUMAN_CANCEL_ATTEMPT_EQUIP - - if(equipping_item.flags_equip_slot == SLOT_BACK) - to_chat(equipping_human, SPAN_WARNING("You can't equip [equipping_item] on your back while wearing [src].")) - return - -/obj/item/clothing/suit/storage/marine/smartgunner/unequipped(mob/user, slot) - . = ..() - - UnregisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP) - -/obj/item/clothing/suit/storage/marine/medium/leader - name = "\improper B12 pattern marine armor" - desc = "A lightweight suit of carbon fiber body armor built for quick movement. Designed in a lovely forest green. Use it to toggle the built-in flashlight." - icon_state = "7" - armor_variation = 0 - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - specialty = "B12 pattern marine" - light_range = 5 - -/obj/item/clothing/suit/storage/marine/tanker - name = "\improper M3 pattern tanker armor" - desc = "A modified and refashioned suit of M3 Pattern armor designed to be worn by the loader of a USCM vehicle crew. While the suit is a bit more encumbering to wear with the crewman uniform, it offers the loader a degree of protection that would otherwise not be enjoyed." - icon_state = "tanker" - uniform_restricted = list(/obj/item/clothing/under/marine/officer/tanker) - specialty = "M3 pattern tanker" - storage_slots = 2 - -//===========================//PFC ARMOR CLASSES\\================================\\ -//=================================================================================\\ - -/obj/item/clothing/suit/storage/marine/medium - armor_variation = 6 - light_power = 4 - -/obj/item/clothing/suit/storage/marine/medium/padded - name = "M3 pattern padded marine armor" - icon_state = "1" - armor_variation = 0 - specialty = "M3 pattern padded marine" - -/obj/item/clothing/suit/storage/marine/medium/padless - name = "M3 pattern padless marine armor" - icon_state = "2" - armor_variation = 0 - specialty = "M3 pattern padless marine" - -/obj/item/clothing/suit/storage/marine/medium/padless_lines - name = "M3 pattern ridged marine armor" - icon_state = "3" - armor_variation = 0 - specialty = "M3 pattern ridged marine" - -/obj/item/clothing/suit/storage/marine/medium/carrier - name = "M3 pattern carrier marine armor" - icon_state = "4" - armor_variation = 0 - specialty = "M3 pattern carrier marine" - -/obj/item/clothing/suit/storage/marine/medium/skull - name = "M3 pattern skull marine armor" - icon_state = "5" - armor_variation = 0 - specialty = "M3 pattern skull marine" - -/obj/item/clothing/suit/storage/marine/medium/smooth - name = "M3 pattern smooth marine armor" - icon_state = "6" - armor_variation = 0 - specialty = "M3 pattern smooth marine" - -/obj/item/clothing/suit/storage/marine/light - name = "\improper M3-L pattern light armor" - desc = "A lighter, cut down version of the standard M3 pattern armor. It sacrifices durability for more speed." - specialty = "\improper M3-L pattern light" - icon_state = "L1" - armor_variation = 6 - slowdown = SLOWDOWN_ARMOR_LIGHT - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_LOW - storage_slots = 2 - -/obj/item/clothing/suit/storage/marine/light/padded - icon_state = "L1" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/padless - icon_state = "L2" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/padless_lines - icon_state = "L3" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/carrier - icon_state = "L4" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/skull - icon_state = "L5" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/smooth - icon_state = "L6" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/light/vest - name = "\improper M3-VL pattern ballistics vest" - desc = "Up until 2182 USCM non-combat personnel were issued non-standardized ballistics vests, though the lack of IMP compatibility and suit lamps proved time and time again inefficient. This modified M3-L shell is the result of a 6-year R&D program; It provides utility, protection, AND comfort to all USCM non-combat personnel." - icon_state = "VL" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - flags_marine_armor = ARMOR_LAMP_OVERLAY //No squad colors when wearing this since it'd look funny. - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_VERYLOW - armor_rad = CLOTHING_ARMOR_NONE - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - storage_slots = 1 - time_to_unequip = 0.5 SECONDS - time_to_equip = 1 SECONDS - siemens_coefficient = 0.7 - uniform_restricted = null - -/obj/item/clothing/suit/storage/marine/light/vest/dcc - name = "\improper M3-VL pattern flak vest" - desc = "A combination of the standard non-combat M3-VL ballistics vest and M70 flak jacket, this piece of armor has been distributed to dropship crew to keep them safe from threats external and internal..." - icon_state = "VL_FLAK" - storage_slots = 2 - -/obj/item/clothing/suit/storage/marine/light/synvest - name = "\improper M3A1 Synthetic Utility Vest" - desc = "This variant of the ubiquitous M3 pattern ballistics vest has been extensively modified, providing no protection in exchange for maximum mobility and storage space. Synthetic programming compliant." - icon_state = "VL_syn_camo" - flags_atom = NO_NAME_OVERRIDE - flags_marine_armor = ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED //No squad colors + can be worn by synths. - armor_melee = CLOTHING_ARMOR_NONE - armor_bullet = CLOTHING_ARMOR_NONE - armor_laser = CLOTHING_ARMOR_NONE - armor_energy = CLOTHING_ARMOR_NONE - armor_bomb = CLOTHING_ARMOR_NONE - armor_bio = CLOTHING_ARMOR_NONE - armor_rad = CLOTHING_ARMOR_NONE - armor_internaldamage = CLOTHING_ARMOR_NONE - storage_slots = 3 - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - time_to_unequip = 0.5 SECONDS - time_to_equip = 1 SECONDS - uniform_restricted = null - -/obj/item/clothing/suit/storage/marine/light/synvest/grey - icon_state = "VL_syn" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/jungle - icon_state = "VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/snow - icon_state = "s_VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/desert - icon_state = "d_VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/light/synvest/dgrey - icon_state = "c_VL_syn_camo" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/heavy - name = "\improper M3-EOD pattern heavy armor" - desc = "A heavier version of the standard M3 pattern armor, the armor is primarily designed to withstand ballistic, explosive, and internal damage, with the drawback of increased bulk and thus reduced movement speed, alongside little additional protection from standard blunt force impacts and biological threats." - desc_lore = "This configuration of the iconic armor was developed during the Canton War in 2160 between the UPP and USCM - Designed in response to a need for higher protection for ComTechs assigned as EODs during the conflict, this is the pinnacle of protection for your average marine. The shoulders and kneepads have both been expanded upon heavily, covering up the arteries on each limb. A special spall liner was developed for this suit, with the same technology being used in the M70 Flak Jacket being developed at the same time." - specialty = "\improper M3-EOD pattern" - icon_state = "H1" - armor_variation = 6 - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_bomb = CLOTHING_ARMOR_HIGHPLUS - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LOWHEAVY - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - light_power = 4 - light_range = 5 - -/obj/item/clothing/suit/storage/marine/heavy/padded - icon_state = "H1" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/padless - icon_state = "H2" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/padless_lines - icon_state = "H3" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/carrier - icon_state = "H4" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/skull - icon_state = "H5" - armor_variation = 0 - -/obj/item/clothing/suit/storage/marine/heavy/smooth - icon_state = "H6" - armor_variation = 0 - -//===========================//SPECIALIST\\================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/specialist - name = "\improper B18 defensive armor" - desc = "A heavy, rugged set of armor plates for when you really, really need to not die horribly. Slows you down though.\nComes with two tricord injectors in each arm guard." - icon_state = "xarmor" - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGH - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - storage_slots = 2 - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - slowdown = SLOWDOWN_ARMOR_HEAVY - specialty = "B18 defensive" - unacidable = TRUE - var/injections = 4 - -/obj/item/clothing/suit/storage/marine/specialist/verb/inject() - set name = "Create Injector" - set category = "Object" - set src in usr - - if(usr.is_mob_incapacitated()) - return 0 - - if(!injections) - to_chat(usr, "Your armor is all out of injectors.") - return 0 - - if(usr.get_active_hand()) - to_chat(usr, "Your active hand must be empty.") - return 0 - - to_chat(usr, "You feel a faint hiss and an injector drops into your hand.") - var/obj/item/reagent_container/hypospray/autoinjector/skillless/O = new(usr) - usr.put_in_active_hand(O) - injections-- - playsound(src,'sound/machines/click.ogg', 15, 1) - return - -/obj/item/clothing/suit/storage/marine/M3G - name = "\improper M3-G4 grenadier armor" - desc = "A custom set of M3 armor packed to the brim with padding, plating, and every form of ballistic protection under the sun. Used exclusively by USCM Grenadiers." - icon_state = "grenadier" - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - slowdown = SLOWDOWN_ARMOR_HEAVY - specialty = "M3-G4 grenadier" - unacidable = TRUE - -/obj/item/clothing/suit/storage/marine/M3T - name = "\improper M3-T light armor" - desc = "A custom set of M3 armor designed for users of long-ranged explosive weaponry." - icon_state = "demolitionist" - armor_bomb = CLOTHING_ARMOR_HIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - specialty = "M3-T light" - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - unacidable = TRUE - -/obj/item/clothing/suit/storage/marine/M3S - name = "\improper M3-S light armor" - desc = "A custom set of M3 armor designed for USCM Scouts." - icon_state = "scout_armor" - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - specialty = "M3-S light" - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - unacidable = TRUE - -#define FIRE_SHIELD_CD 150 - -/obj/item/clothing/suit/storage/marine/M35 - name = "\improper M35 pyrotechnician armor" - desc = "A custom set of M35 armor designed for use by USCM Pyrotechnicians." - icon_state = "pyro_armor" - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - fire_intensity_resistance = BURN_LEVEL_TIER_1 - max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROT - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE - specialty = "M35 pyrotechnician" - actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/fire_shield) - unacidable = TRUE - var/fire_shield_on = FALSE - var/can_activate = TRUE - -/obj/item/clothing/suit/storage/marine/M35/equipped(mob/user, slot) - if(slot == WEAR_JACKET) - RegisterSignal(user, COMSIG_LIVING_FLAMER_CROSSED, PROC_REF(flamer_fire_callback)) - ..() - -/obj/item/clothing/suit/storage/marine/M35/verb/fire_shield() - set name = "Activate Fire Shield" - set desc = "Activate your armor's FIREWALK protocol for a short duration." - set category = "Pyro" - set src in usr - if(!usr || usr.is_mob_incapacitated(TRUE)) - return - if(!ishuman(usr)) - return - var/mob/living/carbon/human/H = usr - - if(H.wear_suit != src) - to_chat(H, SPAN_WARNING("You must be wearing the M35 pyro armor to activate FIREWALK protocol!")) - return - - if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_PYRO) - to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) - return - - if(fire_shield_on) - to_chat(H, SPAN_WARNING("You already have FIREWALK protocol activated!")) - return - - if(!can_activate) - to_chat(H, SPAN_WARNING("FIREWALK protocol was recently activated, wait before trying to activate it again.")) - return - - to_chat(H, SPAN_NOTICE("FIREWALK protocol has been activated. You will now be immune to fire for 6 seconds!")) - RegisterSignal(H, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_shield_is_on)) - RegisterSignal(H, list( - COMSIG_LIVING_FLAMER_FLAMED, - ), PROC_REF(flamer_fire_callback)) - fire_shield_on = TRUE - can_activate = FALSE - for(var/X in actions) - var/datum/action/A = X - A.update_button_icon() - addtimer(CALLBACK(src, PROC_REF(end_fire_shield), H), 6 SECONDS) - - H.add_filter("firewalk_on", 1, list("type" = "outline", "color" = "#03fcc6", "size" = 1)) - -/obj/item/clothing/suit/storage/marine/M35/proc/end_fire_shield(mob/living/carbon/human/user) - if(!istype(user)) - return - to_chat(user, SPAN_NOTICE("FIREWALK protocol has finished.")) - UnregisterSignal(user, list( - COMSIG_LIVING_PREIGNITION, - COMSIG_LIVING_FLAMER_FLAMED, - )) - fire_shield_on = FALSE - - user.remove_filter("firewalk_on") - - addtimer(CALLBACK(src, PROC_REF(enable_fire_shield), user), FIRE_SHIELD_CD) - -/obj/item/clothing/suit/storage/marine/M35/proc/enable_fire_shield(mob/living/carbon/human/user) - if(!istype(user)) - return - to_chat(user, SPAN_NOTICE("FIREWALK protocol can be activated again.")) - can_activate = TRUE - - for(var/X in actions) - var/datum/action/A = X - A.update_button_icon() - -/// This proc is solely so that IgniteMob() fails -/obj/item/clothing/suit/storage/marine/M35/proc/fire_shield_is_on(mob/living/L) - SIGNAL_HANDLER - - if(L.fire_reagent?.fire_penetrating) - return - - return COMPONENT_CANCEL_IGNITION - -/obj/item/clothing/suit/storage/marine/M35/proc/flamer_fire_callback(mob/living/L, datum/reagent/R) - SIGNAL_HANDLER - - if(R.fire_penetrating) - return - - . = COMPONENT_NO_IGNITE - if(fire_shield_on) - . |= COMPONENT_NO_BURN - -/obj/item/clothing/suit/storage/marine/M35/dropped(mob/user) - if (!istype(user)) - return - UnregisterSignal(user, list( - COMSIG_LIVING_PREIGNITION, - COMSIG_LIVING_FLAMER_CROSSED, - COMSIG_LIVING_FLAMER_FLAMED, - )) - ..() - -#undef FIRE_SHIELD_CD - -/datum/action/item_action/specialist/fire_shield - ability_primacy = SPEC_PRIMARY_ACTION_2 - -/datum/action/item_action/specialist/fire_shield/New(mob/living/user, obj/item/holder) - ..() - name = "Activate Fire Shield" - button.name = name - button.overlays.Cut() - var/image/IMG = image('icons/obj/items/clothing/cm_suits.dmi', button, "pyro_armor") - button.overlays += IMG - -/datum/action/item_action/specialist/fire_shield/action_cooldown_check() - var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item - if (!istype(armor)) - return FALSE - - return !armor.can_activate - -/datum/action/item_action/specialist/fire_shield/can_use_action() - var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && H.wear_suit == holder_item) - return TRUE - -/datum/action/item_action/specialist/fire_shield/action_activate() - var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item - if (!istype(armor)) - return - - armor.fire_shield() - -#define FULL_CAMOUFLAGE_ALPHA 15 - -/obj/item/clothing/suit/storage/marine/ghillie - name = "\improper M45 pattern ghillie armor" - desc = "A lightweight ghillie camouflage suit, used by USCM snipers on recon missions. Very lightweight, but doesn't protect much." - icon_state = "ghillie_armor" - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_marine_armor = ARMOR_LAMP_OVERLAY - flags_item = MOB_LOCK_ON_EQUIP - specialty = "M45 pattern ghillie" - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - - var/camo_active = FALSE - var/hide_in_progress = FALSE - var/full_camo_alpha = FULL_CAMOUFLAGE_ALPHA - var/incremental_shooting_camo_penalty = 35 - var/current_camo = FULL_CAMOUFLAGE_ALPHA - var/camouflage_break = 5 SECONDS - var/camouflage_enter_delay = 4 SECONDS - var/can_camo = TRUE - - actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/prepare_position) - -/obj/item/clothing/suit/storage/marine/ghillie/dropped(mob/user) - if(ishuman(user) && !issynth(user)) - deactivate_camouflage(user, FALSE) - - . = ..() - -/obj/item/clothing/suit/storage/marine/ghillie/verb/camouflage() - set name = "Prepare Position" - set desc = "Use the ghillie suit and the nearby environment to become near invisible." - set category = "Object" - set src in usr - if(!usr || usr.is_mob_incapacitated(TRUE)) - return - - if(!ishuman(usr) || hide_in_progress || !can_camo) - return - var/mob/living/carbon/human/H = usr - if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER && !(GLOB.character_traits[/datum/character_trait/skills/spotter] in H.traits)) - to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) - return - if(H.wear_suit != src) - to_chat(H, SPAN_WARNING("You must be wearing the ghillie suit to activate it!")) - return - - if(camo_active) - deactivate_camouflage(H) - return - - H.visible_message(SPAN_DANGER("[H] goes prone, and begins adjusting \his ghillie suit!"), SPAN_NOTICE("You go prone, and begins adjusting your ghillie suit."), max_distance = 4) - hide_in_progress = TRUE - H.unset_interaction() // If we're sticking to a machine gun or what not. - if(!do_after(H, camouflage_enter_delay, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - hide_in_progress = FALSE - return - hide_in_progress = FALSE - RegisterSignal(H, list( - COMSIG_MOB_FIRED_GUN, - COMSIG_MOB_FIRED_GUN_ATTACHMENT) - , PROC_REF(fade_in)) - RegisterSignal(H, list( - COMSIG_MOB_DEATH, - COMSIG_HUMAN_EXTINGUISH - ), PROC_REF(deactivate_camouflage)) - camo_active = TRUE - H.alpha = full_camo_alpha - H.FF_hit_evade = 1000 - ADD_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) - - RegisterSignal(H, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look)) - - 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 = GLOB.huds[MOB_HUD_XENO_INFECTION] - XI.remove_from_hud(H) - - anim(H.loc, H, 'icons/mob/mob.dmi', null, "cloak", null, H.dir) - - -/obj/item/clothing/suit/storage/marine/ghillie/proc/deactivate_camouflage(mob/user) - SIGNAL_HANDLER - var/mob/living/carbon/human/H = user - if(!istype(H)) - return FALSE - - if(!camo_active) - return - - UnregisterSignal(H, list( - COMSIG_MOB_FIRED_GUN, - COMSIG_MOB_FIRED_GUN_ATTACHMENT, - COMSIG_MOB_DEATH, - COMSIG_HUMAN_EXTINGUISH, - COMSIG_MOB_MOVE_OR_LOOK - )) - - camo_active = FALSE - animate(H, alpha = initial(H.alpha), flags = ANIMATION_END_NOW) - H.FF_hit_evade = initial(H.FF_hit_evade) - REMOVE_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) - - 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 = GLOB.huds[MOB_HUD_XENO_INFECTION] - XI.add_to_hud(H) - - H.visible_message(SPAN_DANGER("[H]'s camouflage fails!"), SPAN_WARNING("Your camouflage fails!"), max_distance = 4) - -/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_in(mob/user) - SIGNAL_HANDLER - var/mob/living/carbon/human/H = user - if(camo_active) - if(current_camo < full_camo_alpha) - current_camo = full_camo_alpha - current_camo = clamp(current_camo + incremental_shooting_camo_penalty, full_camo_alpha, 255) - H.alpha = current_camo - addtimer(CALLBACK(src, PROC_REF(fade_out_finish), H), camouflage_break, TIMER_OVERRIDE|TIMER_UNIQUE) - animate(H, alpha = full_camo_alpha + 5, time = camouflage_break, easing = LINEAR_EASING, flags = ANIMATION_END_NOW) - -/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_out_finish(mob/living/carbon/human/H) - if(camo_active && H.wear_suit == src) - to_chat(H, SPAN_BOLDNOTICE("The smoke clears and your position is once again hidden completely!")) - animate(H, alpha = full_camo_alpha) - current_camo = full_camo_alpha - -/obj/item/clothing/suit/storage/marine/ghillie/proc/handle_mob_move_or_look(mob/living/mover, actually_moving, direction, specific_direction) - SIGNAL_HANDLER - - if(camo_active && actually_moving) - deactivate_camouflage(mover) - -/datum/action/item_action/specialist/prepare_position - ability_primacy = SPEC_PRIMARY_ACTION_1 - -/datum/action/item_action/specialist/prepare_position/New(mob/living/user, obj/item/holder) - ..() - name = "Prepare Position" - button.name = name - button.overlays.Cut() - var/image/IMG = image('icons/mob/hud/actions.dmi', button, "prepare_position") - button.overlays += IMG - -/datum/action/item_action/specialist/prepare_position/can_use_action() - var/mob/living/carbon/human/H = owner - if(istype(H) && !H.is_mob_incapacitated() && H.body_position == STANDING_UP && holder_item == H.wear_suit) - return TRUE - -/datum/action/item_action/specialist/prepare_position/action_activate() - var/obj/item/clothing/suit/storage/marine/ghillie/GS = holder_item - GS.camouflage() - -#undef FULL_CAMOUFLAGE_ALPHA - -/obj/item/clothing/suit/storage/marine/ghillie/forecon - name = "UDEP Thermal Poncho" - desc = "UDEP or the Ultra Diffusive Environmental Poncho is a camouflaged rain-cover worn to protect against the elements and chemical spills. It's commonly treated with an infrared absorbing coating, making a marine almost invisible in the rain. Favoured by USCM specialists for it's comfort and practicality." - icon_state = "mercenary_miner_armor" - flags_atom = MOB_LOCK_ON_EQUIP|NO_SNOW_TYPE|NO_NAME_OVERRIDE - -/obj/item/clothing/suit/storage/marine/sof - name = "\improper SOF Armor" - desc = "A heavily customized suit of M3 armor. Used by Marine Raiders." - icon_state = "marsoc" - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGH - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_LIGHT - unacidable = TRUE - flags_atom = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE|NO_SNOW_TYPE - storage_slots = 4 - -//=============================//pmcS\\==================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran - flags_marine_armor = ARMOR_LAMP_OVERLAY - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE //Let's make these keep their name and icon. - -/obj/item/clothing/suit/storage/marine/veteran/pmc - name = "\improper M4 pattern PMC armor" - desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind." - icon_state = "pmc_armor" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/tool/crowbar, - /obj/item/storage/large_holster/katana, - /obj/item/storage/large_holster/machete, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/tool/crew_monitor, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc) - item_state_slots = list(WEAR_JACKET = "pmc_armor") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light - name = "\improper M4 pattern light PMC armor" - desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. Has some armor plating removed for extra mobility." - icon_state = "pmc_sniper" - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - item_state_slots = list(WEAR_JACKET = "pmc_sniper") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate - name = "\improper M1 pattern corporate security armor" - desc = "A basic vest with a Weyland-Yutani badge on the right breast. This is commonly worn by low-level guards protecting Weyland-Yutani facilities." - icon = 'icons/mob/humans/onmob/contained/wy_goons.dmi' - icon_state = "armor" - item_state = "armor" - item_state_slots = null - contained_sprite = TRUE - - flags_armor_protection = BODY_FLAG_CHEST - flags_cold_protection = BODY_FLAG_CHEST - flags_heat_protection = BODY_FLAG_CHEST - - slowdown = SLOWDOWN_ARMOR_NONE // only protects chest, but enables rapid movement - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead - desc = "A basic vest with a Weyland-Yutani badge on the right breast. This variant is worn by low-level guards that have elevated in rank due to 'good conduct in the field', also known as corporate bootlicking." - icon_state = "lead_armor" - item_state = "lead_armor" - -/obj/item/clothing/suit/storage/marine/veteran/pmc/leader - name = "\improper M4 pattern PMC leader armor" - desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. This particular suit looks like it belongs to a high-ranking officer." - icon_state = "officer_armor" - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/leader) - item_state_slots = list(WEAR_JACKET = "officer_armor") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/sniper - name = "\improper M4 pattern PMC sniper armor" - icon_state = "pmc_sniper" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - flags_inv_hide = HIDELOWHAIR - item_state_slots = list(WEAR_JACKET = "pmc_sniper") - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth - name = "\improper 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." - time_to_unequip = 0.5 SECONDS - time_to_equip = 1 SECONDS - armor_melee = CLOTHING_ARMOR_NONE - armor_bullet = CLOTHING_ARMOR_NONE - armor_laser = CLOTHING_ARMOR_NONE - armor_energy = CLOTHING_ARMOR_NONE - armor_bomb = CLOTHING_ARMOR_NONE - armor_bio = CLOTHING_ARMOR_NONE - armor_rad = CLOTHING_ARMOR_NONE - armor_internaldamage = CLOTHING_ARMOR_NONE - storage_slots = 3 - slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT - -/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth/Initialize() - flags_atom |= NO_NAME_OVERRIDE - flags_marine_armor |= SYNTH_ALLOWED - return ..() - -/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc - name = "\improper PMC gunner armor" - desc = "A modification of the standard Armat Systems M3 armor. Hooked up with harnesses and straps allowing the user to carry an M56 Smartgun." - icon_state = "heavy_armor" - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - item_state_slots = list(WEAR_JACKET = "heavy_armor") - -/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc/terminator - name = "\improper M5Xg exoskeleton gunner armor" - desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk. This variant is designed to support a M56 Smartgun." - icon_state = "commando_armor" - slowdown = SLOWDOWN_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_ULTRAHIGH - armor_laser = CLOTHING_ARMOR_MEDIUM - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) - item_state_slots = list(WEAR_JACKET = "commando_armor") - unacidable = TRUE - -/obj/item/clothing/suit/storage/marine/veteran/pmc/commando - name = "\improper M5X exoskeleton armor" - desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk." - icon_state = "commando_armor" - slowdown = SLOWDOWN_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY - armor_melee = CLOTHING_ARMOR_VERYHIGH - armor_bullet = CLOTHING_ARMOR_ULTRAHIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_VERYHIGH - armor_rad = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - flags_inventory = BLOCK_KNOCKDOWN - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) - item_state_slots = list(WEAR_JACKET = "commando_armor") - unacidable = TRUE - -//===========================//DISTRESS\\================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran/bear - name = "\improper H1 Iron Bears vest" - desc = "A protective vest worn by Iron Bears mercenaries." - icon_state = "bear_armor" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/bear) - -/obj/item/clothing/suit/storage/marine/veteran/dutch - name = "\improper D2 armored vest" - desc = "A protective vest worn by some seriously experienced mercs." - icon_state = "dutch_armor" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS //Makes no sense but they need leg/arm armor too. - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_HIGH - armor_rad = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - light_range = 7 - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/dutch) - -/obj/item/clothing/suit/storage/marine/veteran/van_bandolier - name = "safari jacket" - desc = "A tailored hunting jacket, cunningly lined with segmented armor plates. Sometimes the game shoots back." - icon_state = "van_bandolier" - item_state = "van_bandolier_jacket" - blood_overlay_type = "coat" - flags_marine_armor = NO_FLAGS //No shoulder light. - actions_types = list() - slowdown = SLOWDOWN_ARMOR_LIGHT - storage_slots = 2 - movement_compensation = SLOWDOWN_ARMOR_LIGHT - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/van_bandolier) - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/storage/bible, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/storage/large_holster/machete, - /obj/item/storage/belt/gun/m4a3, - /obj/item/storage/belt/gun/m44, - /obj/item/storage/belt/gun/smartpistol, - /obj/item/storage/belt/gun/flaregun, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - /obj/item/storage/belt/shotgun/van_bandolier, - ) - -//===========================//U.P.P\\================================\\ -//=====================================================================\\ - -/obj/item/clothing/suit/storage/marine/faction - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - min_cold_protection_temperature = HELMET_MIN_COLD_PROT - max_heat_protection_temperature = HELMET_MAX_HEAT_PROT - blood_overlay_type = "armor" - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_MEDIUM - movement_compensation = SLOWDOWN_ARMOR_LIGHT - - -/obj/item/clothing/suit/storage/marine/faction/UPP - name = "\improper UM5 personal armor" - desc = "Standard body armor of the UPP military, the UM5 (Union Medium MK5) is a medium body armor, roughly on par with the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. Unlike the M3, however, the plate has a heavier neckplate. This has earned many UA members to refer to UPP soldiers as 'tin men'." - icon_state = "upp_armor" - armor_bullet = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_HIGH - storage_slots = 1 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/under/marine/veteran/UPP/engi) - -/obj/item/clothing/suit/storage/marine/faction/UPP/support - name = "\improper UL6 personal armor" - desc = "Standard body armor of the UPP military, the UL6 (Union Light MK6) is a light body armor, slightly weaker than the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. This set of personal armor lacks the iconic neck piece and some of the armor in favor of user mobility." - storage_slots = 3 - icon_state = "upp_armor_support" - slowdown = SLOWDOWN_ARMOR_LIGHT - armor_melee = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_HIGH - -/obj/item/clothing/suit/storage/marine/faction/UPP/commando - name = "\improper UM5CU personal armor" - desc = "A modification of the UM5, designed for stealth operations." - icon_state = "upp_armor_commando" - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - -/obj/item/clothing/suit/storage/marine/faction/UPP/heavy - name = "\improper UH7 heavy plated armor" - desc = "An extremely heavy-duty set of body armor in service with the UPP military, the UH7 (Union Heavy MK7) is known for having powerful ballistic protection, alongside a noticeable neck guard, fortified in order to allow the wearer to endure the stresses of the bulky helmet." - icon_state = "upp_armor_heavy" - storage_slots = 3 - slowdown = SLOWDOWN_ARMOR_HEAVY - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - flags_armor_protection = BODY_FLAG_ALL_BUT_HEAD - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_HIGH - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS - -/obj/item/clothing/suit/storage/marine/faction/UPP/heavy/Initialize() - . = ..() - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/minigun, - /obj/item/ammo_magazine/pkp, - ) - -/obj/item/clothing/suit/storage/marine/faction/UPP/officer - name = "\improper UL4 officer jacket" - desc = "A lightweight jacket, issued to officers of the UPP's military. Slightly protective from incoming damage, best off with proper armor however." - icon_state = "upp_coat_officer" - slowdown = SLOWDOWN_ARMOR_NONE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat - armor_bullet = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_rad = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - storage_slots = 3 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) - -/obj/item/clothing/suit/storage/marine/faction/UPP/kapitan - name = "\improper UL4 senior officer jacket" - desc = "A lightweight jacket, issued to senior officers of the UPP's military. Made of high-quality materials, even going as far as having the ranks and insignia of the Kapitan and their Company emblazoned on the shoulders and front of the jacket. Slightly protective from incoming damage, best off with proper armor however." - icon_state = "upp_coat_kapitan" - slowdown = SLOWDOWN_ARMOR_NONE - armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat - armor_bullet = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_rad = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - storage_slots = 4 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) - -/obj/item/clothing/suit/storage/marine/faction/UPP/mp - name = "\improper UL4 camouflaged jacket" - desc = "A lightweight jacket, issued to troops when they're not expected to engage in combat. Still studded to the brim with kevlar shards, though the synthread construction reduces its effectiveness." - icon_state = "upp_coat_mp" - slowdown = SLOWDOWN_ARMOR_NONE - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat - armor_bullet = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_rad = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - storage_slots = 4 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP) - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - -/obj/item/clothing/suit/storage/marine/faction/UPP/jacket/ivan - name = "\improper UH4 Camo Jacket" - desc = "An experimental heavily armored variant of the UL4 given to only the most elite units... usually." - slowdown = SLOWDOWN_ARMOR_MEDIUM - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS|BODY_FLAG_HANDS|BODY_FLAG_FEET - armor_melee = CLOTHING_ARMOR_HIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_HIGH - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_HIGH - storage_slots = 2 - - -//===========================//FREELANCER\\================================\\ -//=====================================================================\\ - -/obj/item/clothing/suit/storage/marine/faction/freelancer - name = "freelancer cuirass" - desc = "An armored protective chestplate scrapped together from various plates. It keeps up remarkably well, as the craftsmanship is solid, and the design mirrors such armors in the UPP and the USCM. The many skilled craftsmen in the freelancers ranks produce these vests at a rate about one a month." - icon_state = "freelancer_armor" - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - storage_slots = 2 - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/freelancer) - -//this one is for CLF -/obj/item/clothing/suit/storage/militia - name = "colonial militia hauberk" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops." - icon = 'icons/obj/items/clothing/cm_suits.dmi' - icon_state = "rebel_armor" - item_icons = list( - WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' - ) - sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUMLOW - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_MEDIUMLOW - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - storage_slots = 2 - uniform_restricted = list(/obj/item/clothing/under/colonist) - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine, - /obj/item/explosive/grenade, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/storage/large_holster/machete, - /obj/item/weapon/baseballbat, - /obj/item/weapon/baseballbat/metal, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS - min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROT - valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) - -/obj/item/clothing/suit/storage/militia/Initialize() - . = ..() - pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - ) - pockets.max_storage_space = 8 - -/obj/item/clothing/suit/storage/militia/vest - name = "colonial militia vest" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant protects only the chest and abdomen." - icon_state = "clf_2" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - slowdown = 0.2 - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - -/obj/item/clothing/suit/storage/militia/brace - name = "colonial militia brace" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant has some of the chest pieces removed." - icon_state = "clf_3" - flags_armor_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - slowdown = 0.2 - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - -/obj/item/clothing/suit/storage/militia/partial - name = "colonial militia partial hauberk" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This even lighter variant has some of the arm pieces removed." - icon_state = "clf_4" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS - slowdown = 0.2 - -/obj/item/clothing/suit/storage/militia/smartgun - name = "colonial militia harness" - desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This one has straps interweaved with the plates, that allow the user to fire a captured smartgun, if a bit uncomfortably." - flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS - -/obj/item/clothing/suit/storage/CMB - name = "\improper CMB jacket" - desc = "A black jacket worn by Colonial Marshals. The back is enscribed with the powerful letters of 'MARSHAL' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol." - icon_state = "CMB_jacket" - blood_overlay_type = "coat" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS - armor_melee = CLOTHING_ARMOR_MEDIUMLOW - armor_bullet = CLOTHING_ARMOR_MEDIUMLOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_LOW - armor_bio = CLOTHING_ARMOR_LOW - armor_internaldamage = CLOTHING_ARMOR_LOW - allowed = list( - /obj/item/weapon/gun, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/device/flashlight, - /obj/item/device/healthanalyzer, - /obj/item/device/radio, - /obj/item/tank/emergency_oxygen, - /obj/item/tool/crowbar, - /obj/item/tool/crew_monitor, - /obj/item/tool/pen, - /obj/item/storage/belt/gun/m4a3, - /obj/item/storage/belt/gun/m44, - /obj/item/storage/belt/gun/mateba, - /obj/item/storage/belt/gun/smartpistol, - /obj/item/storage/large_holster/machete, - /obj/item/storage/large_holster/katana, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - -/obj/item/clothing/suit/storage/CMB/Initialize() - . = ..() - pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. - pockets.bypass_w_limit = list( - /obj/item/ammo_magazine/rifle, - /obj/item/ammo_magazine/smg, - /obj/item/ammo_magazine/sniper, - ) - pockets.max_storage_space = 8 - -/obj/item/clothing/suit/storage/RO - name = "quartermaster jacket" - desc = "A green jacket worn by USCM personnel. The back has the flag of the United Americas on it." - icon_state = "RO_jacket" - blood_overlay_type = "coat" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS - valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) - -//===========================//HELGHAST - MERCENARY\\================================\\ -//=====================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran/mercenary - name = "\improper K12 ceramic plated armor" - desc = "A set of grey, heavy ceramic armor with dark blue highlights. It is the standard uniform of an unknown mercenary group working in the sector." - icon_state = "mercenary_heavy_armor" - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN - armor_melee = CLOTHING_ARMOR_VERYHIGH - armor_bullet = CLOTHING_ARMOR_VERYHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_HIGHPLUS - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) - item_state_slots = list(WEAR_JACKET = "mercenary_heavy_armor") - -/obj/item/clothing/suit/storage/marine/veteran/mercenary/heavy - name = "\improper Modified K12 ceramic plated armor" - desc = "A set of grey, heavy ceramic armor with dark blue highlights. It has been modified with extra ceramic plates placed in its storage pouch, and seems intended to support an extremely heavy weapon." - armor_melee = CLOTHING_ARMOR_ULTRAHIGH - armor_bullet = CLOTHING_ARMOR_ULTRAHIGHPLUS - armor_bomb = CLOTHING_ARMOR_HIGHPLUS - armor_bio = CLOTHING_ARMOR_HIGHPLUS - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_VERYHIGHPLUS - storage_slots = 1 - -/obj/item/clothing/suit/storage/marine/veteran/mercenary/miner - name = "\improper Y8 armored miner vest" - desc = "A set of beige, light armor built for protection while mining. It is a specialized uniform of an unknown mercenary group working in the sector." - icon_state = "mercenary_miner_armor" - storage_slots = 3 - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) - item_state_slots = list(WEAR_JACKET = "mercenary_miner_armor") - -/obj/item/clothing/suit/storage/marine/veteran/mercenary/support - name = "\improper Z7 armored vest" - desc = "A set of blue armor with yellow highlights built for protection while building or carrying out medical treatment in highly dangerous environments. It is a specialized uniform of an unknown mercenary group working in the sector." - icon_state = "mercenary_engineer_armor" - item_state_slots = list(WEAR_JACKET = "mercenary_engineer_armor") - -/obj/item/clothing/suit/storage/marine/M3G/hefa - name = "\improper HEFA Knight armor" - desc = "A thick piece of armor adorning a HEFA. Usually seen on a HEFA knight." - specialty = "HEFA Knight" - icon_state = "hefadier" - flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE - flags_item = NO_CRYO_STORE - flags_marine_armor = ARMOR_LAMP_OVERLAY - armor_bullet = CLOTHING_ARMOR_VERYHIGH - armor_melee = CLOTHING_ARMOR_VERYHIGH - armor_bomb = CLOTHING_ARMOR_GIGAHIGH - - -//=========================//PROVOST\\================================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/MP/provost - name = "\improper M3 pattern Provost armor" - desc = "A standard Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "pvmedium" - item_state_slots = list(WEAR_JACKET = "pvmedium") - slowdown = SLOWDOWN_ARMOR_LIGHT - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_laser = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUMHIGH - armor_bio = CLOTHING_ARMOR_MEDIUMHIGH - armor_internaldamage = CLOTHING_ARMOR_MEDIUM - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - storage_slots = 3 - -/obj/item/clothing/suit/storage/marine/MP/provost/tml - name = "\improper M3 pattern Senior Provost armor" - desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "pvleader" - item_state_slots = list(WEAR_JACKET = "pvleader") - -/obj/item/clothing/suit/storage/marine/MP/provost/marshal - name = "\improper M5 pattern Provost Marshal armor" - desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field." - icon_state = "pvmarshal" - item_state_slots = list(WEAR_JACKET = "pvmarshal") - w_class = SIZE_MEDIUM - storage_slots = 4 - -/obj/item/clothing/suit/storage/marine/MP/provost/light - name = "\improper M3 pattern Provost light armor" - desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - icon_state = "pvlight" - item_state_slots = list(WEAR_JACKET = "pvlight") - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT - -/obj/item/clothing/suit/storage/marine/MP/provost/light/flexi - name = "\improper M3 pattern Provost flexi-armor" - desc = "A flexible and easy to store M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." - w_class = SIZE_MEDIUM - icon_state = "pvlight_2" - item_state_slots = list(WEAR_JACKET = "pvlight_2") - storage_slots = 2 - -//================//UNITED AMERICAS ALLIED COMMAND\\=====================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/uaac/tis/sa - name = "\improper M3 pattern UAAC-TIS Special Agent Armor" - desc = "A modified luxury armor, originally meant for a USCM Provost Marshall, modified to use the colors and insignia of the TIS. The Three Eyes is technically able to requisition any equipment or personnel to fulfill its mission and often uses this privilege to outfit their agents with high-quality gear from other UA military forces." - icon_state = "tis" - item_state_slots = list(WEAR_JACKET = "tis") - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_laser = CLOTHING_ARMOR_LOW - armor_energy = CLOTHING_ARMOR_LOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW - storage_slots = 2 - slowdown = SLOWDOWN_ARMOR_LIGHT - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/explosive/grenade, - /obj/item/device/binoculars, - /obj/item/attachable/bayonet, - /obj/item/storage/backpack/general_belt, - /obj/item/device/hailer, - /obj/item/storage/belt/gun, - /obj/item/weapon/sword/ceremonial, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - uniform_restricted = list(/obj/item/clothing/under/uaac/tis) - -//================//UNITED AMERICAS RIOT CONTROL\\=====================\\ -//=======================================================================\\ - -/obj/item/clothing/suit/storage/marine/veteran/ua_riot - name = "\improper UA-M1 body armor" - desc = "Based on the M-3 pattern employed by the USCM, the UA-M1 body armor is employed by UA security, riot control and union-busting teams. While robust against melee and bullet attacks, it critically lacks coverage of the legs and arms." - icon_state = "ua_riot" - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - armor_melee = CLOTHING_ARMOR_MEDIUMHIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - slowdown = SLOWDOWN_ARMOR_VERY_LIGHT // it's lighter - uniform_restricted = list(/obj/item/clothing/under/marine/ua_riot) - flags_atom = NO_SNOW_TYPE - -//==================War Correspondent==================\\ - -/obj/item/clothing/suit/storage/marine/light/reporter - name = "press body armor" - desc = "Body armor used by war correspondents in battles and wars across the universe." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_armor" - flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE - contained_sprite = TRUE - - -//=ROYAL MARINES=\\ - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine - name = "kestrel armoured vest" - desc = "A customizable personal armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." - icon_state = "rmc_light" - item_state = "rmc_light" - flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE - allowed = list( - /obj/item/weapon/gun, - /obj/item/tank/emergency_oxygen, - /obj/item/device/flashlight, - /obj/item/ammo_magazine/, - /obj/item/weapon/baton, - /obj/item/handcuffs, - /obj/item/storage/fancy/cigarettes, - /obj/item/tool/lighter, - /obj/item/explosive/grenade, - /obj/item/storage/bible, - /obj/item/weapon/sword/machete, - /obj/item/attachable/bayonet, - /obj/item/device/motiondetector, - /obj/item/device/walkman, - ) - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light //RMC Rifleman Armor - icon_state = "rmc_light" - item_state = "rmc_light" - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_energy = CLOTHING_ARMOR_MEDIUMLOW - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - slowdown = SLOWDOWN_ARMOR_LIGHT - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light/team_leader //RMC TL & LT Armor - name = "kestrel armoured carry vest" - icon_state = "rmc_light_padded" - item_state = "rmc_light_padded" - storage_slots = 7 - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/smartgun //Smartgun Spec Armor - name = "kestrel armoured smartgun harness" - icon_state = "rmc_smartgun" - item_state = "rmc_smartgun" - flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS - -/obj/item/clothing/suit/storage/marine/veteran/royal_marine/pointman //Pointman Spec Armor - name = "kestrel pointman armour" - desc = "A heavier version of the armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." - icon_state = "rmc_pointman" - item_state = "rmc_pointman" - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_HIGHPLUS - armor_bomb = CLOTHING_ARMOR_HIGHPLUS - armor_bio = CLOTHING_ARMOR_MEDIUM - armor_rad = CLOTHING_ARMOR_MEDIUM - armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH - storage_slots = 7 - slowdown = SLOWDOWN_ARMOR_LOWHEAVY - movement_compensation = SLOWDOWN_ARMOR_MEDIUM - -/atom/movable/marine_light - light_system = DIRECTIONAL_LIGHT - -//CBRN -/obj/item/clothing/suit/storage/marine/cbrn - name = "\improper M3-M armor" - desc = "While lacking the appearance of the M3 pattern armor worn in regular service, this armor piece is still a derivative of it. It has been heavily modified to fit over the MOPP suit with additional padding and Venlar composite layers removed, so as not to restrict the wearer’s movement. However, with the reduction of composite layers, the personal protection offered is less than desired with complaints having been lodged since 2165." - icon_state = "cbrn" - item_state = "cbrn" - slowdown = SLOWDOWN_ARMOR_HEAVY - armor_melee = CLOTHING_ARMOR_MEDIUM - armor_bullet = CLOTHING_ARMOR_MEDIUM - armor_bomb = CLOTHING_ARMOR_MEDIUM - armor_bio = CLOTHING_ARMOR_LOW - armor_rad =CLOTHING_ARMOR_MEDIUMLOW - armor_internaldamage = CLOTHING_ARMOR_LOW - flags_marine_armor = NO_FLAGS - flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE - flags_inventory = BLOCKSHARPOBJ - flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN - uniform_restricted = list(/obj/item/clothing/under/marine/cbrn) - -/obj/item/clothing/suit/storage/marine/cbrn/advanced - slowdown = SLOWDOWN_ARMOR_LOWHEAVY - armor_melee = CLOTHING_ARMOR_HIGH - armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH - armor_bomb = CLOTHING_ARMOR_ULTRAHIGH - armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS - armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS - armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS diff --git a/code/modules/clothing/suits/marine_armor/_marine_armor.dm b/code/modules/clothing/suits/marine_armor/_marine_armor.dm new file mode 100644 index 000000000000..fd926c4ffd50 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/_marine_armor.dm @@ -0,0 +1,668 @@ +#define DEBUG_ARMOR_PROTECTION 0 + +#if DEBUG_ARMOR_PROTECTION +/mob/living/carbon/human/verb/check_overall_protection() + set name = "Get Armor Value" + set category = "Debug" + set desc = "Shows the armor value of the bullet category." + + var/armor = 0 + var/counter = 0 + for(var/X in H.limbs) + var/obj/limb/E = X + armor = getarmor_organ(E, ARMOR_BULLET) + to_chat(src, SPAN_DEBUG("[E.name] is protected with [armor] armor against bullets.")) + counter += armor + to_chat(src, SPAN_DEBUG("The overall armor score is: [counter].")) +#endif + +//=======================================================================\\ +//=======================================================================\\ + +#define ALPHA 1 +#define BRAVO 2 +#define CHARLIE 3 +#define DELTA 4 +#define ECHO 5 +#define CRYO 6 +#define SOF 7 +#define NOSQUAD 8 + +// MARINE STORAGE ARMOR + +/obj/item/clothing/suit/storage/marine + name = "\improper M3 pattern marine armor" + desc = "A standard Colonial Marines M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon = 'icons/obj/items/clothing/cm_suits.dmi' + icon_state = "1" + item_state = "marine_armor" //Make unique states for Officer & Intel armors. + item_icons = list( + WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' + ) + flags_atom = FPRINT|CONDUCT + flags_inventory = BLOCKSHARPOBJ + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + min_cold_protection_temperature = HELMET_MIN_COLD_PROT + max_heat_protection_temperature = HELMET_MAX_HEAT_PROT + blood_overlay_type = "armor" + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_MEDIUMLOW + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_LIGHT + storage_slots = 3 + siemens_coefficient = 0.7 + slowdown = SLOWDOWN_ARMOR_MEDIUM + allowed = list( + /obj/item/weapon/gun, + /obj/item/prop/prop_gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/storage/bible, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/storage/large_holster/machete, + /obj/item/storage/belt/gun/type47, + /obj/item/storage/belt/gun/m4a3, + /obj/item/storage/belt/gun/m44, + /obj/item/storage/belt/gun/smartpistol, + /obj/item/storage/belt/gun/flaregun, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + /obj/item/storage/belt/gun/m39, + /obj/item/storage/belt/gun/xm51, + ) + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) + + light_power = 3 + light_range = 4 + light_system = MOVABLE_LIGHT + + var/flashlight_cooldown = 0 //Cooldown for toggling the light + var/locate_cooldown = 0 //Cooldown for SL locator + var/armor_overlays[] + actions_types = list(/datum/action/item_action/toggle) + var/flags_marine_armor = ARMOR_SQUAD_OVERLAY|ARMOR_LAMP_OVERLAY + var/specialty = "M3 pattern marine" //Same thing here. Give them a specialty so that they show up correctly in vendors. speciality does NOTHING if you have NO_NAME_OVERRIDE + w_class = SIZE_HUGE + uniform_restricted = list(/obj/item/clothing/under/marine) + sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') + time_to_unequip = 20 + time_to_equip = 20 + pickup_sound = "armorequip" + drop_sound = "armorequip" + equip_sounds = list('sound/handling/putting_on_armor1.ogg') + var/armor_variation = 0 + /// The dmi where the grayscale squad overlays are contained + var/squad_overlay_icon = 'icons/mob/humans/onmob/suit_1.dmi' + + var/atom/movable/marine_light/light_holder + +/obj/item/clothing/suit/storage/marine/Initialize(mapload) + . = ..() + if(!(flags_atom & NO_NAME_OVERRIDE)) + name = "[specialty]" + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) + name += " snow armor" //Leave marine out so that armors don't have to have "Marine" appended (see: generals). + else + name += " armor" + + if(!(flags_atom & NO_SNOW_TYPE)) + select_gamemode_skin(type) + armor_overlays = list("lamp") //Just one for now, can add more later. + if(armor_variation && mapload) + set_armor_style("Random") + update_icon() + pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + ) + pockets.max_storage_space = 8 + + light_holder = new(src) + +/obj/item/clothing/suit/storage/marine/Destroy() + QDEL_NULL(light_holder) + return ..() + +/obj/item/clothing/suit/storage/marine/update_icon(mob/user) + var/image/I + armor_overlays["lamp"] = null + if(flags_marine_armor & ARMOR_LAMP_OVERLAY) + if(flags_marine_armor & ARMOR_LAMP_ON) + I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-on") + else + I = image('icons/obj/items/clothing/cm_suits.dmi', src, "lamp-off") + armor_overlays["lamp"] = I + overlays += I + else armor_overlays["lamp"] = null + if(user) user.update_inv_wear_suit() + + +/obj/item/clothing/suit/storage/marine/post_vendor_spawn_hook(mob/living/carbon/human/user) //used for randomizing/selecting a variant for armors. + if(!armor_variation) + return + + if(user?.client?.prefs) + // Set the armor style to the user's preference. + set_armor_style(user.client.prefs.preferred_armor) + else + // Or if that isn't possible, just pick a random one. + set_armor_style("Random") + update_icon(user) + +/obj/item/clothing/suit/storage/marine/attack_self(mob/user) + ..() + + if(!isturf(user.loc)) + to_chat(user, SPAN_WARNING("You cannot turn the light [light_on ? "off" : "on"] while in [user.loc].")) //To prevent some lighting anomalies. + return + + if(flashlight_cooldown > world.time) + return + if(!ishuman(user)) + return + + var/mob/living/carbon/human/H = user + if(H.wear_suit != src) + return + + turn_light(user, !light_on) + +/obj/item/clothing/suit/storage/marine/item_action_slot_check(mob/user, slot) + if(!ishuman(user)) + return FALSE + if(slot != WEAR_JACKET) + return FALSE + return TRUE //only give action button when armor is worn. + +/obj/item/clothing/suit/storage/marine/turn_light(mob/user, toggle_on) + . = ..() + if(. != CHECKS_PASSED) + return + set_light_range(initial(light_range)) + set_light_power(Floor(initial(light_power) * 0.5)) + set_light_on(toggle_on) + flags_marine_armor ^= ARMOR_LAMP_ON + + light_holder.set_light_flags(LIGHT_ATTACHED) + light_holder.set_light_range(initial(light_range)) + light_holder.set_light_power(initial(light_power)) + light_holder.set_light_on(toggle_on) + + if(!toggle_on) + playsound(src, 'sound/handling/click_2.ogg', 50, 1) + + playsound(src, 'sound/handling/suitlight_on.ogg', 50, 1) + update_icon(user) + + for(var/X in actions) + var/datum/action/A = X + A.update_button_icon() + +/obj/item/clothing/suit/storage/marine/mob_can_equip(mob/living/carbon/human/M, slot, disable_warning = 0) + . = ..() + if (.) + if(issynth(M) && M.allow_gun_usage == FALSE && !(flags_marine_armor & SYNTH_ALLOWED)) + M.visible_message(SPAN_DANGER("Your programming prevents you from wearing this!")) + return 0 + +/** + * Updates the armor's `icon_state` to the style represented by `new_style`. + * + * Arguments: + * * new_style - The new armor style. May only be one of `GLOB.armor_style_list`'s keys, or `"Random"`. + */ +/obj/item/clothing/suit/storage/marine/proc/set_armor_style(new_style) + // Regex to match one or more digits. + var/static/regex/digits = new("\\d+") + // Integer for the new armor style's `icon_state`. + var/new_look + + if(new_style == "Random") + // The style icon states are all numbers between 1 and `armor_variation`, so this picks a random one. + new_look = rand(1, armor_variation) + else + new_look = GLOB.armor_style_list[new_style] + + // Replace the digits in the current icon state with `new_look`. (E.g. "L6" -> "L2") + icon_state = digits.Replace(icon_state, new_look) + +/obj/item/clothing/suit/storage/marine/medium/rto + icon_state = "io" + armor_variation = 0 + name = "\improper M4 pattern marine armor" + desc = "A well tinkered and crafted hybrid of Smart-Gunner mesh and M3 pattern plates. Robust, yet nimble, with room for all your pouches." + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 4 + light_range = 5 //slightly higher + specialty = "M4 pattern marine" + +/obj/item/clothing/suit/storage/marine/MP + name = "\improper M2 pattern MP armor" + desc = "A standard Colonial Marines M2 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "mp_armor" + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_LOW + armor_laser = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/weapon/baton, + /obj/item/handcuffs, + /obj/item/explosive/grenade, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/device/hailer, + /obj/item/storage/belt/gun, + /obj/item/weapon/sword/ceremonial, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/mp) + specialty = "M2 pattern MP" + item_state_slots = list(WEAR_JACKET = "mp_armor") + black_market_value = 20 + +/obj/item/clothing/suit/storage/marine/MP/warden + icon_state = "warden" + name = "\improper M3 pattern warden MP armor" + desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Wardens. Useful for letting your men know who is in charge." + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + uniform_restricted = list(/obj/item/clothing/under/marine/warden) + specialty = "M3 pattern warden MP" + item_state_slots = list(WEAR_JACKET = "warden") + +/obj/item/clothing/suit/storage/marine/MP/WO + icon_state = "warrant_officer" + name = "\improper M3 pattern chief MP armor" + desc = "A well-crafted suit of M3 Pattern Armor typically distributed to Chief MPs. Useful for letting your men know who is in charge." + uniform_restricted = list(/obj/item/clothing/under/marine/officer/warrant) + specialty = "M3 pattern chief MP" + item_state_slots = list(WEAR_JACKET = "warrant_officer") + black_market_value = 30 + +/obj/item/clothing/suit/storage/marine/MP/general + name = "\improper M3 pattern general officer armor" + desc = "A well-crafted suit of M3 Pattern Armor with a gold shine. It looks very expensive, but shockingly fairly easy to carry and wear." + icon_state = "general" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_bio = CLOTHING_ARMOR_MEDIUM + uniform_restricted = list(/obj/item/clothing/under/marine/officer/general) + specialty = "M3 pattern general" + item_state_slots = list(WEAR_JACKET = "general") + w_class = SIZE_MEDIUM + +/obj/item/clothing/suit/storage/marine/MP/SO + name = "\improper M3 pattern officer armor" + desc = "A well-crafted suit of M3 Pattern Armor typically found in the hands of higher-ranking officers. Useful for letting your men know who is in charge when taking to the field." + icon_state = "officer" + storage_slots = 3 + flags_atom = null + uniform_restricted = list(/obj/item/clothing/under/marine/officer, /obj/item/clothing/under/rank/qm_suit, /obj/item/clothing/under/rank/chief_medical_officer, /obj/item/clothing/under/marine/dress) + specialty = "M3 pattern officer" + item_state_slots = list(WEAR_JACKET = "officer") + +//Making a new object because we might want to edit armor values and such. +//Or give it its own sprite. It's more for the future. +/obj/item/clothing/suit/storage/marine/MP/CO + name = "\improper M3 pattern commanding officer armor" + desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge." + icon_state = "co_officer" + item_state = "co_officer" + armor_bullet = CLOTHING_ARMOR_HIGH + storage_slots = 3 + flags_atom = NO_SNOW_TYPE + flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS + uniform_restricted = list(/obj/item/clothing/under/marine, /obj/item/clothing/under/rank/qm_suit) + specialty = "M3 pattern captain" + item_state_slots = list(WEAR_JACKET = "co_officer") + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_PONCHO) + black_market_value = 35 + + +/obj/item/clothing/suit/storage/marine/MP/CO/jacket + name = "\improper M3 pattern commanding officer armored coat" + desc = "A robust, well-polished suit of armor for the Commanding Officer. Custom-made to fit its owner with special straps to operate a smartgun. Show those Marines who's really in charge. This one has a coat over it for added warmth." + icon_state = "bridge_coat_armored" + item_state = "bridge_coat_armored" + item_state_slots = list(WEAR_JACKET = "bridge_coat_armored") + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_RANK) + +/obj/item/clothing/suit/storage/marine/medium/leader + name = "\improper B12 pattern marine armor" + desc = "A lightweight suit of carbon fiber body armor built for quick movement. Designed in a lovely forest green. Use it to toggle the built-in flashlight." + icon_state = "7" + armor_variation = 0 + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + specialty = "B12 pattern marine" + light_range = 5 + +/obj/item/clothing/suit/storage/marine/tanker + name = "\improper M3 pattern tanker armor" + desc = "A modified and refashioned suit of M3 Pattern armor designed to be worn by the loader of a USCM vehicle crew. While the suit is a bit more encumbering to wear with the crewman uniform, it offers the loader a degree of protection that would otherwise not be enjoyed." + icon_state = "tanker" + uniform_restricted = list(/obj/item/clothing/under/marine/officer/tanker) + specialty = "M3 pattern tanker" + storage_slots = 2 + +//===========================//PFC ARMOR CLASSES\\================================\\ +//=================================================================================\\ + +// M3 pattern marine armor +/obj/item/clothing/suit/storage/marine/medium + armor_variation = 6 + light_power = 4 + +/obj/item/clothing/suit/storage/marine/medium/padded + name = "M3 pattern padded marine armor" + icon_state = "1" + armor_variation = 0 + specialty = "M3 pattern padded marine" + +/obj/item/clothing/suit/storage/marine/medium/padless + name = "M3 pattern padless marine armor" + icon_state = "2" + armor_variation = 0 + specialty = "M3 pattern padless marine" + +/obj/item/clothing/suit/storage/marine/medium/padless_lines + name = "M3 pattern ridged marine armor" + icon_state = "3" + armor_variation = 0 + specialty = "M3 pattern ridged marine" + +/obj/item/clothing/suit/storage/marine/medium/carrier + name = "M3 pattern carrier marine armor" + icon_state = "4" + armor_variation = 0 + specialty = "M3 pattern carrier marine" + +/obj/item/clothing/suit/storage/marine/medium/skull + name = "M3 pattern skull marine armor" + icon_state = "5" + armor_variation = 0 + specialty = "M3 pattern skull marine" + +/obj/item/clothing/suit/storage/marine/medium/smooth + name = "M3 pattern smooth marine armor" + icon_state = "6" + armor_variation = 0 + specialty = "M3 pattern smooth marine" + +// M3-L pattern light armor +/obj/item/clothing/suit/storage/marine/light + name = "\improper M3-L pattern light armor" + desc = "A lighter, cut down version of the standard M3 pattern armor. It sacrifices durability for more speed." + specialty = "\improper M3-L pattern light" + icon_state = "L1" + armor_variation = 6 + slowdown = SLOWDOWN_ARMOR_LIGHT + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_LOW + storage_slots = 2 + +/obj/item/clothing/suit/storage/marine/light/padded + icon_state = "L1" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/padless + icon_state = "L2" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/padless_lines + icon_state = "L3" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/carrier + icon_state = "L4" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/skull + icon_state = "L5" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/smooth + icon_state = "L6" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/light/vest + name = "\improper M3-VL pattern ballistics vest" + desc = "Up until 2182 USCM non-combat personnel were issued non-standardized ballistics vests, though the lack of IMP compatibility and suit lamps proved time and time again inefficient. This modified M3-L shell is the result of a 6-year R&D program; It provides utility, protection, AND comfort to all USCM non-combat personnel." + icon_state = "VL" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + flags_marine_armor = ARMOR_LAMP_OVERLAY //No squad colors when wearing this since it'd look funny. + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_VERYLOW + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + storage_slots = 1 + time_to_unequip = 0.5 SECONDS + time_to_equip = 1 SECONDS + siemens_coefficient = 0.7 + uniform_restricted = null + +/obj/item/clothing/suit/storage/marine/light/vest/dcc + name = "\improper M3-VL pattern flak vest" + desc = "A combination of the standard non-combat M3-VL ballistics vest and M70 flak jacket, this piece of armor has been distributed to dropship crew to keep them safe from threats external and internal..." + icon_state = "VL_FLAK" + storage_slots = 2 + +/obj/item/clothing/suit/storage/marine/light/synvest + name = "\improper M3A1 Synthetic Utility Vest" + desc = "This variant of the ubiquitous M3 pattern ballistics vest has been extensively modified, providing no protection in exchange for maximum mobility and storage space. Synthetic programming compliant." + icon_state = "VL_syn_camo" + flags_atom = NO_NAME_OVERRIDE + flags_marine_armor = ARMOR_LAMP_OVERLAY|SYNTH_ALLOWED //No squad colors + can be worn by synths. + armor_melee = CLOTHING_ARMOR_NONE + armor_bullet = CLOTHING_ARMOR_NONE + armor_laser = CLOTHING_ARMOR_NONE + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_NONE + armor_bio = CLOTHING_ARMOR_NONE + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_NONE + storage_slots = 3 + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + time_to_unequip = 0.5 SECONDS + time_to_equip = 1 SECONDS + uniform_restricted = null + +/obj/item/clothing/suit/storage/marine/light/synvest/grey + icon_state = "VL_syn" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/jungle + icon_state = "VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/snow + icon_state = "s_VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/desert + icon_state = "d_VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/light/synvest/dgrey + icon_state = "c_VL_syn_camo" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +// M3-EOD pattern heavy armor +/obj/item/clothing/suit/storage/marine/heavy + name = "\improper M3-EOD pattern heavy armor" + desc = "A heavier version of the standard M3 pattern armor, the armor is primarily designed to withstand ballistic, explosive, and internal damage, with the drawback of increased bulk and thus reduced movement speed, alongside little additional protection from standard blunt force impacts and biological threats." + desc_lore = "This configuration of the iconic armor was developed during the Canton War in 2160 between the UPP and USCM - Designed in response to a need for higher protection for ComTechs assigned as EODs during the conflict, this is the pinnacle of protection for your average marine. The shoulders and kneepads have both been expanded upon heavily, covering up the arteries on each limb. A special spall liner was developed for this suit, with the same technology being used in the M70 Flak Jacket being developed at the same time." + specialty = "\improper M3-EOD pattern" + icon_state = "H1" + armor_variation = 6 + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_bomb = CLOTHING_ARMOR_HIGHPLUS + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LOWHEAVY + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + light_power = 4 + light_range = 5 + +/obj/item/clothing/suit/storage/marine/heavy/padded + icon_state = "H1" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/padless + icon_state = "H2" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/padless_lines + icon_state = "H3" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/carrier + icon_state = "H4" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/skull + icon_state = "H5" + armor_variation = 0 + +/obj/item/clothing/suit/storage/marine/heavy/smooth + icon_state = "H6" + armor_variation = 0 + +//===========================//SPECIALIST\\================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/specialist + name = "\improper B18 defensive armor" + desc = "A heavy, rugged set of armor plates for when you really, really need to not die horribly. Slows you down though.\nComes with two tricord injectors in each arm guard." + icon_state = "xarmor" + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGH + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + storage_slots = 2 + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + slowdown = SLOWDOWN_ARMOR_HEAVY + specialty = "B18 defensive" + unacidable = TRUE + var/injections = 4 + +/obj/item/clothing/suit/storage/marine/specialist/verb/inject() + set name = "Create Injector" + set category = "Object" + set src in usr + + if(usr.is_mob_incapacitated()) + return 0 + + if(!injections) + to_chat(usr, "Your armor is all out of injectors.") + return 0 + + if(usr.get_active_hand()) + to_chat(usr, "Your active hand must be empty.") + return 0 + + to_chat(usr, "You feel a faint hiss and an injector drops into your hand.") + var/obj/item/reagent_container/hypospray/autoinjector/skillless/O = new(usr) + usr.put_in_active_hand(O) + injections-- + playsound(src,'sound/machines/click.ogg', 15, 1) + return + +/obj/item/clothing/suit/storage/marine/M3G + name = "\improper M3-G4 grenadier armor" + desc = "A custom set of M3 armor packed to the brim with padding, plating, and every form of ballistic protection under the sun. Used exclusively by USCM Grenadiers." + icon_state = "grenadier" + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + slowdown = SLOWDOWN_ARMOR_HEAVY + specialty = "M3-G4 grenadier" + unacidable = TRUE + +/obj/item/clothing/suit/storage/marine/M3T + name = "\improper M3-T light armor" + desc = "A custom set of M3 armor designed for users of long-ranged explosive weaponry." + icon_state = "demolitionist" + armor_bomb = CLOTHING_ARMOR_HIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + specialty = "M3-T light" + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + unacidable = TRUE + +/obj/item/clothing/suit/storage/marine/M3S + name = "\improper M3-S light armor" + desc = "A custom set of M3 armor designed for USCM Scouts." + icon_state = "scout_armor" + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + specialty = "M3-S light" + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + unacidable = TRUE + +/obj/item/clothing/suit/storage/RO + name = "quartermaster jacket" + desc = "A green jacket worn by USCM personnel. The back has the flag of the United Americas on it." + icon_state = "RO_jacket" + blood_overlay_type = "coat" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_ARMS + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + +//==================Combat Correspondent==================\\ + +/obj/item/clothing/suit/storage/marine/light/reporter + name = "press body armor" + desc = "Body armor used by war correspondents in battles and wars across the universe." + icon_state = "cc_armor" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + diff --git a/code/modules/clothing/suits/marine_armor/ert.dm b/code/modules/clothing/suits/marine_armor/ert.dm new file mode 100644 index 000000000000..19009606db35 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/ert.dm @@ -0,0 +1,828 @@ +//=============================//Marine Raiders\\==================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/sof + name = "\improper SOF Armor" + desc = "A heavily customized suit of M3 armor. Used by Marine Raiders." + icon_state = "marsoc" + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGH + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + unacidable = TRUE + flags_atom = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE|NO_SNOW_TYPE + storage_slots = 4 + + +//=============================//PMCs\\==================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran + flags_marine_armor = ARMOR_LAMP_OVERLAY + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE //Let's make these keep their name and icon. + +/obj/item/clothing/suit/storage/marine/veteran/pmc + name = "\improper M4 pattern PMC armor" + desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind." + icon_state = "pmc_armor" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/tool/crowbar, + /obj/item/storage/large_holster/katana, + /obj/item/storage/large_holster/machete, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/tool/crew_monitor, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc) + item_state_slots = list(WEAR_JACKET = "pmc_armor") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light + name = "\improper M4 pattern light PMC armor" + desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. Has some armor plating removed for extra mobility." + icon_state = "pmc_sniper" + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + item_state_slots = list(WEAR_JACKET = "pmc_sniper") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate + name = "\improper M1 pattern corporate security armor" + desc = "A basic vest with a Weyland-Yutani badge on the right breast. This is commonly worn by low-level guards protecting Weyland-Yutani facilities." + icon = 'icons/mob/humans/onmob/contained/wy_goons.dmi' + icon_state = "armor" + item_state = "armor" + item_state_slots = null + contained_sprite = TRUE + + flags_armor_protection = BODY_FLAG_CHEST + flags_cold_protection = BODY_FLAG_CHEST + flags_heat_protection = BODY_FLAG_CHEST + + slowdown = SLOWDOWN_ARMOR_NONE // only protects chest, but enables rapid movement + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead + desc = "A basic vest with a Weyland-Yutani badge on the right breast. This variant is worn by low-level guards that have elevated in rank due to 'good conduct in the field', also known as corporate bootlicking." + icon_state = "lead_armor" + item_state = "lead_armor" + +/obj/item/clothing/suit/storage/marine/veteran/pmc/leader + name = "\improper M4 pattern PMC leader armor" + desc = "A modification of the standard Armat Systems M3 armor. Designed for high-profile security operators and corporate mercenaries in mind. This particular suit looks like it belongs to a high-ranking officer." + icon_state = "officer_armor" + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/leader) + item_state_slots = list(WEAR_JACKET = "officer_armor") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/sniper + name = "\improper M4 pattern PMC sniper armor" + icon_state = "pmc_sniper" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + flags_inv_hide = HIDELOWHAIR + item_state_slots = list(WEAR_JACKET = "pmc_sniper") + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth + name = "\improper 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." + time_to_unequip = 0.5 SECONDS + time_to_equip = 1 SECONDS + armor_melee = CLOTHING_ARMOR_NONE + armor_bullet = CLOTHING_ARMOR_NONE + armor_laser = CLOTHING_ARMOR_NONE + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_NONE + armor_bio = CLOTHING_ARMOR_NONE + armor_rad = CLOTHING_ARMOR_NONE + armor_internaldamage = CLOTHING_ARMOR_NONE + storage_slots = 3 + slowdown = SLOWDOWN_ARMOR_SUPER_LIGHT + +/obj/item/clothing/suit/storage/marine/veteran/pmc/light/synth/Initialize() + flags_atom |= NO_NAME_OVERRIDE + flags_marine_armor |= SYNTH_ALLOWED + return ..() + +/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc + name = "\improper PMC gunner armor" + desc = "A modification of the standard Armat Systems M3 armor. Hooked up with harnesses and straps allowing the user to carry an M56 Smartgun." + icon_state = "heavy_armor" + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + item_state_slots = list(WEAR_JACKET = "heavy_armor") + +/obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc/terminator + name = "\improper M5Xg exoskeleton gunner armor" + desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk. This variant is designed to support a M56 Smartgun." + icon_state = "commando_armor" + slowdown = SLOWDOWN_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_ULTRAHIGH + armor_laser = CLOTHING_ARMOR_MEDIUM + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) + item_state_slots = list(WEAR_JACKET = "commando_armor") + unacidable = TRUE + +/obj/item/clothing/suit/storage/marine/veteran/pmc/commando + name = "\improper M5X exoskeleton armor" + desc = "A complex system of overlapping plates intended to render the wearer all but impervious to small arms fire. A passive exoskeleton supports the weight of the armor, allowing a human to carry its massive bulk." + icon_state = "commando_armor" + slowdown = SLOWDOWN_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_VERY_HEAVY + armor_melee = CLOTHING_ARMOR_VERYHIGH + armor_bullet = CLOTHING_ARMOR_ULTRAHIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_VERYHIGH + armor_rad = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + flags_inventory = BLOCK_KNOCKDOWN + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/pmc/commando) + item_state_slots = list(WEAR_JACKET = "commando_armor") + unacidable = TRUE + + +//===========================//DISTRESS\\================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/bear + name = "\improper H1 Iron Bears vest" + desc = "A protective vest worn by Iron Bears mercenaries." + icon_state = "bear_armor" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/bear) + +/obj/item/clothing/suit/storage/marine/veteran/dutch + name = "\improper D2 armored vest" + desc = "A protective vest worn by some seriously experienced mercs." + icon_state = "dutch_armor" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS //Makes no sense but they need leg/arm armor too. + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_HIGH + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + light_range = 7 + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/dutch) + +/obj/item/clothing/suit/storage/marine/veteran/van_bandolier + name = "safari jacket" + desc = "A tailored hunting jacket, cunningly lined with segmented armor plates. Sometimes the game shoots back." + icon_state = "van_bandolier" + item_state = "van_bandolier_jacket" + blood_overlay_type = "coat" + flags_marine_armor = NO_FLAGS //No shoulder light. + actions_types = list() + slowdown = SLOWDOWN_ARMOR_LIGHT + storage_slots = 2 + movement_compensation = SLOWDOWN_ARMOR_LIGHT + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/van_bandolier) + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/storage/bible, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/storage/large_holster/machete, + /obj/item/storage/belt/gun/m4a3, + /obj/item/storage/belt/gun/m44, + /obj/item/storage/belt/gun/smartpistol, + /obj/item/storage/belt/gun/flaregun, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + /obj/item/storage/belt/shotgun/van_bandolier, + ) + +//===========================//U.P.P\\================================\\ +//=====================================================================\\ + +/obj/item/clothing/suit/storage/marine/faction + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + min_cold_protection_temperature = HELMET_MIN_COLD_PROT + max_heat_protection_temperature = HELMET_MAX_HEAT_PROT + blood_overlay_type = "armor" + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_MEDIUM + movement_compensation = SLOWDOWN_ARMOR_LIGHT + + +/obj/item/clothing/suit/storage/marine/faction/UPP + name = "\improper UM5 personal armor" + desc = "Standard body armor of the UPP military, the UM5 (Union Medium MK5) is a medium body armor, roughly on par with the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. Unlike the M3, however, the plate has a heavier neckplate. This has earned many UA members to refer to UPP soldiers as 'tin men'." + icon_state = "upp_armor" + armor_bullet = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_HIGH + storage_slots = 1 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/under/marine/veteran/UPP/engi) + +/obj/item/clothing/suit/storage/marine/faction/UPP/support + name = "\improper UL6 personal armor" + desc = "Standard body armor of the UPP military, the UL6 (Union Light MK6) is a light body armor, slightly weaker than the M3 pattern body armor in service with the USCM, specialized towards ballistics protection. This set of personal armor lacks the iconic neck piece and some of the armor in favor of user mobility." + storage_slots = 3 + icon_state = "upp_armor_support" + slowdown = SLOWDOWN_ARMOR_LIGHT + armor_melee = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_HIGH + +/obj/item/clothing/suit/storage/marine/faction/UPP/commando + name = "\improper UM5CU personal armor" + desc = "A modification of the UM5, designed for stealth operations." + icon_state = "upp_armor_commando" + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + +/obj/item/clothing/suit/storage/marine/faction/UPP/heavy + name = "\improper UH7 heavy plated armor" + desc = "An extremely heavy-duty set of body armor in service with the UPP military, the UH7 (Union Heavy MK7) is known for having powerful ballistic protection, alongside a noticeable neck guard, fortified in order to allow the wearer to endure the stresses of the bulky helmet." + icon_state = "upp_armor_heavy" + storage_slots = 3 + slowdown = SLOWDOWN_ARMOR_HEAVY + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + flags_armor_protection = BODY_FLAG_ALL_BUT_HEAD + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_HIGH + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS + +/obj/item/clothing/suit/storage/marine/faction/UPP/heavy/Initialize() + . = ..() + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/minigun, + /obj/item/ammo_magazine/pkp, + ) + +/obj/item/clothing/suit/storage/marine/faction/UPP/officer + name = "\improper UL4 officer jacket" + desc = "A lightweight jacket, issued to officers of the UPP's military. Slightly protective from incoming damage, best off with proper armor however." + icon_state = "upp_coat_officer" + slowdown = SLOWDOWN_ARMOR_NONE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat + armor_bullet = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + storage_slots = 3 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) + +/obj/item/clothing/suit/storage/marine/faction/UPP/kapitan + name = "\improper UL4 senior officer jacket" + desc = "A lightweight jacket, issued to senior officers of the UPP's military. Made of high-quality materials, even going as far as having the ranks and insignia of the Kapitan and their Company emblazoned on the shoulders and front of the jacket. Slightly protective from incoming damage, best off with proper armor however." + icon_state = "upp_coat_kapitan" + slowdown = SLOWDOWN_ARMOR_NONE + armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat + armor_bullet = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + storage_slots = 4 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP/officer) + +/obj/item/clothing/suit/storage/marine/faction/UPP/mp + name = "\improper UL4 camouflaged jacket" + desc = "A lightweight jacket, issued to troops when they're not expected to engage in combat. Still studded to the brim with kevlar shards, though the synthread construction reduces its effectiveness." + icon_state = "upp_coat_mp" + slowdown = SLOWDOWN_ARMOR_NONE + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + armor_melee = CLOTHING_ARMOR_LOW //wear actual armor if you go into combat + armor_bullet = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + storage_slots = 4 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP) + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + +/obj/item/clothing/suit/storage/marine/faction/UPP/jacket/ivan + name = "\improper UH4 Camo Jacket" + desc = "An experimental heavily armored variant of the UL4 given to only the most elite units... usually." + slowdown = SLOWDOWN_ARMOR_MEDIUM + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS|BODY_FLAG_HANDS|BODY_FLAG_FEET + armor_melee = CLOTHING_ARMOR_HIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_HIGH + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_HIGH + storage_slots = 2 + + +//===========================//FREELANCER\\================================\\ +//=====================================================================\\ + +/obj/item/clothing/suit/storage/marine/faction/freelancer + name = "freelancer cuirass" + desc = "An armored protective chestplate scrapped together from various plates. It keeps up remarkably well, as the craftsmanship is solid, and the design mirrors such armors in the UPP and the USCM. The many skilled craftsmen in the freelancers ranks produce these vests at a rate about one a month." + icon_state = "freelancer_armor" + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + storage_slots = 2 + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/freelancer) + +//this one is for CLF +/obj/item/clothing/suit/storage/militia + name = "colonial militia hauberk" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops." + icon = 'icons/obj/items/clothing/cm_suits.dmi' + icon_state = "rebel_armor" + item_icons = list( + WEAR_JACKET = 'icons/mob/humans/onmob/suit_1.dmi' + ) + sprite_sheets = list(SPECIES_MONKEY = 'icons/mob/humans/species/monkeys/onmob/suit_monkey_1.dmi') + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_ARMS + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUMLOW + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + uniform_restricted = list(/obj/item/clothing/under/colonist) + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine, + /obj/item/explosive/grenade, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/storage/large_holster/machete, + /obj/item/weapon/baseballbat, + /obj/item/weapon/baseballbat/metal, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS + min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROT + valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) + +/obj/item/clothing/suit/storage/militia/Initialize() + . = ..() + pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + ) + pockets.max_storage_space = 8 + +/obj/item/clothing/suit/storage/militia/vest + name = "colonial militia vest" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant protects only the chest and abdomen." + icon_state = "clf_2" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + slowdown = 0.2 + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + +/obj/item/clothing/suit/storage/militia/brace + name = "colonial militia brace" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This extremely light variant has some of the chest pieces removed." + icon_state = "clf_3" + flags_armor_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + slowdown = 0.2 + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + +/obj/item/clothing/suit/storage/militia/partial + name = "colonial militia partial hauberk" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This even lighter variant has some of the arm pieces removed." + icon_state = "clf_4" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS + slowdown = 0.2 + +/obj/item/clothing/suit/storage/militia/smartgun + name = "colonial militia harness" + desc = "The hauberk of a colonist militia member, created from boiled leather and some modern armored plates. While not the most powerful form of armor, and primitive compared to most modern suits of armor, it gives the wearer almost perfect mobility, which suits the needs of the local colonists. It is also quick to don, easy to hide, and cheap to produce in large workshops. This one has straps interweaved with the plates, that allow the user to fire a captured smartgun, if a bit uncomfortably." + flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS + +/obj/item/clothing/suit/storage/CMB + name = "\improper CMB Deputy jacket" + desc = "A thick and stylish black leather jacket with a Marshal's Deputy badge pinned to it. The back is enscribed with the powerful letters of 'DEPUTY' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol." + icon_state = "CMB_jacket" + item_state = "CMB_jacket" + blood_overlay_type = "coat" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS + armor_melee = CLOTHING_ARMOR_MEDIUMLOW + armor_bullet = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + allowed = list( + /obj/item/weapon/gun, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/weapon/baton, + /obj/item/handcuffs, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/device/flashlight, + /obj/item/device/healthanalyzer, + /obj/item/device/radio, + /obj/item/tank/emergency_oxygen, + /obj/item/tool/crowbar, + /obj/item/tool/crew_monitor, + /obj/item/tool/pen, + /obj/item/storage/belt/gun/m4a3, + /obj/item/storage/belt/gun/m44, + /obj/item/storage/belt/gun/mateba, + /obj/item/storage/belt/gun/smartpistol, + /obj/item/storage/large_holster/machete, + /obj/item/storage/large_holster/katana, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + +/obj/item/clothing/suit/storage/CMB/Initialize() + . = ..() + pockets.max_w_class = SIZE_SMALL //Can contain small items AND rifle magazines. + pockets.bypass_w_limit = list( + /obj/item/ammo_magazine/rifle, + /obj/item/ammo_magazine/smg, + /obj/item/ammo_magazine/sniper, + ) + pockets.max_storage_space = 8 + +/obj/item/clothing/suit/storage/CMB/marshal + name = "\improper CMB Marshal jacket" + desc = "A thick and stylish black leather jacket with a Marshal's badge pinned to it. The back is enscribed with the powerful letters of 'MARSHAL' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol." + icon_state = "CMB_jacket_marshal" + item_state = "CMB_jacket_marshal" + +//===========================//HELGHAST - MERCENARY\\================================\\ +//=====================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/mercenary + name = "\improper K12 ceramic plated armor" + desc = "A set of grey, heavy ceramic armor with dark blue highlights. It is the standard uniform of an unknown mercenary group working in the sector." + icon_state = "mercenary_heavy_armor" + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN + armor_melee = CLOTHING_ARMOR_VERYHIGH + armor_bullet = CLOTHING_ARMOR_VERYHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_HIGHPLUS + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) + item_state_slots = list(WEAR_JACKET = "mercenary_heavy_armor") + +/obj/item/clothing/suit/storage/marine/veteran/mercenary/heavy + name = "\improper Modified K12 ceramic plated armor" + desc = "A set of grey, heavy ceramic armor with dark blue highlights. It has been modified with extra ceramic plates placed in its storage pouch, and seems intended to support an extremely heavy weapon." + armor_melee = CLOTHING_ARMOR_ULTRAHIGH + armor_bullet = CLOTHING_ARMOR_ULTRAHIGHPLUS + armor_bomb = CLOTHING_ARMOR_HIGHPLUS + armor_bio = CLOTHING_ARMOR_HIGHPLUS + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_VERYHIGHPLUS + storage_slots = 1 + +/obj/item/clothing/suit/storage/marine/veteran/mercenary/miner + name = "\improper Y8 armored miner vest" + desc = "A set of beige, light armor built for protection while mining. It is a specialized uniform of an unknown mercenary group working in the sector." + icon_state = "mercenary_miner_armor" + storage_slots = 3 + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/marine/veteran/mercenary) + item_state_slots = list(WEAR_JACKET = "mercenary_miner_armor") + +/obj/item/clothing/suit/storage/marine/veteran/mercenary/support + name = "\improper Z7 armored vest" + desc = "A set of blue armor with yellow highlights built for protection while building or carrying out medical treatment in highly dangerous environments. It is a specialized uniform of an unknown mercenary group working in the sector." + icon_state = "mercenary_engineer_armor" + item_state_slots = list(WEAR_JACKET = "mercenary_engineer_armor") + +/obj/item/clothing/suit/storage/marine/M3G/hefa + name = "\improper HEFA Knight armor" + desc = "A thick piece of armor adorning a HEFA. Usually seen on a HEFA knight." + specialty = "HEFA Knight" + icon_state = "hefadier" + flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE + flags_item = NO_CRYO_STORE + flags_marine_armor = ARMOR_LAMP_OVERLAY + armor_bullet = CLOTHING_ARMOR_VERYHIGH + armor_melee = CLOTHING_ARMOR_VERYHIGH + armor_bomb = CLOTHING_ARMOR_GIGAHIGH + + +//=========================//PROVOST\\================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/MP/provost + name = "\improper M3 pattern Provost armor" + desc = "A standard Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "pvmedium" + item_state_slots = list(WEAR_JACKET = "pvmedium") + slowdown = SLOWDOWN_ARMOR_LIGHT + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUMHIGH + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + storage_slots = 3 + +/obj/item/clothing/suit/storage/marine/MP/provost/tml + name = "\improper M3 pattern Senior Provost armor" + desc = "A more refined Provost M3 Pattern Chestplate for senior officers. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "pvleader" + item_state_slots = list(WEAR_JACKET = "pvleader") + +/obj/item/clothing/suit/storage/marine/MP/provost/marshal + name = "\improper M5 pattern Provost Marshal armor" + desc = "A custom fit luxury armor suit for Provost Marshals. Useful for letting your men know who is in charge when taking to the field." + icon_state = "pvmarshal" + item_state_slots = list(WEAR_JACKET = "pvmarshal") + w_class = SIZE_MEDIUM + storage_slots = 4 + +/obj/item/clothing/suit/storage/marine/MP/provost/light + name = "\improper M3 pattern Provost light armor" + desc = "A lighter Provost M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + icon_state = "pvlight" + item_state_slots = list(WEAR_JACKET = "pvlight") + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT + +/obj/item/clothing/suit/storage/marine/MP/provost/light/flexi + name = "\improper M3 pattern Provost flexi-armor" + desc = "A flexible and easy to store M3 Pattern Chestplate. Protects the chest from ballistic rounds, bladed objects and accidents. It has a small leather pouch strapped to it for limited storage." + w_class = SIZE_MEDIUM + icon_state = "pvlight_2" + item_state_slots = list(WEAR_JACKET = "pvlight_2") + storage_slots = 2 + +//================//UNITED AMERICAS ALLIED COMMAND\\=====================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/uaac/tis/sa + name = "\improper M3 pattern UAAC-TIS Special Agent Armor" + desc = "A modified luxury armor, originally meant for a USCM Provost Marshall, modified to use the colors and insignia of the TIS. The Three Eyes is technically able to requisition any equipment or personnel to fulfill its mission and often uses this privilege to outfit their agents with high-quality gear from other UA military forces." + icon_state = "tis" + item_state_slots = list(WEAR_JACKET = "tis") + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_laser = CLOTHING_ARMOR_LOW + armor_energy = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/weapon/baton, + /obj/item/handcuffs, + /obj/item/explosive/grenade, + /obj/item/device/binoculars, + /obj/item/attachable/bayonet, + /obj/item/storage/backpack/general_belt, + /obj/item/device/hailer, + /obj/item/storage/belt/gun, + /obj/item/weapon/sword/ceremonial, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + uniform_restricted = list(/obj/item/clothing/under/uaac/tis) + +//================//UNITED AMERICAS RIOT CONTROL\\=====================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/ua_riot + name = "\improper UA-M1 body armor" + desc = "Based on the M-3 pattern employed by the USCM, the UA-M1 body armor is employed by UA security, riot control and union-busting teams. While robust against melee and bullet attacks, it critically lacks coverage of the legs and arms." + icon_state = "ua_riot" + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + armor_melee = CLOTHING_ARMOR_MEDIUMHIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_VERY_LIGHT // it's lighter + uniform_restricted = list(/obj/item/clothing/under/marine/ua_riot) + flags_atom = NO_SNOW_TYPE + +//================//=ROYAL MARINES=\\====================================\\ +//=======================================================================\\ + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine + name = "kestrel armoured vest" + desc = "A customizable personal armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." + icon_state = "rmc_light" + item_state = "rmc_light" + flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE + allowed = list( + /obj/item/weapon/gun, + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine/, + /obj/item/weapon/baton, + /obj/item/handcuffs, + /obj/item/storage/fancy/cigarettes, + /obj/item/tool/lighter, + /obj/item/explosive/grenade, + /obj/item/storage/bible, + /obj/item/weapon/sword/machete, + /obj/item/attachable/bayonet, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light //RMC Rifleman Armor + icon_state = "rmc_light" + item_state = "rmc_light" + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_energy = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + slowdown = SLOWDOWN_ARMOR_LIGHT + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/light/team_leader //RMC TL & LT Armor + name = "kestrel armoured carry vest" + icon_state = "rmc_light_padded" + item_state = "rmc_light_padded" + storage_slots = 7 + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/smartgun //Smartgun Spec Armor + name = "kestrel armoured smartgun harness" + icon_state = "rmc_smartgun" + item_state = "rmc_smartgun" + flags_inventory = BLOCKSHARPOBJ|BLOCK_KNOCKDOWN|SMARTGUN_HARNESS + +/obj/item/clothing/suit/storage/marine/veteran/royal_marine/pointman //Pointman Spec Armor + name = "kestrel pointman armour" + desc = "A heavier version of the armor system used by the Three World Empire's Royal Marines Commandos. Designers from a Weyland Yutani subsidary, Lindenthal-Ehrenfeld Militärindustrie, iterated on the USCMC's M3 pattern personal armor in their Tokonigara lab to create an armor systemed to suit the unique needs of the Three World Empire's smaller but better equipped Royal Marines." + icon_state = "rmc_pointman" + item_state = "rmc_pointman" + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_HIGHPLUS + armor_bomb = CLOTHING_ARMOR_HIGHPLUS + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + storage_slots = 7 + slowdown = SLOWDOWN_ARMOR_LOWHEAVY + movement_compensation = SLOWDOWN_ARMOR_MEDIUM + +/atom/movable/marine_light + light_system = DIRECTIONAL_LIGHT + +//CBRN +/obj/item/clothing/suit/storage/marine/cbrn + name = "\improper M3-M armor" + desc = "While lacking the appearance of the M3 pattern armor worn in regular service, this armor piece is still a derivative of it. It has been heavily modified to fit over the MOPP suit with additional padding and Venlar composite layers removed, so as not to restrict the wearer’s movement. However, with the reduction of composite layers, the personal protection offered is less than desired with complaints having been lodged since 2165." + icon_state = "cbrn" + item_state = "cbrn" + slowdown = SLOWDOWN_ARMOR_HEAVY + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_bio = CLOTHING_ARMOR_LOW + armor_rad =CLOTHING_ARMOR_MEDIUMLOW + armor_internaldamage = CLOTHING_ARMOR_LOW + flags_marine_armor = NO_FLAGS + flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE + flags_inventory = BLOCKSHARPOBJ + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN + uniform_restricted = list(/obj/item/clothing/under/marine/cbrn) + +/obj/item/clothing/suit/storage/marine/cbrn/advanced + slowdown = SLOWDOWN_ARMOR_LOWHEAVY + armor_melee = CLOTHING_ARMOR_HIGH + armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH + armor_bomb = CLOTHING_ARMOR_ULTRAHIGH + armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS + armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS + armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS diff --git a/code/modules/clothing/suits/marine_armor/ghillie.dm b/code/modules/clothing/suits/marine_armor/ghillie.dm new file mode 100644 index 000000000000..1f1b71227655 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/ghillie.dm @@ -0,0 +1,162 @@ +#define FULL_CAMOUFLAGE_ALPHA 15 + +/obj/item/clothing/suit/storage/marine/ghillie + name = "\improper M45 pattern ghillie armor" + desc = "A lightweight ghillie camouflage suit, used by USCM snipers on recon missions. Very lightweight, but doesn't protect much." + icon_state = "ghillie_armor" + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_marine_armor = ARMOR_LAMP_OVERLAY + flags_item = MOB_LOCK_ON_EQUIP + specialty = "M45 pattern ghillie" + valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL, ACCESSORY_SLOT_PONCHO) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND) + + var/camo_active = FALSE + var/hide_in_progress = FALSE + var/full_camo_alpha = FULL_CAMOUFLAGE_ALPHA + var/incremental_shooting_camo_penalty = 35 + var/current_camo = FULL_CAMOUFLAGE_ALPHA + var/camouflage_break = 5 SECONDS + var/camouflage_enter_delay = 4 SECONDS + var/can_camo = TRUE + + actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/prepare_position) + +/obj/item/clothing/suit/storage/marine/ghillie/dropped(mob/user) + if(ishuman(user) && !issynth(user)) + deactivate_camouflage(user, FALSE) + + . = ..() + +/obj/item/clothing/suit/storage/marine/ghillie/verb/camouflage() + set name = "Prepare Position" + set desc = "Use the ghillie suit and the nearby environment to become near invisible." + set category = "Object" + set src in usr + if(!usr || usr.is_mob_incapacitated(TRUE)) + return + + if(!ishuman(usr) || hide_in_progress || !can_camo) + return + var/mob/living/carbon/human/H = usr + if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_SNIPER && !(GLOB.character_traits[/datum/character_trait/skills/spotter] in H.traits)) + to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) + return + if(H.wear_suit != src) + to_chat(H, SPAN_WARNING("You must be wearing the ghillie suit to activate it!")) + return + + if(camo_active) + deactivate_camouflage(H) + return + + H.visible_message(SPAN_DANGER("[H] goes prone, and begins adjusting \his ghillie suit!"), SPAN_NOTICE("You go prone, and begins adjusting your ghillie suit."), max_distance = 4) + hide_in_progress = TRUE + H.unset_interaction() // If we're sticking to a machine gun or what not. + if(!do_after(H, camouflage_enter_delay, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + hide_in_progress = FALSE + return + hide_in_progress = FALSE + RegisterSignal(H, list( + COMSIG_MOB_FIRED_GUN, + COMSIG_MOB_FIRED_GUN_ATTACHMENT) + , PROC_REF(fade_in)) + RegisterSignal(H, list( + COMSIG_MOB_DEATH, + COMSIG_HUMAN_EXTINGUISH + ), PROC_REF(deactivate_camouflage)) + camo_active = TRUE + H.alpha = full_camo_alpha + H.FF_hit_evade = 1000 + ADD_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) + + RegisterSignal(H, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look)) + + 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 = GLOB.huds[MOB_HUD_XENO_INFECTION] + XI.remove_from_hud(H) + + anim(H.loc, H, 'icons/mob/mob.dmi', null, "cloak", null, H.dir) + + +/obj/item/clothing/suit/storage/marine/ghillie/proc/deactivate_camouflage(mob/user) + SIGNAL_HANDLER + var/mob/living/carbon/human/H = user + if(!istype(H)) + return FALSE + + if(!camo_active) + return + + UnregisterSignal(H, list( + COMSIG_MOB_FIRED_GUN, + COMSIG_MOB_FIRED_GUN_ATTACHMENT, + COMSIG_MOB_DEATH, + COMSIG_HUMAN_EXTINGUISH, + COMSIG_MOB_MOVE_OR_LOOK + )) + + camo_active = FALSE + animate(H, alpha = initial(H.alpha), flags = ANIMATION_END_NOW) + H.FF_hit_evade = initial(H.FF_hit_evade) + REMOVE_TRAIT(H, TRAIT_UNDENSE, SPECIALIST_GEAR_TRAIT) + + 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 = GLOB.huds[MOB_HUD_XENO_INFECTION] + XI.add_to_hud(H) + + H.visible_message(SPAN_DANGER("[H]'s camouflage fails!"), SPAN_WARNING("Your camouflage fails!"), max_distance = 4) + +/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_in(mob/user) + SIGNAL_HANDLER + var/mob/living/carbon/human/H = user + if(camo_active) + if(current_camo < full_camo_alpha) + current_camo = full_camo_alpha + current_camo = clamp(current_camo + incremental_shooting_camo_penalty, full_camo_alpha, 255) + H.alpha = current_camo + addtimer(CALLBACK(src, PROC_REF(fade_out_finish), H), camouflage_break, TIMER_OVERRIDE|TIMER_UNIQUE) + animate(H, alpha = full_camo_alpha + 5, time = camouflage_break, easing = LINEAR_EASING, flags = ANIMATION_END_NOW) + +/obj/item/clothing/suit/storage/marine/ghillie/proc/fade_out_finish(mob/living/carbon/human/H) + if(camo_active && H.wear_suit == src) + to_chat(H, SPAN_BOLDNOTICE("The smoke clears and your position is once again hidden completely!")) + animate(H, alpha = full_camo_alpha) + current_camo = full_camo_alpha + +/obj/item/clothing/suit/storage/marine/ghillie/proc/handle_mob_move_or_look(mob/living/mover, actually_moving, direction, specific_direction) + SIGNAL_HANDLER + + if(camo_active && actually_moving) + deactivate_camouflage(mover) + +/datum/action/item_action/specialist/prepare_position + ability_primacy = SPEC_PRIMARY_ACTION_1 + +/datum/action/item_action/specialist/prepare_position/New(mob/living/user, obj/item/holder) + ..() + name = "Prepare Position" + button.name = name + button.overlays.Cut() + var/image/IMG = image('icons/mob/hud/actions.dmi', button, "prepare_position") + button.overlays += IMG + +/datum/action/item_action/specialist/prepare_position/can_use_action() + var/mob/living/carbon/human/H = owner + if(istype(H) && !H.is_mob_incapacitated() && H.body_position == STANDING_UP && holder_item == H.wear_suit) + return TRUE + +/datum/action/item_action/specialist/prepare_position/action_activate() + var/obj/item/clothing/suit/storage/marine/ghillie/GS = holder_item + GS.camouflage() + +#undef FULL_CAMOUFLAGE_ALPHA + +/obj/item/clothing/suit/storage/marine/ghillie/forecon + name = "UDEP Thermal Poncho" + desc = "UDEP or the Ultra Diffusive Environmental Poncho is a camouflaged rain-cover worn to protect against the elements and chemical spills. It's commonly treated with an infrared absorbing coating, making a marine almost invisible in the rain. Favoured by USCM specialists for it's comfort and practicality." + icon_state = "mercenary_miner_armor" + flags_atom = MOB_LOCK_ON_EQUIP|NO_SNOW_TYPE|NO_NAME_OVERRIDE diff --git a/code/modules/clothing/suits/marine_armor/intel.dm b/code/modules/clothing/suits/marine_armor/intel.dm new file mode 100644 index 000000000000..b3f0f93e004d --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/intel.dm @@ -0,0 +1,118 @@ +/obj/item/clothing/suit/storage/marine/medium/rto/intel + name = "\improper XM4 pattern intelligence officer armor" + uniform_restricted = list(/obj/item/clothing/under/marine/officer/intel) + specialty = "XM4 pattern intel" + desc = "Tougher than steel, quieter than whispers, the XM4 Intel Armor provides capable protection combined with an experimental integrated motion tracker. It took an R&D team a weekend to develop and costs more than the Chinook Station... probably. When worn, uniform accessories such as webbing cannot be attached due to the motion sensors occupying the clips." + desc_lore = "ARMAT Perfection. The XM4 Soldier Awareness System mixes M4-style hard armor and a distributed series of motion sensors clipped onto the breastplate. When connected to any HUD optic, it replicates the effects of an M314 Motion Detector unit, increasing user situational awareness. It is currently undergoing field trials by intelligence operatives." + storage_slots = 5 + /// XM4 Integral Motion Detector Ability + actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/intel/toggle_motion_detector) + var/motion_detector = FALSE + var/obj/item/device/motiondetector/xm4/proximity + var/long_range_cooldown = 2 + var/recycletime = 120 + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/Initialize(mapload, ...) + . = ..() + proximity = new(src) + update_icon() + +/datum/action/item_action/intel/action_activate() + if(!ishuman(owner)) + return + +/datum/action/item_action/intel/update_button_icon() + return + +/datum/action/item_action/intel/toggle_motion_detector/New(Target, obj/item/holder) + . = ..() + name = "Toggle Motion Detector" + action_icon_state = "motion_detector" + button.name = name + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state) + +/datum/action/item_action/intel/toggle_motion_detector/action_activate() + . = ..() + var/obj/item/clothing/suit/storage/marine/medium/rto/intel/recon = holder_item + recon.toggle_motion_detector(owner) + +/datum/action/item_action/intel/toggle_motion_detector/proc/update_icon() + if(!holder_item) + return + var/obj/item/clothing/suit/storage/marine/medium/rto/intel/recon = holder_item + if(recon.motion_detector) + button.icon_state = "template_on" + else + button.icon_state = "template" + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/process() + if(!motion_detector) + STOP_PROCESSING(SSobj, src) + if(motion_detector) + recycletime-- + if(!recycletime) + recycletime = initial(recycletime) + proximity.refresh_blip_pool() + long_range_cooldown-- + if(long_range_cooldown) + return + long_range_cooldown = initial(long_range_cooldown) + proximity.scan() + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/proc/toggle_motion_detector(mob/user) + to_chat(user,SPAN_NOTICE("You [motion_detector? "disable" : "enable"] \the [src]'s motion detector.")) + if(!motion_detector) + playsound(loc,'sound/items/detector_turn_on.ogg', 25, 1) + else + playsound(loc,'sound/items/detector_turn_off.ogg', 25, 1) + motion_detector = !motion_detector + var/datum/action/item_action/intel/toggle_motion_detector/TMD = locate(/datum/action/item_action/intel/toggle_motion_detector) in actions + TMD.update_icon() + motion_detector() + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/proc/motion_detector() + if(motion_detector) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/mob_can_equip(mob/living/carbon/human/user, slot, disable_warning) //Thanks to Drathek for the help on this part! + if(!..()) + return FALSE + + // Only equip if uniform doesn't already have a utility accessory slot equipped + var/obj/item/clothing/under/uniform = user.w_uniform + var/accessory = locate(/obj/item/clothing/accessory/storage) in uniform.accessories + if(accessory) + to_chat(user, SPAN_WARNING("[src] can't be worn with [accessory].")) + return FALSE + // Only equip if user has expert intel skill level + if(!skillcheck(user, SKILL_INTEL, SKILL_INTEL_EXPERT)) + to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]...")) + return FALSE + return TRUE + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/equipped(mob/user, slot, silent) //When XM4 is equipped this removes ACCESSORY_SLOT_UTILITY as a valid accessory for the uniform + . = ..() + if(slot == WEAR_JACKET) + var/mob/living/carbon/human/human = user + var/obj/item/clothing/under/uniform = human.w_uniform + if(uniform?.valid_accessory_slots) + uniform?.valid_accessory_slots -= ACCESSORY_SLOT_UTILITY + +/obj/item/clothing/suit/storage/marine/medium/rto/intel/unequipped(mob/user, slot) //When unequipped this adds the ACCESSORY_SLOT_UTILITY back as a valid accessory + . = ..() + if(slot == WEAR_JACKET) + var/mob/living/carbon/human/human = user + var/obj/item/clothing/under/uniform = human.w_uniform + if(uniform) + // Figure out if the uniform originally allowed ACCESSORY_SLOT_UTILITY + var/obj/item/clothing/under/temp_uniform = new uniform.type + if(temp_uniform.valid_accessory_slots) + for(var/allowed in temp_uniform.valid_accessory_slots) + if(allowed == ACCESSORY_SLOT_UTILITY) + // It was allowed previously, now add it back + uniform.valid_accessory_slots += ACCESSORY_SLOT_UTILITY + break + qdel(temp_uniform) diff --git a/code/modules/clothing/suits/marine_armor/smartgunner.dm b/code/modules/clothing/suits/marine_armor/smartgunner.dm new file mode 100644 index 000000000000..430942fbbef8 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/smartgunner.dm @@ -0,0 +1,60 @@ +/obj/item/clothing/suit/storage/marine/smartgunner + name = "\improper M56 combat harness" + desc = "A heavy protective vest designed to be worn with the M56 Smartgun System. \nIt has specially designed straps and reinforcement to carry the Smartgun and accessories." + icon_state = "8" + item_state = "armor" + armor_laser = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_MEDIUM + storage_slots = 2 + slowdown = SLOWDOWN_ARMOR_LIGHT + flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS + allowed = list( + /obj/item/tank/emergency_oxygen, + /obj/item/device/flashlight, + /obj/item/ammo_magazine, + /obj/item/explosive/mine, + /obj/item/attachable/bayonet, + /obj/item/weapon/gun/smartgun, + /obj/item/storage/backpack/general_belt, + /obj/item/device/motiondetector, + /obj/item/device/walkman, + ) + +/obj/item/clothing/suit/storage/marine/smartgunner/Initialize() + . = ..() + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD] && name == "M56 combat harness") + name = "M56 snow combat harness" + else + name = "M56 combat harness" + //select_gamemode_skin(type) + +/obj/item/clothing/suit/storage/marine/smartgunner/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE) + . = ..() + + if(equipping_mob.back) + to_chat(equipping_mob, SPAN_WARNING("You can't equip [src] while wearing a backpack.")) + return FALSE + +/obj/item/clothing/suit/storage/marine/smartgunner/equipped(mob/user, slot, silent) + . = ..() + + if(slot == WEAR_JACKET) + RegisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP, PROC_REF(check_equipping)) + +/obj/item/clothing/suit/storage/marine/smartgunner/proc/check_equipping(mob/living/carbon/human/equipping_human, obj/item/equipping_item, slot) + SIGNAL_HANDLER + + if(slot != WEAR_BACK) + return + + . = COMPONENT_HUMAN_CANCEL_ATTEMPT_EQUIP + + if(equipping_item.flags_equip_slot == SLOT_BACK) + to_chat(equipping_human, SPAN_WARNING("You can't equip [equipping_item] on your back while wearing [src].")) + return + +/obj/item/clothing/suit/storage/marine/smartgunner/unequipped(mob/user, slot) + . = ..() + + UnregisterSignal(user, COMSIG_HUMAN_ATTEMPTING_EQUIP) diff --git a/code/modules/clothing/suits/marine_armor/spec_fire.dm b/code/modules/clothing/suits/marine_armor/spec_fire.dm new file mode 100644 index 000000000000..4d577cc98b15 --- /dev/null +++ b/code/modules/clothing/suits/marine_armor/spec_fire.dm @@ -0,0 +1,150 @@ +#define FIRE_SHIELD_CD 150 + +/obj/item/clothing/suit/storage/marine/M35 + name = "\improper M35 pyrotechnician armor" + desc = "A custom set of M35 armor designed for use by USCM Pyrotechnicians." + icon_state = "pyro_armor" + armor_bio = CLOTHING_ARMOR_MEDIUMHIGH + armor_internaldamage = CLOTHING_ARMOR_MEDIUMHIGH + fire_intensity_resistance = BURN_LEVEL_TIER_1 + max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROT + flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_cold_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_heat_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_ARMS|BODY_FLAG_LEGS|BODY_FLAG_FEET + flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE + specialty = "M35 pyrotechnician" + actions_types = list(/datum/action/item_action/toggle, /datum/action/item_action/specialist/fire_shield) + unacidable = TRUE + var/fire_shield_on = FALSE + var/can_activate = TRUE + +/obj/item/clothing/suit/storage/marine/M35/equipped(mob/user, slot) + if(slot == WEAR_JACKET) + RegisterSignal(user, COMSIG_LIVING_FLAMER_CROSSED, PROC_REF(flamer_fire_callback)) + ..() + +/obj/item/clothing/suit/storage/marine/M35/verb/fire_shield() + set name = "Activate Fire Shield" + set desc = "Activate your armor's FIREWALK protocol for a short duration." + set category = "Pyro" + set src in usr + if(!usr || usr.is_mob_incapacitated(TRUE)) + return + if(!ishuman(usr)) + return + var/mob/living/carbon/human/H = usr + + if(H.wear_suit != src) + to_chat(H, SPAN_WARNING("You must be wearing the M35 pyro armor to activate FIREWALK protocol!")) + return + + if(!skillcheck(H, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL) && H.skills.get_skill_level(SKILL_SPEC_WEAPONS) != SKILL_SPEC_PYRO) + to_chat(H, SPAN_WARNING("You don't seem to know how to use [src]...")) + return + + if(fire_shield_on) + to_chat(H, SPAN_WARNING("You already have FIREWALK protocol activated!")) + return + + if(!can_activate) + to_chat(H, SPAN_WARNING("FIREWALK protocol was recently activated, wait before trying to activate it again.")) + return + + to_chat(H, SPAN_NOTICE("FIREWALK protocol has been activated. You will now be immune to fire for 6 seconds!")) + RegisterSignal(H, COMSIG_LIVING_PREIGNITION, PROC_REF(fire_shield_is_on)) + RegisterSignal(H, list( + COMSIG_LIVING_FLAMER_FLAMED, + ), PROC_REF(flamer_fire_callback)) + fire_shield_on = TRUE + can_activate = FALSE + for(var/X in actions) + var/datum/action/A = X + A.update_button_icon() + addtimer(CALLBACK(src, PROC_REF(end_fire_shield), H), 6 SECONDS) + + H.add_filter("firewalk_on", 1, list("type" = "outline", "color" = "#03fcc6", "size" = 1)) + +/obj/item/clothing/suit/storage/marine/M35/proc/end_fire_shield(mob/living/carbon/human/user) + if(!istype(user)) + return + to_chat(user, SPAN_NOTICE("FIREWALK protocol has finished.")) + UnregisterSignal(user, list( + COMSIG_LIVING_PREIGNITION, + COMSIG_LIVING_FLAMER_FLAMED, + )) + fire_shield_on = FALSE + + user.remove_filter("firewalk_on") + + addtimer(CALLBACK(src, PROC_REF(enable_fire_shield), user), FIRE_SHIELD_CD) + +/obj/item/clothing/suit/storage/marine/M35/proc/enable_fire_shield(mob/living/carbon/human/user) + if(!istype(user)) + return + to_chat(user, SPAN_NOTICE("FIREWALK protocol can be activated again.")) + can_activate = TRUE + + for(var/X in actions) + var/datum/action/A = X + A.update_button_icon() + +/// This proc is solely so that IgniteMob() fails +/obj/item/clothing/suit/storage/marine/M35/proc/fire_shield_is_on(mob/living/L) + SIGNAL_HANDLER + + if(L.fire_reagent?.fire_penetrating) + return + + return COMPONENT_CANCEL_IGNITION + +/obj/item/clothing/suit/storage/marine/M35/proc/flamer_fire_callback(mob/living/L, datum/reagent/R) + SIGNAL_HANDLER + + if(R.fire_penetrating) + return + + . = COMPONENT_NO_IGNITE + if(fire_shield_on) + . |= COMPONENT_NO_BURN + +/obj/item/clothing/suit/storage/marine/M35/dropped(mob/user) + if (!istype(user)) + return + UnregisterSignal(user, list( + COMSIG_LIVING_PREIGNITION, + COMSIG_LIVING_FLAMER_CROSSED, + COMSIG_LIVING_FLAMER_FLAMED, + )) + ..() + +#undef FIRE_SHIELD_CD + +/datum/action/item_action/specialist/fire_shield + ability_primacy = SPEC_PRIMARY_ACTION_2 + +/datum/action/item_action/specialist/fire_shield/New(mob/living/user, obj/item/holder) + ..() + name = "Activate Fire Shield" + button.name = name + button.overlays.Cut() + var/image/IMG = image('icons/obj/items/clothing/cm_suits.dmi', button, "pyro_armor") + button.overlays += IMG + +/datum/action/item_action/specialist/fire_shield/action_cooldown_check() + var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item + if (!istype(armor)) + return FALSE + + return !armor.can_activate + +/datum/action/item_action/specialist/fire_shield/can_use_action() + var/mob/living/carbon/human/H = owner + if(istype(H) && !H.is_mob_incapacitated() && H.wear_suit == holder_item) + return TRUE + +/datum/action/item_action/specialist/fire_shield/action_activate() + var/obj/item/clothing/suit/storage/marine/M35/armor = holder_item + if (!istype(armor)) + return + + armor.fire_shield() diff --git a/code/modules/clothing/suits/marine_coat.dm b/code/modules/clothing/suits/marine_coat.dm index 49569ec1295d..2dd93eb66aee 100644 --- a/code/modules/clothing/suits/marine_coat.dm +++ b/code/modules/clothing/suits/marine_coat.dm @@ -278,15 +278,29 @@ icon_state = "o_jacket" item_state = "o_jacket" -//==================War Correspondent==================\\ +//==================Combat Correspondent==================\\ /obj/item/clothing/suit/storage/jacket/marine/reporter name = "combat correspondent jacket" desc = "A jacket for the most fashionable war correspondents." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_suit" - item_state = "wc_suit" - contained_sprite = TRUE + icon_state = "cc_brown" + item_state = "cc_brown" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/reporter/green + icon_state = "cc_green" + item_state = "cc_green" + + +/obj/item/clothing/suit/storage/jacket/marine/reporter/black + icon_state = "cc_black" + item_state = "cc_black" + +/obj/item/clothing/suit/storage/jacket/marine/reporter/blue + icon_state = "cc_blue" + item_state = "cc_blue" + //==================Corporate Liaison==================\\ diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index b5859bb6f2d4..54148d4f7076 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -143,8 +143,8 @@ valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) /obj/item/clothing/suit/storage/apron/overalls - name = "coveralls" - desc = "A set of denim overalls." + name = "blue coveralls" + desc = "A pair of denim overalls. With a large pocket in the front these overalls are popular with workers of all kinds." icon_state = "overalls" item_state = "overalls" flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS @@ -167,6 +167,18 @@ ) valid_accessory_slots = list(ACCESSORY_SLOT_MEDAL) +/obj/item/clothing/suit/storage/apron/overalls/tan + name = "tan coveralls" + desc = "A pair of tan overalls. With a large pocket in the front these overalls are popular with workers of all kinds." + icon_state = "overalls_tan" + item_state = "overalls_tan" + +/obj/item/clothing/suit/storage/apron/overalls/red + name = "red coveralls" + desc = "A pair of reddish-brown overalls. With a large pocket in the front these overalls are popular with workers of all kinds." + icon_state = "overalls_red" + item_state = "overalls_red" + /obj/item/clothing/suit/syndicatefake name = "red space suit replica" icon_state = "syndicate" diff --git a/code/modules/clothing/under/gimmick.dm b/code/modules/clothing/under/gimmick.dm index d8e0a16fc7a2..793bc0593735 100644 --- a/code/modules/clothing/under/gimmick.dm +++ b/code/modules/clothing/under/gimmick.dm @@ -11,6 +11,10 @@ has_sensor = UNIFORM_NO_SENSORS displays_id = 0 + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) + //JASON /obj/item/clothing/under/gimmick/jason name = "dirty work attire" diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 2142312fe995..37f1cdd891c3 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -176,12 +176,12 @@ armor_internaldamage = CLOTHING_ARMOR_LOW item_state_slots = list(WEAR_BODY = "medical") -/obj/item/clothing/under/rank/medical/nurse - name = "medical nurse scrubs" - desc = "It's made of a special fiber that provides minor protection against biohazards. This one features an orange armband." - icon_state = "scrubsnurse" - item_state = "scrubsnurse" - item_state_slots = list(WEAR_BODY = "scrubsnurse") +/obj/item/clothing/under/rank/medical/lightblue + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in light blue." + icon_state = "scrubslightblue" + flags_jumpsuit = FALSE + item_state_slots = list(WEAR_BODY = "scrubslightblue") /obj/item/clothing/under/rank/medical/blue name = "medical scrubs" @@ -204,6 +204,13 @@ flags_jumpsuit = FALSE item_state_slots = list(WEAR_BODY = "scrubspurple") +/obj/item/clothing/under/rank/medical/orange + name = "medical scrubs" + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in prisoner orange." + icon_state = "scrubsorange" + flags_jumpsuit = FALSE + item_state_slots = list(WEAR_BODY = "scrubsorange") + /obj/item/clothing/under/rank/psych desc = "A basic white jumpsuit. It has turquoise markings that denote the wearer as a psychiatrist." name = "psychiatrist's jumpsuit" diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm index d09b1984420e..4f0c06273d9e 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -692,6 +692,40 @@ has_sensor = UNIFORM_HAS_SENSORS sensor_faction = FACTION_COLONIST +/obj/item/clothing/under/colonist/workwear + name = "grey workwear" + desc = "A pair of black slacks and a short-sleeve grey workshirt. Standard uniform for Weyland Yutani employees working in colony operations and administration." + icon_state = "workwear_grey" + worn_state = "workwear_grey" + +/obj/item/clothing/under/colonist/workwear/khaki + name = "khaki workwear" + desc = "A pair of jeans paired with a khaki workshirt. A common pairing among blue-collar workers due to its drab look." + icon_state = "workwear_khaki" + worn_state = "workwear_khaki" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + +/obj/item/clothing/under/colonist/workwear/pink + name = "pink workwear" + desc = "A pair of jeans paired with a pink workshirt. Pink? Your wife might not think so, but such outlandish attire deserves questioning by corporate security. What are you, some kind of free-thinking anarchist?" + icon_state = "workwear_pink" + worn_state = "workwear_pink" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + +/obj/item/clothing/under/colonist/workwear/blue + name = "blue workwear" + desc = "A pair of brown canvas workpants paired with a dark blue workshirt. A common pairing among blue-collar workers." + icon_state = "workwear_blue" + worn_state = "workwear_blue" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + +/obj/item/clothing/under/colonist/workwear/green + name = "green workwear" + desc = "A pair of brown canvas workpants paired with a green workshirt. An common pairing among blue-collar workers." + icon_state = "workwear_green" + worn_state = "workwear_green" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE + /obj/item/clothing/under/colonist/clf name = "\improper Colonial Liberation Front uniform" desc = "A stylish grey-green jumpsuit - standard issue for colonists. This version appears to have the symbol of the Colonial Liberation Front emblazoned in select areas." @@ -735,6 +769,7 @@ displays_id = FALSE has_sensor = UNIFORM_HAS_SENSORS sensor_faction = FACTION_MARINE + /obj/item/clothing/under/tshirt/gray_blu name = "gray T-shirt and jeans" desc = "A comfortable gray T-shirt and blue jeans." @@ -755,7 +790,7 @@ /obj/item/clothing/under/CM_uniform name = "\improper Colonial Marshal uniform" - desc = "A blue shirt and tan trousers - the official uniform for a Colonial Marshal." + desc = "A pair of off-white slacks and a blue button-down shirt with a dark brown tie; the standard uniform of the Colonial Marshals." icon_state = "marshal" worn_state = "marshal" armor_melee = CLOTHING_ARMOR_LOW @@ -766,7 +801,7 @@ armor_bio = CLOTHING_ARMOR_NONE armor_rad = CLOTHING_ARMOR_NONE armor_internaldamage = CLOTHING_ARMOR_LOW - + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_JACKET_REMOVABLE /obj/item/clothing/under/liaison_suit name = "liaison's tan suit" @@ -847,11 +882,24 @@ /obj/item/clothing/under/marine/reporter name = "combat correspondent uniform" desc = "A relaxed and robust uniform fit for any potential reporting needs." - icon = 'icons/mob/humans/onmob/contained/war_correspondent.dmi' - icon_state = "wc_uniform" - worn_state = "wc_uniform" - contained_sprite = TRUE - flags_atom = NO_NAME_OVERRIDE + icon_state = "cc_white" + worn_state = "cc_white" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) + +/obj/item/clothing/under/marine/reporter/black + icon_state = "cc_black" + worn_state = "cc_black" + +/obj/item/clothing/under/marine/reporter/orange + icon_state = "cc_orange" + worn_state = "cc_orange" + +/obj/item/clothing/under/marine/reporter/red + icon_state = "cc_red" + worn_state = "cc_red" /obj/item/clothing/under/twe_suit name = "representative's fine suit" @@ -988,7 +1036,7 @@ /obj/item/clothing/under/marine/cbrn //CBRN MOPP suit name = "\improper M3 MOPP suit" - desc = "M3 MOPP suits are specially designed and engineered to protect the wearer from unshielded exposure to any Chemical, Biological, Radiological, or Nuclear (CBRN) threats in the field. Despite somewhat resembling commonplace synthetic rubber HAZMAT suits, the Venlar composition provides a significantly more dense and durable baseline material, allowing for modifications without the loss of its air-tight nature. The wearer’s comfort has been significantly taken into consideration, with the suit providing sufficient freedom of movement for even delicate maneuvers and movements once it is donned. As the sealed environment retains many issues from the past, measures have been taken to significantly reduce the suit's passive heat absorption and increase internal absorbance through linings, as well as the capability to fully integrate with external cooling, air cycling, and other life support systems. Strips of M11 detector paper are included with each suit, designed to be slotted into the dominant arm of the wearer’s protective suit, the non-dominant wrist, and then back to the knee, providing at-a-glance warning signs across alternating sides of the body while working. The arm and knee markers are intended to be on the user's dominant The papers change color upon contact with harmful chemical agents, displaying a clear white initially and turning red when activated. The suit has a recommended lifespan of twenty-four hours once contact with a toxic environment is made, but depending on the severity this can be shortened to eight hours or less. Beyond that point, the accuracy of the detector papers deteriorates significantly, as does the protection of the suit itself." + desc = "M3 MOPP suits are specially designed and engineered to protect the wearer from unshielded exposure to any Chemical, Biological, Radiological, or Nuclear (CBRN) threats in the field. The suit has a recommended lifespan of twenty-four hours once contact with a toxic environment is made, but depending on the severity this can be shortened to eight hours or less." desc_lore = "Since the outbreak of the New Earth Plague in 2157 and the subsequent Interstellar Commerce Commission (ICC) sanctioned decontamination of the colony and its 40 million inhabitants, the abandoned colony has been left under a strict quarantine blockade to prevent any potential scavengers from spreading what’s left of the highly-durable airborne flesh-eating bacteria. Following those events, the three major superpowers have been investing heavily in the development and procurement of CBRN equipment, in no small part due to the extensive damage that the plague and other similar bioweapons could do. The \"Marine 70\" upgrade package and the launch of the M3 pattern armor series saw the first M3-M prototypes approved for CBRN usage." flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE icon_state = "cbrn" diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 0743756a6878..4fe8cc193ce6 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -154,18 +154,18 @@ /obj/item/clothing/accessory/medal/on_attached(obj/item/clothing/S, mob/living/user, silent) . = ..() if(.) - RegisterSignal(S, COMSIG_ITEM_PICKUP, PROC_REF(remove_medal)) + RegisterSignal(S, COMSIG_ITEM_EQUIPPED, PROC_REF(remove_medal)) -/obj/item/clothing/accessory/medal/proc/remove_medal(obj/item/clothing/C, mob/user) +/obj/item/clothing/accessory/medal/proc/remove_medal(obj/item/clothing/C, mob/user, slot) SIGNAL_HANDLER - if(user.real_name != recipient_name) + if(user.real_name != recipient_name && (slot == WEAR_BODY || slot == WEAR_JACKET)) C.remove_accessory(user, src) user.drop_held_item(src) /obj/item/clothing/accessory/medal/on_removed(mob/living/user, obj/item/clothing/C) . = ..() if(.) - UnregisterSignal(C, COMSIG_ITEM_PICKUP) + UnregisterSignal(C, COMSIG_ITEM_EQUIPPED) /obj/item/clothing/accessory/medal/attack(mob/living/carbon/human/H, mob/living/carbon/human/user) if(!(istype(H) && istype(user))) @@ -358,6 +358,11 @@ desc = "An armband, worn by the crew to display which department they're assigned to. This one is white and green." icon_state = "medgreen" +/obj/item/clothing/accessory/armband/nurse + name = "nurse armband" + desc = "An armband, worn by the rookie nurses to display they are still not doctors. This one is dark red." + icon_state = "nurse" + //patches /obj/item/clothing/accessory/patch name = "USCM patch" @@ -746,7 +751,7 @@ w_class = SIZE_LARGE //Allow storage containers that's medium or below storage_slots = null max_w_class = SIZE_MEDIUM - max_storage_space = 6 //weight system like backpacks, hold enough for 2 medium (normal) size items, or 3 small items, or 6 tiny items + max_storage_space = 8 //weight system like backpacks, hold enough for 2 medium (normal) size items, or 4 small items, or 8 tiny items cant_hold = list( //Prevent inventory powergame /obj/item/storage/firstaid, /obj/item/storage/bible, diff --git a/code/modules/cm_aliens/XenoStructures.dm b/code/modules/cm_aliens/XenoStructures.dm index 1f27df25fc52..c014fbf9c211 100644 --- a/code/modules/cm_aliens/XenoStructures.dm +++ b/code/modules/cm_aliens/XenoStructures.dm @@ -94,7 +94,12 @@ else playsound(loc, "alien_resin_break", 25) - health -= (M.melee_damage_upper + 50) //Beef up the damage a bit + var/damage_to_structure = M.melee_damage_upper + XENO_DAMAGE_TIER_7 + // Builders can destroy beefy things in maximum 5 hits + if(isxeno_builder(M)) + health -= max(initial(health) * 0.2, damage_to_structure) + else + health -= damage_to_structure healthcheck() return XENO_ATTACK_ACTION @@ -573,6 +578,9 @@ if(current_mob.stat == DEAD) return FALSE + if(HAS_TRAIT(current_mob, TRAIT_NESTED)) + return FALSE + var/turf/current_turf var/turf/last_turf = loc var/atom/temp_atom = new acid_type() diff --git a/code/modules/cm_aliens/structures/fruit.dm b/code/modules/cm_aliens/structures/fruit.dm index 384da5da39a7..02fdb2da415b 100644 --- a/code/modules/cm_aliens/structures/fruit.dm +++ b/code/modules/cm_aliens/structures/fruit.dm @@ -93,22 +93,6 @@ qdel(src) . = ..() -/obj/effect/alien/resin/fruit/proc/delete_fruit() - //Notify and update the xeno count - if(!QDELETED(bound_xeno)) - if(!picked) - to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We sense one of our fruit has been destroyed.")) - bound_xeno.current_fruits.Remove(src) - var/datum/action/xeno_action/onclick/plant_resin_fruit/prf = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/plant_resin_fruit) - prf.update_button_icon() - - if(picked) // No need to update the number, since the fruit still exists (just as a different item) - return - var/number_of_fruit = length(bound_xeno.current_fruits) - prf.button.set_maptext(SMALL_FONTS_COLOR(7, number_of_fruit, "#e69d00"), 19, 2) - prf.update_button_icon() - bound_xeno = null - /obj/effect/alien/resin/fruit/proc/reduce_timer(maturity_increase) if (mature || timer_id == TIMER_ID_NULL) return @@ -193,7 +177,19 @@ return FALSE /obj/effect/alien/resin/fruit/Destroy() - delete_fruit() + //Notify and update the xeno count + if(!QDELETED(bound_xeno)) + if(!picked) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("We sense one of our fruit has been destroyed.")) + bound_xeno.current_fruits.Remove(src) + + var/number_of_fruit = length(bound_xeno.current_fruits) + var/datum/action/xeno_action/onclick/plant_resin_fruit/plant_action = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/onclick/plant_resin_fruit) + plant_action.button.set_maptext(SMALL_FONTS_COLOR(7, number_of_fruit, "#e69d00"), 19, 2) + plant_action.update_button_icon() + + bound_xeno = null + return ..() //Greater @@ -281,9 +277,9 @@ ..() START_PROCESSING(SSobj, src) -/obj/effect/alien/resin/fruit/spore/delete_fruit() +/obj/effect/alien/resin/fruit/spore/Destroy() STOP_PROCESSING(SSobj, src) - ..() + return ..() /obj/effect/alien/resin/fruit/spore/process() if(mature) diff --git a/code/modules/cm_aliens/structures/trap.dm b/code/modules/cm_aliens/structures/trap.dm index e4b021e98f46..297dd5ff2e0f 100644 --- a/code/modules/cm_aliens/structures/trap.dm +++ b/code/modules/cm_aliens/structures/trap.dm @@ -4,7 +4,7 @@ /obj/effect/alien/resin/trap desc = "It looks like a hiding hole." - name = "resin hole" + name = "resin trap" icon_state = "trap0" density = FALSE opacity = FALSE @@ -12,7 +12,7 @@ health = 5 layer = RESIN_STRUCTURE_LAYER var/list/tripwires = list() - var/hivenumber = XENO_HIVE_NORMAL //Hivenumber of the xeno that planted it OR the last Facehugger that was placed (essentially taking over the hole) + var/hivenumber = XENO_HIVE_NORMAL //Hivenumber of the xeno that planted it OR the last Facehugger that was placed (essentially taking over the trap) var/trap_type = RESIN_TRAP_EMPTY var/armed = 0 var/created_by // ckey @@ -247,7 +247,7 @@ to_chat(B, SPAN_XENOWARNING("You must produce more plasma before doing this.")) return XENO_NO_DELAY_ACTION - to_chat(X, SPAN_XENONOTICE("You begin charging the resin hole with acid gas.")) + to_chat(X, SPAN_XENONOTICE("You begin charging the resin trap with acid gas.")) xeno_attack_delay(X) if(!do_after(B, 30, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src)) return XENO_NO_DELAY_ACTION @@ -268,8 +268,8 @@ playsound(loc, 'sound/effects/refill.ogg', 25, 1) set_state(RESIN_TRAP_GAS) cause_data = create_cause_data("resin gas trap", B) - B.visible_message(SPAN_XENOWARNING("\The [B] pressurises the resin hole with acid gas!"), \ - SPAN_XENOWARNING("You pressurise the resin hole with acid gas!"), null, 5) + B.visible_message(SPAN_XENOWARNING("\The [B] pressurises the resin trap with acid gas!"), \ + SPAN_XENOWARNING("You pressurise the resin trap with acid gas!"), null, 5) else //Non-boiler acid types var/acid_cost = 70 @@ -282,7 +282,7 @@ to_chat(X, SPAN_XENOWARNING("You must produce more plasma before doing this.")) return XENO_NO_DELAY_ACTION - to_chat(X, SPAN_XENONOTICE("You begin charging the resin hole with acid.")) + to_chat(X, SPAN_XENONOTICE("You begin charging the resin trap with acid.")) xeno_attack_delay(X) if(!do_after(X, 3 SECONDS, INTERRUPT_NO_NEEDHAND, BUSY_ICON_HOSTILE, src)) return XENO_NO_DELAY_ACTION @@ -300,8 +300,8 @@ else set_state(RESIN_TRAP_ACID1 + X.acid_level - 1) - X.visible_message(SPAN_XENOWARNING("\The [X] pressurises the resin hole with acid!"), \ - SPAN_XENOWARNING("You pressurise the resin hole with acid!"), null, 5) + X.visible_message(SPAN_XENOWARNING("\The [X] pressurises the resin trap with acid!"), \ + SPAN_XENOWARNING("You pressurise the resin trap with acid!"), null, 5) return XENO_NO_DELAY_ACTION @@ -310,15 +310,15 @@ for(var/turf/T in orange(1,loc)) if(T.density) continue - var/obj/effect/hole_tripwire/HT = new /obj/effect/hole_tripwire(T) - HT.linked_trap = src - tripwires += HT + var/obj/effect/trap_tripwire/new_tripwire = new /obj/effect/trap_tripwire(T) + new_tripwire.linked_trap = src + tripwires += new_tripwire /obj/effect/alien/resin/trap/attackby(obj/item/W, mob/user) if(!(istype(W, /obj/item/clothing/mask/facehugger) && isxeno(user))) return ..() if(trap_type != RESIN_TRAP_EMPTY) - to_chat(user, SPAN_XENOWARNING("You can't put a hugger in this hole!")) + to_chat(user, SPAN_XENOWARNING("You can't put a hugger in this trap!")) return var/obj/item/clothing/mask/facehugger/FH = W if(FH.stat == DEAD) @@ -329,7 +329,7 @@ return if (X.hivenumber != hivenumber) - to_chat(user, SPAN_XENOWARNING("This resin hole doesn't belong to your hive!")) + to_chat(user, SPAN_XENOWARNING("This resin trap doesn't belong to your hive!")) return if (FH.hivenumber != hivenumber) @@ -343,31 +343,34 @@ to_chat(user, SPAN_XENONOTICE("You place a facehugger in [src].")) qdel(FH) +/obj/effect/alien/resin/trap/healthcheck() + if(trap_type != RESIN_TRAP_EMPTY && loc) + trigger_trap() + ..() + /obj/effect/alien/resin/trap/Crossed(atom/A) if(ismob(A) || isVehicleMultitile(A)) HasProximity(A) /obj/effect/alien/resin/trap/Destroy() - if(trap_type != RESIN_TRAP_EMPTY && loc) - trigger_trap() QDEL_NULL_LIST(tripwires) . = ..() -/obj/effect/hole_tripwire - name = "hole tripwire" +/obj/effect/trap_tripwire + name = "trap tripwire" anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT invisibility = 101 unacidable = TRUE //You never know var/obj/effect/alien/resin/trap/linked_trap -/obj/effect/hole_tripwire/Destroy() +/obj/effect/trap_tripwire/Destroy() if(linked_trap) linked_trap.tripwires -= src linked_trap = null . = ..() -/obj/effect/hole_tripwire/Crossed(atom/A) +/obj/effect/trap_tripwire/Crossed(atom/A) if(!linked_trap) qdel(src) return diff --git a/code/modules/cm_aliens/weeds.dm b/code/modules/cm_aliens/weeds.dm index 5298e7ab02f1..d614d87bf9b9 100644 --- a/code/modules/cm_aliens/weeds.dm +++ b/code/modules/cm_aliens/weeds.dm @@ -123,7 +123,7 @@ update_icon() /obj/effect/alien/weeds/node/weak - name = "weak resin node" + name = "weak weed node" health = WEED_HEALTH_STANDARD alpha = 127 @@ -469,7 +469,7 @@ /obj/effect/alien/weeds/node - name = "resin node" + name = "weed node" desc = "A weird, pulsating node." icon_state = "weednode" // Weed nodes start out with normal weed health and become stronger once they've stopped spreading diff --git a/code/modules/cm_marines/Donator_Items.dm b/code/modules/cm_marines/Donator_Items.dm index ffea48b71c84..ac3d8e03852e 100644 --- a/code/modules/cm_marines/Donator_Items.dm +++ b/code/modules/cm_marines/Donator_Items.dm @@ -972,8 +972,11 @@ icon_state = null item_state = null min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT - //DON'T GRAB STUFF BETWEEN THIS LINE - //AND THIS LINE + + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) + //END UNIFORM TEMPLATE /obj/item/clothing/under/marine/fluff/marinemedic //UNUSED @@ -1310,8 +1313,8 @@ /obj/item/clothing/shoes/marine/fluff/vintage //CKEY=vintagepalmer name = "Vintage Sandals" desc = "Vintage Sandals, suitable for only the highest class of hipster. DONOR ITEM" - icon_state = "wizard" - item_state = "wizard" + icon_state = "sandals" + item_state = "sandals" /obj/item/clothing/shoes/marine/fluff/feodrich //CKEY=feodrich (UNIQUE) name = "Doom Shoes" diff --git a/code/modules/cm_marines/dropship_ammo.dm b/code/modules/cm_marines/dropship_ammo.dm index 19086b36c957..93768e218375 100644 --- a/code/modules/cm_marines/dropship_ammo.dm +++ b/code/modules/cm_marines/dropship_ammo.dm @@ -427,7 +427,7 @@ max_ammo_count = 1 ammo_name = "area denial sentry" travelling_time = 0 // handled by droppod - point_cost = 800 + point_cost = 800 //handled by printer accuracy_range = 0 // pinpoint max_inaccuracy = 0 /// Special structures it needs to break with drop pod diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm index 785283541eb8..bd40076ea500 100644 --- a/code/modules/cm_marines/dropship_equipment.dm +++ b/code/modules/cm_marines/dropship_equipment.dm @@ -21,6 +21,7 @@ var/skill_required = SKILL_PILOT_TRAINED var/combat_equipment = TRUE + /obj/structure/dropship_equipment/Destroy() QDEL_NULL(ammo_equipped) if(linked_shuttle) @@ -35,6 +36,7 @@ linked_console = null . = ..() + /obj/structure/dropship_equipment/attack_alien(mob/living/carbon/xenomorph/current_xenomorph) if(unslashable) return XENO_NO_DELAY_ACTION @@ -1144,9 +1146,11 @@ var/list/possible_fultons = get_targets() - var/obj/item/stack/fulton/fult = possible_fultons[fulton_choice] if(!fulton_choice) return + // Strip any \proper or \improper in order to match the entry in possible_fultons. + fulton_choice = strip_improper(fulton_choice) + var/obj/item/stack/fulton/fult = possible_fultons[fulton_choice] if(!ship_base) //system was uninstalled midway return diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm index 0cf097cb9b4c..22999e97fda2 100644 --- a/code/modules/cm_marines/equipment/guncases.dm +++ b/code/modules/cm_marines/equipment/guncases.dm @@ -348,6 +348,30 @@ new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle)) new /obj/item/tool/screwdriver(src) // Spotter scope needs a screwdriver to disassemble +/obj/item/storage/box/guncase/vulture/holo_target + name = "\improper M707 holo-targetting anti-materiel rifle case" + desc = "A gun case containing the M707 \"Vulture\" anti-materiel rifle and its requisite spotting tools. This variant is pre-loaded with IFF-CAPABLE holo-targeting rounds." + +/obj/item/storage/box/guncase/vulture/holo_target/fill_preset_inventory() + var/obj/item/weapon/gun/boltaction/vulture/holo_target/rifle = new(src) + new /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target(src) + new /obj/item/device/vulture_spotter_tripod(src) + new /obj/item/device/vulture_spotter_scope(src, WEAKREF(rifle)) + new /obj/item/tool/screwdriver(src) + new /obj/item/pamphlet/trait/vulture(src) + new /obj/item/pamphlet/trait/vulture(src) + +/obj/item/storage/box/guncase/vulture/holo_target/skillless + storage_slots = 5 + +/obj/item/storage/box/guncase/vulture/holo_target/skillless/fill_preset_inventory() + var/obj/item/weapon/gun/boltaction/vulture/holo_target/skillless/rifle = new(src) + new /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target(src) + new /obj/item/device/vulture_spotter_tripod(src) + new /obj/item/device/vulture_spotter_scope/skillless(src, WEAKREF(rifle)) + new /obj/item/tool/screwdriver(src) + + /obj/item/storage/box/guncase/xm51 name = "\improper XM51 breaching scattergun case" desc = "A gun case containing the XM51 Breaching Scattergun. Comes with two spare magazines, two spare shell boxes, an optional stock and a belt to holster the weapon." diff --git a/code/modules/cm_marines/vehicle_part_fabricator.dm b/code/modules/cm_marines/vehicle_part_fabricator.dm index 0095ff54a2ab..fd9b0faafa61 100644 --- a/code/modules/cm_marines/vehicle_part_fabricator.dm +++ b/code/modules/cm_marines/vehicle_part_fabricator.dm @@ -10,8 +10,8 @@ icon_state = "drone_fab_idle" var/busy = FALSE var/generate_points = TRUE - var/valid_parts = null - var/valid_ammo = null + var/omnisentry_price_scale = 100 + var/omnisentry_price = 300 /obj/structure/machinery/part_fabricator/New() ..() @@ -28,7 +28,8 @@ /obj/structure/machinery/part_fabricator/dropship/ui_data(mob/user) return list( - "points" = get_point_store() + "points" = get_point_store(), + "omnisentrygun_price" = omnisentry_price ) /obj/structure/machinery/part_fabricator/power_change() @@ -53,11 +54,15 @@ /obj/structure/machinery/part_fabricator/proc/build_part(part_type, cost, mob/user) set waitfor = 0 if(stat & NOPOWER) return + if(ispath(part_type,/obj/structure/ship_ammo/sentry)) + cost = omnisentry_price if(get_point_store() < cost) to_chat(user, SPAN_WARNING("You don't have enough points to build that.")) return visible_message(SPAN_NOTICE("[src] starts printing something.")) spend_point_store(cost) + if(ispath(part_type,/obj/structure/ship_ammo/sentry)) + omnisentry_price += omnisentry_price_scale icon_state = "drone_fab_active" busy = TRUE addtimer(CALLBACK(src, PROC_REF(do_build_part), part_type), 10 SECONDS) @@ -68,7 +73,7 @@ new part_type(get_step(src, SOUTHEAST)) icon_state = "drone_fab_idle" -/obj/structure/machinery/part_fabricator/ui_act(action, params) +/obj/structure/machinery/part_fabricator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -77,27 +82,33 @@ to_chat(usr, SPAN_WARNING("The [name] is busy. Please wait for completion of previous operation.")) return - if(action == "produce") - var/produce = text2path(params["path"]) - var/cost = text2num(params["cost"]) - var/exploiting = TRUE - - if (valid_parts && ispath(produce, valid_parts)) - exploiting = FALSE - else if (valid_ammo && ispath(produce, valid_ammo)) - exploiting = FALSE + var/mob/user = ui.user - if (cost < 0) - exploiting = TRUE + if(action == "produce") + var/cost = 0 + var/is_ammo = params["is_ammo"] + var/index = params["index"] + + if(is_ammo == 0) + var/obj/structure/dropship_equipment/produce = (typesof(/obj/structure/dropship_equipment))[index] + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && produce.combat_equipment) + log_admin("Bad topic: [user] may be trying to HREF exploit [src] to bypass no combat cas") + return + cost = initial(produce.point_cost) + build_part(produce, cost, user) + return - if (exploiting) - log_admin("Bad topic: [usr] may be trying to HREF exploit [src] with [produce], [cost]") + else + var/obj/structure/ship_ammo/produce = (typesof(/obj/structure/ship_ammo))[index] + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && produce.combat_equipment) + log_admin("Bad topic: [user] may be trying to HREF exploit [src] to bypass no combat cas") + return + cost = initial(produce.point_cost) + build_part(produce, cost, user) return - build_part(produce, cost, usr) - return else - log_admin("Bad topic: [usr] may be trying to HREF exploit [src]") + log_admin("Bad topic: [user] may be trying to HREF exploit [src]") return /obj/structure/machinery/part_fabricator/attack_hand(mob/user) @@ -116,12 +127,11 @@ name = "dropship part fabricator" desc = "A large automated 3D printer for producing dropship parts. You can recycle parts or ammo in it, and get 80% of your points back, by clicking it while holding them in a powerloader claw." req_access = list(ACCESS_MARINE_DROPSHIP) - valid_parts = /obj/structure/dropship_equipment - valid_ammo = /obj/structure/ship_ammo unslashable = TRUE unacidable = TRUE + /obj/structure/machinery/part_fabricator/dropship/get_point_store() return GLOB.supply_controller.dropship_points @@ -134,86 +144,100 @@ /obj/structure/machinery/part_fabricator/dropship/ui_static_data(mob/user) var/list/static_data = list() static_data["Equipment"] = list() + var/is_ammo = 0 + var/index = 1 for(var/build_type in typesof(/obj/structure/dropship_equipment)) - var/obj/structure/dropship_equipment/DE = build_type - if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && initial(DE.combat_equipment)) + var/obj/structure/dropship_equipment/dropship_equipment_data = build_type + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && dropship_equipment_data.combat_equipment) + index += 1 continue - var/build_name = initial(DE.name) - var/build_description = initial(DE.desc) - var/build_cost = initial(DE.point_cost) + var/build_name = initial(dropship_equipment_data.name) + var/build_description = initial(dropship_equipment_data.desc) + var/build_cost = initial(dropship_equipment_data.point_cost) if(build_cost) static_data["Equipment"] += list(list( "name" = capitalize_first_letters(build_name), "desc" = build_description, - "path" = build_type, - "cost" = build_cost + "cost" = build_cost, + "index" = index, + "is_ammo" = is_ammo )) + index += 1 static_data["Ammo"] = list() + is_ammo = 1 + index = 1 for(var/build_type in typesof(/obj/structure/ship_ammo)) - var/obj/structure/ship_ammo/SA = build_type - if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && initial(SA.combat_equipment)) + var/obj/structure/ship_ammo/ship_ammo_data = build_type + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_NO_COMBAT_CAS) && ship_ammo_data.combat_equipment) + index = index + 1 continue - var/build_name = initial(SA.name) - var/build_description = initial(SA.desc) - var/build_cost = initial(SA.point_cost) + var/build_name = initial(ship_ammo_data.name) + var/build_description = initial(ship_ammo_data.desc) + var/build_cost = initial(ship_ammo_data.point_cost) if(build_cost) static_data["Ammo"] += list(list( "name" = capitalize_first_letters(build_name), "desc" = build_description, - "path" = build_type, - "cost" = build_cost + "cost" = build_cost, + "index" = index, + "is_ammo" = is_ammo )) + index += 1 return static_data /obj/structure/machinery/part_fabricator/dropship/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/powerloader_clamp)) - var/obj/item/powerloader_clamp/PC = I - recycle_equipment(PC, user) + var/obj/item/powerloader_clamp/powerloader_clamp_used = I + recycle_equipment(powerloader_clamp_used, user) return return ..() -/obj/structure/machinery/part_fabricator/dropship/proc/recycle_equipment(obj/item/powerloader_clamp/PC, mob/living/user) - if(!PC.loaded) - to_chat(user, SPAN_WARNING("There is nothing loaded in \the [PC].")) +/obj/structure/machinery/part_fabricator/dropship/proc/recycle_equipment(obj/item/powerloader_clamp/powerloader_clamp_used, mob/living/user) + if(!powerloader_clamp_used.loaded) + to_chat(user, SPAN_WARNING("There is nothing loaded in \the [powerloader_clamp_used].")) return var/recycle_points - if(istype(PC.loaded, /obj/structure/dropship_equipment)) - var/obj/structure/dropship_equipment/SE = PC.loaded - recycle_points = SE.point_cost - else if(istype(PC.loaded, /obj/structure/ship_ammo)) - var/obj/structure/ship_ammo/SE = PC.loaded - if(!SE.ammo_count) - to_chat(user, SPAN_WARNING("\The [SE] is empty!")) + if(istype(powerloader_clamp_used.loaded, /obj/structure/dropship_equipment)) + var/obj/structure/dropship_equipment/sold_eqipment = powerloader_clamp_used.loaded + recycle_points = sold_eqipment.point_cost + else if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo)) + var/obj/structure/ship_ammo/sold_eqipment = powerloader_clamp_used.loaded + if(!sold_eqipment.ammo_count) + to_chat(user, SPAN_WARNING("\The [sold_eqipment] is empty!")) return - if(SE.ammo_count != SE.max_ammo_count) - recycle_points = (SE.point_cost * (SE.ammo_count / SE.max_ammo_count)) - to_chat(user, SPAN_WARNING("\The [SE] is not fully loaded, and less points will be able to be refunded.")) + if(sold_eqipment.ammo_count != sold_eqipment.max_ammo_count) + recycle_points = (sold_eqipment.point_cost * (sold_eqipment.ammo_count / sold_eqipment.max_ammo_count)) + to_chat(user, SPAN_WARNING("\The [sold_eqipment] is not fully loaded, and less points will be able to be refunded.")) else - recycle_points = SE.point_cost + recycle_points = sold_eqipment.point_cost + if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo/sentry)) + recycle_points = omnisentry_price - omnisentry_price_scale if(!recycle_points) - to_chat(user, SPAN_WARNING("\The [PC.loaded] can't be recycled!")) + to_chat(user, SPAN_WARNING("\The [powerloader_clamp_used.loaded] can't be recycled!")) return - var/thing_to_recycle = PC.loaded - to_chat(user, SPAN_WARNING("You start recycling \the [PC.loaded]!")) + var/thing_to_recycle = powerloader_clamp_used.loaded + to_chat(user, SPAN_WARNING("You start recycling \the [powerloader_clamp_used.loaded]!")) playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, 1) - if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, PC.loaded, INTERRUPT_ALL)) + if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE, powerloader_clamp_used.loaded, INTERRUPT_ALL)) to_chat(user, SPAN_NOTICE("You stop recycling \the [thing_to_recycle].")) return - for(var/obj/thing as anything in PC.loaded) + if(istype(powerloader_clamp_used.loaded, /obj/structure/ship_ammo/sentry)) + omnisentry_price -= omnisentry_price_scale + for(var/obj/thing as anything in powerloader_clamp_used.loaded) thing.forceMove(loc) // no sentries popping out when we qdel please qdel(thing) - qdel(PC.loaded) - PC.loaded = null + qdel(powerloader_clamp_used.loaded) + powerloader_clamp_used.loaded = null to_chat(user, SPAN_NOTICE("You recycle \the [thing_to_recycle] into [src], and get back [round(recycle_points * 0.8)] points.")) msg_admin_niche("[key_name(user)] recycled a [thing_to_recycle] into \the [src] for [round(recycle_points * 0.8)] points.") add_to_point_store(round(recycle_points * 0.8)) playsound(loc, 'sound/machines/fax.ogg', 40, 1) - PC.update_icon() + powerloader_clamp_used.update_icon() // WARNING: IF YOU DECIDE TO READD THIS, GIVE THE HARDPOINTS POINT COSTS @@ -223,8 +247,6 @@ desc = "A large automated 3D printer for producing vehicle parts." req_access = list(ACCESS_MARINE_CREWMAN) generate_points = FALSE - valid_parts = /obj/item/hardpoint - valid_ammo = /obj/item/ammo_magazine/hardpoint unacidable = TRUE indestructible = TRUE @@ -242,9 +264,9 @@ var/list/static_data = list() static_data["Equipment"] = list() for(var/build_type in typesof(/obj/item/hardpoint)) - var/obj/item/hardpoint/TE = build_type - var/build_name = initial(TE.name) - var/build_description = initial(TE.desc) + var/obj/item/hardpoint/hardpoint_data = build_type + var/build_name = initial(hardpoint_data.name) + var/build_description = initial(hardpoint_data.desc) var/build_cost = 0 if(build_cost) static_data["Equipment"] += list(list( @@ -256,9 +278,9 @@ static_data["Ammo"] = list() for(var/build_type in typesof(/obj/item/ammo_magazine/hardpoint)) - var/obj/item/ammo_magazine/hardpoint/TA = build_type - var/build_name = initial(TA.name) - var/build_description = initial(TA.desc) + var/obj/item/ammo_magazine/hardpoint/ammo_data = build_type + var/build_name = initial(ammo_data.name) + var/build_description = initial(ammo_data.desc) var/build_cost = 0 if(build_cost) static_data["Ammo"] += list(list( diff --git a/code/modules/cm_preds/yaut_weapons.dm b/code/modules/cm_preds/yaut_weapons.dm index 9cb8a8bef3fc..34233f2ee9cd 100644 --- a/code/modules/cm_preds/yaut_weapons.dm +++ b/code/modules/cm_preds/yaut_weapons.dm @@ -938,7 +938,7 @@ /obj/item/weapon/gun/energy/yautja/plasmarifle/set_gun_config_values() ..() - set_fire_delay(FIRE_DELAY_TIER_6*2) + set_fire_delay(FIRE_DELAY_TIER_4*2) accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_10 accuracy_mult_unwielded = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_10 scatter = SCATTER_AMOUNT_TIER_6 diff --git a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm index 16f0f26576a3..acee904af305 100644 --- a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm +++ b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm @@ -21,4 +21,4 @@ /datum/tech/cryomarine/on_unlock() . = ..() - SSticker.mode.get_specific_call("Marine Cryo Reinforcement (Spec)", TRUE, FALSE) + SSticker.mode.get_specific_call(/datum/emergency_call/cryo_spec, TRUE, FALSE) // "Marine Cryo Reinforcement (Spec)" diff --git a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm index 49b4eea8f525..404fbd07c2ae 100644 --- a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm +++ b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm @@ -23,4 +23,4 @@ /datum/tech/repeatable/cryomarine/on_unlock() . = ..() - SSticker.mode.get_specific_call("Marine Cryo Reinforcements (Tech)", TRUE, FALSE) + SSticker.mode.get_specific_call(/datum/emergency_call/cryo_squad/tech, TRUE, FALSE) // "Marine Cryo Reinforcements (Tech)" diff --git a/code/modules/defenses/bell_tower.dm b/code/modules/defenses/bell_tower.dm index 6939557342f0..b4741734e0f4 100644 --- a/code/modules/defenses/bell_tower.dm +++ b/code/modules/defenses/bell_tower.dm @@ -18,11 +18,11 @@ can_be_near_defense = TRUE choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index fefd3c640c65..aedbad2d46e9 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -134,7 +134,7 @@ */ /obj/structure/machinery/defenses/proc/handle_iff(selection) switch(selection) - if(FACTION_USCM) + if(FACTION_MARINE) faction_group = FACTION_LIST_MARINE if(FACTION_WEYLAND) faction_group = FACTION_LIST_MARINE_WY diff --git a/code/modules/defenses/planted_flag.dm b/code/modules/defenses/planted_flag.dm index fac725047fa9..12bcab9b0475 100644 --- a/code/modules/defenses/planted_flag.dm +++ b/code/modules/defenses/planted_flag.dm @@ -16,11 +16,11 @@ can_be_near_defense = TRUE choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index bfb44a38a6a5..a02e4e7808c9 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -45,12 +45,12 @@ /// action list is configurable for all subtypes, this is just an example choice_categories = list( // SENTRY_CATEGORY_ROF = list(ROF_SINGLE, ROF_BURST, ROF_FULL_AUTO), - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( // SENTRY_CATEGORY_ROF = ROF_SINGLE, - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) /obj/structure/machinery/defenses/sentry/Initialize() @@ -478,7 +478,7 @@ /obj/structure/machinery/defenses/sentry/premade/Initialize() . = ..() if(selected_categories[SENTRY_CATEGORY_IFF]) - selected_categories[SENTRY_CATEGORY_IFF] = FACTION_USCM + selected_categories[SENTRY_CATEGORY_IFF] = FACTION_MARINE /obj/structure/machinery/defenses/sentry/premade/get_examine_text(mob/user) . = ..() @@ -562,11 +562,11 @@ handheld_type = /obj/item/defenses/handheld/sentry/dmr choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index 9ae794e3c811..f884b4ec5d14 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -11,12 +11,12 @@ choice_categories = list( // SENTRY_CATEGORY_ROF = list(ROF_SINGLE, ROF_FULL_AUTO), - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( SENTRY_CATEGORY_ROF = ROF_SINGLE, - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) /obj/structure/machinery/defenses/sentry/flamer/handle_rof(level) diff --git a/code/modules/defenses/tesla_coil.dm b/code/modules/defenses/tesla_coil.dm index 4c0888e28f6d..cb0646b29775 100644 --- a/code/modules/defenses/tesla_coil.dm +++ b/code/modules/defenses/tesla_coil.dm @@ -20,11 +20,11 @@ has_camera = FALSE choice_categories = list( - SENTRY_CATEGORY_IFF = list(FACTION_USCM, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN), ) selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_USCM, + SENTRY_CATEGORY_IFF = FACTION_MARINE, ) diff --git a/code/modules/desert_dam/motion_sensor/sensortower.dm b/code/modules/desert_dam/motion_sensor/sensortower.dm index 50aeede45f66..a3f33d4da078 100644 --- a/code/modules/desert_dam/motion_sensor/sensortower.dm +++ b/code/modules/desert_dam/motion_sensor/sensortower.dm @@ -65,7 +65,7 @@ /obj/structure/machinery/sensortower/proc/add_xenos_to_minimap() for(var/mob/living/carbon/xenomorph/current_xeno as anything in GLOB.living_xeno_list) if(WEAKREF(current_xeno) in minimap_added) - return + continue SSminimaps.remove_marker(current_xeno) current_xeno.add_minimap_marker(MINIMAP_FLAG_USCM|get_minimap_flag_for_faction(current_xeno.hivenumber)) diff --git a/code/modules/dropships/attach_points/attach_point.dm b/code/modules/dropships/attach_points/attach_point.dm index 7230e67e0af1..6fef4d58e785 100644 --- a/code/modules/dropships/attach_points/attach_point.dm +++ b/code/modules/dropships/attach_points/attach_point.dm @@ -27,44 +27,45 @@ /obj/effect/attach_point/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/powerloader_clamp)) - var/obj/item/powerloader_clamp/PC = I - install_equipment(PC, user) + var/obj/item/powerloader_clamp/clamp = I + install_equipment(clamp, user) return TRUE return ..() /// Called when a real user with a powerloader attempts to install an equipment on the attach point -/obj/effect/attach_point/proc/install_equipment(obj/item/powerloader_clamp/PC, mob/living/user) - if(!istype(PC.loaded, /obj/structure/dropship_equipment)) +/obj/effect/attach_point/proc/install_equipment(obj/item/powerloader_clamp/clamp, mob/living/user) + if(!istype(clamp.loaded, /obj/structure/dropship_equipment)) + return + var/obj/structure/dropship_equipment/ds_equipment = clamp.loaded + if(!(base_category in ds_equipment.equip_categories)) + to_chat(user, SPAN_WARNING("[ds_equipment] doesn't fit on [src].")) return - var/obj/structure/dropship_equipment/SE = PC.loaded - if(!(base_category in SE.equip_categories)) - to_chat(user, SPAN_WARNING("[SE] doesn't fit on [src].")) - return TRUE if(installed_equipment) - return TRUE - playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, 1) + return + playsound(loc, 'sound/machines/hydraulics_1.ogg', 40, TRUE) var/point_loc = loc if(!user || !do_after(user, (7 SECONDS) * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - return TRUE + return if(loc != point_loc)//dropship flew away - return TRUE - if(installed_equipment || PC.loaded != SE) - return TRUE - to_chat(user, SPAN_NOTICE("You install [SE] on [src].")) - SE.forceMove(loc) - PC.loaded = null - playsound(loc, 'sound/machines/hydraulics_2.ogg', 40, 1) - PC.update_icon() - installed_equipment = SE - SE.ship_base = src + return + if(installed_equipment || clamp.loaded != ds_equipment) + return + to_chat(user, SPAN_NOTICE("You install [ds_equipment] on [src].")) + ds_equipment.forceMove(loc) + clamp.loaded = null + playsound(loc, 'sound/machines/hydraulics_2.ogg', 40, TRUE) + clamp.update_icon() + installed_equipment = ds_equipment + ds_equipment.ship_base = src + ds_equipment.plane = plane for(var/obj/docking_port/mobile/marine_dropship/shuttle in SSshuttle.mobile) if(shuttle.id == ship_tag) - SE.linked_shuttle = shuttle - SEND_SIGNAL(shuttle, COMSIG_DROPSHIP_ADD_EQUIPMENT, SE) + ds_equipment.linked_shuttle = shuttle + SEND_SIGNAL(shuttle, COMSIG_DROPSHIP_ADD_EQUIPMENT, ds_equipment) break - SE.update_equipment() + ds_equipment.update_equipment() /// Weapon specific attachment point /obj/effect/attach_point/weapon diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm index a5f061e1a727..6e22fd12d58a 100644 --- a/code/modules/economy/economy_misc.dm +++ b/code/modules/economy/economy_misc.dm @@ -75,27 +75,6 @@ GLOBAL_VAR_INIT(economy_init, FALSE) if(GLOB.economy_init) return 2 - var/datum/feed_channel/newChannel = new /datum/feed_channel - newChannel.channel_name = "Public Station Announcements" - newChannel.author = "Automated Announcement Listing" - newChannel.locked = 1 - newChannel.is_admin_channel = 1 - GLOB.news_network.network_channels += newChannel - - newChannel = new /datum/feed_channel - newChannel.channel_name = "Nyx Daily" - newChannel.author = "CentComm Minister of Information" - newChannel.locked = 1 - newChannel.is_admin_channel = 1 - GLOB.news_network.network_channels += newChannel - - newChannel = new /datum/feed_channel - newChannel.channel_name = "The Gibson Gazette" - newChannel.author = "Editor Mike Hammers" - newChannel.locked = 1 - newChannel.is_admin_channel = 1 - GLOB.news_network.network_channels += newChannel - for(var/loc_type in typesof(/datum/trade_destination) - /datum/trade_destination) var/datum/trade_destination/D = new loc_type GLOB.weighted_randomevent_locations[D] = D.viable_random_events.len diff --git a/code/modules/escape_menu/escape_menu.dm b/code/modules/escape_menu/escape_menu.dm index c31234678b62..b61bbd5b3f36 100644 --- a/code/modules/escape_menu/escape_menu.dm +++ b/code/modules/escape_menu/escape_menu.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_EMPTY(escape_menus) show_page() RegisterSignal(client, COMSIG_PARENT_QDELETING, PROC_REF(on_client_qdel)) - RegisterSignal(client, COMSIG_CLIENT_MOB_LOGIN, PROC_REF(on_client_mob_login)) + RegisterSignal(client, COMSIG_CLIENT_MOB_LOGGED_IN, PROC_REF(on_client_mob_login)) if (!isnull(ckey)) GLOB.escape_menus[ckey] = src diff --git a/code/modules/gear_presets/_select_equipment.dm b/code/modules/gear_presets/_select_equipment.dm index 5a5ecea2d03d..5311a7a79a3b 100644 --- a/code/modules/gear_presets/_select_equipment.dm +++ b/code/modules/gear_presets/_select_equipment.dm @@ -149,9 +149,9 @@ load_skills(new_human, mob_client) //skills are set before equipment because of skill restrictions on certain clothes. load_languages(new_human, mob_client) load_age(new_human, mob_client) + load_id(new_human, mob_client) if(show_job_gear) load_gear(new_human, mob_client) - load_id(new_human, mob_client) load_status(new_human, mob_client) load_vanity(new_human, mob_client) load_traits(new_human, mob_client) @@ -201,7 +201,7 @@ qdel(R) if(flags & EQUIPMENT_PRESET_MARINE) - var/playtime = get_job_playtime(new_human.client, assignment) + var/playtime = get_job_playtime(new_human.client, rank) var/medal_type switch(playtime) @@ -220,7 +220,7 @@ if(medal_type) var/obj/item/clothing/accessory/medal/medal = new medal_type() medal.recipient_name = new_human.real_name - medal.recipient_rank = current_rank + medal.recipient_rank = assignment if(new_human.wear_suit && new_human.wear_suit.can_attach_accessory(medal)) new_human.wear_suit.attach_accessory(new_human, medal, TRUE) diff --git a/code/modules/gear_presets/clf.dm b/code/modules/gear_presets/clf.dm index 7748f4e0c558..9c05ff8fa5fc 100644 --- a/code/modules/gear_presets/clf.dm +++ b/code/modules/gear_presets/clf.dm @@ -745,36 +745,43 @@ /datum/equipment_preset/clf/synth/load_race(mob/living/carbon/human/new_human) new_human.set_species(SYNTH_COLONY_GEN_ONE) -/datum/equipment_preset/clf/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) - var/obj/item/clothing/under/colonist/clf/CLF = new() - var/obj/item/clothing/accessory/storage/webbing/W = new() - CLF.attach_accessory(new_human, W) - new_human.equip_to_slot_or_del(CLF, WEAR_BODY) +/datum/equipment_preset/clf/synth/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = FALSE +/datum/equipment_preset/clf/synth/load_gear(mob/living/carbon/human/new_human) + //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/ert, WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) - - spawn_weapon(/obj/item/weapon/gun/rifle/mar40/carbine, /obj/item/ammo_magazine/rifle/mar40/extended, new_human, 0, 10) - new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher/mini, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) + //face + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/command(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet/upp, WEAR_FACE) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/prescription(new_human), WEAR_EYES) else new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) + //head + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/jan, WEAR_HEAD) + //body + var/obj/item/clothing/under/colonist/clf/CLF = new() + var/obj/item/clothing/accessory/storage/webbing/webbing = new() + CLF.attach_accessory(new_human, webbing) + new_human.equip_to_slot_or_del(CLF, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/militia, WEAR_JACKET) + //waist + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/full/with_suture_and_graft, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_IN_BELT) + //limbs + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat, WEAR_FEET) + //pockets + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/synth, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_R_STORE) /datum/equipment_preset/clf/synth/get_antag_clothing_equipment() return list( diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm index 9de9d11607c2..7bf6cbb8325d 100644 --- a/code/modules/gear_presets/cmb.dm +++ b/code/modules/gear_presets/cmb.dm @@ -51,7 +51,7 @@ var/obj/item/clothing/under/uniform = new_human.w_uniform if(istype(uniform)) uniform.has_sensor = UNIFORM_HAS_SENSORS - uniform.sensor_faction = FACTION_USCM + uniform.sensor_faction = FACTION_MARINE return ..() //*****************************************************************************************************/ @@ -162,7 +162,7 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar, WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB/marshal, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717, WEAR_J_STORE) @@ -242,7 +242,6 @@ new_human.set_species(SYNTH_COLONY) /datum/equipment_preset/cmb/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //backpack new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/security, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_BACK) diff --git a/code/modules/gear_presets/contractor.dm b/code/modules/gear_presets/contractor.dm index bbea2a74339f..3f0cdecb9ac2 100644 --- a/code/modules/gear_presets/contractor.dm +++ b/code/modules/gear_presets/contractor.dm @@ -289,10 +289,10 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/roller, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/roller/surgical, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_BACK) //Line in vest. new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/box/packet/smoke, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40/extended, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/mar40, WEAR_IN_BACK) //*****************************************************************************************************/ @@ -395,7 +395,6 @@ new_human.set_species(SYNTH_GEN_THREE) /datum/equipment_preset/contractor/duty/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/black, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) //1 @@ -782,7 +781,6 @@ new_human.set_species(SYNTH_GEN_THREE) /datum/equipment_preset/contractor/covert/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/smartpack/black, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator, WEAR_IN_BACK) //1 diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm index cfec62a3c65b..cbe8bc0abce4 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -988,7 +988,7 @@ paygrade = PAY_SHORT_ME5 idtype = /obj/item/card/id/dogtag role_comm_title = "FORECON" - faction_group = list(FACTION_USCM, FACTION_SURVIVOR) + faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_ENGINEERING, diff --git a/code/modules/gear_presets/other.dm b/code/modules/gear_presets/other.dm index cc9fcf269a4d..99b8bf634eed 100644 --- a/code/modules/gear_presets/other.dm +++ b/code/modules/gear_presets/other.dm @@ -861,7 +861,6 @@ var/datum/preferences/A = new A.randomize_appearance(new_human) - /datum/equipment_preset/other/professor_dummy/load_race(mob/living/carbon/human/new_human) . = ..() //Can't hug the dummy! Otherwise it's basically human... @@ -870,7 +869,7 @@ /datum/equipment_preset/other/professor_dummy/load_gear(mob/living/carbon/human/new_human) var/obj/item/device/professor_dummy_tablet/tablet = new /obj/item/device/professor_dummy_tablet(new_human) - tablet.link_mob(new_human) + tablet.link_dummy(new_human) new_human.equip_to_slot_or_del(tablet, WEAR_R_HAND) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical, WEAR_BODY) diff --git a/code/modules/gear_presets/royal_marines.dm b/code/modules/gear_presets/royal_marines.dm index b916a52c4b6f..aa33eac97733 100644 --- a/code/modules/gear_presets/royal_marines.dm +++ b/code/modules/gear_presets/royal_marines.dm @@ -1,7 +1,7 @@ /datum/equipment_preset/twe name = "Three World Empire" faction = FACTION_TWE - faction_group = list(FACTION_TWE, FACTION_USCM) + faction_group = list(FACTION_TWE, FACTION_MARINE) languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) /datum/equipment_preset/twe/royal_marine/load_name(mob/living/carbon/human/new_human, randomise) diff --git a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm index 34cbc8e0ab9c..c4e08af9dcfa 100644 --- a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm +++ b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm @@ -5,7 +5,7 @@ idtype = /obj/item/card/id/dogtag role_comm_title = "FORECON" rank = JOB_SURVIVOR - faction_group = list(FACTION_USCM, FACTION_SURVIVOR) + faction_group = list(FACTION_MARINE, FACTION_SURVIVOR) flags = EQUIPMENT_PRESET_START_OF_ROUND access = list( ACCESS_CIVILIAN_PUBLIC, diff --git a/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm b/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm new file mode 100644 index 000000000000..2c8ec04594ad --- /dev/null +++ b/code/modules/gear_presets/survivors/lv_624/corporate_dome_insert_lv624.dm @@ -0,0 +1,51 @@ +// /obj/effect/landmark/survivor_spawner/lv624_corporate_dome/cl +// corporatedomehold.dmm + +/datum/equipment_preset/survivor/wy/executive + name = "Survivor - LV-624 Paranoid Corporate Liaison" + flags = EQUIPMENT_PRESET_START_OF_ROUND + paygrade = PAY_SHORT_WYC5 + skills = /datum/skills/civilian/survivor/manager + assignment = "LV-624 Corporate Liaison" + idtype = /obj/item/card/id/silver/clearance_badge/cl + faction_group = list(FACTION_WY, FACTION_SURVIVOR) + access = list( + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, + ACCESS_WY_MEDICAL, + ACCESS_WY_SECURITY, + ACCESS_WY_RESEARCH, + ACCESS_WY_ARMORY, + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ) + languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_RUSSIAN) + + survivor_variant = CORPORATE_SURVIVOR + +/datum/equipment_preset/survivor/wy/executive/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/field(new_human), WEAR_BODY) + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) + if(new_human.disabilities & NEARSIGHTED) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/secure/briefcase(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/med_small_stack(new_human), WEAR_IN_BACK) + add_random_cl_survivor_loot(new_human) + add_random_cl_survivor_loot(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/survival/full(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) diff --git a/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm b/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm new file mode 100644 index 000000000000..9f1e2c705efb --- /dev/null +++ b/code/modules/gear_presets/survivors/shivas_snowball/panic_room_insert_shivas.dm @@ -0,0 +1,43 @@ +// /obj/effect/landmark/survivor_spawner/shivas_assistant_manager +// panic_room_insert_shivas.dmm + +/datum/equipment_preset/survivor/wy/asstmanager + name = "Survivor - Corporate Assistant Manager" + flags = EQUIPMENT_PRESET_EXTRA + paygrade = PAY_SHORT_WYC7 + skills = /datum/skills/civilian/survivor/manager + assignment = "Assistant Operations Manager" + idtype = /obj/item/card/id/silver/clearance_badge/manager + faction_group = list(FACTION_WY, FACTION_SURVIVOR) + access = list( + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, + ACCESS_WY_MEDICAL, + ACCESS_WY_SECURITY, + ACCESS_WY_RESEARCH, + ACCESS_WY_ARMORY, + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ) + languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) + + survivor_variant = CORPORATE_SURVIVOR + +/datum/equipment_preset/survivor/wy/asstmanager/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/manager(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/grant, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/survivor/parka/navy(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_R_STORE) + add_survivor_weapon_civilian(new_human) + ..() diff --git a/code/modules/gear_presets/survivors/solaris/preset_solaris.dm b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm index 91dd05ef8154..2d0f634a6948 100644 --- a/code/modules/gear_presets/survivors/solaris/preset_solaris.dm +++ b/code/modules/gear_presets/survivors/solaris/preset_solaris.dm @@ -6,7 +6,7 @@ /datum/equipment_preset/survivor/trucker/solaris/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/worker_overalls(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/apron/overalls(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/red(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/trucker/red(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(new_human), WEAR_EYES) ..() diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm index 9240d1782912..0cecaccce43d 100644 --- a/code/modules/gear_presets/survivors/survivors.dm +++ b/code/modules/gear_presets/survivors/survivors.dm @@ -301,6 +301,7 @@ Everything bellow is a parent used as a base for one or multiple maps. skills = /datum/skills/civilian/survivor flags = EQUIPMENT_PRESET_START_OF_ROUND paygrade = PAY_SHORT_WYC2 + faction_group = FACTION_LIST_SURVIVOR_WY idtype = /obj/item/card/id/silver/clearance_badge/cl access = list( ACCESS_CIVILIAN_PUBLIC, @@ -381,7 +382,7 @@ Everything bellow is a parent used as a base for one or multiple maps. access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_LOGISTICS,ACCESS_WY_FLIGHT) /datum/equipment_preset/survivor/flight_control_operator/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/bluesuit(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/workwear/khaki(new_human), WEAR_BODY) if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/windbreaker/windbreaker_brown(new_human), WEAR_JACKET) @@ -425,10 +426,11 @@ Everything bellow is a parent used as a base for one or multiple maps. name = "Survivor - Interstellar Commerce Commission Liaison" assignment = "Interstellar Commerce Commission Corporate Liaison" skills = /datum/skills/civilian/survivor - idtype = /obj/item/card/id/silver/cl + flags = EQUIPMENT_PRESET_START_OF_ROUND paygrade = PAY_SHORT_ICCL + faction_group = FACTION_LIST_SURVIVOR_WY + idtype = /obj/item/card/id/silver/cl role_comm_title = "ICC Rep." - flags = EQUIPMENT_PRESET_START_OF_ROUND survivor_variant = CORPORATE_SURVIVOR diff --git a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm index f62010539d77..405496d8f496 100644 --- a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm +++ b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm @@ -64,7 +64,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/trucker(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/tool/weldingtool/hugetank(new_human), WEAR_IN_BACK) ..() diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index 0b3b4d4ecfb5..e73db8431f32 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -2590,7 +2590,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/upp/synth - name = "UPP Combat Synthetic" + name = "UPP Synthetic" flags = EQUIPMENT_PRESET_EXTRA languages = ALL_SYNTH_LANGUAGES_UPP @@ -2599,7 +2599,7 @@ assignment = JOB_UPP_COMBAT_SYNTH rank = JOB_UPP_COMBAT_SYNTH paygrade = PAY_SHORT_SYN - idtype = /obj/item/card/id/gold + idtype = /obj/item/card/id/dogtag /datum/equipment_preset/upp/synth/load_name(mob/living/carbon/human/new_human, randomise) new_human.gender = pick(50;MALE,50;FEMALE) @@ -2637,8 +2637,11 @@ /datum/equipment_preset/upp/synth/load_race(mob/living/carbon/human/new_human) new_human.set_species(SYNTH_GEN_THREE) +/datum/equipment_preset/upp/synth/load_skills(mob/living/carbon/human/new_human) + . = ..() + new_human.allow_gun_usage = FALSE + /datum/equipment_preset/upp/synth/load_gear(mob/living/carbon/human/new_human) - load_name(new_human) //back new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/compact, WEAR_IN_BACK) //1 @@ -2658,22 +2661,18 @@ new_human.equip_to_slot_or_del(new hat, WEAR_HEAD) //body var/obj/item/clothing/under/marine/veteran/UPP/medic/UPP = new() - var/obj/item/clothing/accessory/storage/tool_webbing/equipped/W = new() - UPP.attach_accessory(new_human, W) + var/obj/item/clothing/accessory/storage/tool_webbing/equipped/webbing = new() + UPP.attach_accessory(new_human, webbing) new_human.equip_to_slot_or_del(UPP, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP/support, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/bottle/tricordrazine, WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/bizon/upp, WEAR_J_STORE) //waist new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/upp/full, WEAR_WAIST) //limbs new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) - //póckets - var/obj/item/storage/pouch/magazine/large/ppouch = new() - new_human.equip_to_slot_or_del(ppouch, WEAR_R_STORE) - for(var/i = 1 to ppouch.storage_slots) - new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/bizon, WEAR_IN_R_STORE) + //pockets + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical/full/pills, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, WEAR_IN_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_L_STORE) diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index 8f5243edf84d..5402a5ed7305 100644 --- a/code/modules/gear_presets/uscm.dm +++ b/code/modules/gear_presets/uscm.dm @@ -251,8 +251,6 @@ /datum/equipment_preset/uscm/intel/full/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/officer/intel/U = new(new_human) - var/obj/item/clothing/accessory/storage/webbing/W = new() - U.attach_accessory(new_human, W) new_human.equip_to_slot_or_del(U, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/intel(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) diff --git a/code/modules/gear_presets/uscm_medical.dm b/code/modules/gear_presets/uscm_medical.dm index 7923e3a33ece..8fbfd72c5276 100644 --- a/code/modules/gear_presets/uscm_medical.dm +++ b/code/modules/gear_presets/uscm_medical.dm @@ -107,7 +107,8 @@ back_item = /obj/item/storage/backpack/marine new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/nurse(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/lightblue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/nurse(new_human), WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index 578df21b67df..3651b83cc209 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -26,6 +26,7 @@ /datum/equipment_preset/uscm_ship/liaison name = "USCM Corporate Liaison (CL)" + faction_group = FACTION_LIST_MARINE_WY flags = EQUIPMENT_PRESET_START_OF_ROUND idtype = /obj/item/card/id/silver/cl @@ -128,18 +129,17 @@ minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN /datum/equipment_preset/uscm_ship/reporter/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/satchel - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/reporter(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/reporter(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/reporter(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_L_HAND) - new_human.equip_to_slot_or_del(new /obj/item/device/camera_film(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_WAIST) + +/datum/equipment_preset/uscm_ship/reporter/load_preset(mob/living/carbon/human/new_human, randomise, count_participant, client/mob_client, show_job_gear) + . = ..() + new_human.marine_buyable_categories[CIVILIAN_CAN_BUY_BACKPACK] = 1 + new_human.marine_buyable_categories[CIVILIAN_CAN_BUY_UTILITY] = 1 /datum/equipment_preset/uscm_ship/reporter_uscm name = "Combat Correspondent" @@ -178,10 +178,6 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/device/camera(new_human), WEAR_L_HAND) - new_human.equip_to_slot_or_del(new /obj/item/device/camera_film(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/notepad(new_human), WEAR_IN_BACK) //*****************************************************************************************************/ @@ -252,17 +248,9 @@ if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine/tech - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mt(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/welding(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/device/demo_scanner(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/bag/trash(new_human), WEAR_L_HAND) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, (new_human), WEAR_R_HAND) /datum/equipment_preset/uscm_ship/maint/load_rank(mob/living/carbon/human/new_human) if(new_human.client) diff --git a/code/modules/gear_presets/wy.dm b/code/modules/gear_presets/wy.dm index ac8aefb6238d..d492f9573b57 100644 --- a/code/modules/gear_presets/wy.dm +++ b/code/modules/gear_presets/wy.dm @@ -20,7 +20,7 @@ /datum/equipment_preset/wy/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new headset_type(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/ivy(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) . = ..() @@ -63,6 +63,20 @@ rank = JOB_EXECUTIVE_SPECIALIST paygrade = PAY_SHORT_WYC5 +/datum/equipment_preset/wy/exec_spec/lawyer + name = "Corporate - E - Lawyer" + +/datum/equipment_preset/wy/exec_spec/lawyer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/corporate/blue(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/pen/clicky(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clipboard(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/notepad/blue(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) + + ..() + /datum/equipment_preset/wy/exec_supervisor name = "Corporate - F - Executive Supervisor" flags = EQUIPMENT_PRESET_EXTRA @@ -70,6 +84,21 @@ rank = JOB_EXECUTIVE_SUPERVISOR paygrade = PAY_SHORT_WYC6 +/datum/equipment_preset/wy/exec_supervisor/lawyer + name = "Corporate - F - Lawyer" + +/datum/equipment_preset/wy/exec_supervisor/lawyer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/secure/briefcase(new_human), WEAR_R_HAND) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/corporate/black(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/pen/clicky(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clipboard(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/spacecash/c1000/counterfeit(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/notepad/black(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/device/taperecorder(new_human), WEAR_L_STORE) + ..() + /datum/equipment_preset/wy/manager skills = /datum/skills/civilian/manager idtype = /obj/item/card/id/silver/clearance_badge/manager diff --git a/code/modules/gear_presets/wy_goons.dm b/code/modules/gear_presets/wy_goons.dm index 54b436c20854..a8f3a443311e 100644 --- a/code/modules/gear_presets/wy_goons.dm +++ b/code/modules/gear_presets/wy_goons.dm @@ -135,6 +135,7 @@ /datum/equipment_preset/goon/researcher/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science, WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/corporate, WEAR_FEET) diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index eb0d54ce91bb..3603448a4f4f 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -157,7 +157,7 @@ name = "fertilizer bottle" desc = "A small glass bottle. Can hold up to 10 units." icon = 'icons/obj/items/chemistry.dmi' - icon_state = "bottle16" + icon_state = "fertilizer" flags_atom = FPRINT| OPENCONTAINER possible_transfer_amounts = null w_class = SIZE_SMALL @@ -179,15 +179,12 @@ /obj/item/reagent_container/glass/fertilizer/ez name = "bottle of E-Z-Nutrient" - icon_state = "bottle16" fertilizer = "eznutrient" /obj/item/reagent_container/glass/fertilizer/l4z name = "bottle of Left 4 Zed" - icon_state = "bottle18" fertilizer = "left4zed" /obj/item/reagent_container/glass/fertilizer/rh name = "bottle of Robust Harvest" - icon_state = "bottle15" fertilizer = "robustharvest" diff --git a/code/modules/lighting/lighting_static/static_lighting_turf.dm b/code/modules/lighting/lighting_static/static_lighting_turf.dm index 2fe918fa88bb..ec91e17e4fca 100644 --- a/code/modules/lighting/lighting_static/static_lighting_turf.dm +++ b/code/modules/lighting/lighting_static/static_lighting_turf.dm @@ -31,7 +31,8 @@ return !(luminosity || dynamic_lumcount) -/turf/proc/change_area(area/old_area, area/new_area) +///Transfer the lighting of one area to another +/turf/proc/transfer_area_lighting(area/old_area, area/new_area) if(SSlighting.initialized) if (new_area.static_lighting != old_area.static_lighting) if (new_area.static_lighting) @@ -44,6 +45,8 @@ if(new_area.lighting_effect) overlays += new_area.lighting_effect + + /turf/proc/static_generate_missing_corners() if (!lighting_corner_NE) lighting_corner_NE = new/datum/static_lighting_corner(src, NORTH|EAST) diff --git a/code/modules/logging/global_logs.dm b/code/modules/logging/global_logs.dm index ff384fe537c0..3fbcb70a1a8d 100644 --- a/code/modules/logging/global_logs.dm +++ b/code/modules/logging/global_logs.dm @@ -25,8 +25,11 @@ GLOBAL_PROTECT(world_runtime_log) GLOBAL_VAR(scheduler_stats) GLOBAL_PROTECT(scheduler_stats) -GLOBAL_VAR(mutator_logs) -GLOBAL_PROTECT(mutator_logs) +GLOBAL_VAR(strain_logs) +GLOBAL_PROTECT(strain_logs) + +GLOBAL_VAR(mapping_log) +GLOBAL_PROTECT(mapping_log) GLOBAL_VAR(round_stats) GLOBAL_PROTECT(round_stats) diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 35f7d30a9732..50a343635de9 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -7,6 +7,20 @@ var/datum/parsed_map/cached_map var/keep_cached_map = FALSE + ///Default area associated with the map template + var/default_area + + ///if true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE + var/should_place_on_top = TRUE + + ///if true, creates a list of all atoms created by this template loading, defaults to FALSE + var/returns_created_atoms = FALSE + + ///the list of atoms created by this template being loaded, only populated if returns_created_atoms is TRUE + var/list/created_atoms = list() + //make sure this list is accounted for/cleared if you request it from ssatoms! + + /datum/map_template/New(path = null, rename = null, cache = FALSE) if(path) mappath = path @@ -25,71 +39,129 @@ cached_map = parsed return bounds -/datum/parsed_map/proc/initTemplateBounds() - var/list/obj/structure/cable/cables = list() - var/list/atom/atoms = list() - var/list/area/areas = list() +/datum/map_template/proc/initTemplateBounds(list/bounds) + if (!bounds) //something went wrong + stack_trace("[name] template failed to initialize correctly!") + return - var/list/turfs = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), - locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) - for(var/L in turfs) - var/turf/B = L - atoms += B - areas |= B.loc - for(var/A in B) - atoms += A - if(istype(A, /obj/structure/cable)) - cables += A - continue + var/list/atom/movable/movables = list() + var/list/obj/docking_port/stationary/ports = list() + var/list/area/areas = list() + var/list/turfs = block( + locate( + bounds[MAP_MINX], + bounds[MAP_MINY], + bounds[MAP_MINZ] + ), + locate( + bounds[MAP_MAXX], + bounds[MAP_MAXY], + bounds[MAP_MAXZ] + ) + ) + for(var/turf/current_turf as anything in turfs) + var/area/current_turfs_area = current_turf.loc + areas |= current_turfs_area + if(!SSatoms.initialized) + continue + + for(var/movable_in_turf in current_turf) + if(istype(movable_in_turf, /obj/docking_port/mobile)) + continue // mobile docking ports need to be initialized after their template has finished loading, to ensure that their bounds are setup + movables += movable_in_turf + if(istype(movable_in_turf, /obj/docking_port/stationary)) + ports += movable_in_turf + + // Not sure if there is some importance here to make sure the area is in z + // first or not. Its defined In Initialize yet its run first in templates + // BEFORE so... hummm SSmapping.reg_in_areas_in_z(areas) - SSatoms.InitializeAtoms(atoms) - //SSmachines.setup_template_powernets(cables) // mapping TODO: - -/datum/map_template/proc/load_new_z() - var/x = round((world.maxx - width)/2) - var/y = round((world.maxy - height)/2) + if(!SSatoms.initialized) + return - var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(ZTRAIT_AWAY = TRUE)) - var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=TRUE) + SSatoms.InitializeAtoms(areas + turfs + movables, returns_created_atoms ? created_atoms : null) + + for(var/turf/unlit as anything in turfs) + var/area/loc_area = unlit.loc + if(!loc_area.static_lighting) + continue + unlit.static_lighting_build_overlay() + +/datum/map_template/proc/load_new_z(secret = FALSE) + var/x = round((world.maxx - width) * 0.5) + 1 + var/y = round((world.maxy - height) * 0.5) + 1 + + var/datum/space_level/level = SSmapping.add_new_zlevel(name, list(), contain_turfs = FALSE) + var/datum/parsed_map/parsed = load_map( + file(mappath), + x, + y, + level.z_value, + no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), + place_on_top = should_place_on_top, + new_z = TRUE, + ) var/list/bounds = parsed.bounds if(!bounds) return FALSE repopulate_sorted_areas() - //initialize things that are normally initialized after map load - parsed.initTemplateBounds() - log_game("Z-level [name] loaded at at [x],[y],[world.maxz]") + initTemplateBounds(bounds) + log_game("Z-level [name] loaded at [x],[y],[world.maxz]") return level -/datum/map_template/proc/load(turf/T, centered, delete) +/datum/map_template/proc/load(turf/T, centered = FALSE, delete = FALSE) if(centered) T = locate(T.x - round(width/2) , T.y - round(height/2) , T.z) if(!T) return - if(T.x + width > world.maxx) + if((T.x+width) - 1 > world.maxx) return - if(T.y + height > world.maxy) + if((T.y+height) - 1 > world.maxy) return // Accept cached maps, but don't save them automatically - we don't want // ruins clogging up memory for the whole round. var/datum/parsed_map/parsed = cached_map || new(file(mappath)) cached_map = keep_cached_map ? parsed : null - if(!parsed.load(T.x, T.y, T.z, cropMap = TRUE, no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop = TRUE, delete = delete)) + + var/list/turf_blacklist = list() + update_blacklist(T, turf_blacklist) + + UNSETEMPTY(turf_blacklist) + parsed.turf_blacklist = turf_blacklist + if(!parsed.load( + T.x, + T.y, + T.z, + crop_map = TRUE, + no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), + place_on_top = should_place_on_top, + delete = delete + )) return + var/list/bounds = parsed.bounds if(!bounds) return + repopulate_sorted_areas() + //initialize things that are normally initialized after map load - parsed.initTemplateBounds() + initTemplateBounds(bounds) - log_game("[name] loaded at at [T.x],[T.y],[T.z]") + log_game("[name] loaded at [T.x],[T.y],[T.z]") return bounds +/datum/map_template/proc/post_load() + return + +/datum/map_template/proc/update_blacklist(turf/T, list/input_blacklist) + return + /datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE) var/turf/placement = T if(centered) diff --git a/code/modules/mapping/preloader.dm b/code/modules/mapping/preloader.dm index e8eee898a711..bd89d0e030a2 100644 --- a/code/modules/mapping/preloader.dm +++ b/code/modules/mapping/preloader.dm @@ -1,33 +1,42 @@ // global datum that will preload variables on atoms instanciation GLOBAL_VAR_INIT(use_preloader, FALSE) -GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) +GLOBAL_LIST_INIT(_preloader_attributes, null) +GLOBAL_LIST_INIT(_preloader_path, null) /// Preloader datum /datum/map_preloader - parent_type = /datum var/list/attributes var/target_path -/datum/map_preloader/proc/setup(list/the_attributes, path) +/world/proc/preloader_setup(list/the_attributes, path) if(the_attributes.len) GLOB.use_preloader = TRUE - attributes = the_attributes - target_path = path + GLOB._preloader_attributes = the_attributes + GLOB._preloader_path = path -/datum/map_preloader/proc/load(atom/what) +/world/proc/preloader_load(atom/what) GLOB.use_preloader = FALSE + var/list/attributes = GLOB._preloader_attributes for(var/attribute in attributes) var/value = attributes[attribute] if(islist(value)) - value = deepCopyList(value) + value = deep_copy_list(value) + #ifdef TESTING + if(what.vars[attribute] == value) + var/message = "[what.type] at [AREACOORD(what)] - VAR: [attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")]" + log_mapping("DIRTY VAR: [message]") + GLOB.dirty_vars += message + #endif what.vars[attribute] = value -/// Area passthrough: do not instanciate a new area, reuse the current one +/// Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency +/// ex. if a ship has gaps in it's design, you would use template_noop to fill these in so that when the ship moves z-level, any +/// tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles /area/template_noop name = "Area Passthrough" icon_state = "noop" -/// Turf passthrough: do not instanciate a new turf, reuse the current one +/// See above explanation /turf/template_noop name = "Turf Passthrough" icon_state = "noop" diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 969dc6a795f8..424ab22ae4ac 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -1,7 +1,67 @@ /////////////////////////////////////////////////////////////// //SS13 Optimized Map loader ////////////////////////////////////////////////////////////// -#define SPACE_KEY "space" +// We support two different map formats +// It is kinda possible to process them together, but if we split them up +// I can make optimization decisions more easily +/** + * DMM SPEC: + * DMM is split into two parts. First we have strings of text linked to lists of paths and their modifications (I will call this the cache) + * We call these strings "keys" and the things they point to members. Keys have a static length + * + * The second part is a list of locations matched to a string of keys. (I'll be calling this the grid) + * These are used to lookup the cache we built earlier. + * We store location lists as grid_sets. the lines represent different things depending on the spec + * + * In standard DMM (which you can treat as the base case, since it also covers weird modifications) each line + * represents an x file, and there's typically only one grid set per z level. + * The meme is you can look at a DMM formatted map and literally see what it should roughly look like + * This differs in TGM, and we can pull some performance from this + * + * Any restrictions here also apply to TGM + * + * /tg/ Restrictions: + * Paths have a specified order. First atoms in the order in which they should be loaded, then a single turf, then the area of the cell + * DMM technically supports turf stacking, but this is deprecated for all formats + + */ +#define MAP_DMM "dmm" +/** + * TGM SPEC: + * TGM is a derevation of DMM, with restrictions placed on it + * to make it easier to parse and to reduce merge conflicts/ease their resolution + * + * Requirements: + * Each "statement" in a key's details ends with a new line, and wrapped in (...) + * All paths end with either a comma or occasionally a {, then a new line + * Excepting the area, who is listed last and ends with a ) to mark the end of the key + * + * {} denotes a list of variable edits applied to the path that came before the first { + * the final } is followed by a comma, and then a new line + * Variable edits have the form \tname = value;\n + * Except the last edit, which has no final ;, and just ends in a newline + * No extra padding is permitted + * Many values are supported. See parse_constant() + * Strings must be wrapped in "...", files in '...', and lists in list(...) + * Files are kinda susy, and may not actually work. buyer beware + * Lists support assoc values as expected + * These constants can be further embedded into lists + * + * There can be no padding in front of, or behind a path + * + * Therefore: + * "key" = ( + * /path, + * /other/path{ + * var = list("name" = 'filepath'); + * other_var = /path + * }, + * /turf, + * /area) + * + */ +#define MAP_TGM "tgm" +#define MAP_UNKNOWN "unknown" /datum/grid_set var/xcrd @@ -11,9 +71,20 @@ /datum/parsed_map var/original_path + var/map_format + /// The length of a key in this file. This is promised by the standard to be static var/key_len = 0 + /// The length of a line in this file. Not promised by dmm but standard dmm uses it, so we can trust it + var/line_len = 0 + /// If we've expanded world.maxx + var/expanded_y = FALSE + /// If we've expanded world.maxy + var/expanded_x = FALSE var/list/grid_models = list() var/list/gridSets = list() + /// List of area types we've loaded AS A PART OF THIS MAP + /// We do this to allow non unique areas, so we'll only load one per map + var/list/area/loaded_areas = list() var/list/modelCache @@ -22,33 +93,97 @@ /// Offset bounds. Same as parsed_bounds until load(). var/list/bounds + ///any turf in this list is skipped inside of build_coordinate. Lazy assoc list + var/list/turf_blacklist + // raw strings used to represent regexes more accurately // '' used to avoid confusing syntax highlighting - var/static/regex/dmmRegex = new(@'"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g") - var/static/regex/trimQuotesRegex = new(@'^[\s\n]+"?|"?[\s\n]+$|^"|"$', "g") - var/static/regex/trimRegex = new(@'^[\s\n]+|[\s\n]+$', "g") + var/static/regex/dmm_regex = new(@'"([a-zA-Z]+)" = (?:\(\n|\()((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}', "g") + /// Matches key formats in TMG (IE: newline after the \() + var/static/regex/matches_tgm = new(@'^"[A-z]*"[\s]*=[\s]*\([\s]*\n', "m") + /// Pulls out key value pairs for TGM + var/static/regex/var_edits_tgm = new(@'^\t([A-z]*) = (.*?);?$') + /// Pulls out model paths for DMM + var/static/regex/model_path = new(@'(\/[^\{]*?(?:\{.*?\})?)(?:,|$)', "g") + + /// If we are currently loading this map + var/loading = FALSE #ifdef TESTING var/turfsSkipped = 0 #endif -/// Shortcut function to parse a map and apply it to the world. -/// -/// - `dmm_file`: A .dmm file to load (Required). -/// - `x_offset`, `y_offset`, `z_offset`: Positions representign where to load the map (Optional). -/// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional). -/// - `measureOnly`: When true, no changes will be made to the world (Optional). -/// - `no_changeturf`: When true, [turf/AfterChange] won't be called on loaded turfs -/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional). -/// - `placeOnTop`: Whether to use [turf/PlaceOnTop] rather than [turf/ChangeTurf] (Optional). -/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num) - var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly) - if(parsed.bounds && !measureOnly) - parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop) - return parsed +/datum/parsed_map/proc/copy() + // Avoids duped work just in case + build_cache() + var/datum/parsed_map/newfriend = new() + newfriend.original_path = original_path + newfriend.map_format = map_format + newfriend.key_len = key_len + newfriend.line_len = line_len + newfriend.grid_models = grid_models.Copy() + newfriend.gridSets = gridSets.Copy() + newfriend.modelCache = modelCache.Copy() + newfriend.parsed_bounds = parsed_bounds.Copy() + // Copy parsed bounds to reset to initial values + newfriend.bounds = parsed_bounds.Copy() + newfriend.turf_blacklist = turf_blacklist?.Copy() + return newfriend + +//text trimming (both directions) helper macro +#define TRIM_TEXT(text) (trim_reduced(text)) + +/** + * Helper and recommened way to load a map file + * - dmm_file: The path to the map file + * - x_offset: The x offset to load the map at + * - y_offset: The y offset to load the map at + * - z_offset: The z offset to load the map at + * - crop_map: If true, the map will be cropped to the world bounds + * - measure_only: If true, the map will not be loaded, but the bounds will be calculated + * - no_changeturf: If true, the map will not call /turf/AfterChange + * - x_lower: The minimum x coordinate to load + * - x_upper: The maximum x coordinate to load + * - y_lower: The minimum y coordinate to load + * - y_upper: The maximum y coordinate to load + * - z_lower: The minimum z coordinate to load + * - z_upper: The maximum z coordinate to load + * - place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf + * - new_z: If true, a new z level will be created for the map + * - delete: CM/TGMC addition, if we need to manually clear turf contents before spawning stuff + */ +/proc/load_map( + dmm_file, + x_offset = 0, + y_offset = 0, + z_offset = 0, + crop_map = FALSE, + measure_only = FALSE, + no_changeturf = FALSE, + x_lower = -INFINITY, + x_upper = INFINITY, + y_lower = -INFINITY, + y_upper = INFINITY, + z_lower = -INFINITY, + z_upper = INFINITY, + place_on_top = FALSE, + new_z = FALSE, + delete = FALSE, +) + if(!(dmm_file in GLOB.cached_maps)) + GLOB.cached_maps[dmm_file] = new /datum/parsed_map(dmm_file) + + var/datum/parsed_map/parsed_map = GLOB.cached_maps[dmm_file] + parsed_map = parsed_map.copy() + if(!measure_only && !isnull(parsed_map.bounds)) + parsed_map.load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + return parsed_map /// Parse a map, possibly cropping it. -/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE) +/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, z_lower = -INFINITY, z_upper=INFINITY, measureOnly=FALSE) + // This proc sleeps for like 6 seconds. why? + // Is it file accesses? if so, can those be done ahead of time, async to save on time here? I wonder. + // Love ya :) if(isfile(tfile)) original_path = "[tfile]" tfile = file2text(tfile) @@ -56,16 +191,30 @@ // create a new datum without loading a map return - bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - var/stored_index = 1 + src.bounds = parsed_bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + + if(findtext(tfile, matches_tgm)) + map_format = MAP_TGM + else + map_format = MAP_DMM // Fallback + + // lists are structs don't you know :) + var/list/bounds = src.bounds + var/list/grid_models = src.grid_models + var/key_len = src.key_len + var/line_len = src.line_len + var/stored_index = 1 + var/list/regexOutput //multiz lool - while(dmmRegex.Find(tfile, stored_index)) - stored_index = dmmRegex.next + while(dmm_regex.Find(tfile, stored_index)) + stored_index = dmm_regex.next + // Datum var lookup is expensive, this isn't + regexOutput = dmm_regex.group // "aa" = (/type{vars=blah}) - if(dmmRegex.group[1]) // Model - var/key = dmmRegex.group[1] + if(regexOutput[1]) // Model + var/key = regexOutput[1] if(grid_models[key]) // Duplicate model keys are ignored in DMMs continue if(key_len != length(key)) @@ -74,328 +223,776 @@ else CRASH("Inconsistent key length in DMM") if(!measureOnly) - grid_models[key] = dmmRegex.group[2] + grid_models[key] = regexOutput[2] // (1,1,1) = {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"} - else if(dmmRegex.group[3]) // Coords + else if(regexOutput[3]) // Coords if(!key_len) CRASH("Coords before model definition in DMM") - var/curr_x = text2num(dmmRegex.group[3]) - + var/curr_x = text2num(regexOutput[3]) if(curr_x < x_lower || curr_x > x_upper) continue + var/curr_y = text2num(regexOutput[4]) + if(curr_y < y_lower || curr_y > y_upper) + continue + + var/curr_z = text2num(regexOutput[5]) + if(curr_z < z_lower || curr_z > z_upper) + continue + var/datum/grid_set/gridSet = new gridSet.xcrd = curr_x - //position of the currently processed square - gridSet.ycrd = text2num(dmmRegex.group[4]) - gridSet.zcrd = text2num(dmmRegex.group[5]) + gridSet.ycrd = curr_y + gridSet.zcrd = curr_z - bounds[MAP_MINX] = min(bounds[MAP_MINX], clamp(gridSet.xcrd, x_lower, x_upper)) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd) + bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], curr_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], curr_z) - var/list/gridLines = splittext(dmmRegex.group[6], "\n") + var/list/gridLines = splittext(regexOutput[6], "\n") gridSet.gridLines = gridLines var/leadingBlanks = 0 - while(leadingBlanks < gridLines.len && gridLines[++leadingBlanks] == "") + while(leadingBlanks < length(gridLines) && gridLines[++leadingBlanks] == "") if(leadingBlanks > 1) gridLines.Cut(1, leadingBlanks) // Remove all leading blank lines. - if(!gridLines.len) // Skip it if only blank lines exist. + if(!length(gridLines)) // Skip it if only blank lines exist. continue gridSets += gridSet - if(gridLines.len && gridLines[gridLines.len] == "") - gridLines.Cut(gridLines.len) // Remove only one blank line at the end. + if(gridLines[length(gridLines)] == "") + gridLines.Cut(length(gridLines)) // Remove only one blank line at the end. + + bounds[MAP_MINY] = min(bounds[MAP_MINY], gridSet.ycrd) + gridSet.ycrd += length(gridLines) - 1 // Start at the top and work down + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], gridSet.ycrd) - bounds[MAP_MINY] = min(bounds[MAP_MINY], clamp(gridSet.ycrd, y_lower, y_upper)) - gridSet.ycrd += gridLines.len - 1 // Start at the top and work down - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], clamp(gridSet.ycrd, y_lower, y_upper)) + if(!line_len) + line_len = length(gridLines[1]) - var/maxx = gridSet.xcrd - if(gridLines.len) //Not an empty map - maxx = max(maxx, gridSet.xcrd + length(gridLines[1]) / key_len - 1) + var/maxx = curr_x + if(length(gridLines)) //Not an empty map + maxx = max(maxx, curr_x + line_len / key_len - 1) - bounds[MAP_MAXX] = clamp(max(bounds[MAP_MAXX], maxx), x_lower, x_upper) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], maxx) CHECK_TICK // Indicate failure to parse any coordinates by nulling bounds if(bounds[1] == 1.#INF) - bounds = null - parsed_bounds = bounds + src.bounds = null + else + // Clamp all our mins and maxes down to the proscribed limits + bounds[MAP_MINX] = clamp(bounds[MAP_MINX], x_lower, x_upper) + bounds[MAP_MAXX] = clamp(bounds[MAP_MAXX], x_lower, x_upper) + bounds[MAP_MINY] = clamp(bounds[MAP_MINY], y_lower, y_upper) + bounds[MAP_MAXY] = clamp(bounds[MAP_MAXY], y_lower, y_upper) + bounds[MAP_MINZ] = clamp(bounds[MAP_MINZ], z_lower, z_upper) + bounds[MAP_MAXZ] = clamp(bounds[MAP_MAXZ], z_lower, z_upper) + + parsed_bounds = src.bounds + src.key_len = key_len + src.line_len = line_len + +/// Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive +/datum/parsed_map/proc/filter_grid_sets_based_on_z_bounds(lower_z, upper_z) + var/list/filtered_sets = list() + for(var/datum/grid_set/grid_set as anything in gridSets) + if(grid_set.zcrd < lower_z) + continue + if(grid_set.zcrd > upper_z) + continue + filtered_sets += grid_set + return filtered_sets -/// Load the parsed map into the world. See [/proc/load_map] for arguments. -/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete) +/// Load the parsed map into the world. You probably want [/proc/load_map]. Keep the signature the same. +/datum/parsed_map/proc/load(x_offset = 0, y_offset = 0, z_offset = 0, crop_map = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, z_lower = -INFINITY, z_upper = INFINITY, place_on_top = FALSE, new_z = FALSE, delete = FALSE) //How I wish for RAII Master.StartLoadingMap() - . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete) + . = _load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) Master.StopLoadingMap() +#define MAPLOADING_CHECK_TICK \ + if(TICK_CHECK) { \ + if(loading) { \ + SSatoms.map_loader_stop(REF(src)); \ + stoplag(); \ + SSatoms.map_loader_begin(REF(src)); \ + } else { \ + stoplag(); \ + } \ + } + // Do not call except via load() above. -/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE, delete = FALSE) - var/list/areaCache = list() +/datum/parsed_map/proc/_load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + PRIVATE_PROC(TRUE) + // Tell ss atoms that we're doing maploading + // We'll have to account for this in the following tick_checks so it doesn't overflow + loading = TRUE + SSatoms.map_loader_begin(REF(src)) + + // Loading used to be done in this proc + // We make the assumption that if the inner procs runtime, we WANT to do cleanup on them, but we should stil tell our parents we failed + // Since well, we did + var/sucessful = FALSE + switch(map_format) + if(MAP_TGM) + sucessful = _tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + else + sucessful = _dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + + // And we are done lads, call it off + SSatoms.map_loader_stop(REF(src)) + loading = FALSE + + // CM: Disabled due to not using contained_turfs and SSarea_contents +// if(new_z) +// for(var/z_index in bounds[MAP_MINZ] to bounds[MAP_MAXZ]) +// SSmapping.build_area_turfs(z_index) + + if(!no_changeturf) + var/list/turfs = block( + locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), + locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) + for(var/turf/T as anything in turfs) + //we do this after we load everything in. if we don't, we'll have weird atmos bugs regarding atmos adjacent turfs + T.AfterChange(CHANGETURF_IGNORE_AIR) + + if(expanded_x || expanded_y) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_EXPANDED_WORLD_BOUNDS, expanded_x, expanded_y) + + #ifdef TESTING + if(turfsSkipped) + testing("Skipped loading [turfsSkipped] default turfs") + #endif + + return sucessful + +// Wanna clear something up about maps, talking in 255x255 here +// In the tgm format, each gridset contains 255 lines, each line representing one tile, with 255 total gridsets +// In the dmm format, each gridset contains 255 lines, each line representing one row of tiles, containing 255 * line length characters, with one gridset per z +// You can think of dmm as storing maps in rows, whereas tgm stores them in columns +/datum/parsed_map/proc/_tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + // setup var/list/modelCache = build_cache(no_changeturf) var/space_key = modelCache[SPACE_KEY] var/list/bounds src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) - for(var/I in gridSets) - var/datum/grid_set/gset = I - var/ycrd = gset.ycrd + y_offset - 1 - var/zcrd = gset.zcrd + z_offset - 1 - if(!cropMap && ycrd > world.maxy) - world.maxy = ycrd // Expand Y here. X is expanded in the loop below + // Building y coordinate ranges + var/y_relative_to_absolute = y_offset - 1 + var/x_relative_to_absolute = x_offset - 1 + + // Ok so like. something important + // We talk in "relative" coords here, so the coordinate system of the map datum + // This is so we can do offsets, but it is NOT the same as positions in game + // That's why there's some uses of - y_relative_to_absolute here, to turn absolute positions into relative ones + // TGM maps process in columns, so the starting y will always be the max size + // We know y starts at 1 + var/datum/grid_set/first_column = gridSets[1] + var/relative_y = first_column.ycrd + var/highest_y = relative_y + y_relative_to_absolute + + if(!crop_map && highest_y > world.maxy) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_y(highest_y, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_y(highest_y) + expanded_y = TRUE + + // Skip Y coords that are above the smallest of the three params + // So maxy and y_upper get to act as thresholds, and relative_y can play + var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y) + // How many lines to skip because they'd be above the y cuttoff line + var/y_starting_skip = relative_y - y_skip_above + highest_y -= y_starting_skip + + // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go + var/line_count = length(first_column.gridLines) + var/lowest_y = relative_y - (line_count - 1) // -1 because we decrement at the end of the loop, not the start + var/y_ending_skip = max(max(y_lower, 1 - y_relative_to_absolute) - lowest_y, 0) + + // X setup + var/x_delta_with = x_upper + if(crop_map) + // Take our smaller crop threshold yes? + x_delta_with = min(x_delta_with, world.maxx) + + // We're gonna skip all the entries above the upper x, or maxx if cropMap is set + // The last column is guarenteed to have the highest x value we;ll encounter + // Even if z scales, this still works + var/datum/grid_set/last_column = gridSets[length(gridSets)] + var/final_x = last_column.xcrd + x_relative_to_absolute + + if(final_x > x_delta_with) + // If our relative x is greater then X upper, well then we've gotta limit our expansion + var/delta = max(final_x - x_delta_with, 0) + final_x -= delta + if(final_x > world.maxx && !crop_map) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_x(final_x) + expanded_x = TRUE + + var/lowest_x = max(x_lower, 1 - x_relative_to_absolute) + + // Amount we offset the grid zcrd to get the true zcrd + var/grid_z_offset = z_offset - 1 + var/z_upper_set = z_upper < INFINITY + var/z_lower_set = z_lower > -INFINITY + + // We make the assumption that the last block of turfs will have the highest embedded z in it + // true max zcrd + var/map_bounds_z_max = last_column.zcrd + var/z_upper_parsed = map_bounds_z_max + z_offset - 1 + if(z_upper_set) + z_upper_parsed -= map_bounds_z_max - z_upper + if(z_lower_set) + var/offset_amount = z_lower - 1 + z_upper_parsed -= offset_amount + grid_z_offset -= offset_amount + + var/list/target_grid_sets = gridSets + if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want + target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper) + + var/z_threshold = world.maxz + if(z_upper_parsed > z_threshold && crop_map) + for(var/i in z_threshold + 1 to z_upper_parsed) //create a new z_level if needed + world.incrementMaxZ() + if(!no_changeturf) + WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") + + for(var/datum/grid_set/gset as anything in target_grid_sets) + var/true_xcrd = gset.xcrd + x_relative_to_absolute + + // any cutoff of x means we just shouldn't iterate this gridset + if(final_x < true_xcrd || lowest_x > gset.xcrd) + continue + + var/zcrd = gset.zcrd + grid_z_offset + // If we're using changeturf, we disable it if we load into a z level we JUST created + var/no_afterchange = no_changeturf || zcrd > z_threshold + + // We're gonna track the first and last pairs of coords we find + // Since x is always incremented in steps of 1, we only need to deal in y + // The first x is guarenteed to be the lowest, the first y the highest, and vis versa + // This is faster then doing mins and maxes inside the hot loop below + var/first_found = FALSE + var/first_y = 0 + var/last_y = 0 + + var/ycrd = highest_y + // Everything following this line is VERY hot. + for(var/i in 1 + y_starting_skip to line_count - y_ending_skip) + if(gset.gridLines[i] == space_key && no_afterchange) + #ifdef TESTING + ++turfsSkipped + #endif + ycrd-- + MAPLOADING_CHECK_TICK + continue + + var/list/cache = modelCache[gset.gridLines[i]] + if(!cache) + SSatoms.map_loader_stop(REF(src)) + CRASH("Undefined model key in DMM: [gset.gridLines[i]]") + build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z, delete) + + // only bother with bounds that actually exist + if(!first_found) + first_found = TRUE + first_y = ycrd + last_y = ycrd + ycrd-- + MAPLOADING_CHECK_TICK + + // The x coord never changes, so not tracking first x is safe + // If no ycrd is found, we assume this row is totally empty and just continue on + if(first_found) + bounds[MAP_MINX] = min(bounds[MAP_MINX], true_xcrd) + bounds[MAP_MINY] = min(bounds[MAP_MINY], last_y) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], true_xcrd) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], first_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) + return TRUE + +/// Stanrdard loading, not used in production +/// Doesn't take advantage of any tgm optimizations, which makes it slower but also more general +/// Use this if for some reason your map format is messy +/datum/parsed_map/proc/_dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete) + // setup + var/list/modelCache = build_cache(no_changeturf) + var/space_key = modelCache[SPACE_KEY] + var/list/bounds + var/key_len = src.key_len + src.bounds = bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) + + var/y_relative_to_absolute = y_offset - 1 + var/x_relative_to_absolute = x_offset - 1 + var/line_len = src.line_len + + // Amount we offset the grid zcrd to get the true zcrd + var/grid_z_offset = z_offset - 1 + var/z_upper_set = z_upper < INFINITY + var/z_lower_set = z_lower > -INFINITY + + // we now need to find the maximum z, fun! + var/map_bounds_z_max = 1 + for(var/datum/grid_set/grid_set as anything in gridSets) + map_bounds_z_max = max(map_bounds_z_max, grid_set.zcrd) + + var/z_upper_parsed = map_bounds_z_max + z_offset - 1 + if(z_upper_set) + z_upper_parsed -= map_bounds_z_max - z_upper + if(z_lower_set) + var/offset_amount = z_lower - 1 + z_upper_parsed -= offset_amount + grid_z_offset -= offset_amount + + var/list/target_grid_sets = gridSets + if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want + target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper) + + for(var/datum/grid_set/gset as anything in target_grid_sets) + var/relative_x = gset.xcrd + var/relative_y = gset.ycrd + var/true_xcrd = relative_x + x_relative_to_absolute + var/ycrd = relative_y + y_relative_to_absolute + var/zcrd = gset.zcrd + grid_z_offset + if(!crop_map && ycrd > world.maxy) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_y(ycrd, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_y(ycrd) + expanded_y = TRUE var/zexpansion = zcrd > world.maxz + var/no_afterchange = no_changeturf if(zexpansion) - if(cropMap) + if(crop_map) continue else while (zcrd > world.maxz) //create a new z_level if needed world.incrementMaxZ() if(!no_changeturf) WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") - - for(var/line in gset.gridLines) - if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping. - --ycrd - continue - if(ycrd <= world.maxy && ycrd >= 1) - var/xcrd = gset.xcrd + x_offset - 1 - for(var/tpos = 1 to length(line) - key_len + 1 step key_len) - if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above. - ++xcrd - continue //X cropping. - if(xcrd > world.maxx) - if(cropMap) - break - else - world.maxx = xcrd - - if(xcrd >= 1) - var/model_key = copytext(line, tpos, tpos + key_len) - var/no_afterchange = no_changeturf || zexpansion - if(!no_afterchange || (model_key != space_key)) - var/list/cache = modelCache[model_key] - if(!cache) - CRASH("Undefined model key in DMM: [model_key]") - build_coordinate(areaCache, cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop, delete) - - // only bother with bounds that actually exist - bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrd) - bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) - bounds[MAP_MAXX] = max(bounds[MAP_MAXX], xcrd) - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) - #ifdef TESTING - else - ++turfsSkipped - #endif - CHECK_TICK + no_afterchange = TRUE + // Ok so like. something important + // We talk in "relative" coords here, so the coordinate system of the map datum + // This is so we can do offsets, but it is NOT the same as positions in game + // That's why there's some uses of - y_relative_to_absolute here, to turn absolute positions into relative ones + + // Skip Y coords that are above the smallest of the three params + // So maxy and y_upper get to act as thresholds, and relative_y can play + var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y) + // How many lines to skip because they'd be above the y cuttoff line + var/y_starting_skip = relative_y - y_skip_above + ycrd += y_starting_skip + + // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go + var/line_count = length(gset.gridLines) + var/lowest_y = relative_y - (line_count - 1) // -1 because we decrement at the end of the loop, not the start + var/y_ending_skip = max(max(y_lower, 1 - y_relative_to_absolute) - lowest_y, 0) + + // Now we're gonna precompute the x thresholds + // We skip all the entries below the lower x, or 1 + var/starting_x_delta = max(max(x_lower, 1 - x_relative_to_absolute) - relative_x, 0) + // The x loop counts by key length, so we gotta multiply here + var/x_starting_skip = starting_x_delta * key_len + true_xcrd += starting_x_delta + + // We're gonna skip all the entries above the upper x, or maxx if cropMap is set + var/x_target = line_len - key_len + 1 + var/x_step_count = ROUND_UP(x_target / key_len) + var/final_x = relative_x + (x_step_count - 1) + var/x_delta_with = x_upper + if(crop_map) + // Take our smaller crop threshold yes? + x_delta_with = min(x_delta_with, world.maxx) + if(final_x > x_delta_with) + // If our relative x is greater then X upper, well then we've gotta limit our expansion + var/delta = max(final_x - x_delta_with, 0) + x_step_count -= delta + final_x -= delta + x_target = x_step_count * key_len + if(final_x > world.maxx && !crop_map) + if(new_z) + // Need to avoid improperly loaded area/turf_contents + world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1) + else + world.increase_max_x(final_x) + expanded_x = TRUE + + // We're gonna track the first and last pairs of coords we find + // The first x is guarenteed to be the lowest, the first y the highest, and vis versa + // This is faster then doing mins and maxes inside the hot loop below + var/first_found = FALSE + var/first_x = 0 + var/first_y = 0 + var/last_x = 0 + var/last_y = 0 + + // Everything following this line is VERY hot. How hot depends on the map format + // (Yes this does mean dmm is technically faster to parse. shut up) + for(var/i in 1 + y_starting_skip to line_count - y_ending_skip) + var/line = gset.gridLines[i] + + var/xcrd = true_xcrd + for(var/tpos in 1 + x_starting_skip to x_target step key_len) + var/model_key = copytext(line, tpos, tpos + key_len) + if(model_key == space_key && no_afterchange) + #ifdef TESTING + ++turfsSkipped + #endif + MAPLOADING_CHECK_TICK ++xcrd - --ycrd - - CHECK_TICK + continue + var/list/cache = modelCache[model_key] + if(!cache) + SSatoms.map_loader_stop(REF(src)) + CRASH("Undefined model key in DMM: [model_key]") + build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z, delete) + + // only bother with bounds that actually exist + if(!first_found) + first_found = TRUE + first_x = xcrd + first_y = ycrd + last_x = xcrd + last_y = ycrd + MAPLOADING_CHECK_TICK + ++xcrd + ycrd-- + MAPLOADING_CHECK_TICK + bounds[MAP_MINX] = min(bounds[MAP_MINX], first_x) + bounds[MAP_MINY] = min(bounds[MAP_MINY], last_y) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) + bounds[MAP_MAXX] = max(bounds[MAP_MAXX], last_x) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], first_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) - //if(!no_changeturf)// mapping TODO: - // for(var/t in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) - // var/turf/T = t - // //we do this after we load everything in. if we don't; we'll have weird atmos bugs regarding atmos adjacent turfs - // T.AfterChange(CHANGETURF_IGNORE_AIR) + return TRUE - #ifdef TESTING - if(turfsSkipped) - testing("Skipped loading [turfsSkipped] default turfs") - #endif +GLOBAL_LIST_EMPTY(map_model_default) - return TRUE +/datum/parsed_map/proc/build_cache(no_changeturf, bad_paths) + if(map_format == MAP_TGM) + return tgm_build_cache(no_changeturf, bad_paths) + return dmm_build_cache(no_changeturf, bad_paths) -/datum/parsed_map/proc/build_cache(no_changeturf, bad_paths=null) +/datum/parsed_map/proc/tgm_build_cache(no_changeturf, bad_paths=null) if(modelCache && !bad_paths) return modelCache . = modelCache = list() var/list/grid_models = src.grid_models + var/set_space = FALSE + // Use where a list is needed, but where it will not be modified + // Used here to remove the cost of needing to make a new list for each fields entry when it's set manually later + var/static/list/default_list = GLOB.map_model_default // It's stupid, but it saves += list(list) + var/static/list/wrapped_default_list = list(default_list) // It's stupid, but it saves += list(list) + var/static/regex/var_edits = var_edits_tgm + + var/path_to_init = "" + // Reference to the attributes list we're currently filling, if any + var/list/current_attributes + // If we are currently editing a path or not + var/editing = FALSE for(var/model_key in grid_models) - var/model = grid_models[model_key] - var/list/members = list() //will contain all members (paths) in model (in our example : /turf/unsimulated/wall and /area/mine/explored) - var/list/members_attributes = list() //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + // We're going to split models by newline + // This guarentees that each entry will be of interest to us + // Then we'll process them step by step + // Hopefully this reduces the cost from read_list that we'd otherwise have + var/list/lines = splittext(grid_models[model_key], "\n") + // Builds list of path/edits for later + // Of note: we cannot preallocate them to save time in list expansion later + // But fortunately lists allocate at least 8 entries normally anyway, and + // We are unlikely to have more then that many members + //will contain all members (paths) in model (in our example : /turf/unsimulated/wall) + var/list/members = list() + //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + var/list/members_attributes = list() ///////////////////////////////////////////////////////// //Constructing members and corresponding variables lists //////////////////////////////////////////////////////// + // string representation of the path to init + for(var/line in lines) + // We do this here to avoid needing to check at each return statement + // No harm in it anyway + MAPLOADING_CHECK_TICK + + switch(line[length(line)]) + if(";") // Var edit, we'll apply it + // Var edits look like \tname = value; + // I'm gonna try capturing them with regex, since it ought to be the fastest here + // Should hand back key = value + var_edits.Find(line) + var/value = parse_constant(var_edits.group[2]) + if(istext(value)) + value = apply_text_macros(value) + current_attributes[var_edits.group[1]] = value + continue // Keep on keeping on brother + if("{") // Start of an edit, and so also the start of a path + editing = TRUE + current_attributes = list() // Init the list we'll be filling + members_attributes += list(current_attributes) + path_to_init = copytext(line, 1, -1) + if(",") // Either the end of a path, or the end of an edit + if(editing) // it was the end of a path + editing = FALSE + continue + members_attributes += wrapped_default_list // We know this is a path, and we also know it has no vv's. so we'll just set this to the default list + // Drop the last char mind + path_to_init = copytext(line, 1, -1) + if("}") // Gotta be the end of an area edit, let's check to be sure + if(editing) // it was the end of an area edit (shouldn't do those anyhow) + editing = FALSE + continue + stack_trace("ended a line on JUST a }, with no ongoing edit. What? Area shit?") + else // If we're editing, this is a var edit entry. the last one in a stack, cause god hates me. Otherwise, it's an area + if(editing) // I want inline I want inline I want inline + // Var edits look like \tname = value; + // I'm gonna try capturing them with regex, since it ought to be the fastest here + // Should hand back key = value + var_edits.Find(line) + var/value = parse_constant(var_edits.group[2]) + if(istext(value)) + value = apply_text_macros(value) + current_attributes[var_edits.group[1]] = value + continue // Keep on keeping on brother - var/index = 1 - var/old_position = 1 - var/dpos + members_attributes += wrapped_default_list // We know this is a path, and we also know it has no vv's. so we'll just set this to the default list + path_to_init = line - while(dpos != 0) - //finding next member (e.g /turf/unsimulated/wall{icon_state = "rock"} or /area/mine/explored) - dpos = find_next_delimiter_position(model, old_position, ",", "{", "}") //find next delimiter (comma here) that's not within {...} - var/full_def = trim_text(copytext(model, old_position, dpos)) //full definition, e.g : /obj/foo/bar{variables=derp} - var/variables_start = findtext(full_def, "{") - var/path_text = trim_text(copytext(full_def, 1, variables_start)) + // Alright, if we've gotten to this point, our string is a path + // Oh and we don't trim it, because we require no padding for these + // Saves like 1.5 deciseconds + var/atom_def = text2path(path_to_init) //path definition, e.g /obj/foo/bar + + if(!ispath(atom_def, /atom)) // Skip the item if the path does not exist. Fix your crap, mappers! + if(bad_paths) + // Rare case, avoid the var to save time most of the time + LAZYOR(bad_paths[copytext(line, 1, -1)], model_key) + continue + // Index is already incremented either way, just gotta set the path and all + members += atom_def + + //check and see if we can just skip this turf + //So you don't have to understand this horrid statement, we can do this if + // 1. the space_key isn't set yet + // 2. no_changeturf is set + // 3. there are exactly 2 members + // 4. with no attributes + // 5. and the members are world.turf and world.area + // Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default) + // We can skip calling this proc every time we see XXX + if(!set_space \ + && no_changeturf \ + && members_attributes.len == 2 \ + && members.len == 2 \ + && members_attributes[1] == default_list \ + && members_attributes[2] == default_list \ + && members[2] == world.area \ + && members[1] == world.turf + ) + set_space = TRUE + .[SPACE_KEY] = model_key + continue + + .[model_key] = list(members, members_attributes) + return . + +/// Builds key caches for general formats +/// Slower then the proc above, tho it could still be optimized slightly. it's just not a priority +/// Since we don't run DMM maps, ever. +/datum/parsed_map/proc/dmm_build_cache(no_changeturf, bad_paths=null) + if(modelCache && !bad_paths) + return modelCache + . = modelCache = list() + var/list/grid_models = src.grid_models + var/set_space = FALSE + // Use where a list is needed, but where it will not be modified + // Used here to remove the cost of needing to make a new list for each fields entry when it's set manually later + var/static/list/default_list = list(GLOB.map_model_default) + for(var/model_key in grid_models) + //will contain all members (paths) in model (in our example : /turf/unsimulated/wall) + var/list/members = list() + //will contain lists filled with corresponding variables, if any (in our example : list(icon_state = "rock") and list()) + var/list/members_attributes = list() + + var/model = grid_models[model_key] + ///////////////////////////////////////////////////////// + //Constructing members and corresponding variables lists + //////////////////////////////////////////////////////// + + var/model_index = 1 + while(model_path.Find(model, model_index)) + var/variables_start = 0 + var/member_string = model_path.group[1] + model_index = model_path.next + //findtext is a bit expensive, lets only do this if the last char of our string is a } (IE: we know we have vars) + //this saves about 25 miliseconds on my machine. Not a major optimization + if(member_string[length(member_string)] == "}") + variables_start = findtext(member_string, "{") + + var/path_text = TRIM_TEXT(copytext(member_string, 1, variables_start)) var/atom_def = text2path(path_text) //path definition, e.g /obj/foo/bar - if(dpos) - old_position = dpos + length(model[dpos]) if(!ispath(atom_def, /atom)) // Skip the item if the path does not exist. Fix your crap, mappers! if(bad_paths) LAZYOR(bad_paths[path_text], model_key) continue - members.Add(atom_def) + members += atom_def //transform the variables in text format into a list (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) - var/list/fields = list() - + // OF NOTE: this could be made faster by replacing readlist with a progressive regex + // I'm just too much of a bum to do it rn, especially since we mandate tgm format for any maps in repo + var/list/fields = default_list if(variables_start)//if there's any variable - full_def = copytext(full_def, variables_start + length(full_def[variables_start]), -length(copytext_char(full_def, -1))) //removing the last '}' - fields = readlist(full_def, ";") - if(fields.len) - if(!trim(fields[fields.len])) - --fields.len - for(var/I in fields) - var/value = fields[I] - if(istext(value)) - fields[I] = apply_text_macros(value) + member_string = copytext(member_string, variables_start + length(member_string[variables_start]), -length(copytext_char(member_string, -1))) //removing the last '}' + fields = list(readlist(member_string, ";")) + for(var/I in fields) + var/value = fields[I] + if(istext(value)) + fields[I] = apply_text_macros(value) //then fill the members_attributes list with the corresponding variables - members_attributes.len++ - members_attributes[index++] = fields - - CHECK_TICK + members_attributes += fields + MAPLOADING_CHECK_TICK //check and see if we can just skip this turf //So you don't have to understand this horrid statement, we can do this if - // 1. no_changeturf is set - // 2. the space_key isn't set yet + // 1. the space_key isn't set yet + // 2. no_changeturf is set // 3. there are exactly 2 members // 4. with no attributes // 5. and the members are world.turf and world.area // Basically, if we find an entry like this: "XXX" = (/turf/default, /area/default) // We can skip calling this proc every time we see XXX - if(no_changeturf \ - && !(.[SPACE_KEY]) \ + if(!set_space \ + && no_changeturf \ && members.len == 2 \ && members_attributes.len == 2 \ && length(members_attributes[1]) == 0 \ && length(members_attributes[2]) == 0 \ && (world.area in members) \ && (world.turf in members)) - + set_space = TRUE .[SPACE_KEY] = model_key continue - .[model_key] = list(members, members_attributes) + return . -/datum/parsed_map/proc/build_coordinate(list/areaCache, list/model, turf/crds, no_changeturf as num, placeOnTop as num, delete) +/datum/parsed_map/proc/build_coordinate(list/model, turf/crds, no_changeturf as num, placeOnTop as num, new_z, delete) + // If we don't have a turf, nothing we will do next will actually acomplish anything, so just go back + // Note, this would actually drop area vvs in the tile, but like, why tho + if(!crds) + return var/index var/list/members = model[1] var/list/members_attributes = model[2] + // We use static lists here because it's cheaper then passing them around + var/static/list/default_list = GLOB.map_model_default //////////////// //Instanciation //////////////// + if(turf_blacklist?[crds]) + return + //The next part of the code assumes there's ALWAYS an /area AND a /turf on a given tile //first instance the /area and remove it from the members list index = members.len + var/area/old_area if(members[index] != /area/template_noop) - var/atype = members[index] - GLOB._preloader.setup(members_attributes[index], atype)//preloader for assigning set variables on atom creation - var/atom/instance = areaCache[atype] - if(!instance) - instance = GLOB.areas_by_type[atype] - if(!instance) - instance = new atype(null) - areaCache[atype] = instance - if(crds) - instance.contents.Add(crds) - - if(GLOB.use_preloader && instance) - GLOB._preloader.load(instance) - - //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect - - var/first_turf_index = 1 - while(!ispath(members[first_turf_index], /turf)) //find first /turf object in members - first_turf_index++ - - //turn off base new Initialization until the whole thing is loaded - SSatoms.map_loader_begin() - //instanciate the first /turf - var/turf/T - if(members[first_turf_index] != /turf/template_noop) - T = instance_atom(members[first_turf_index], members_attributes[first_turf_index], crds,no_changeturf, placeOnTop, delete) - - if(T) - //if others /turf are presents, simulates the underlays piling effect - index = first_turf_index + 1 - while(index <= members.len - 1) // Last item is an /area - var/underlay = T.appearance - T = instance_atom(members[index], members_attributes[index], crds,no_changeturf, placeOnTop, delete)//instance new turf - T.underlays += underlay - index++ + if(members_attributes[index] != default_list) + world.preloader_setup(members_attributes[index], members[index])//preloader for assigning set variables on atom creation + var/area/area_instance = loaded_areas[members[index]] + if(!area_instance) + var/area_type = members[index] + // If this parsed map doesn't have that area already, we check the global cache + area_instance = GLOB.areas_by_type[area_type] + // If the global list DOESN'T have this area it's either not a unique area, or it just hasn't been created yet + if (!area_instance) + area_instance = new area_type(null) + if(!area_instance) + CRASH("[area_type] failed to be new'd, what'd you do?") + loaded_areas[area_type] = area_instance + + if(!new_z) + old_area = crds.loc +// old_area.turfs_to_uncontain += crds +// area_instance.contained_turfs.Add(crds) + area_instance.contents.Add(crds) + + if(GLOB.use_preloader) + world.preloader_load(area_instance) + + // Index right before /area is /turf + index-- + var/atom/instance + //then instance the /turf + //NOTE: this used to place any turfs before the last "underneath" it using .appearance and underlays + //We don't actually use this, and all it did was cost cpu, so we don't do this anymore + if(members[index] != /turf/template_noop) + if(members_attributes[index] != default_list) + world.preloader_setup(members_attributes[index], members[index]) + + // CM/TGMC addition: delete map contents before inserting if delete truthy + if(delete) + for(var/atom/turf_atom as anything in crds.GetAllTurfStrictContents()) + if(isobserver(turf_atom)) + continue + qdel(turf_atom, force = TRUE) + + // Note: we make the assertion that the last path WILL be a turf. if it isn't, this will fail. + if(placeOnTop) + instance = crds.load_on_top(members[index], CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE)) + else if(no_changeturf) + instance = create_atom(members[index], crds)//first preloader pass + else + instance = crds.ChangeTurf(members[index], null, CHANGETURF_DEFER_CHANGE) + + if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() + world.preloader_load(instance) + // If this isn't template work, we didn't change our turf and we changed area, then we've gotta handle area lighting transfer + else if(!no_changeturf && old_area) + // Don't do contain/uncontain stuff, this happens a few lines up when the area actally changes + crds.on_change_area(old_area, crds.loc) + MAPLOADING_CHECK_TICK //finally instance all remainings objects/mobs - for(index in 1 to first_turf_index-1) - instance_atom(members[index], members_attributes[index], crds, no_changeturf, placeOnTop, delete) - //Restore initialization to the previous value - SSatoms.map_loader_stop() + for(var/atom_index in 1 to index-1) + if(members_attributes[atom_index] != default_list) + world.preloader_setup(members_attributes[atom_index], members[atom_index]) + + // We make the assertion that only /atom s will be in this portion of the code. if that isn't true, this will fail + instance = create_atom(members[atom_index], crds)//first preloader pass + + if(GLOB.use_preloader && instance)//second preloader pass, for those atoms that don't ..() in New() + world.preloader_load(instance) + MAPLOADING_CHECK_TICK //////////////// //Helpers procs //////////////// -//Instance an atom at (x,y,z) and gives it the variables in attributes -/datum/parsed_map/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, placeOnTop, delete) - GLOB._preloader.setup(attributes, path) - - if(crds) - if(ispath(path, /turf)) - if(delete) - for(var/atom/A as anything in crds.GetAllTurfStrictContents()) - if(isobserver(A)) - continue - qdel(A, force=TRUE) - - if(placeOnTop) - . = crds.PlaceOnTop(null, path, CHANGETURF_DEFER_CHANGE | (no_changeturf ? CHANGETURF_SKIP : NONE)) - else if(!no_changeturf) - . = crds.ChangeTurf(path, null, CHANGETURF_DEFER_CHANGE) - else - . = create_atom(path, crds)//first preloader pass - else - . = create_atom(path, crds)//first preloader pass - - if(GLOB.use_preloader && .)//second preloader pass, for those atoms that don't ..() in New() - GLOB._preloader.load(.) - - //custom CHECK_TICK here because we don't want things created while we're sleeping to not initialize - if(TICK_CHECK) - SSatoms.map_loader_stop() - stoplag() - SSatoms.map_loader_begin() - /datum/parsed_map/proc/create_atom(path, crds) set waitfor = FALSE . = new path (crds) -//text trimming (both directions) helper proc -//optionally removes quotes before and after the text (for variable name) -/datum/parsed_map/proc/trim_text(what as text,trim_quotes=0) - if(trim_quotes) - return trimQuotesRegex.Replace(what, "") - else - return trimRegex.Replace(what, "") - - //find the position of the next delimiter,skipping whatever is comprised between opening_escape and closing_escape //returns 0 if reached the last delimiter /datum/parsed_map/proc/find_next_delimiter_position(text as text,initial_position as num, delimiter=",",opening_escape="\"",closing_escape="\"") @@ -410,7 +1007,6 @@ return next_delimiter - //build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7)) //return the filled list /datum/parsed_map/proc/readlist(text as text, delimiter=",") @@ -418,28 +1014,29 @@ if (!text) return + // If we're using a semi colon, we can do this as splittext rather then constant calls to find_next_delimiter_position + // This does make the code a bit harder to read, but saves a good bit of time so suck it up var/position var/old_position = 1 - while(position != 0) // find next delimiter that is not within "..." position = find_next_delimiter_position(text,old_position,delimiter) // check if this is a simple variable (as in list(var1, var2)) or an associative one (as in list(var1="foo",var2=7)) var/equal_position = findtext(text,"=",old_position, position) - - var/trim_left = trim_text(copytext(text,old_position,(equal_position ? equal_position : position))) - var/left_constant = delimiter == ";" ? trim_left : parse_constant(trim_left) + var/trim_left = TRIM_TEXT(copytext(text,old_position,(equal_position ? equal_position : position))) + var/left_constant = parse_constant(trim_left) if(position) old_position = position + length(text[position]) + if(!left_constant) // damn newlines man. Exists to provide behavior consistency with the above loop. not a major cost becuase this path is cold + continue if(equal_position && !isnum(left_constant)) // Associative var, so do the association. // Note that numbers cannot be keys - the RHS is dropped if so. - var/trim_right = trim_text(copytext(text, equal_position + length(text[equal_position]), position)) + var/trim_right = TRIM_TEXT(copytext(text, equal_position + length(text[equal_position]), position)) var/right_constant = parse_constant(trim_right) .[left_constant] = right_constant - else // simple var . += list(left_constant) @@ -451,7 +1048,10 @@ // string if(text[1] == "\"") - return copytext(text, length(text[1]) + 1, findtext(text, "\"", length(text[1]) + 1)) + // insert implied locate \" and length("\"") here + // It's a minimal timesave but it is a timesave + // Safe becuase we're guarenteed trimmed constants + return copytext(text, 2, -1) // list if(copytext(text, 1, 6) == "list(")//6 == length("list(") + 1 @@ -479,4 +1079,17 @@ /datum/parsed_map/Destroy() ..() + SSatoms.map_loader_stop(REF(src)) // Just in case, I don't want to double up here + if(turf_blacklist) + turf_blacklist.Cut() + parsed_bounds.Cut() + bounds.Cut() + grid_models.Cut() + gridSets.Cut() return QDEL_HINT_HARDDEL_NOW + +#undef MAP_DMM +#undef MAP_TGM +#undef MAP_UNKNOWN +#undef TRIM_TEXT +#undef MAPLOADING_CHECK_TICK diff --git a/code/modules/mapping/space_management/space_level.dm b/code/modules/mapping/space_management/space_level.dm index 861258aa20a2..48303b5e39ae 100644 --- a/code/modules/mapping/space_management/space_level.dm +++ b/code/modules/mapping/space_management/space_level.dm @@ -4,13 +4,20 @@ var/list/traits var/z_value = 1 //actual z placement var/linkage = SELFLOOPING - var/x_bounds - var/y_bounds + /// Bounds at time of loading the map + var/bounds /datum/space_level/New(new_z, new_name, list/new_traits = list()) z_value = new_z name = new_name traits = new_traits + + if (islist(new_traits)) + for (var/trait in new_traits) + SSmapping.z_trait_levels[trait] += list(new_z) + else // in case a single trait is passed in + SSmapping.z_trait_levels[new_traits] += list(new_z) //set_linkage(new_traits[ZTRAIT_LINKAGE]) - x_bounds = world.maxx - y_bounds = world.maxy + + //Lazy Init value, will be hopefully changed by SSmapping + bounds = list(1, 1, z_value, world.maxx, world.maxy, z_value) diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm index adaff04000ff..3c47ac3b5c2a 100644 --- a/code/modules/mapping/space_management/space_reservation.dm +++ b/code/modules/mapping/space_management/space_reservation.dm @@ -1,81 +1,240 @@ +/// Cordon area surrounding turf reservations +/area/misc/cordon + name = "CORDON" + icon_state = "cordon" + static_lighting = FALSE + base_lighting_alpha = 255 + requires_power = FALSE + +#define CORDON_TURF_TYPE /turf/closed/cordon //Yes, they can only be rectangular. //Yes, I'm sorry. /datum/turf_reservation + /// All turfs that we've reserved var/list/reserved_turfs = list() + + /// Turfs around the reservation for cordoning + var/list/cordon_turfs = list() + + /// Area of turfs next to the cordon to fill with pre_cordon_area's + var/list/pre_cordon_turfs = list() + + /// The width of the reservation var/width = 0 + + /// The height of the reservation var/height = 0 - var/bottom_left_coords[3] - var/top_right_coords[3] - var/wipe_reservation_on_release = TRUE + + /// The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up + var/z_size = 0 + + /// List of the bottom left turfs. Indexed by what their z index for this reservation is + var/list/bottom_left_turfs = list() + + /// List of the top right turfs. Indexed by what their z index for this reservation is + var/list/top_right_turfs = list() + + /// The turf type the reservation is initially made with var/turf_type = /turf/open/space + ///Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen + var/pre_cordon_distance = 0 + /datum/turf_reservation/transit turf_type = /turf/open/space/transit + pre_cordon_distance = 7 /datum/turf_reservation/interior turf_type = /turf/open/void/vehicle /datum/turf_reservation/proc/Release() - var/v = reserved_turfs.Copy() - for(var/i in reserved_turfs) - var/turf/T = i - T.flags_atom |= UNUSED_RESERVATION_TURF - reserved_turfs -= i - SSmapping.used_turfs -= i - SSmapping.reserve_turfs(v) + bottom_left_turfs.Cut() + top_right_turfs.Cut() + + var/list/reserved_copy = reserved_turfs.Copy() + SSmapping.used_turfs -= reserved_turfs + reserved_turfs = list() + + var/list/cordon_copy = cordon_turfs.Copy() + SSmapping.used_turfs -= cordon_turfs + cordon_turfs = list() -/datum/turf_reservation/proc/Reserve(width, height, zlevel) + var/release_turfs = reserved_copy + cordon_copy + + for(var/turf/reserved_turf as anything in release_turfs) + SEND_SIGNAL(reserved_turf, COMSIG_TURF_RESERVATION_RELEASED, src) + + // Makes the linter happy, even tho we don't await this + INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), release_turfs) + +/// Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated +/datum/turf_reservation/proc/calculate_cordon_turfs(turf/bottom_left, turf/top_right) + if(bottom_left.x < 2 || bottom_left.y < 2 || top_right.x > (world.maxx - 2) || top_right.y > (world.maxy - 2)) + return FALSE // no space for a cordon here + + var/list/possible_turfs = CORNER_OUTLINE(bottom_left, width, height) + // if they're our cordon turfs, accept them + possible_turfs -= cordon_turfs + for(var/turf/cordon_turf as anything in possible_turfs) + if(!(cordon_turf.turf_flags & UNUSED_RESERVATION_TURF)) + return FALSE + cordon_turfs |= possible_turfs + + if(pre_cordon_distance) + var/turf/offset_turf = locate(bottom_left.x + pre_cordon_distance, bottom_left.y + pre_cordon_distance, bottom_left.z) + var/list/to_add = CORNER_OUTLINE(offset_turf, width - pre_cordon_distance * 2, height - pre_cordon_distance * 2) //we step-by-stop move inwards from the outer cordon + for(var/turf/turf_being_added as anything in to_add) + pre_cordon_turfs |= turf_being_added //add one by one so we can filter out duplicates + + return TRUE + +/// Actually generates the cordon around the reservation, and marking the cordon turfs as reserved +/datum/turf_reservation/proc/generate_cordon() + for(var/turf/cordon_turf as anything in cordon_turfs) + var/area/misc/cordon/cordon_area = GLOB.areas_by_type[/area/misc/cordon] || new + //var/area/old_area = cordon_turf.loc + //old_area.turfs_to_uncontain += cordon_turf + //cordon_area.contained_turfs += cordon_turf + cordon_area.contents += cordon_turf + // Its no longer unused, but its also not "used" + cordon_turf.turf_flags &= ~UNUSED_RESERVATION_TURF + cordon_turf.ChangeTurf(CORDON_TURF_TYPE, CORDON_TURF_TYPE) + SSmapping.unused_turfs["[cordon_turf.z]"] -= cordon_turf + // still gets linked to us though + SSmapping.used_turfs[cordon_turf] = src + + //swap the area with the pre-cordoning area + +/// Internal proc which handles reserving the area for the reservation. +/datum/turf_reservation/proc/_reserve_area(width, height, zlevel) + src.width = width + src.height = height if(width > world.maxx || height > world.maxy || width < 1 || height < 1) - log_debug("turf reservation had invalid dimensions") return FALSE var/list/avail = SSmapping.unused_turfs["[zlevel]"] - var/turf/bottom_left - var/turf/top_right + var/turf/BL + var/turf/TR var/list/turf/final = list() var/passing = FALSE for(var/i in avail) CHECK_TICK - bottom_left = i - if(!(bottom_left.flags_atom & UNUSED_RESERVATION_TURF)) + BL = i + if(!(BL.turf_flags & UNUSED_RESERVATION_TURF)) continue - if(bottom_left.x + width > world.maxx || bottom_left.y + height > world.maxy) + if(BL.x + width > world.maxx || BL.y + height > world.maxy) continue - top_right = locate(bottom_left.x + width - 1, bottom_left.y + height - 1, bottom_left.z) - if(!(top_right.flags_atom & UNUSED_RESERVATION_TURF)) + TR = locate(BL.x + width - 1, BL.y + height - 1, BL.z) + if(!(TR.turf_flags & UNUSED_RESERVATION_TURF)) continue - final = block(bottom_left, top_right) + final = block(BL, TR) if(!final) continue passing = TRUE - for(var/turf/checking as anything in final) - if(!(checking.flags_atom & UNUSED_RESERVATION_TURF)) + for(var/I in final) + var/turf/checking = I + if(!(checking.turf_flags & UNUSED_RESERVATION_TURF)) passing = FALSE break + if(passing) // found a potentially valid area, now try to calculate its cordon + passing = calculate_cordon_turfs(BL, TR) if(!passing) continue break - if(!passing || !istype(bottom_left) || !istype(top_right)) - log_debug("failed to pass reservation tests, [passing], [istype(bottom_left)], [istype(top_right)]") + if(!passing || !istype(BL) || !istype(TR)) return FALSE - bottom_left_coords = list(bottom_left.x, bottom_left.y, bottom_left.z) - top_right_coords = list(top_right.x, top_right.y, top_right.z) - var/weakref = WEAKREF(src) for(var/i in final) var/turf/T = i reserved_turfs |= T SSmapping.unused_turfs["[T.z]"] -= T - SSmapping.used_turfs[T] = weakref - T = T.ChangeTurf(turf_type, turf_type) - T.flags_atom &= ~UNUSED_RESERVATION_TURF - src.width = width - src.height = height + SSmapping.used_turfs[T] = src + T.turf_flags = (T.turf_flags | RESERVATION_TURF) & ~UNUSED_RESERVATION_TURF + T.ChangeTurf(turf_type, turf_type) + + bottom_left_turfs += BL + top_right_turfs += TR + return TRUE + +/datum/turf_reservation/proc/reserve(width, height, z_size, z_reservation) + src.z_size = z_size + var/failed_reservation = FALSE + for(var/_ in 1 to z_size) + if(!_reserve_area(width, height, z_reservation)) + failed_reservation = TRUE + break + + if(failed_reservation) + Release() + return FALSE + + generate_cordon() return TRUE +/// Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable. +/datum/turf_reservation/proc/calculate_turf_bounds_information(turf/target) + for(var/z_idx in 1 to z_size) + var/turf/bottom_left = bottom_left_turfs[z_idx] + var/turf/top_right = top_right_turfs[z_idx] + var/bl_x = bottom_left.x + var/bl_y = bottom_left.y + var/tr_x = top_right.x + var/tr_y = top_right.y + + if(target.x < bl_x) + continue + + if(target.y < bl_y) + continue + + if(target.x > tr_x) + continue + + if(target.y > tr_y) + continue + + var/list/return_information = list() + return_information["z_idx"] = z_idx + return_information["offset_x"] = target.x - bl_x + return_information["offset_y"] = target.y - bl_y + return return_information + return null + +/// Gets the turf below the given target. Returns null if there is no turf below the target +/datum/turf_reservation/proc/get_turf_below(turf/target) + var/list/bounds_info = calculate_turf_bounds_information(target) + if(isnull(bounds_info)) + return null + + var/z_idx = bounds_info["z_idx"] + // check what z level, if its the max, then there is no turf below + if(z_idx == z_size) + return null + + var/offset_x = bounds_info["offset_x"] + var/offset_y = bounds_info["offset_y"] + var/turf/bottom_left = bottom_left_turfs[z_idx + 1] + return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z) + +/// Gets the turf above the given target. Returns null if there is no turf above the target +/datum/turf_reservation/proc/get_turf_above(turf/target) + var/list/bounds_info = calculate_turf_bounds_information(target) + if(isnull(bounds_info)) + return null + + var/z_idx = bounds_info["z_idx"] + // check what z level, if its the min, then there is no turf above + if(z_idx == 1) + return null + + var/offset_x = bounds_info["offset_x"] + var/offset_y = bounds_info["offset_y"] + var/turf/bottom_left = bottom_left_turfs[z_idx - 1] + return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z) + /datum/turf_reservation/New() LAZYADD(SSmapping.turf_reservations, src) /datum/turf_reservation/Destroy() - INVOKE_ASYNC(src, PROC_REF(Release)) + Release() LAZYREMOVE(SSmapping.turf_reservations, src) return ..() diff --git a/code/modules/mapping/space_management/zlevel_manager.dm b/code/modules/mapping/space_management/zlevel_manager.dm index 9311719ea7d8..2b96065929f8 100644 --- a/code/modules/mapping/space_management/zlevel_manager.dm +++ b/code/modules/mapping/space_management/zlevel_manager.dm @@ -14,16 +14,22 @@ for (var/I in 1 to default_map_traits.len) var/list/features = default_map_traits[I] var/datum/space_level/S = new(I, features[DL_NAME], features[DL_TRAITS]) - z_list += S + manage_z_level(S, filled_with_space = FALSE) + //generate_z_level_linkages() // Default Zs don't use add_new_zlevel() so they don't automatically generate z-linkages. -/datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level) +/datum/controller/subsystem/mapping/proc/add_new_zlevel(name, traits = list(), z_type = /datum/space_level, contain_turfs = TRUE) + UNTIL(!adding_new_zlevel) + adding_new_zlevel = TRUE var/new_z = z_list.len + 1 if (world.maxz < new_z) world.incrementMaxZ() CHECK_TICK // TODO: sleep here if the Z level needs to be cleared var/datum/space_level/S = new z_type(new_z, name, traits) - z_list += S + manage_z_level(S, filled_with_space = TRUE, contain_turfs = contain_turfs) + //generate_linkages_for_z_level(new_z) + //calculate_z_level_gravity(new_z) + adding_new_zlevel = FALSE SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_Z, S) return S diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index cb16480fcfaa..3a27af37f669 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -188,37 +188,38 @@ clean_observe_target() /// When the observer target gets a screen, our observer gets a screen minus some game screens we don't want the observer to touch -/mob/dead/observer/proc/observe_target_screen_add(observe_target_mob_client, add_to_screen) +/mob/dead/observer/proc/observe_target_screen_add(observe_target_mob_client, screen_add) SIGNAL_HANDLER - if(!client) - return - - if(istype(add_to_screen, /atom/movable/screen/action_button)) - return + var/static/list/excluded_types = typecacheof(list( + /atom/movable/screen/fullscreen, + /atom/movable/screen/click_catcher, + /atom/movable/screen/escape_menu, + /atom/movable/screen/buildmode, + /obj/effect/detector_blip, + )) - if(istype(add_to_screen, /atom/movable/screen/fullscreen)) + if(!client) return - if(istype(add_to_screen, /atom/movable/screen/click_catcher)) - return + // `screen_add` can sometimes be a list, so it's safest to just handle everything as one. + var/list/stuff_to_add = (islist(screen_add) ? screen_add : list(screen_add)) - if(istype(add_to_screen, /atom/movable/screen/escape_menu)) - return - - if(istype(add_to_screen, /obj/effect/detector_blip)) - return + for(var/item in stuff_to_add) + // Ignore anything that's in `excluded_types`. + if(is_type_in_typecache(item, excluded_types)) + continue - client.add_to_screen(add_to_screen) + client.add_to_screen(screen_add) /// When the observer target loses a screen, our observer loses it as well -/mob/dead/observer/proc/observe_target_screen_remove(observe_target_mob_client, remove_from_screen) +/mob/dead/observer/proc/observe_target_screen_remove(observe_target_mob_client, screen_remove) SIGNAL_HANDLER if(!client) return - client.remove_from_screen(remove_from_screen) + client.remove_from_screen(screen_remove) /// When the observe target ghosts our observer disconnect from their screen updates /mob/dead/observer/proc/observe_target_ghosting(mob/observer_target_mob) @@ -235,8 +236,9 @@ if(observe_target_client != new_client) observe_target_client = new_client - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add)) - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove)) + // Override the signal from any previous targets. + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add), TRUE) + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove), TRUE) /// When the observe target logs in our observer connect to the new client /mob/dead/observer/proc/observe_target_login(mob/living/new_character) @@ -245,8 +247,9 @@ if(observe_target_client != new_character.client) observe_target_client = new_character.client - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add)) - RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove)) + // Override the signal from any previous targets. + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add), TRUE) + RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove), TRUE) ///makes the ghost see the target hud and sets the eye at the target. /mob/dead/observer/proc/do_observe(atom/movable/target) @@ -256,48 +259,26 @@ ManualFollow(target) reset_perspective() - if(!ishuman(target) || !client.prefs?.auto_observe) + if(!iscarbon(target) || !client.prefs?.auto_observe) return - var/mob/living/carbon/human/human_target = target - - client.eye = human_target - observe_target_mob = human_target - RegisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING, PROC_REF(clean_observe_target)) - RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react)) - - if(!human_target.hud_used) + var/mob/living/carbon/carbon_target = target + if(!carbon_target.hud_used) return client.clear_screen() - LAZYINITLIST(human_target.observers) - human_target.observers |= src - human_target.hud_used.show_hud(human_target.hud_used.hud_version, src) - - var/list/target_contents = human_target.get_contents() - - //Handles any currently open storage containers the target is looking in when we observe - for(var/obj/item/storage/checked_storage in target_contents) - if(!(human_target in checked_storage.content_watchers)) - continue - - client.add_to_screen(checked_storage.closer) - client.add_to_screen(checked_storage.contents) - - if(checked_storage.storage_slots) - client.add_to_screen(checked_storage.boxes) - else - client.add_to_screen(checked_storage.storage_start) - client.add_to_screen(checked_storage.storage_continue) - client.add_to_screen(checked_storage.storage_end) + client.eye = carbon_target + observe_target_mob = carbon_target - break + carbon_target.auto_observed(src) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(observer_move_react)) + RegisterSignal(observe_target_mob, COMSIG_PARENT_QDELETING, PROC_REF(clean_observe_target)) RegisterSignal(observe_target_mob, COMSIG_MOB_GHOSTIZE, PROC_REF(observe_target_ghosting)) RegisterSignal(observe_target_mob, COMSIG_MOB_NEW_MIND, PROC_REF(observe_target_new_mind)) RegisterSignal(observe_target_mob, COMSIG_MOB_LOGIN, PROC_REF(observe_target_login)) - if(human_target.client) - observe_target_client = human_target.client + if(observe_target_mob.client) + observe_target_client = observe_target_mob.client RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_ADD, PROC_REF(observe_target_screen_add)) RegisterSignal(observe_target_client, COMSIG_CLIENT_SCREEN_REMOVE, PROC_REF(observe_target_screen_remove)) @@ -316,7 +297,10 @@ hud_used.show_hud(hud_used.hud_version) /mob/dead/observer/Login() - ..() + ..() // This calls signals which might have resulted in our client getting deleted + + if(!client) + return if(client.check_whitelist_status(WHITELIST_PREDATOR)) RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(toggle_predator_action)) diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index f1b600179450..fa7c7ec3176e 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -14,13 +14,15 @@ to_chat(src, SPAN_NOTICE("'[act]' emote does not exist. Say *help for a list.")) return FALSE var/silenced = FALSE - for(var/datum/emote/P in key_emotes) - if(!P.check_cooldown(src, intentional)) + for(var/datum/emote/current_emote in key_emotes) + if(!current_emote.check_cooldown(src, intentional)) silenced = TRUE continue - if(P.run_emote(src, param, m_type, intentional)) - SEND_SIGNAL(src, COMSIG_MOB_EMOTE, P, act, m_type, message, intentional) - SEND_SIGNAL(src, COMSIG_MOB_EMOTED(P.key)) + if(SEND_SIGNAL(src, COMSIG_MOB_TRY_EMOTE, current_emote, act, m_type, param, intentional) & COMPONENT_OVERRIDE_EMOTE) + silenced = TRUE + continue + if(current_emote.run_emote(src, param, m_type, intentional)) + SEND_SIGNAL(src, COMSIG_MOB_EMOTE, current_emote, act, m_type, message, intentional) return TRUE if(intentional && !silenced && !force_silence) to_chat(src, SPAN_NOTICE("Unusable emote '[act]'. Say *help for a list.")) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a5ef1231a140..08daa5348022 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -416,6 +416,29 @@
"} show_browser(user, dat, name, "mob[name]") +/** + * Called by [/mob/dead/observer/proc/do_observe] when a carbon mob is observed by a ghost with [/datum/preferences/var/auto_observe] enabled. + * + * Any HUD changes past this point are handled by [/mob/dead/observer/proc/observe_target_screen_add] + * and [/mob/dead/observer/proc/observe_target_screen_remove]. + * + * Override on subtype mobs if they have any extra HUD elements/behaviour. + */ +/mob/living/carbon/proc/auto_observed(mob/dead/observer/observer) + SHOULD_CALL_PARENT(TRUE) + + LAZYINITLIST(observers) + observers |= observer + hud_used.show_hud(hud_used.hud_version, observer) + + // Add the player's action buttons (not the actions themselves) to the observer's screen. + for(var/datum/action/action as anything in actions) + // Skip any hidden ones (of course). + if(action.hidden || action.player_hidden) + continue + + observer.client.add_to_screen(action.button) + //generates realistic-ish pulse output based on preset levels /mob/living/carbon/proc/get_pulse(method) //method 0 is for hands, 1 is for machines, more accurate var/temp = 0 //see setup.dm:694 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index da17bf8a15f0..563d0f4107e9 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -541,7 +541,7 @@ if(med_hud.hudusers[passed_human]) return TRUE if("squadleader") - var/datum/mob_hud/faction_hud = GLOB.huds[MOB_HUD_FACTION_USCM] + var/datum/mob_hud/faction_hud = GLOB.huds[MOB_HUD_FACTION_MARINE] if(passed_human.mind && passed_human.assigned_squad && passed_human.assigned_squad.squad_leader == passed_human && faction_hud.hudusers[passed_mob]) return TRUE else diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 4c62361ec52e..3ebd199b08d9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -311,6 +311,29 @@
"} show_browser(user, dat, name, "mob[name]") +/** + * Handles any storage containers that the human is looking inside when auto-observed. + */ +/mob/living/carbon/human/auto_observed(mob/dead/observer/observer) + . = ..() + + // If `src` doesn't have an inventory open. + if(!s_active) + return + + // Add the storage interface to `observer`'s screen. + observer.client.add_to_screen(s_active.closer) + observer.client.add_to_screen(s_active.contents) + + // If the storage has a set number of item slots. + if(s_active.storage_slots) + observer.client.add_to_screen(s_active.boxes) + // If the storage instead has a maximum combined item 'weight'. + else + observer.client.add_to_screen(s_active.storage_start) + observer.client.add_to_screen(s_active.storage_continue) + observer.client.add_to_screen(s_active.storage_end) + // called when something steps onto a human // this handles mulebots and vehicles /mob/living/carbon/human/Crossed(atom/movable/AM) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 5cb439721ce6..1d56b7db2728 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -88,7 +88,7 @@ attack = attacking_mob.species.secondary_unarmed return - last_damage_data = create_cause_data("fisticuffs", src) + last_damage_data = create_cause_data("fisticuffs", attacking_mob) attacking_mob.attack_log += text("\[[time_stamp()]\] [pick(attack.attack_verb)]ed [key_name(src)]") attack_log += text("\[[time_stamp()]\] Has been [pick(attack.attack_verb)]ed by [key_name(attacking_mob)]") msg_admin_attack("[key_name(attacking_mob)] [pick(attack.attack_verb)]ed [key_name(src)] in [get_area(src)] ([src.loc.x],[src.loc.y],[src.loc.z]).", src.loc.x, src.loc.y, src.loc.z) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 942c20482230..2a03b4f0abff 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -311,18 +311,18 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t if(update) UpdateDamageIcon() // damage MANY limbs, in random order -/mob/living/carbon/human/take_overall_damage(brute, burn, sharp = 0, edge = 0, used_weapon = null) +/mob/living/carbon/human/take_overall_damage(brute, burn, used_weapon = null, limb_damage_chance = 80) if(status_flags & GODMODE) return //godmode - var/list/obj/limb/parts = get_damageable_limbs(80) + var/list/obj/limb/parts = get_damageable_limbs(limb_damage_chance) var/amount_of_parts = length(parts) for(var/obj/limb/L as anything in parts) - L.take_damage(brute / amount_of_parts, burn / amount_of_parts, sharp, edge, used_weapon) + L.take_damage(brute / amount_of_parts, burn / amount_of_parts, sharp = FALSE, edge = FALSE, used_weapon = used_weapon) updatehealth() UpdateDamageIcon() -// damage MANY LIMBS, in random order -/mob/living/carbon/human/proc/take_overall_armored_damage(damage, armour_type = ARMOR_MELEE, damage_type = BRUTE, limb_damage_chance = 80, penetration = 0, armour_break_pr_pen = 0, armour_break_flat = 0) +// damage MANY LIMBS, in random order, but consider armor +/mob/living/carbon/human/proc/take_overall_armored_damage(damage, armour_type = ARMOR_MELEE, damage_type = BRUTE, limb_damage_chance = 80, penetration = 0) if(status_flags & GODMODE) return //godmode var/list/obj/limb/parts = get_damageable_limbs(limb_damage_chance) @@ -330,6 +330,8 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t var/armour_config = GLOB.marine_ranged if(armour_type == ARMOR_MELEE) armour_config = GLOB.marine_melee + if(armour_type == ARMOR_BOMB) + armour_config = GLOB.marine_explosive for(var/obj/limb/L as anything in parts) var/armor = getarmor(L, armour_type) var/modified_damage = armor_damage_reduction(armour_config, damage, armor, penetration, 0, 0) diff --git a/code/modules/mob/living/carbon/human/human_dummy.dm b/code/modules/mob/living/carbon/human/human_dummy.dm index 1f90c618fd38..b6fb109cd038 100644 --- a/code/modules/mob/living/carbon/human/human_dummy.dm +++ b/code/modules/mob/living/carbon/human/human_dummy.dm @@ -74,7 +74,6 @@ GLOBAL_LIST_EMPTY(dummy_mob_list) /mob/living/carbon/human/dummy/add_to_all_mob_huds() return - /mob/living/carbon/human/dummy/tutorial // Effectively an even more disabled dummy /mob/living/carbon/human/dummy/tutorial/Initialize(mapload) @@ -82,3 +81,18 @@ GLOBAL_LIST_EMPTY(dummy_mob_list) status_flags = GODMODE ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_SOURCE_TUTORIAL) anchored = TRUE + +// Professor Dummy, used by CMOs and SEAs to teach new nurses/doctors +/mob/living/carbon/human/dummy/professor_dummy/Initialize(mapload) + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_LANDED, PROC_REF(destroy_upon_hijack)) + +/mob/living/carbon/human/dummy/professor_dummy/proc/destroy_upon_hijack() + SIGNAL_HANDLER + + visible_message(SPAN_WARNING("The [src] suddenly disintegrates!")) + dust(create_cause_data("hijack autodelete")) + +/mob/living/carbon/human/dummy/professor_dummy/Destroy() + UnregisterSignal(src, COMSIG_GLOB_HIJACK_LANDED) + return ..() diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 08ddd11da5b3..c38ddbcd552c 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -247,6 +247,13 @@ var/datum/action/item_action/smartgun/toggle_motion_detector/TMD = locate(/datum/action/item_action/smartgun/toggle_motion_detector) in sg.actions TMD.update_icon() sg.motion_detector() + if(istype(i, /obj/item/clothing/suit/storage/marine/medium/rto/intel)) + var/obj/item/clothing/suit/storage/marine/medium/rto/intel/xm4 = i + if(xm4.motion_detector) + xm4.motion_detector = FALSE + var/datum/action/item_action/intel/toggle_motion_detector/TMD = locate(/datum/action/item_action/intel/toggle_motion_detector) in xm4.actions + TMD.update_icon() + xm4.motion_detector() /mob/living/carbon/human/proc/disable_headsets() //Disable all radios to reduce radio spam for dead people diff --git a/code/modules/mob/living/carbon/human/species/zombie.dm b/code/modules/mob/living/carbon/human/species/zombie.dm index f5db0c1b8728..4e8a0b5e98e2 100644 --- a/code/modules/mob/living/carbon/human/species/zombie.dm +++ b/code/modules/mob/living/carbon/human/species/zombie.dm @@ -62,7 +62,7 @@ var/datum/disease/black_goo/zombie_infection = locate() in zombie.viruses if(!zombie_infection) zombie_infection = zombie.AddDisease(new /datum/disease/black_goo()) - zombie_infection.stage = 3 + zombie_infection.stage = 4 var/datum/mob_hud/Hu = GLOB.huds[MOB_HUD_MEDICAL_OBSERVER] Hu.add_hud_to(zombie, zombie) diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm index d6f963747e33..b6576b764b51 100644 --- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm +++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm @@ -211,7 +211,10 @@ return FALSE if(lock_evolve) - to_chat(src, SPAN_WARNING("You are banished and cannot reach the hivemind.")) + if(banished) + to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) + else + to_chat(src, SPAN_WARNING("We can't evolve.")) return FALSE if(jobban_isbanned(src, JOB_XENOMORPH))//~who so genius to do this is? @@ -269,7 +272,10 @@ return if(lock_evolve) - to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) + if(banished) + to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) + else + to_chat(src, SPAN_WARNING("We can't deevolve.")) return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm b/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm deleted file mode 100644 index fc5532955ff9..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm +++ /dev/null @@ -1,264 +0,0 @@ -#define MUTATOR_GAIN_PER_QUEEN_LEVEL 6 -#define MUTATOR_GAIN_PER_XENO_LEVEL 3 - -//A class that holds mutators for a given Xeno hive -//Each time a Queen matures, the hive gets more points -//Each time a Queen dies, the mutators are reset - -//The class contains a lot of variables that are applied to various xenos' stats and actions -/datum/mutator_set - var/remaining_points = 1 //How many points the xeno / hive still has to spend on mutators - var/list/purchased_mutators = list() //List of purchased mutators - var/user_level = 0 //Level of the Queen for Hive or the individual xeno. Starting at -1 so at tier 0 you'd get some mutators to play with - - var/tackle_strength_bonus = 0 - -//Functions to be overloaded to call for when something gets updated on the xenos -/datum/mutator_set/proc/recalculate_everything(description) -/datum/mutator_set/proc/recalculate_stats(description) -/datum/mutator_set/proc/recalculate_actions(description) -/datum/mutator_set/proc/recalculate_pheromones(description) -/datum/mutator_set/proc/give_feedback(description) - - -/datum/mutator_set/proc/purchase_mutator(name) - return FALSE - -/datum/mutator_set/proc/list_and_purchase_mutators() - var/list/mutators_for_purchase = available_mutators() - var/mob/living/carbon/xenomorph/Xeno = usr - if(mutators_for_purchase.len == 0) - to_chat(usr, "There are no available strains.") - var/pick = tgui_input_list(usr, "Which strain would you like to purchase?", "Purchase strain", mutators_for_purchase, theme="hive_status") - if(!pick) - return FALSE - if(alert(usr, "[GLOB.xeno_mutator_list[pick].description]\n\nConfirm mutation?", "Strain purchase", "Yes", "No") != "Yes") return - if(!Xeno.strain_checks()) - return - if(GLOB.xeno_mutator_list[pick].apply_mutator(src)) - to_chat(usr, "Mutation complete!") - return TRUE - else - to_chat(usr, "Mutation failed!") - return FALSE - -/datum/mutator_set/proc/can_purchase_mutator(mutator_name) - var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name] - if(user_level < XM.required_level) - return FALSE //xeno doesn't meet the level requirements - if(remaining_points < XM.cost) - return FALSE //mutator is too expensive - if(XM.unique) - if(XM.name in purchased_mutators) - return FALSE //unique mutator already purchased - if(XM.keystone) - for(var/name in purchased_mutators) - if(GLOB.xeno_mutator_list[name].keystone) - return FALSE //We already have a keystone mutator - if(XM.flaw) - for(var/name in purchased_mutators) - if(GLOB.xeno_mutator_list[name].flaw) - return FALSE //We already have a flaw mutator - return TRUE - -//Lists mutators available for purchase -/datum/mutator_set/proc/available_mutators() - var/list/can_purchase = list() - - for(var/str in GLOB.xeno_mutator_list) - if (can_purchase_mutator(str)) - can_purchase += str //can purchase! - - return can_purchase - -//Mutators applying to the Hive as a whole -/datum/mutator_set/hive_mutators - var/datum/hive_status/hive //Which hive do these mutators apply to. Need this to affect variables there - var/leader_count_boost = 0 - var/maturation_multiplier = 1 - var/tier_slot_multiplier = 1 - var/larva_gestation_multiplier = 1 - var/bonus_larva_spawn_chance = 0 - -/datum/mutator_set/hive_mutators/list_and_purchase_mutators() - if(!hive || !hive.living_xeno_queen) - return //somehow Queen is not set but this function was called... - if(hive.living_xeno_queen.is_dead()) - return //Dead xenos can't mutate! - if(hive.living_xeno_queen.hardcore) - to_chat(usr, SPAN_WARNING("No time for that, must KILL!")) - return - if(!hive.living_xeno_queen.ovipositor) - to_chat(usr, "You must be in Ovipositor to purchase Hive Mutators.") - return - . = ..() - if (. == TRUE && purchased_mutators.len) - var/m = purchased_mutators[purchased_mutators.len] - log_mutator("[hive.living_xeno_queen.name] purchased Hive Mutator '[m]'") - -/datum/mutator_set/hive_mutators/can_purchase_mutator(mutator_name) - if (..() == FALSE) - return FALSE //Can't buy it regardless - var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name] - if(XM.individual_only) - return FALSE //We can't buy individual mutators on a Hive level - return TRUE - -//Called when the Queen dies -// This isn't currently used, but if anyone wants to, expect it to be broken because -// I haven't made any effort to integrate it into the new system (Fourkhan, 5/11/19) -/datum/mutator_set/hive_mutators/proc/reset_mutators() - if(purchased_mutators.len == 0) - //No mutators purchased, nothing to reset! - return - - var/depowered = FALSE - for(var/name in purchased_mutators) - if(!GLOB.xeno_mutator_list[name].death_persistent) - purchased_mutators -= name - depowered = TRUE - - if(!depowered) - return //We haven't lost anything - - tackle_strength_bonus = 0 - - leader_count_boost = 0 - maturation_multiplier = 1 - tier_slot_multiplier = 1 - larva_gestation_multiplier = 1 - bonus_larva_spawn_chance = 0 - - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_everything() - to_chat(X, SPAN_XENOANNOUNCE("Queen's influence wanes. You feel weak!")) - playsound(X.loc, "alien_help", 25) - X.xeno_jitter(15) - -/datum/mutator_set/hive_mutators/recalculate_everything(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_everything() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/recalculate_stats(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_stats() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/recalculate_actions(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_actions() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/recalculate_pheromones(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_pheromones() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/proc/recalculate_maturation(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - X.recalculate_maturation() - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) -/datum/mutator_set/hive_mutators/proc/recalculate_hive(description) - hive.recalculate_hive() - give_feedback(description) -/datum/mutator_set/hive_mutators/give_feedback(description) - for(var/mob/living/carbon/xenomorph/X in GLOB.living_xeno_list) - if(X.hivenumber == hive.hivenumber) - to_chat(X, SPAN_XENOANNOUNCE("Queen has granted the Hive a boon! [description]")) - X.xeno_jitter(15) - -//Mutators applying to an individual xeno -/datum/mutator_set/individual_mutators - var/mob/living/carbon/xenomorph/xeno - var/pull_multiplier = 1 - var/egg_laying_multiplier = 1 - var/need_weeds = TRUE - //Strains Below - remaining_points = 6 - - -/datum/mutator_set/individual_mutators/Destroy() - if(xeno) - xeno.mutators = null - xeno = null - . = ..() - -/datum/mutator_set/individual_mutators/list_and_purchase_mutators() - . = ..() - if (. == TRUE && purchased_mutators.len) - var/m = purchased_mutators[purchased_mutators.len] - log_mutator("[xeno.name] purchased Mutator '[m]'") - -/datum/mutator_set/individual_mutators/can_purchase_mutator(mutator_name) - if (..() == FALSE) - return FALSE //Can't buy it regardless - var/datum/xeno_mutator/XM = GLOB.xeno_mutator_list[mutator_name] - if(XM.hive_only) - return FALSE //We can't buy Hive mutators on an individual level - if(XM.caste_whitelist && (XM.caste_whitelist.len > 0) && !(xeno.caste_type in XM.caste_whitelist)) - return FALSE //We are not on the whitelist - return TRUE - -/datum/mutator_set/individual_mutators/recalculate_actions(description, flavor_description = null) - xeno.recalculate_actions() - to_chat(xeno, SPAN_XENOANNOUNCE("[description]")) - if (flavor_description != null) - to_chat(xeno, SPAN_XENOLEADER("[flavor_description]")) - xeno.xeno_jitter(15) - - -/mob/living/carbon/xenomorph/queen/verb/purchase_hive_mutators() - set name = "Purchase Hive Mutators" - set desc = "Purchase Mutators affecting the entire Hive." - set category = "Alien" - if(hardcore) - to_chat(usr, SPAN_WARNING("No time for that, must KILL!")) - return - if(!src.hive || !src.hive.mutators) - return //For some reason we don't have mutators - src.hive.mutators.list_and_purchase_mutators() - -/mob/living/carbon/xenomorph/verb/purchase_strains() - set name = "Purchase Strains" - set desc = "Purchase Strains for yourself." - set category = "Alien" - - if(!strain_checks()) - return - if(!src.mutators) - return //For some reason we don't have mutators - src.mutators.list_and_purchase_mutators() - -/mob/living/carbon/xenomorph/proc/strain_checks() - if(!check_state(TRUE)) - return FALSE - - if(is_ventcrawling) - to_chat(src, SPAN_WARNING("This place is too constraining to take a strain.")) - return FALSE - - if(!isturf(loc)) - to_chat(src, SPAN_WARNING("We can't take a strain here.")) - return FALSE - - if(handcuffed || legcuffed) - to_chat(src, SPAN_WARNING("The restraints are too restricting to allow us to take a strain.")) - return FALSE - - if(health < maxHealth) - to_chat(src, SPAN_WARNING("We must be at full health to take a strain.")) - return FALSE - - if(agility || fortify || crest_defense || stealth) - to_chat(src, SPAN_WARNING("We cannot take a strain while in this stance.")) - return FALSE - - return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index fc25c80e795f..69ab18431237 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -130,10 +130,8 @@ var/weed_level = WEED_LEVEL_STANDARD var/acid_level = 0 - // Mutator-related and other important vars - var/mutation_icon_state = null - var/mutation_type = null - var/datum/mutator_set/individual_mutators/mutators = new + /// The xeno's strain, if they've taken one. + var/datum/xeno_strain/strain = null // Hive-related vars var/datum/hive_status/hive @@ -389,8 +387,6 @@ for(var/trait in hive.hive_inherant_traits) ADD_TRAIT(src, trait, TRAIT_SOURCE_HIVE) - mutators.xeno = src - //Set caste stuff if(caste_type && GLOB.xeno_datum_list[caste_type]) caste = GLOB.xeno_datum_list[caste_type] @@ -661,8 +657,8 @@ . += "It appears to belong to [hive?.name ? "the [hive.name]" : "a different hive"]." if(isxeno(user) || isobserver(user)) - if(mutation_type != "Normal") - . += "It has specialized into a [mutation_type]." + if(strain) + . += "It has specialized into a [strain.name]." if(iff_tag) . += SPAN_NOTICE("It has an IFF tag sticking out of its carapace.") @@ -693,7 +689,7 @@ selected_ability = null queued_action = null - QDEL_NULL(mutators) + QDEL_NULL(strain) QDEL_NULL(behavior_delegate) built_structures = null @@ -709,18 +705,11 @@ if(hardcore) attack_log?.Cut() // Completely clear out attack_log to limit mem usage if we fail to delete - . = ..() - - // Everything below fits the "we have to clear by principle it but i dont wanna break stuff" bill - mutators = null - - + return ..() /mob/living/carbon/xenomorph/slip(slip_source_name, stun_level, weaken_level, run_only, override_noslip, slide_steps) return FALSE - - /mob/living/carbon/xenomorph/start_pulling(atom/movable/AM, lunge, no_msg) if(SEND_SIGNAL(AM, COMSIG_MOVABLE_XENO_START_PULLING, src) & COMPONENT_ALLOW_PULL) return do_pull(AM, lunge, no_msg) @@ -777,6 +766,11 @@ var/datum/mob_hud/MH = GLOB.huds[MOB_HUD_XENO_INFECTION] MH.add_hud_to(src, src) +// Transfer any observing players over to the xeno's new body (`target`) on evolve/de-evolve. +/mob/living/carbon/xenomorph/transfer_observers_to(atom/target) + for(var/mob/dead/observer/observer as anything in observers) + observer.clean_observe_target() + observer.do_observe(target) /mob/living/carbon/xenomorph/check_improved_pointing() //xeno leaders get a big arrow and less cooldown @@ -823,10 +817,10 @@ //*********************************************************// -//********************Mutator functions********************// +// ******************** Strain Procs **********************// //*********************************************************// -//Call this function when major changes happen - evolutions, upgrades, mutators getting removed +//Call this proc when major changes happen - evolutions, upgrades, mutators getting removed /mob/living/carbon/xenomorph/proc/recalculate_everything() recalculate_stats() recalculate_actions() @@ -850,8 +844,8 @@ tackle_min = caste.tackle_min tackle_max = caste.tackle_max tackle_chance = caste.tackle_chance + tackle_chance_modifier - tacklestrength_min = caste.tacklestrength_min + mutators.tackle_strength_bonus + hive.mutators.tackle_strength_bonus - tacklestrength_max = caste.tacklestrength_max + mutators.tackle_strength_bonus + hive.mutators.tackle_strength_bonus + tacklestrength_min = caste.tacklestrength_min + tacklestrength_max = caste.tacklestrength_max /mob/living/carbon/xenomorph/proc/recalculate_health() var/new_max_health = nocrit ? health_modifier + maxHealth : health_modifier + caste.max_health @@ -907,18 +901,8 @@ /mob/living/carbon/xenomorph/proc/recalculate_actions() recalculate_acid() recalculate_weeds() - pull_multiplier = mutators.pull_multiplier - if(isrunner(src)) - //Xeno runners need a small nerf to dragging speed mutator - pull_multiplier = 1 - (1 - mutators.pull_multiplier) * 0.85 - if(is_zoomed) - zoom_out() - if(iscarrier(src)) - var/mob/living/carbon/xenomorph/carrier/carrier = src - carrier.huggers_max = caste.huggers_max - carrier.eggs_max = caste.eggs_max - need_weeds = mutators.need_weeds - + // Modified on subtypes + pull_multiplier = initial(pull_multiplier) /mob/living/carbon/xenomorph/proc/recalculate_acid() if(caste) @@ -1043,7 +1027,7 @@ handle_ghost_message() /mob/living/carbon/xenomorph/proc/handle_ghost_message() - notify_ghosts("[src] ([mutation_type] [caste_type]) has ghosted and their body is up for grabs!", source = src) + notify_ghosts("[src] ([get_strain_name()] [caste_type]) has ghosted and their body is up for grabs!", source = src) /mob/living/carbon/xenomorph/larva/handle_ghost_message() if(locate(/obj/effect/alien/resin/special/pylon/core) in range(2, get_turf(src))) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm index 68312b77936d..41459353ec1e 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ability_helper_procs.dm @@ -310,6 +310,9 @@ to_chat(src, SPAN_NOTICE("We start focusing our plasma towards [target].")) to_chat(target, SPAN_NOTICE("We feel that [src] starts transferring some of their plasma to us.")) + face_atom(target) + target.flick_heal_overlay(transfer_delay, COLOR_CYAN) + if(!do_after(src, transfer_delay, INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) return @@ -320,6 +323,7 @@ amount = plasma_stored //Just use all of it use_plasma(amount) target.gain_plasma(amount) + target.xeno_jitter(1 SECONDS) to_chat(target, SPAN_XENOWARNING("[src] has transfered [amount] plasma to us. We now have [target.plasma_stored].")) to_chat(src, SPAN_XENOWARNING("We have transferred [amount] plasma to [target]. We now have [plasma_stored].")) playsound(src, "alien_drool", 25) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm index 152115cd7c8b..f854272365d0 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/burrower/burrower_powers.dm @@ -156,7 +156,7 @@ addtimer(CALLBACK(src, PROC_REF(process_tunnel), T), 1 SECONDS) /mob/living/carbon/xenomorph/proc/do_tunnel(turf/T) - to_chat(src, SPAN_NOTICE("We tunnel to your destination.")) + to_chat(src, SPAN_NOTICE("We tunnel to the destination.")) anchored = FALSE forceMove(T) burrow_off() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm index 4ac166c58c69..e1af5e36a40f 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm @@ -37,7 +37,7 @@ RegisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, PROC_REF(check_directional_armor)) var/mob/living/carbon/xenomorph/xeno_owner = owner - if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL) + if(!istype(xeno_owner)) return var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate @@ -51,7 +51,7 @@ ..() UnregisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE) var/mob/living/carbon/xenomorph/xeno_owner = owner - if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL) + if(!istype(xeno_owner)) return var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate @@ -62,7 +62,7 @@ /datum/action/xeno_action/activable/pounce/crusher_charge/proc/undo_charging_icon() var/mob/living/carbon/xenomorph/xeno_owner = owner - if(!istype(xeno_owner) || xeno_owner.mutation_type != CRUSHER_NORMAL) + if(!istype(xeno_owner)) return var/datum/behavior_delegate/crusher_base/crusher_delegate = xeno_owner.behavior_delegate diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm index 22d5f4b57aa2..d28a4bb67978 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_abilities.dm @@ -20,6 +20,13 @@ ability_primacy = XENO_PRIMARY_ACTION_2 xeno_cooldown = 4 SECONDS + var/base_damage = 30 + var/usable_while_fortified = FALSE + +/datum/action/xeno_action/activable/headbutt/steel_crest + base_damage = 37.5 + usable_while_fortified = TRUE + /datum/action/xeno_action/onclick/tail_sweep name = "Tail Sweep" action_icon_state = "tail_sweep" @@ -41,8 +48,9 @@ /// Extra armor when fortified and facing bullets. var/frontal_armor = 5 - /// Extra armor when steelcrest, fortified, and facing bullets. - var/steelcrest_frontal_armor = 15 + +/datum/action/xeno_action/activable/fortify/steel_crest + frontal_armor = 15 /datum/action/xeno_action/activable/tail_stab/slam name = "Tail Slam" diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm index bd01376c9f9d..98c0c19f68f7 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/defender/defender_powers.dm @@ -40,7 +40,7 @@ // Defender Headbutt /datum/action/xeno_action/activable/headbutt/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/fendy = owner - if (!istype(fendy)) + if(!istype(fendy)) return if(!isxeno_human(target_atom) || fendy.can_not_harm(target_atom)) @@ -49,13 +49,13 @@ if(!fendy.check_state()) return - if (!action_cooldown_check()) + if(!action_cooldown_check()) return if(!check_and_use_plasma_owner()) return - if(fendy.fortify && !(fendy.mutation_type == DEFENDER_STEELCREST)) + if(fendy.fortify && !usable_while_fortified) to_chat(fendy, SPAN_XENOWARNING("We cannot use headbutt while fortified.")) return @@ -81,11 +81,10 @@ fendy.visible_message(SPAN_XENOWARNING("[fendy] rams [carbone] with its armored crest!"), \ SPAN_XENOWARNING("We ram [carbone] with our armored crest!")) - if(carbone.stat != DEAD && (!(carbone.status_flags & XENO_HOST) || !HAS_TRAIT(carbone, TRAIT_NESTED)) ) - var/h_damage = 30 - (fendy.crest_defense * 10) - if(fendy.mutation_type == DEFENDER_STEELCREST) - h_damage += 7.5 - carbone.apply_armoured_damage(get_xeno_damage_slash(carbone, h_damage), ARMOR_MELEE, BRUTE, "chest", 5) + if(carbone.stat != DEAD && (!(carbone.status_flags & XENO_HOST) || !HAS_TRAIT(carbone, TRAIT_NESTED))) + // -10 damage if their crest is down. + var/damage = base_damage - (fendy.crest_defense * 10) + carbone.apply_armoured_damage(get_xeno_damage_slash(carbone, damage), ARMOR_MELEE, BRUTE, "chest", 5) var/facing = get_dir(fendy, carbone) var/headbutt_distance = 1 + (fendy.crest_defense * 2) + (fendy.fortify * 2) @@ -157,10 +156,6 @@ if (!istype(xeno)) return - if(xeno.crest_defense && xeno.mutation_type == DEFENDER_STEELCREST) - to_chat(src, SPAN_XENOWARNING("We cannot fortify while our crest is already down!")) - return - if(xeno.crest_defense) to_chat(src, SPAN_XENOWARNING("We cannot use fortify with our crest lowered.")) return @@ -174,11 +169,13 @@ playsound(get_turf(xeno), 'sound/effects/stonedoor_openclose.ogg', 30, 1) if(!xeno.fortify) - RegisterSignal(owner, COMSIG_MOB_DEATH, PROC_REF(death_check)) + RegisterSignal(owner, COMSIG_XENO_ENTER_CRIT, PROC_REF(unconscious_check)) + RegisterSignal(owner, COMSIG_MOB_DEATH, PROC_REF(unconscious_check)) fortify_switch(xeno, TRUE) if(xeno.selected_ability != src) button.icon_state = "template_active" else + UnregisterSignal(owner, COMSIG_XENO_ENTER_CRIT) UnregisterSignal(owner, COMSIG_MOB_DEATH) fortify_switch(xeno, FALSE) if(xeno.selected_ability != src) @@ -199,59 +196,67 @@ if(xeno.fortify) button.icon_state = "template_active" -/datum/action/xeno_action/activable/fortify/proc/fortify_switch(mob/living/carbon/xenomorph/X, fortify_state) - if(X.fortify == fortify_state) +/datum/action/xeno_action/activable/fortify/proc/fortify_switch(mob/living/carbon/xenomorph/xeno, fortify_state) + if(xeno.fortify == fortify_state) return if(fortify_state) - to_chat(X, SPAN_XENOWARNING("We tuck ourself into a defensive stance.")) - if(X.mutation_type == DEFENDER_STEELCREST) - X.armor_deflection_buff += 10 - X.armor_explosive_buff += 60 - X.ability_speed_modifier += 3 - X.damage_modifier -= XENO_DAMAGE_MOD_SMALL - else - X.armor_deflection_buff += 30 - X.armor_explosive_buff += 60 - ADD_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) - X.anchored = TRUE - X.small_explosives_stun = FALSE + to_chat(xeno, SPAN_XENOWARNING("We tuck ourself into a defensive stance.")) RegisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE, PROC_REF(check_directional_armor)) - X.mob_size = MOB_SIZE_IMMOBILE //knockback immune - X.mob_flags &= ~SQUEEZE_UNDER_VEHICLES - X.update_icons() - X.fortify = TRUE + xeno.mob_size = MOB_SIZE_IMMOBILE //knockback immune + xeno.mob_flags &= ~SQUEEZE_UNDER_VEHICLES + xeno.fortify = TRUE else - to_chat(X, SPAN_XENOWARNING("We resume our normal stance.")) - REMOVE_TRAIT(X, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) - X.anchored = FALSE - if(X.mutation_type == DEFENDER_STEELCREST) - X.armor_deflection_buff -= 10 - X.armor_explosive_buff -= 60 - X.ability_speed_modifier -= 3 - X.damage_modifier += XENO_DAMAGE_MOD_SMALL - else - X.armor_deflection_buff -= 30 - X.armor_explosive_buff -= 60 - X.small_explosives_stun = TRUE + to_chat(xeno, SPAN_XENOWARNING("We resume our normal stance.")) + REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) + xeno.anchored = FALSE UnregisterSignal(owner, COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE) - X.mob_size = MOB_SIZE_XENO //no longer knockback immune - X.mob_flags |= SQUEEZE_UNDER_VEHICLES - X.update_icons() - X.fortify = FALSE + xeno.mob_size = MOB_SIZE_XENO //no longer knockback immune + xeno.mob_flags |= SQUEEZE_UNDER_VEHICLES + xeno.fortify = FALSE + + apply_modifiers(xeno, fortify_state) + xeno.update_icons() + +/datum/action/xeno_action/activable/fortify/proc/apply_modifiers(mob/living/carbon/xenomorph/xeno, fortify_state) + if(fortify_state) + xeno.armor_deflection_buff += 30 + xeno.armor_explosive_buff += 60 + ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Fortify")) + xeno.anchored = TRUE + xeno.small_explosives_stun = FALSE + else + xeno.armor_deflection_buff -= 30 + xeno.armor_explosive_buff -= 60 + xeno.small_explosives_stun = TRUE + +// Steel crest override +/datum/action/xeno_action/activable/fortify/steel_crest/apply_modifiers(mob/living/carbon/xenomorph/xeno, fortify_state) + if(fortify_state) + xeno.armor_deflection_buff += 10 + xeno.armor_explosive_buff += 60 + xeno.ability_speed_modifier += 3 + xeno.damage_modifier -= XENO_DAMAGE_MOD_SMALL + else + xeno.armor_deflection_buff -= 10 + xeno.armor_explosive_buff -= 60 + xeno.ability_speed_modifier -= 3 + xeno.damage_modifier += XENO_DAMAGE_MOD_SMALL /datum/action/xeno_action/activable/fortify/proc/check_directional_armor(mob/living/carbon/xenomorph/defendy, list/damagedata) SIGNAL_HANDLER var/projectile_direction = damagedata["direction"] + // If the defender is facing the projectile. if(defendy.dir & REVERSE_DIR(projectile_direction)) - if(defendy.mutation_type == DEFENDER_STEELCREST) - damagedata["armor"] += steelcrest_frontal_armor - else - damagedata["armor"] += frontal_armor + damagedata["armor"] += frontal_armor -/datum/action/xeno_action/activable/fortify/proc/death_check() +/datum/action/xeno_action/activable/fortify/proc/unconscious_check() SIGNAL_HANDLER + if(QDELETED(owner)) + return + + UnregisterSignal(owner, COMSIG_XENO_ENTER_CRIT) UnregisterSignal(owner, COMSIG_MOB_DEATH) fortify_switch(owner, FALSE) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm index 460a561fa801..0e897335cf10 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm @@ -497,6 +497,7 @@ ability_name = "view tacmap" var/mob/living/carbon/xenomorph/queen/tracked_queen + var/hivenumber /datum/action/xeno_action/onclick/tacmap/Destroy() tracked_queen = null @@ -505,6 +506,7 @@ /datum/action/xeno_action/onclick/tacmap/give_to(mob/living/carbon/xenomorph/xeno) . = ..() + hivenumber = xeno.hive.hivenumber RegisterSignal(xeno.hive, COMSIG_HIVE_NEW_QUEEN, PROC_REF(handle_new_queen)) if(!xeno.hive.living_xeno_queen) @@ -516,6 +518,10 @@ handle_new_queen(new_queen = xeno.hive.living_xeno_queen) +/datum/action/xeno_action/onclick/tacmap/remove_from(mob/living/carbon/xenomorph/xeno) + . = ..() + UnregisterSignal(GLOB.hive_datum[hivenumber], COMSIG_HIVE_NEW_QUEEN) + /// handles the addition of a new queen, hiding if appropriate /datum/action/xeno_action/onclick/tacmap/proc/handle_new_queen(datum/hive_status/hive, mob/living/carbon/xenomorph/queen/new_queen) SIGNAL_HANDLER diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm index 3c6b39f146be..0f72bf4d81c7 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lesser_drone/lesser_drone_powers.dm @@ -1,6 +1,6 @@ /datum/action/xeno_action/onclick/plant_weeds/lesser/use_ability(atom/A) if(!(locate(/obj/effect/alien/weeds/node) in orange(4, owner))) - to_chat(owner, SPAN_XENONOTICE("We can only plant resin nodes near other resin nodes!")) + to_chat(owner, SPAN_XENONOTICE("We can only plant weed nodes near other weed nodes!")) return . = ..() diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm index fd525701b12d..8a829d8d6bc0 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm @@ -6,46 +6,11 @@ plasma_cost = 20 // Config options - distance = 6 knockdown = FALSE knockdown_duration = 2.5 - freeze_self = TRUE freeze_time = 15 can_be_shield_blocked = TRUE -/datum/action/xeno_action/activable/pounce/lurker/additional_effects_always() - var/mob/living/carbon/xenomorph/xeno = owner - if (!istype(xeno)) - return - if (xeno.mutation_type == LURKER_NORMAL) - var/found = FALSE - for (var/mob/living/carbon/human/human in get_turf(xeno)) - if(human.stat == DEAD) - continue - found = TRUE - break - - if (found) - var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis = get_xeno_action_by_type(xeno, /datum/action/xeno_action/onclick/lurker_invisibility) - if (istype(lurker_invis)) - lurker_invis.invisibility_off() - -/datum/action/xeno_action/activable/pounce/lurker/additional_effects(mob/living/living_mob) - var/mob/living/carbon/xenomorph/xeno = owner - if (!istype(xeno)) - return - - if (xeno.mutation_type == LURKER_NORMAL) - RegisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF, PROC_REF(remove_freeze), TRUE) // Suppresses runtime ever we pounce again before slashing - -/datum/action/xeno_action/activable/pounce/lurker/proc/remove_freeze(mob/living/carbon/xenomorph/xeno) - SIGNAL_HANDLER - - var/datum/behavior_delegate/lurker_base/behaviour_del = xeno.behavior_delegate - if (istype(behaviour_del)) - UnregisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF) - end_pounce_freeze() - /datum/action/xeno_action/onclick/lurker_invisibility name = "Turn Invisible" action_icon_state = "lurker_invisibility" diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm index 24aa94727ca9..0d1bcc99281a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_powers.dm @@ -1,3 +1,34 @@ +/datum/action/xeno_action/activable/pounce/lurker/additional_effects_always() + var/mob/living/carbon/xenomorph/xeno = owner + if(!istype(xeno)) + return + + var/found = FALSE + for(var/mob/living/carbon/human/human in get_turf(xeno)) + if(human.stat == DEAD) + continue + found = TRUE + break + + if(found) + var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis = get_xeno_action_by_type(xeno, /datum/action/xeno_action/onclick/lurker_invisibility) + lurker_invis.invisibility_off() + +/datum/action/xeno_action/activable/pounce/lurker/additional_effects(mob/living/living_mob) + var/mob/living/carbon/xenomorph/xeno = owner + if(!istype(xeno)) + return + + RegisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF, PROC_REF(remove_freeze), TRUE) // Suppresses runtime ever we pounce again before slashing + +/datum/action/xeno_action/activable/pounce/lurker/proc/remove_freeze(mob/living/carbon/xenomorph/xeno) + SIGNAL_HANDLER + + var/datum/behavior_delegate/lurker_base/behaviour_del = xeno.behavior_delegate + if(istype(behaviour_del)) + UnregisterSignal(xeno, COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF) + end_pounce_freeze() + /datum/action/xeno_action/onclick/lurker_invisibility/use_ability(atom/targeted_atom) var/mob/living/carbon/xenomorph/xeno = owner @@ -16,9 +47,8 @@ xeno.speed_modifier -= speed_buff xeno.recalculate_speed() - if (xeno.mutation_type == LURKER_NORMAL) - var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate - behavior.on_invisibility() + var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate + behavior.on_invisibility() // if we go off early, this also works fine. invis_timer_id = addtimer(CALLBACK(src, PROC_REF(invisibility_off)), duration, TIMER_STOPPABLE) @@ -45,10 +75,9 @@ xeno.speed_modifier += speed_buff xeno.recalculate_speed() - if (xeno.mutation_type == LURKER_NORMAL) - var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate - if (istype(behavior)) - behavior.on_invisibility_off() + var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate + if (istype(behavior)) + behavior.on_invisibility_off() /datum/action/xeno_action/onclick/lurker_invisibility/ability_cooldown_over() to_chat(owner, SPAN_XENOHIGHDANGER("We are ready to use our invisibility again!")) @@ -66,9 +95,6 @@ if (!check_and_use_plasma_owner()) return - if (xeno.mutation_type != LURKER_NORMAL) - return - var/datum/behavior_delegate/lurker_base/behavior = xeno.behavior_delegate if (istype(behavior)) behavior.next_slash_buffed = TRUE @@ -189,7 +215,7 @@ if(distance > 2) return - var/list/turf/path = get_line(xeno, hit_target, include_start_atom = FALSE) + var/list/turf/path = get_line(xeno, targeted_atom, include_start_atom = FALSE) for(var/turf/path_turf as anything in path) if(path_turf.density) to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!")) @@ -211,8 +237,20 @@ if(current_structure.density && !current_structure.throwpass) to_chat(xeno, SPAN_WARNING("There's something blocking us from striking!")) return - - if(!isxeno_human(hit_target) || xeno.can_not_harm(hit_target) || hit_target.stat == DEAD) + // find a target in the target turf + if(!iscarbon(targeted_atom) || hit_target.stat == DEAD) + for(var/mob/living/carbon/carbonara in get_turf(targeted_atom)) + hit_target = carbonara + if(!xeno.can_not_harm(hit_target) && hit_target.stat != DEAD) + break + + if(iscarbon(hit_target) && !xeno.can_not_harm(hit_target) && hit_target.stat != DEAD) + if(targeted_atom == hit_target) //reward for a direct hit + to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!")) + hit_target.apply_armoured_damage(15, ARMOR_MELEE, BRUTE, "chest") + else + to_chat(xeno, SPAN_XENODANGER("We attack [hit_target] with our tail, throwing it back after stabbing it with our tail!")) + else xeno.visible_message(SPAN_XENOWARNING("\The [xeno] swipes their tail through the air!"), SPAN_XENOWARNING("We swipe our tail through the air!")) apply_cooldown(cooldown_modifier = 0.2) playsound(xeno, 'sound/effects/alien_tail_swipe1.ogg', 50, TRUE) @@ -221,11 +259,8 @@ // FX var/stab_direction - to_chat(xeno, SPAN_XENOHIGHDANGER("We directly slam [hit_target] with our tail, throwing it back after impaling it on our tail!")) + stab_direction = turn(get_dir(xeno, targeted_atom), 180) playsound(hit_target,'sound/weapons/alien_tail_attack.ogg', 50, TRUE) - - stab_direction = turn(get_dir(xeno, hit_target), 180) - if(hit_target.mob_size < MOB_SIZE_BIG) step_away(hit_target, xeno) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm index c2fbd6b9d8c4..199df345fb62 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm @@ -129,7 +129,7 @@ // Config var/max_distance = 7 - var/windup = 7 DECISECONDS + var/windup = 8 DECISECONDS /datum/action/xeno_action/activable/oppressor_punch name = "Dislocate" diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm index 5c7ea03ee7b2..647bf7936195 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_powers.dm @@ -70,10 +70,9 @@ playsound(current_mob, 'sound/weapons/alien_tail_attack.ogg', 30, TRUE) if (target_mobs.len >= shield_regen_threshold) - if (source_xeno.mutation_type == PRAETORIAN_VANGUARD) - var/datum/behavior_delegate/praetorian_vanguard/BD = source_xeno.behavior_delegate - if (istype(BD)) - BD.regen_shield() + var/datum/behavior_delegate/praetorian_vanguard/behavior = source_xeno.behavior_delegate + if (istype(behavior)) + behavior.regen_shield() apply_cooldown() return ..() @@ -135,10 +134,9 @@ playsound(get_turf(H), "alien_claw_flesh", 30, 1) if (target_mobs.len >= shield_regen_threshold) - if (X.mutation_type == PRAETORIAN_VANGUARD) - var/datum/behavior_delegate/praetorian_vanguard/BD = X.behavior_delegate - if (istype(BD)) - BD.regen_shield() + var/datum/behavior_delegate/praetorian_vanguard/behavior = X.behavior_delegate + if (istype(behavior)) + behavior.regen_shield() /datum/action/xeno_action/activable/cleave/use_ability(atom/target_atom) var/mob/living/carbon/xenomorph/vanguard_user = owner @@ -545,16 +543,12 @@ if (!check_and_use_plasma_owner()) return - var/buffed = FALSE apply_cooldown() - if (dancer_user.mutation_type == PRAETORIAN_DANCER) - var/found = FALSE - for (var/datum/effects/dancer_tag/dancer_tag_effect in target_carbon.effects_list) - found = TRUE - qdel(dancer_tag_effect) - break - - buffed = found + var/buffed = FALSE + for (var/datum/effects/dancer_tag/dancer_tag_effect in target_carbon.effects_list) + buffed = TRUE + qdel(dancer_tag_effect) + break if(ishuman(target_carbon)) var/mob/living/carbon/human/Hu = target_carbon @@ -601,9 +595,6 @@ if (!check_and_use_plasma_owner()) return - if (xeno.mutation_type != PRAETORIAN_DANCER) - return - var/datum/behavior_delegate/praetorian_dancer/behavior = xeno.behavior_delegate if (!istype(behavior)) return @@ -626,9 +617,6 @@ if (!istype(xeno)) return - if (xeno.mutation_type != PRAETORIAN_DANCER) - return - var/datum/behavior_delegate/praetorian_dancer/behavior = xeno.behavior_delegate if (!istype(behavior)) return @@ -806,17 +794,16 @@ var/bonus_shield = 0 - if (X.mutation_type == PRAETORIAN_WARDEN) - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if (!istype(BD)) - return + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if (!istype(behavior)) + return - if (!BD.use_internal_hp_ability(shield_cost)) - return + if (!behavior.use_internal_hp_ability(shield_cost)) + return - bonus_shield = BD.internal_hitpoints*0.5 - if (!BD.use_internal_hp_ability(bonus_shield)) - bonus_shield = 0 + bonus_shield = behavior.internal_hitpoints*0.5 + if (!behavior.use_internal_hp_ability(bonus_shield)) + bonus_shield = 0 var/total_shield_amount = shield_amount + bonus_shield @@ -841,7 +828,7 @@ if (!X.Adjacent(A)) to_chat(X, SPAN_XENODANGER("We must be within touching distance of [targetXeno]!")) return - if (targetXeno.mutation_type == PRAETORIAN_WARDEN) + if(istype(targetXeno.strain, /datum/xeno_strain/warden)) to_chat(X, SPAN_XENODANGER("We cannot heal a sister of the same strain!")) return if (SEND_SIGNAL(targetXeno, COMSIG_XENO_PRE_HEAL) & COMPONENT_CANCEL_XENO_HEAL) @@ -849,18 +836,16 @@ return var/bonus_heal = 0 + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if (!istype(behavior)) + return - if (X.mutation_type == PRAETORIAN_WARDEN) - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if (!istype(BD)) - return - - if (!BD.use_internal_hp_ability(heal_cost)) - return + if (!behavior.use_internal_hp_ability(heal_cost)) + return - bonus_heal = BD.internal_hitpoints*0.5 - if (!BD.use_internal_hp_ability(bonus_heal)) - bonus_heal = 0 + bonus_heal = behavior.internal_hitpoints*0.5 + if (!behavior.use_internal_hp_ability(bonus_heal)) + bonus_heal = 0 to_chat(X, SPAN_XENODANGER("We heal [targetXeno]!")) to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are healed by [X]!")) @@ -868,6 +853,7 @@ targetXeno.visible_message(SPAN_BOLDNOTICE("[X] places its claws on [targetXeno], and its wounds are quickly sealed!")) //marines probably should know if a xeno gets healed X.gain_health(heal_amount*0.5 + bonus_heal*0.5) X.flick_heal_overlay(3 SECONDS, "#00B800") + behavior.transferred_healing += heal_amount use_plasma = TRUE //it's already hard enough to gauge health without hp showing on the mob targetXeno.flick_heal_overlay(3 SECONDS, "#00B800")//so the visible_message and recovery overlay will warn marines and possibly predators that the xenomorph has been healed! @@ -876,13 +862,12 @@ to_chat(X, SPAN_XENOHIGHDANGER("We cannot rejuvenate targets through overwatch!")) return - if (X.mutation_type == PRAETORIAN_WARDEN) - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if (!istype(BD)) - return + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if (!istype(behavior)) + return - if (!BD.use_internal_hp_ability(debuff_cost)) - return + if (!behavior.use_internal_hp_ability(debuff_cost)) + return to_chat(X, SPAN_XENODANGER("We rejuvenate [targetXeno]!")) to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are rejuvenated by [X]!")) @@ -907,8 +892,8 @@ if(!istype(X)) return - var/datum/behavior_delegate/praetorian_warden/BD = X.behavior_delegate - if(!istype(BD)) + var/datum/behavior_delegate/praetorian_warden/behavior = X.behavior_delegate + if(!istype(behavior)) return if(X.observed_xeno != null) @@ -923,16 +908,16 @@ to_chat(X, SPAN_XENODANGER("We cannot retrieve ourself!")) return - if(X.anchored) - to_chat(X, SPAN_XENODANGER("That sister cannot move!")) - return - if(!(A in view(7, X))) to_chat(X, SPAN_XENODANGER("That sister is too far away!")) return var/mob/living/carbon/xenomorph/targetXeno = A + if(targetXeno.anchored) + to_chat(X, SPAN_XENODANGER("That sister cannot move!")) + return + if(!(targetXeno.resting || targetXeno.stat == UNCONSCIOUS)) if(targetXeno.mob_size > MOB_SIZE_BIG) to_chat(X, SPAN_WARNING("[targetXeno] is too big to retrieve while standing up!")) @@ -951,7 +936,7 @@ if(!check_plasma_owner()) return - if(!BD.use_internal_hp_ability(retrieve_cost)) + if(!behavior.use_internal_hp_ability(retrieve_cost)) return if(!check_and_use_plasma_owner()) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm index aa98f063b8d5..b1358e30c26b 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_abilities.dm @@ -1,14 +1,22 @@ -/datum/action/xeno_action/activable/pounce/predalien - name = "Leap" + +/datum/action/xeno_action/onclick/feralrush + name = "Feral Rush" + action_icon_state = "charge_spit" + ability_name = "toughen up" + macro_path = /datum/action/xeno_action/verb/verb_feralrush ability_primacy = XENO_PRIMARY_ACTION_1 + action_type = XENO_ACTION_ACTIVATE + xeno_cooldown = 12 SECONDS + + // Config + var/speed_duration = 3 SECONDS + var/armor_duration = 6 SECONDS + var/speed_buff_amount = 0.8 // Go from shit slow to kindafast + var/armor_buff_amount = 10 // hopefully-minor buff so they can close the distance - knockdown = FALSE + var/speed_buff = FALSE + var/armor_buff = FALSE - distance = 5 - knockdown = FALSE // Should we knock down the target? - slash = FALSE // Do we slash upon reception? - freeze_self = FALSE // Should we freeze ourselves after the lunge? - should_destroy_objects = TRUE // Only used for ravager charge /datum/action/xeno_action/onclick/predalien_roar name = "Roar" @@ -16,37 +24,53 @@ ability_name = "roar" action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 + macro_path = /datum/action/xeno_action/verb/verb_predalien_roar xeno_cooldown = 25 SECONDS - plasma_cost = 50 - var/predalien_roar = list("sound/voice/predalien_roar.ogg") var/bonus_damage_scale = 2.5 var/bonus_speed_scale = 0.05 -/datum/action/xeno_action/onclick/smash - name = "Smash" - action_icon_state = "stomp" - ability_name = "smash" +/datum/action/xeno_action/activable/feral_smash + name = "Feral Smash" + ability_name = "Feral Smash" + action_icon_state = "lunge" action_type = XENO_ACTION_CLICK + macro_path = /datum/action/xeno_action/verb/feral_smash ability_primacy = XENO_PRIMARY_ACTION_3 xeno_cooldown = 20 SECONDS - plasma_cost = 80 - - var/freeze_duration = 1.5 SECONDS - var/activation_delay = 1 SECONDS - var/smash_sounds = list('sound/effects/alien_footstep_charge1.ogg', 'sound/effects/alien_footstep_charge2.ogg', 'sound/effects/alien_footstep_charge3.ogg') + // Configurables + var/grab_range = 4 + var/click_miss_cooldown = 15 + var/twitch_message_cooldown = 0 //apparently this is necessary for a tiny code that makes the lunge message on cooldown not be spammable, doesn't need to be big so 5 will do. + var/smash_damage = 20 + var/smash_scale = 10 + var/stun_duration = 2 SECONDS -/datum/action/xeno_action/activable/devastate - name = "Devastate" - action_icon_state = "gut" - ability_name = "devastate" +/datum/action/xeno_action/activable/feralfrenzy + name = "Feral Frenzy" + action_icon_state = "rav_eviscerate" + ability_name = "Feral Frenzy" action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_4 - xeno_cooldown = 20 SECONDS - plasma_cost = 110 - - var/activation_delay = 1 SECONDS + macro_path = /datum/action/xeno_action/verb/verb_feralfrenzy + xeno_cooldown = 15 SECONDS + //AOE + var/activation_delay_aoe = 1 SECONDS + var/base_damage_aoe = 15 + var/damage_scale_aoe = 10 + //SINGLE TARGET + var/activation_delay = 0.5 SECONDS var/base_damage = 25 - var/damage_scale = 10 // How much it scales by every kill + var/damage_scale = 10 + var/targeting = SINGLETARGETGUT + /// The orange used for a AOETARGETGUT + var/range = 2 + +/datum/action/xeno_action/onclick/toggle_gut_targeting + name = "Toggle Gutting Type" + action_icon_state = "gut" // starting targetting is SINGLETARGETGUT + macro_path = /datum/action/xeno_action/verb/verb_toggle_gut_targeting + action_type = XENO_ACTION_ACTIVATE + ability_primacy = XENO_PRIMARY_ACTION_5 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm new file mode 100644 index 000000000000..450a0ac67745 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_macros.dm @@ -0,0 +1,35 @@ +/datum/action/xeno_action/verb/verb_feralfrenzy() + set category = "Alien" + set name = "Feral Frenzy" + set hidden = TRUE + var/action_name = "Feral Frenzy" + handle_xeno_macro(src, action_name) + +/datum/action/xeno_action/verb/verb_toggle_gut_targeting() + set category = "Alien" + set name = "Toggle Gutting Type" + set hidden = TRUE + var/action_name = "Toggle Gutting Type" + handle_xeno_macro(src, action_name) + + +/datum/action/xeno_action/verb/verb_feralrush() + set category = "Alien" + set name = "Feral Rush" + set hidden = TRUE + var/action_name = "Feral Rush" + handle_xeno_macro(src, action_name) + +/datum/action/xeno_action/verb/verb_predalien_roar() + set category = "Alien" + set name = "Predalien Roar" + set hidden = TRUE + var/action_name = "Roar" + handle_xeno_macro(src, action_name) + +/datum/action/xeno_action/verb/feral_smash() + set category = "Alien" + set name = "Feral Smash" + set hidden = TRUE + var/action_name = "Feral Smash" + handle_xeno_macro(src, action_name) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm index cdf0d3840084..6e6fef86a2f4 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/predalien/predalien_powers.dm @@ -1,13 +1,10 @@ -/datum/action/xeno_action/activable/pounce/predalien/pre_pounce_effects() - playsound(owner, 'sound/voice/predalien_pounce.ogg', 75, 0, status = 0) - /datum/action/xeno_action/onclick/predalien_roar/use_ability(atom/target) var/mob/living/carbon/xenomorph/xeno = owner - if (!action_cooldown_check()) + if(!action_cooldown_check()) return - if (!xeno.check_state()) + if(!xeno.check_state()) return if(!check_and_use_plasma_owner()) @@ -34,124 +31,258 @@ continue new /datum/effects/xeno_buff(carbon, xeno, ttl = (0.25 SECONDS * behavior.kills + 3 SECONDS), bonus_damage = bonus_damage_scale * behavior.kills, bonus_speed = (bonus_speed_scale * behavior.kills)) - - for(var/mob/M in view(xeno)) - if(M && M.client) - shake_camera(M, 10, 1) - apply_cooldown() return ..() -/datum/action/xeno_action/onclick/smash/use_ability(atom/target) +/datum/action/xeno_action/activable/feralfrenzy/use_ability(atom/target) var/mob/living/carbon/xenomorph/xeno = owner - - if (!action_cooldown_check()) + if(!action_cooldown_check() || xeno.action_busy) + return + if(!xeno.check_state()) return - if (!xeno.check_state()) + var/datum/behavior_delegate/predalien_base/predalienbehavior = xeno.behavior_delegate + if(!istype(predalienbehavior)) return + if(targeting == AOETARGETGUT) + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] begins digging in for a massive strike!"), SPAN_XENOHIGHDANGER("We begin digging in for a massive strike!")) + ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate")) + xeno.anchored = TRUE + if (do_after(xeno, (activation_delay_aoe), INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) + xeno.emote("roar") + xeno.spin_circle() + + for (var/mob/living/carbon/carbon in orange(xeno, range)) + if(!isliving(carbon) || xeno.can_not_harm(carbon)) + continue + + if (carbon.stat == DEAD) + continue + + if(!check_clear_path_to_target(xeno, carbon)) + continue + + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rip open the guts of [carbon]!")) + carbon.spawn_gibs() + xeno.animation_attack_on(carbon) + xeno.spin_circle() + xeno.flick_attack_overlay(carbon, "tail") + playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 30, 1) + carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN) + playsound(get_turf(carbon), "alien_claw_flesh", 30, 1) + carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage_aoe + damage_scale_aoe * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) + playsound(owner, 'sound/voice/predalien_death.ogg', 75, 0, status = 0) + REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Eviscerate")) + xeno.anchored = FALSE + apply_cooldown() + return ..() - var/datum/behavior_delegate/predalien_base/behavior = xeno.behavior_delegate - if(!istype(behavior)) + //single target checks + if(xeno.can_not_harm(target)) + to_chat(xeno, SPAN_XENOWARNING("We must target a hostile!")) return - if(!check_plasma_owner()) + if(!isliving(target)) return - if(!do_after(xeno, activation_delay, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - to_chat(xeno, "Keep still whilst trying to smash into the ground") + if(get_dist_sqrd(target, xeno) > 2) + to_chat(xeno, SPAN_XENOWARNING("[target] is too far away!")) + return - var/real_cooldown = xeno_cooldown + var/mob/living/carbon/carbon = target - xeno_cooldown = 3 SECONDS + if(carbon.stat == DEAD) + to_chat(xeno, SPAN_XENOWARNING("[carbon] is dead, why would we want to touch them?")) + return + if(targeting == SINGLETARGETGUT) // single target + ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) apply_cooldown() - xeno_cooldown = real_cooldown + + ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) + xeno.anchored = TRUE + + if(do_after(xeno, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) + xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rapidly slice into [carbon]!")) + carbon.spawn_gibs() + playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 50, 1) + carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN) + carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage + damage_scale * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) + + xeno.animation_attack_on(carbon) + xeno.spin_circle() + xeno.flick_attack_overlay(carbon, "tail") + + playsound(owner, 'sound/voice/predalien_growl.ogg', 50, 0, status = 0) + + REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) + xeno.anchored = FALSE + unroot_human(carbon, TRAIT_SOURCE_ABILITY("Devastate")) + + return ..() + + +/datum/action/xeno_action/onclick/feralrush/use_ability(atom/A) + var/mob/living/carbon/xenomorph/predatoralien = owner + + if(!action_cooldown_check()) + return + + if(!istype(predatoralien) || !predatoralien.check_state()) + return + + if(armor_buff && speed_buff) + to_chat(predatoralien, SPAN_XENOHIGHDANGER("We cannot stack this!")) return if(!check_and_use_plasma_owner()) return - playsound(xeno.loc, pick(smash_sounds), 50, 0, status = 0) - xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] smashes into the ground!")) - xeno.create_stomp() + addtimer(CALLBACK(src, PROC_REF(remove_rush_effects)), speed_duration) + addtimer(CALLBACK(src, PROC_REF(remove_armor_effects)), armor_duration) // calculate armor and speed differently, so it's a bit more armored while trying to get out + predatoralien.add_filter("predalien_toughen", 1, list("type" = "outline", "color" = "#421313", "size" = 1)) + to_chat(predatoralien, SPAN_XENOWARNING("We feel our muscles tense as our speed and armor increase!")) + speed_buff = TRUE + armor_buff = TRUE + predatoralien.speed_modifier -= speed_buff_amount + predatoralien.armor_modifier += armor_buff_amount + predatoralien.recalculate_speed() + predatoralien.recalculate_armor() + playsound(predatoralien, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0) + apply_cooldown() - for(var/mob/living/carbon/carbon in oview(round(behavior.kills * 0.5 + 2), xeno)) - if(!xeno.can_not_harm(carbon) && carbon.stat != DEAD) - ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Smash")) - if (ishuman(carbon)) - var/mob/living/carbon/human/human = carbon - human.update_xeno_hostile_hud() +/datum/action/xeno_action/onclick/feralrush/proc/remove_rush_effects() + SIGNAL_HANDLER + var/mob/living/carbon/xenomorph/predatoralien = owner + if(speed_buff == TRUE) + to_chat(predatoralien, SPAN_XENOWARNING("Our muscles relax as we feel our speed wane.")) + predatoralien.remove_filter("predalien_toughen") + predatoralien.speed_modifier += speed_buff_amount + predatoralien.recalculate_speed() + speed_buff = FALSE - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(unroot_human), carbon, TRAIT_SOURCE_ABILITY("Smash")), get_xeno_stun_duration(carbon, freeze_duration)) +/datum/action/xeno_action/onclick/feralrush/proc/remove_armor_effects() + SIGNAL_HANDLER + var/mob/living/carbon/xenomorph/predatoralien = owner + if(armor_buff) + to_chat(predatoralien, SPAN_XENOWARNING("We are no longer armored.")) + predatoralien.armor_modifier -= armor_buff_amount + predatoralien.recalculate_armor() + armor_buff = FALSE - for(var/mob/M in view(xeno)) - if(M && M.client) - shake_camera(M, 0.2 SECONDS, 1) - apply_cooldown() - return ..() +/datum/action/xeno_action/onclick/toggle_gut_targeting/use_ability(atom/A) -/datum/action/xeno_action/activable/devastate/use_ability(atom/target) var/mob/living/carbon/xenomorph/xeno = owner + var/action_icon_result - if (!action_cooldown_check()) + if(!xeno.check_state()) return - if (!xeno.check_state()) + var/datum/action/xeno_action/activable/feralfrenzy/guttype = get_xeno_action_by_type(xeno, /datum/action/xeno_action/activable/feralfrenzy) + if(!guttype) return - if (!isxeno_human(target) || xeno.can_not_harm(target)) - to_chat(xeno, SPAN_XENOWARNING("We must target a hostile!")) - return + if(guttype.targeting == SINGLETARGETGUT) + action_icon_result = "rav_scissor_cut" + guttype.targeting = AOETARGETGUT + to_chat(xeno, SPAN_XENOWARNING("We will now attack everyone around us during a Feral Frenzy.")) + else + action_icon_result = "gut" + guttype.targeting = SINGLETARGETGUT + to_chat(xeno, SPAN_XENOWARNING("We will now focus our Feral Frenzy on one person!")) + + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions_xeno.dmi', button, action_icon_result) + return ..() - if (get_dist_sqrd(target, xeno) > 2) - to_chat(xeno, SPAN_XENOWARNING("[target] is too far away!")) - return +/datum/action/xeno_action/activable/feral_smash/use_ability(atom/affected_atom) + var/mob/living/carbon/xenomorph/predalien_smash = owner + var/datum/behavior_delegate/predalien_base/predalienbehavior = predalien_smash.behavior_delegate - var/mob/living/carbon/carbon = target + if(!action_cooldown_check()) + if(twitch_message_cooldown < world.time ) + predalien_smash.visible_message(SPAN_XENOWARNING("[predalien_smash]'s muscles twitch."), SPAN_XENOWARNING("Our claws twitch as we try to grab onto the target but lack the strength. Wait a moment to try again.")) + twitch_message_cooldown = world.time + 5 SECONDS + return //this gives a little feedback on why your lunge didn't hit other than the lunge button going grey. Plus, it might spook marines that almost got lunged if they know why the message appeared, and extra spookiness is always good. - if (carbon.stat == DEAD) - to_chat(xeno, SPAN_XENOWARNING("[carbon] is dead, why would we want to touch them?")) + if(!affected_atom) return - var/datum/behavior_delegate/predalien_base/behavior = xeno.behavior_delegate - if(!istype(behavior)) + if(!isturf(predalien_smash.loc)) + to_chat(predalien_smash, SPAN_XENOWARNING("We can't lunge from here!")) return - if (!check_and_use_plasma_owner()) + if(!predalien_smash.check_state() || predalien_smash.agility) return - ADD_TRAIT(carbon, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) - - if (ishuman(carbon)) - var/mob/living/carbon/human/human = carbon - human.update_xeno_hostile_hud() - - apply_cooldown() - - ADD_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) - xeno.anchored = TRUE + if(predalien_smash.can_not_harm(affected_atom) || !ismob(affected_atom)) + apply_cooldown_override(click_miss_cooldown) + return - if (do_after(xeno, activation_delay, INTERRUPT_ALL | BEHAVIOR_IMMOBILE, BUSY_ICON_HOSTILE)) - xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] rips open the guts of [carbon]!"), SPAN_XENOHIGHDANGER("We rip open the guts of [carbon]!")) - carbon.spawn_gibs() - playsound(get_turf(carbon), 'sound/effects/gibbed.ogg', 75, 1) - carbon.apply_effect(get_xeno_stun_duration(carbon, 0.5), WEAKEN) - carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, base_damage + damage_scale * behavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) - xeno.animation_attack_on(carbon) - xeno.spin_circle() - xeno.flick_attack_overlay(carbon, "tail") + var/mob/living/carbon/carbon = affected_atom + if(carbon.stat == DEAD) + return - playsound(owner, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0) + if(!isliving(affected_atom)) + return - REMOVE_TRAIT(xeno, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Devastate")) - xeno.anchored = FALSE - unroot_human(carbon, TRAIT_SOURCE_ABILITY("Devastate")) + if(!check_and_use_plasma_owner()) + return - xeno.visible_message(SPAN_XENODANGER("[xeno] rapidly slices into [carbon]!")) + apply_cooldown() + predalien_smash.throw_atom(get_step_towards(affected_atom, predalien_smash), grab_range, SPEED_FAST, predalien_smash) + + if(predalien_smash.Adjacent(carbon) && predalien_smash.start_pulling(carbon, TRUE)) + playsound(carbon.pulledby, 'sound/voice/predalien_growl.ogg', 75, 0, status = 0) // bang and roar for dramatic effect + playsound(carbon, 'sound/effects/bang.ogg', 25, 0) + animate(carbon, pixel_y = carbon.pixel_y + 32, time = 4, easing = SINE_EASING) + sleep(4) + playsound(carbon, 'sound/effects/bang.ogg', 25, 0) + playsound(carbon,"slam", 50, 1) + animate(carbon, pixel_y = 0, time = 4, easing = BOUNCE_EASING) //animates the smash + carbon.apply_armoured_damage(get_xeno_damage_slash(carbon, smash_damage + smash_scale * predalienbehavior.kills), ARMOR_MELEE, BRUTE, "chest", 20) + else + predalien_smash.visible_message(SPAN_XENOWARNING("[predalien_smash]'s claws twitch."), SPAN_XENOWARNING("We couldn't grab our target. Wait a moment to try again.")) + + return TRUE + +/mob/living/carbon/xenomorph/predalien/stop_pulling() + if(isliving(pulling) && smashing) + smashing = FALSE // To avoid extreme cases of stopping a lunge then quickly pulling and stopping to pull someone else + var/mob/living/smashed = pulling + smashed.set_effect(0, STUN) + smashed.set_effect(0, WEAKEN) return ..() + +/mob/living/carbon/xenomorph/predalien/start_pulling(atom/movable/movable_atom, feral_smash) + if(!check_state()) + return FALSE + + if(!isliving(movable_atom)) + return FALSE + var/mob/living/living_mob = movable_atom + var/should_neckgrab = !(src.can_not_harm(living_mob)) && feral_smash + + + . = ..(living_mob, feral_smash, should_neckgrab) + + if(.) //successful pull + if(isxeno(living_mob)) + var/mob/living/carbon/xenomorph/xeno = living_mob + if(xeno.tier >= 2) // Tier 2 castes or higher immune to warrior grab stuns + return + + if(should_neckgrab && living_mob.mob_size < MOB_SIZE_BIG) + visible_message(SPAN_XENOWARNING("[src] grabs [living_mob] by the back of their leg and slams them onto the ground!"), \ + SPAN_XENOWARNING("We grab [living_mob] by the back of their leg and slam them onto the ground!")) // more flair + smashing = TRUE + living_mob.drop_held_items() + var/duration = get_xeno_stun_duration(living_mob, 1) + living_mob.KnockDown(duration) + living_mob.Stun(duration) + addtimer(VARSET_CALLBACK(src, smashing, FALSE), duration) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm index d245449fa2cf..ebcd29ded29d 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_abilities.dm @@ -38,7 +38,7 @@ var/node_plant_cooldown = 7 SECONDS var/node_plant_plasma_cost = 300 - var/turf_build_cooldown = 7 SECONDS + var/turf_build_cooldown = 10 SECONDS /datum/action/xeno_action/onclick/manage_hive name = "Manage The Hive" @@ -62,6 +62,10 @@ . = ..() SSticker.OnRoundstart(CALLBACK(src, PROC_REF(apply_queen_build_boost))) +// queenos don't need weeds under them to build on ovi +/datum/action/xeno_action/activable/secrete_resin/remote/queen/can_remote_build() + return TRUE + /datum/action/xeno_action/activable/secrete_resin/remote/queen/proc/apply_queen_build_boost() var/boost_duration = 30 MINUTES // In the event secrete_resin is given after round start diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm index 3744fb7823e8..53ad3b377aec 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm @@ -29,7 +29,7 @@ xeno_cooldown = 18 SECONDS // Config values (mutable) - var/empower_range = 3 + var/empower_range = 4 var/max_targets = 6 var/main_empower_base_shield = 0 var/initial_activation_shield = 50 diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm index daad0362e91e..8fe101a08dfa 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm @@ -6,9 +6,6 @@ if(!xeno.check_state()) return - if(xeno.mutation_type != RAVAGER_NORMAL) - return - if(!action_cooldown_check()) return @@ -122,8 +119,6 @@ var/mob/living/carbon/human/human = living var/mob/living/carbon/xenomorph/xeno = owner - if(xeno.mutation_type != RAVAGER_NORMAL) - return var/datum/behavior_delegate/ravager_base/behavior = xeno.behavior_delegate if(behavior.empower_targets < behavior.super_empower_threshold) return @@ -146,8 +141,6 @@ // Determine whether or not we should daze here var/should_sslow = FALSE - if(ravager_user.mutation_type != RAVAGER_NORMAL) - return var/datum/behavior_delegate/ravager_base/ravager_delegate = ravager_user.behavior_delegate if(ravager_delegate.empower_targets >= ravager_delegate.super_empower_threshold) should_sslow = TRUE @@ -302,17 +295,14 @@ if (carbon.stat == DEAD) return - // All strain-specific behavior - if (xeno.mutation_type == RAVAGER_BERSERKER) - var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate - - if (behavior.rage >= 2) - behavior.decrement_rage() - heal_amount += additional_healing_enraged - else - to_chat(xeno, SPAN_XENOWARNING("Our rejuvenation was weaker without rage!")) - debilitate = FALSE - fling_distance-- + var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate + if (behavior.rage >= 2) + behavior.decrement_rage() + heal_amount += additional_healing_enraged + else + to_chat(xeno, SPAN_XENOWARNING("Our rejuvenation was weaker without rage!")) + debilitate = FALSE + fling_distance-- // Damage var/obj/limb/head/head = carbon.get_limb("head") @@ -361,17 +351,16 @@ var/max_lifesteal = 250 var/lifesteal_range = 1 - if (xeno.mutation_type == RAVAGER_BERSERKER) - var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate - if (behavior.rage == 0) - to_chat(xeno, SPAN_XENODANGER("We cannot eviscerate when we have 0 rage!")) - return - damage = damage_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] - range = range_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] - windup_reduction = windup_reduction_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] - behavior.decrement_rage(behavior.rage) + var/datum/behavior_delegate/ravager_berserker/behavior = xeno.behavior_delegate + if (behavior.rage == 0) + to_chat(xeno, SPAN_XENODANGER("We cannot eviscerate when we have 0 rage!")) + return + damage = damage_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] + range = range_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] + windup_reduction = windup_reduction_at_rage_levels[clamp(behavior.rage, 1, behavior.max_rage)] + behavior.decrement_rage(behavior.rage) - apply_cooldown() + apply_cooldown() if (range > 1) xeno.visible_message(SPAN_XENOHIGHDANGER("[xeno] begins digging in for a massive strike!"), SPAN_XENOHIGHDANGER("We begin digging in for a massive strike!")) @@ -439,12 +428,11 @@ if (!xeno.check_state()) return - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - if (!behavior.check_shards(shard_cost)) - to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) - return - behavior.use_shards(shard_cost) + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + if (!behavior.check_shards(shard_cost)) + to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) + return + behavior.use_shards(shard_cost) xeno.visible_message(SPAN_XENODANGER("[xeno] ruffles its bone-shard quills, forming a defensive shell!"), SPAN_XENODANGER("We ruffle our bone-shard quills, forming a defensive shell!")) @@ -468,10 +456,8 @@ return FALSE else if (cooldown_timer_id == TIMER_ID_NULL) var/mob/living/carbon/xenomorph/xeno = owner - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - return behavior.check_shards(shard_cost) - return TRUE + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + return behavior.check_shards(shard_cost) return FALSE /datum/action/xeno_action/onclick/spike_shield/proc/remove_shield() @@ -502,12 +488,11 @@ if(!affected_atom || affected_atom.layer >= FLY_LAYER || !isturf(xeno.loc) || !xeno.check_state()) return - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - if (!behavior.check_shards(shard_cost)) - to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) - return - behavior.use_shards(shard_cost) + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + if (!behavior.check_shards(shard_cost)) + to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) + return + behavior.use_shards(shard_cost) xeno.visible_message(SPAN_XENOWARNING("[xeno] fires their spikes at [affected_atom]!"), SPAN_XENOWARNING("We fire our spikes at [affected_atom]!")) @@ -531,11 +516,8 @@ var/mob/living/carbon/xenomorph/xeno = owner if(!istype(xeno)) return FALSE - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - return behavior.check_shards(shard_cost) - - return TRUE + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + return behavior.check_shards(shard_cost) else return FALSE @@ -548,13 +530,12 @@ if (!xeno.check_state()) return - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - if (!behavior.check_shards(shard_cost)) - to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) - return - behavior.use_shards(shard_cost) - behavior.lock_shards() + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + if (!behavior.check_shards(shard_cost)) + to_chat(xeno, SPAN_DANGER("Not enough shards! We need [shard_cost - behavior.shards] more!")) + return + behavior.use_shards(shard_cost) + behavior.lock_shards() xeno.visible_message(SPAN_XENOWARNING("[xeno] sheds their spikes, firing them in all directions!"), SPAN_XENOWARNING("We shed our spikes, firing them in all directions!!")) xeno.spin_circle() @@ -567,10 +548,7 @@ /datum/action/xeno_action/onclick/spike_shed/action_cooldown_check() if (cooldown_timer_id == TIMER_ID_NULL) var/mob/living/carbon/xenomorph/xeno = owner - if (xeno.mutation_type == RAVAGER_HEDGEHOG) - var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate - return behavior.check_shards(shard_cost) - - return TRUE + var/datum/behavior_delegate/ravager_hedgehog/behavior = xeno.behavior_delegate + return behavior.check_shards(shard_cost) else return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm index b907a382dda1..f5e090bc7e4b 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/runner/runner_powers.dm @@ -45,7 +45,7 @@ return ..() /mob/living/carbon/xenomorph/runner/corrosive_acid(atom/affected_atom, acid_type, plasma_cost) - if (mutation_type != RUNNER_ACIDER) + if(!istype(strain, /datum/xeno_strain/acider)) return ..() if(!affected_atom.Adjacent(src)) if(istype(affected_atom,/obj/item/explosive/plastic)) @@ -159,9 +159,6 @@ if(!action_cooldown_check()) return - if(xeno.mutation_type != RUNNER_ACIDER) - return - var/datum/behavior_delegate/runner_acider/behavior_delegate = xeno.behavior_delegate if(!istype(behavior_delegate)) return diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm index 1ddec771d075..1ed8863c231a 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/sentinel/sentinel_powers.dm @@ -35,9 +35,6 @@ if(!xeno.check_state()) return - if(xeno.mutation_type != SENTINEL_NORMAL) - return - if(!action_cooldown_check()) to_chat(src, SPAN_WARNING("We must wait for your spit glands to refill.")) return @@ -77,9 +74,6 @@ if (!check_and_use_plasma_owner()) return - if (xeno.mutation_type != SENTINEL_NORMAL) - return - var/datum/behavior_delegate/sentinel_base/behavior = xeno.behavior_delegate if (istype(behavior)) behavior.next_slash_buffed = TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm index 2aefff19c684..56f908389966 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -288,6 +288,7 @@ /mob/living/attack_larva(mob/living/carbon/xenomorph/larva/M) M.visible_message(SPAN_DANGER("[M] nudges its head against [src]."), \ SPAN_DANGER("We nudge our head against [src]."), null, 5, CHAT_TYPE_XENO_FLUFF) + M.animation_attack_on(src) /mob/living/proc/is_xeno_grabbable() if(stat == DEAD) @@ -911,7 +912,7 @@ return XENO_ATTACK_ACTION /obj/structure/girder/attack_alien(mob/living/carbon/xenomorph/M) - if((M.caste && M.caste.tier < 2 && !isqueen(M)) || unacidable) + if((M.caste && M.caste.tier < 2 && M.claw_type < CLAW_TYPE_VERY_SHARP) || unacidable) to_chat(M, SPAN_WARNING("Our claws aren't sharp enough to damage [src].")) return XENO_NO_DELAY_ACTION M.animation_attack_on(src) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm b/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm index 074af92d69fa..f7e906a82b28 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Boiler.dm @@ -13,6 +13,7 @@ evasion = XENO_EVASION_NONE speed = XENO_SPEED_TIER_3 + available_strains = list(/datum/xeno_strain/trapper) behavior_delegate_type = /datum/behavior_delegate/boiler_base evolution_allowed = FALSE @@ -50,7 +51,6 @@ tier = 3 gib_chance = 100 drag_delay = 6 //pulling a big dead xeno is hard - mutation_type = BOILER_NORMAL spit_delay = 30 SECONDS tileoffset = 3 viewsize = 7 @@ -98,4 +98,3 @@ // No special behavior for boilers /datum/behavior_delegate/boiler_base name = "Base Boiler Behavior Delegate" - diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm index 886ffcfe1ef2..bec41a87521e 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Burrower.dm @@ -74,8 +74,6 @@ /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = BURROWER_NORMAL - icon_xeno = 'icons/mob/xenos/burrower.dmi' icon_xenonid = 'icons/mob/xenonids/burrower.dmi' @@ -109,11 +107,3 @@ /datum/behavior_delegate/burrower_base name = "Base Burrower Behavior Delegate" - -/datum/behavior_delegate/burrower_base/on_update_icons() - if(bound_xeno.stat == DEAD) - return - - if(HAS_TRAIT(bound_xeno, TRAIT_ABILITY_BURROWED)) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state] Burrower Burrowed" - return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm index 2e106743514a..d290b917e945 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm @@ -14,6 +14,9 @@ evasion = XENO_EVASION_NONE speed = XENO_SPEED_TIER_4 + available_strains = list(/datum/xeno_strain/eggsac) + behavior_delegate_type = /datum/behavior_delegate/carrier_base + evolution_allowed = FALSE deevolves_to = list(XENO_CASTE_DRONE) throwspeed = SPEED_AVERAGE @@ -75,7 +78,6 @@ /mob/living/carbon/xenomorph/proc/rename_tunnel, /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = CARRIER_NORMAL icon_xenonid = 'icons/mob/xenonids/carrier.dmi' @@ -95,18 +97,9 @@ var/eggs_max = 0 var/laid_egg = 0 -/mob/living/carbon/xenomorph/carrier/update_icons() - . = ..() - if (mutation_type == CARRIER_NORMAL) - update_hugger_overlays() - if (mutation_type == CARRIER_EGGSAC) - update_eggsac_overlays() - /mob/living/carbon/xenomorph/carrier/proc/update_hugger_overlays() if(!hugger_overlays_icon) return - if(mutation_type != CARRIER_NORMAL) - return overlays -= hugger_overlays_icon hugger_overlays_icon.overlays.Cut() @@ -146,8 +139,6 @@ /mob/living/carbon/xenomorph/carrier/proc/update_eggsac_overlays() if(!eggsac_overlays_icon) return - if(mutation_type != CARRIER_EGGSAC) - return overlays -= eggsac_overlays_icon eggsac_overlays_icon.overlays.Cut() @@ -184,9 +175,6 @@ . = ..(cause, gibbed) if(.) var/chance = 75 //75% to drop an egg or hugger. - if(mutation_type == CARRIER_EGGSAC) - visible_message(SPAN_XENOWARNING("[src] throes as its eggsac bursts into a mess of acid!")) - playsound(src.loc, 'sound/effects/alien_egg_burst.ogg', 25, 1) if(huggers_cur) //Hugger explosion, like an egg morpher @@ -207,6 +195,11 @@ if(eggs_dropped) //Checks whether or not to announce egg drop. xeno_message(SPAN_XENOANNOUNCE("[src] has dropped some precious eggs!"), 2, hive.hivenumber) +/mob/living/carbon/xenomorph/carrier/recalculate_actions() + . = ..() + huggers_max = caste.huggers_max + eggs_max = caste.eggs_max + /mob/living/carbon/xenomorph/carrier/get_status_tab_items() . = ..() if(huggers_max > 0) @@ -397,3 +390,10 @@ return GLOB.hive_datum[hivenumber].spawn_as_hugger(user, src) huggers_cur-- + +/datum/behavior_delegate/carrier_base + name = "Base Carrier Behavior Delegate" + +/datum/behavior_delegate/carrier_base/on_update_icons() + var/mob/living/carbon/xenomorph/carrier/bound_carrier = bound_xeno + bound_carrier.update_hugger_overlays() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm index d2c0b0e40e59..38b1e5816ffe 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm @@ -14,6 +14,7 @@ speed = XENO_SPEED_TIER_2 heal_standing = 0.66 + available_strains = list(/datum/xeno_strain/charger) behavior_delegate_type = /datum/behavior_delegate/crusher_base minimum_evolve_time = 15 MINUTES @@ -63,8 +64,6 @@ ) claw_type = CLAW_TYPE_VERY_SHARP - mutation_icon_state = CRUSHER_NORMAL - mutation_type = CRUSHER_NORMAL icon_xeno = 'icons/mob/xenos/crusher.dmi' icon_xenonid = 'icons/mob/xenonids/crusher.dmi' @@ -281,5 +280,5 @@ /datum/behavior_delegate/crusher_base/on_update_icons() if(bound_xeno.throwing || is_charging) //Let it build up a bit so we're not changing icons every single turf - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Crusher Charging" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Crusher Charging" return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm b/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm index 8ec53d51046e..a63bafb5d2b0 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Defender.dm @@ -18,6 +18,7 @@ deevolves_to = list("Larva") can_vent_crawl = 0 + available_strains = list(/datum/xeno_strain/steel_crest) behavior_delegate_type = /datum/behavior_delegate/defender_base tackle_min = 2 @@ -51,9 +52,6 @@ /datum/action/xeno_action/onclick/tacmap, ) - mutation_icon_state = DEFENDER_NORMAL - mutation_type = DEFENDER_NORMAL - icon_xeno = 'icons/mob/xenos/defender.dmi' icon_xenonid = 'icons/mob/xenonids/defender.dmi' @@ -90,8 +88,8 @@ return if(bound_xeno.fortify && bound_xeno.health > 0) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Defender Fortify" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Defender Fortify" return TRUE if(bound_xeno.crest_defense && bound_xeno.health > 0) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Defender Crest" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Defender Crest" return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm index c4c9b11b37e4..a0ce70316eb8 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Drone.dm @@ -12,6 +12,11 @@ evasion = XENO_EVASION_MEDIUM speed = XENO_SPEED_TIER_7 + available_strains = list( + /datum/xeno_strain/gardener, + /datum/xeno_strain/healer, + ) + build_time_mult = BUILD_TIME_MULT_BUILDER caste_desc = "A builder of hives. Only drones may evolve into Queens." @@ -69,7 +74,6 @@ /mob/living/carbon/xenomorph/proc/rename_tunnel, /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = DRONE_NORMAL icon_xeno = 'icons/mob/xenos/drone.dmi' icon_xenonid = 'icons/mob/xenonids/drone.dmi' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm index 7ce3a8750568..d98e60fe2177 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm @@ -9,6 +9,9 @@ caste_desc = "Ewwww, that's disgusting!" speed = XENO_SPEED_TIER_8 + available_strains = list(/datum/xeno_strain/watcher) + behavior_delegate_type = /datum/behavior_delegate/facehugger_base + evolution_allowed = FALSE can_be_revived = FALSE @@ -55,7 +58,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = "Normal" icon_xeno = 'icons/mob/xenos/facehugger.dmi' icon_xenonid = 'icons/mob/xenonids/facehugger.dmi' @@ -64,6 +66,20 @@ weed_food_states = list("Facehugger_1","Facehugger_2","Facehugger_3") weed_food_states_flipped = list("Facehugger_1","Facehugger_2","Facehugger_3") +/mob/living/carbon/xenomorph/facehugger/Login() + var/last_ckey_inhabited = persistent_ckey + . = ..() + if(ckey == last_ckey_inhabited) + return + + AddComponent(\ + /datum/component/temporary_mute,\ + "We aren't old enough to vocalize anything yet.",\ + "We aren't old enough to communicate like this yet.",\ + "We feel old enough to be able to vocalize now.",\ + 3 MINUTES,\ + ) + /mob/living/carbon/xenomorph/facehugger/initialize_pass_flags(datum/pass_flags_container/PF) ..() if (PF) @@ -74,34 +90,16 @@ if(stat == DEAD) return ..() - if(body_position == STANDING_UP && !(mutation_type == FACEHUGGER_WATCHER) && !(locate(/obj/effect/alien/weeds) in get_turf(src))) - adjustBruteLoss(1) - return ..() - if(!client && !aghosted && away_timer > XENO_FACEHUGGER_LEAVE_TIMER) // Become a npc once again new /obj/item/clothing/mask/facehugger(loc, hivenumber) qdel(src) return ..() -/mob/living/carbon/xenomorph/facehugger/update_icons(is_pouncing) - if(!caste) - return - - if(stat == DEAD) - icon_state = "[mutation_type] [caste.caste_type] Dead" - else if(body_position == LYING_DOWN) - if(!HAS_TRAIT(src, TRAIT_INCAPACITATED) && !HAS_TRAIT(src, TRAIT_FLOORED)) - icon_state = "[mutation_type] [caste.caste_type] Sleeping" - else - icon_state = "[mutation_type] [caste.caste_type] Knocked Down" - else if(is_pouncing) - icon_state = "[mutation_type] [caste.caste_type] Thrown" - else - icon_state = "[mutation_type] [caste.caste_type] Running" - - update_fire() //the fire overlay depends on the xeno's stance, so we must update it. - update_wounds() +/mob/living/carbon/xenomorph/facehugger/update_icons() + . = ..() + if(throwing) + icon_state = "[get_strain_icon()] [caste.caste_type] Thrown" /mob/living/carbon/xenomorph/facehugger/start_pulling(atom/movable/AM) return @@ -235,34 +233,9 @@ else . += "Lifetime Hugs: [total_facehugs]" +/datum/behavior_delegate/facehugger_base + name = "Base Facehugger Behavior Delegate" -/datum/xeno_mutator/watcher - name = "STRAIN: Facehugger - Watcher" - description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike." - flavor_description = "No need to hide when you can see the danger." - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_FACEHUGGER) - mutator_actions_to_remove = list( - /datum/action/xeno_action/onclick/xenohide, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/onclick/toggle_long_range/runner, - ) - - cost = 1 - - keystone = TRUE - -/datum/xeno_mutator/watcher/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if(!.) - return - - var/mob/living/carbon/xenomorph/facehugger/facehugger = mutator_set.xeno - - facehugger.viewsize = 10 - facehugger.layer = MOB_LAYER - - facehugger.mutation_type = FACEHUGGER_WATCHER - mutator_update_actions(facehugger) - mutator_set.recalculate_actions(description, flavor_description) +/datum/behavior_delegate/facehugger_base/on_life() + if(bound_xeno.body_position == STANDING_UP && !(locate(/obj/effect/alien/weeds) in get_turf(bound_xeno))) + bound_xeno.adjustBruteLoss(1) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm index 6868fd5ac589..93d40820bf7b 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hellhound.dm @@ -64,7 +64,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = HELLHOUND_NORMAL icon_xeno = 'icons/mob/xenos/hellhound.dmi' icon_xenonid = 'icons/mob/xenos/hellhound.dmi' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm index b00ec2a9c1eb..ee4157a67d84 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Hivelord.dm @@ -13,6 +13,8 @@ evasion = XENO_EVASION_NONE speed = XENO_SPEED_TIER_2 + available_strains = list(/datum/xeno_strain/resin_whisperer) + evolution_allowed = FALSE caste_desc = "A builder of really big hives." deevolves_to = list(XENO_CASTE_DRONE) @@ -76,8 +78,6 @@ /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = HIVELORD_NORMAL - icon_xeno = 'icons/mob/xenos/hivelord.dmi' icon_xenonid = 'icons/mob/xenonids/hivelord.dmi' @@ -121,10 +121,3 @@ toggle_resin_walker() to_chat(bound_xeno, SPAN_WARNING("You feel dizzy as the world slows down.")) bound_xeno.recalculate_move_delay = TRUE - -/// This check mainly exists because of the new resin node ability for resin whisperer. -/mob/living/carbon/xenomorph/hivelord/proc/on_weeds() - var/turf/turf = get_turf(src) - if(locate(/obj/effect/alien/weeds) in turf) - return TRUE - return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm index f1c77e7fb757..c06b8c43839d 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Larva.dm @@ -46,7 +46,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = "Normal" var/burrowable = TRUE //Can it be safely burrowed if it has no player? var/state_override diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm index 469b9a78d063..b9bde4c78992 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm @@ -15,6 +15,7 @@ attack_delay = 2 // VERY high slash damage, but attacks relatively slowly + available_strains = list(/datum/xeno_strain/vampire) behavior_delegate_type = /datum/behavior_delegate/lurker_base deevolves_to = list(XENO_CASTE_RUNNER) @@ -50,7 +51,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = LURKER_NORMAL claw_type = CLAW_TYPE_SHARP tackle_min = 2 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm b/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm index 9536ef1553e9..69b679573352 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Praetorian.dm @@ -26,6 +26,12 @@ tackle_max = 5 tackle_chance = 45 + available_strains = list( + /datum/xeno_strain/dancer, + /datum/xeno_strain/oppressor, + /datum/xeno_strain/vanguard, + /datum/xeno_strain/warden, + ) behavior_delegate_type = /datum/behavior_delegate/praetorian_base minimum_evolve_time = 15 MINUTES @@ -46,7 +52,6 @@ mob_size = MOB_SIZE_BIG drag_delay = 6 //pulling a big dead xeno is hard tier = 3 - mutation_type = PRAETORIAN_NORMAL base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm index bcf47386fefc..841675234e63 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Predalien.dm @@ -6,8 +6,7 @@ melee_damage_upper = XENO_DAMAGE_TIER_5 melee_vehicle_damage = XENO_DAMAGE_TIER_5 max_health = XENO_HEALTH_TIER_9 - plasma_gain = XENO_PLASMA_GAIN_TIER_9 - plasma_max = XENO_PLASMA_TIER_3 + plasma_max = XENO_NO_PLASMA xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_10 armor_deflection = XENO_ARMOR_TIER_3 evasion = XENO_EVASION_NONE @@ -41,6 +40,7 @@ speaking_noise = 'sound/voice/predalien_click.ogg' plasma_types = list(PLASMA_CATECHOLAMINE) faction = FACTION_PREDALIEN + claw_type = CLAW_TYPE_VERY_SHARP wall_smash = TRUE hardcore = FALSE pixel_x = -16 @@ -56,20 +56,19 @@ /datum/action/xeno_action/onclick/regurgitate, /datum/action/xeno_action/watch_xeno, /datum/action/xeno_action/activable/tail_stab, - /datum/action/xeno_action/activable/pounce/predalien, + /datum/action/xeno_action/onclick/feralrush, /datum/action/xeno_action/onclick/predalien_roar, - /datum/action/xeno_action/onclick/smash, - /datum/action/xeno_action/activable/devastate, + /datum/action/xeno_action/activable/feral_smash, + /datum/action/xeno_action/activable/feralfrenzy, + /datum/action/xeno_action/onclick/toggle_gut_targeting, /datum/action/xeno_action/onclick/tacmap, ) - mutation_type = "Normal" - weed_food_icon = 'icons/mob/xenos/weeds_64x64.dmi' weed_food_states = list("Predalien_1","Predalien_2","Predalien_3") weed_food_states_flipped = list("Predalien_1","Predalien_2","Predalien_3") + var/smashing = FALSE - var/butcher_time = 6 SECONDS /mob/living/carbon/xenomorph/predalien/Initialize(mapload, mob/living/carbon/xenomorph/oldxeno, h_number) @@ -88,15 +87,20 @@ to_chat(src, {" |______________________| -You are a predator-alien hybrid! -You are a very powerful xenomorph creature that was born of a Yautja warrior body. -You are stronger, faster, and smarter than a regular xenomorph, but you must still listen to the queen. -You have a degree of freedom to where you can hunt and claim the heads of the hive's enemies, so check your verbs. -Your health meter will not regenerate normally, so kill and die for the hive! +You are a yautja-alien hybrid! +You are a xenomorph born from the body of your natural enemy, you are considered an abomination to all of the yautja race and they will do WHATEVER it takes to kill you. +However, being born from one you also harbor their intelligence and strength. You are built to be able to take them on but that does not mean you are invincible. Stay with your hive and overwhelm them with your numbers. Your sisters have sacrificed a lot for you; Do not just wander off and die. +You must still listen to the queen. + |______________________| "}) emote("roar") + +/mob/living/carbon/xenomorph/predalien/resist_fire() + ..() + SetKnockDown(0.1 SECONDS) + /datum/behavior_delegate/predalien_base name = "Base Predalien Behavior Delegate" @@ -120,53 +124,11 @@ Your health meter will not regenerate normally, so kill and die for the hive!= 1) if(isturf(loc)) var/turf/T = loc @@ -595,7 +593,7 @@ xeno_announcement(input, hivenumber, "The words of the [name] reverberate in our head...") - log_and_message_admins("[key_name_admin(src)] has created a Word of the Queen report:") + message_admins("[key_name_admin(src)] has created a Word of the Queen report:") log_admin("[key_name_admin(src)] Word of the Queen: [input]") return TRUE @@ -936,7 +934,7 @@ var/mob/living/carbon/xenomorph/queen/Queen = bound_xeno if(Queen.ovipositor) Queen.icon = Queen.queen_ovipositor_icon - Queen.icon_state = "[Queen.mutation_icon_state || Queen.mutation_type] Queen Ovipositor" + Queen.icon_state = "[Queen.get_strain_name()] Queen Ovipositor" return TRUE // Switch icon back and then let normal icon behavior happen diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm index 6d19a1b8feec..e50a0f026d65 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm @@ -26,6 +26,10 @@ fire_immunity = FIRE_IMMUNITY_NO_DAMAGE|FIRE_IMMUNITY_XENO_FRENZY attack_delay = -1 + available_strains = list( + /datum/xeno_strain/berserker, + /datum/xeno_strain/hedgehog, + ) behavior_delegate_type = /datum/behavior_delegate/ravager_base minimum_evolve_time = 15 MINUTES @@ -45,7 +49,6 @@ tier = 3 pixel_x = -16 old_x = -16 - mutation_type = RAVAGER_NORMAL claw_type = CLAW_TYPE_VERY_SHARP base_actions = list( diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm index 3a23afc145d1..400195f21de0 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm @@ -13,6 +13,8 @@ evasion = XENO_EVASION_NONE speed = XENO_SPEED_RUNNER attack_delay = -4 + + available_strains = list(/datum/xeno_strain/acider) behavior_delegate_type = /datum/behavior_delegate/runner_base evolves_to = list(XENO_CASTE_LURKER) deevolves_to = list("Larva") @@ -62,7 +64,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = RUNNER_NORMAL icon_xeno = 'icons/mob/xenos/runner.dmi' icon_xenonid = 'icons/mob/xenonids/runner.dmi' @@ -77,6 +78,12 @@ if (pass_flags_container) pass_flags_container.flags_pass |= PASS_FLAGS_CRAWLER +/mob/living/carbon/xenomorph/runner/recalculate_actions() + . = ..() + pull_multiplier *= 0.85 + if(is_zoomed) + zoom_out() + /datum/behavior_delegate/runner_base name = "Base Runner Behavior Delegate" diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm b/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm index a568a093b3a4..2e53f97e297b 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Sentinel.dm @@ -53,7 +53,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = SENTINEL_NORMAL icon_xeno = 'icons/mob/xenos/sentinel.dmi' icon_xenonid = 'icons/mob/xenonids/sentinel.dmi' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm index 9ad2f4909fb8..984a2d08bb75 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Spitter.dm @@ -56,7 +56,6 @@ inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - mutation_type = SPITTER_NORMAL icon_xeno = 'icons/mob/xenos/spitter.dmi' icon_xenonid = 'icons/mob/xenonids/spitter.dmi' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm index b19978a33766..1c329c8b9e82 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm @@ -55,7 +55,6 @@ /datum/action/xeno_action/onclick/tacmap, ) - mutation_type = WARRIOR_NORMAL claw_type = CLAW_TYPE_SHARP icon_xeno = 'icons/mob/xenos/warrior.dmi' diff --git a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm index cfaedf013a44..feee2edecb67 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/caste_datum.dm @@ -66,6 +66,9 @@ var/agility_speed_increase = 0 // this opens up possibilities for balancing + /// A list of strain typepaths that are able to be chosen by this caste. + var/list/available_strains = list() + // The type of mutator delegate to instantiate on the base caste. Will // be replaced when the Xeno chooses a strain. var/behavior_delegate_type = /datum/behavior_delegate diff --git a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm index f050a0dcfe8a..8b268ebfce62 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/lesser_drone.dm @@ -74,8 +74,6 @@ /mob/living/carbon/xenomorph/proc/set_hugger_reserve_for_morpher, ) - mutation_type = DRONE_NORMAL - icon_xeno = 'icons/mob/xenos/lesser_drone.dmi' icon_xenonid = 'icons/mob/xenonids/lesser_drone.dmi' @@ -83,6 +81,20 @@ weed_food_states = list("Lesser_Drone_1","Lesser_Drone_2","Lesser_Drone_3") weed_food_states_flipped = list("Lesser_Drone_1","Lesser_Drone_2","Lesser_Drone_3") +/mob/living/carbon/xenomorph/lesser_drone/Login() + var/last_ckey_inhabited = persistent_ckey + . = ..() + if(ckey == last_ckey_inhabited) + return + + AddComponent(\ + /datum/component/temporary_mute,\ + "We aren't old enough to vocalize anything yet.",\ + "We aren't old enough to communicate like this yet.",\ + "We feel old enough to be able to vocalize and speak to the hivemind.",\ + 3 MINUTES,\ + ) + /mob/living/carbon/xenomorph/lesser_drone/age_xeno() if(stat == DEAD || !caste || QDELETED(src) || !client) return diff --git a/code/modules/mob/living/carbon/xenomorph/death.dm b/code/modules/mob/living/carbon/xenomorph/death.dm index 503ca11a7631..d6a9dd01f3cc 100644 --- a/code/modules/mob/living/carbon/xenomorph/death.dm +++ b/code/modules/mob/living/carbon/xenomorph/death.dm @@ -84,7 +84,8 @@ playsound(loc, prob(50) == 1 ? 'sound/voice/alien_death.ogg' : 'sound/voice/alien_death2.ogg', 25, 1) var/area/A = get_area(src) if(hive && hive.living_xeno_queen) - xeno_message("Hive: [src] has died[A? " at [sanitize_area(A.name)]":""]! [banished ? "They were banished from the hive." : ""]", death_fontsize, hivenumber) + if(!HAS_TRAIT(src, TRAIT_TEMPORARILY_MUTED)) + xeno_message("Hive: [src] has died[A? " at [sanitize_area(A.name)]":""]! [banished ? "They were banished from the hive." : ""]", death_fontsize, hivenumber) if(hive && IS_XENO_LEADER(src)) //Strip them from the Xeno leader list, if they are indexed in here hive.remove_hive_leader(src) diff --git a/code/modules/mob/living/carbon/xenomorph/egg_item.dm b/code/modules/mob/living/carbon/xenomorph/egg_item.dm index 1bc41b881129..f349b8acfb8d 100644 --- a/code/modules/mob/living/carbon/xenomorph/egg_item.dm +++ b/code/modules/mob/living/carbon/xenomorph/egg_item.dm @@ -104,12 +104,15 @@ if(weed.weed_strength >= WEED_LEVEL_WEAK && weed.linked_hive.hivenumber == hivenumber) //check for ANY weeds any_weeds = weed + // If the user isn't an eggsac carrier, then they can only plant eggs on hive weeds. + var/needs_hive_weeds = !istype(user.strain, /datum/xeno_strain/eggsac) + var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] if(!any_weeds && !hive_weeds) //you need at least some weeds to plant on. to_chat(user, SPAN_XENOWARNING("[src] must be planted on [lowertext(hive.prefix)]weeds.")) return - if(!hive_weeds && user.mutation_type != CARRIER_EGGSAC) + if(!hive_weeds && needs_hive_weeds) to_chat(user, SPAN_XENOWARNING("[src] can only be planted on [lowertext(hive.prefix)]hive weeds.")) return @@ -138,7 +141,7 @@ return for(var/obj/effect/alien/weeds/weed in T) - if(weed.weed_strength >= WEED_LEVEL_HIVE || user.mutation_type == CARRIER_EGGSAC) + if(weed.weed_strength >= WEED_LEVEL_HIVE || !needs_hive_weeds) user.use_plasma(30) var/obj/effect/alien/egg/newegg if(weed.weed_strength >= WEED_LEVEL_HIVE) diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm index bb67eaa055a8..22b061715892 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm @@ -12,7 +12,7 @@ var/egg_planting_range = 15 var/slashing_allowed = XENO_SLASH_ALLOWED //This initial var allows the queen to turn on or off slashing. Slashing off means harm intent does much less damage. var/construction_allowed = NORMAL_XENO //Who can place construction nodes for special structures - var/destruction_allowed = XENO_LEADER //Who can destroy special structures + var/destruction_allowed = NORMAL_XENO //Who can destroy special structures var/unnesting_allowed = TRUE var/hive_orders = "" //What orders should the hive have var/color = null @@ -46,7 +46,6 @@ var/allowed_nest_distance = 15 //How far away do we allow nests from an ovied Queen. Default 15 tiles. var/obj/effect/alien/resin/special/pylon/core/hive_location = null //Set to ref every time a core is built, for defining the hive location - var/datum/mutator_set/hive_mutators/mutators = new var/tier_slot_multiplier = 1 var/larva_gestation_multiplier = 1 var/bonus_larva_spawn_chance = 1 @@ -54,7 +53,6 @@ /// how many burrowed is going to spawn during larva surge var/hijack_burrowed_left = 0 - var/ignore_slots = FALSE var/dynamic_evolution = TRUE var/evolution_rate = 3 // Only has use if dynamic_evolution is false var/evolution_bonus = 0 @@ -143,7 +141,6 @@ var/static/list/evolution_menu_images /datum/hive_status/New() - mutators.hive = src hive_ui = new(src) mark_ui = new(src) faction_ui = new(src) @@ -279,7 +276,6 @@ /datum/hive_status/proc/set_living_xeno_queen(mob/living/carbon/xenomorph/queen/queen) if(!queen) - mutators.reset_mutators() SStracking.delete_leader("hive_[hivenumber]") SStracking.stop_tracking("hive_[hivenumber]", living_xeno_queen) SShive_status.wait = 10 SECONDS @@ -293,10 +289,8 @@ recalculate_hive() /datum/hive_status/proc/recalculate_hive() - if (!living_xeno_queen) - queen_leader_limit = 0 //No leaders for a Hive without a Queen! - else - queen_leader_limit = 4 + mutators.leader_count_boost + //No leaders for a Hive without a Queen! + queen_leader_limit = living_xeno_queen ? 4 : 0 if (xeno_leader_list.len > queen_leader_limit) var/diff = 0 @@ -310,11 +304,6 @@ open_xeno_leader_positions += i xeno_leader_list.len++ - - tier_slot_multiplier = mutators.tier_slot_multiplier - larva_gestation_multiplier = mutators.larva_gestation_multiplier - bonus_larva_spawn_chance = mutators.bonus_larva_spawn_chance - hive_ui.update_all_data() /datum/hive_status/proc/add_hive_leader(mob/living/carbon/xenomorph/xeno) @@ -524,7 +513,7 @@ xeno_name = "Larva ([X.nicknumber])" xenos["[X.nicknumber]"] = list( "name" = xeno_name, - "strain" = X.mutation_type, + "strain" = X.get_strain_name(), "ref" = "\ref[X]" ) @@ -1062,7 +1051,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE /datum/hive_status/forsaken @@ -1077,7 +1065,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE need_round_end_check = TRUE @@ -1118,7 +1105,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE need_round_end_check = TRUE @@ -1148,7 +1134,6 @@ allow_no_queen_actions = TRUE allow_no_queen_evo = TRUE allow_queen_evolve = FALSE - ignore_slots = TRUE latejoin_burrowed = FALSE var/mob/living/carbon/human/leader diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm b/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm index 17514a31e502..360b4e8bbdde 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status_ui.dm @@ -137,7 +137,7 @@ return UI_INTERACTIVE // If the Queen died or is otherwise missing. - if(!assoc_hive.living_xeno_queen) + if(!assoc_hive.living_xeno_queen && !assoc_hive.allow_no_queen_actions) return UI_CLOSE /datum/hive_status_ui/ui_data(mob/user) diff --git a/code/modules/mob/living/carbon/xenomorph/life.dm b/code/modules/mob/living/carbon/xenomorph/life.dm index d5ca8a41fa39..bbd59a74d8b5 100644 --- a/code/modules/mob/living/carbon/xenomorph/life.dm +++ b/code/modules/mob/living/carbon/xenomorph/life.dm @@ -506,6 +506,7 @@ Make sure their actual health updates immediately.*/ /mob/living/carbon/xenomorph/proc/handle_crit() if(stat <= CONSCIOUS && !gibbing) set_stat(UNCONSCIOUS) + SEND_SIGNAL(src, COMSIG_XENO_ENTER_CRIT) /mob/living/carbon/xenomorph/set_stat(new_stat) . = ..() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm b/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm deleted file mode 100644 index 6736bdb0419b..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/mutator.dm +++ /dev/null @@ -1,103 +0,0 @@ -#define MUTATOR_COST_CHEAP 2 -#define MUTATOR_COST_MODERATE 3 -#define MUTATOR_COST_EXPENSIVE 1 - -//Individual mutator -/datum/xeno_mutator - var/name = "Mutator name" //Name of the mutator, should be short but informative - var/description = "Mutator description" //Description to be displayed on purchase - var/flavor_description = null // Optional flavor text to be shown. Semi-OOC - var/cost = MUTATOR_COST_CHEAP //How expensive the mutator is - var/required_level = 0 //Level of xeno upgrade required to unlock - var/unique = TRUE //True if you can only buy it once - var/death_persistent = FALSE //True if the mutators persists after Queen death (aka, mostly for "once ever" mutators) - var/hive_only = FALSE //Hive-only mutators - var/individual_only = FALSE //Individual-only mutators - var/keystone = FALSE //Xeno can only take one Keystone mutator - var/flaw = FALSE //Flaws give you points back, but you can only take one of them - var/list/caste_whitelist = list() //List of the only castes that can buy this mutator - - // Rework by Fourkhan - 4/26/19, redone again c. 2/2020 - // HOW TO ADD A NEW MUTATOR - // Step 0: Write an action(s) - // the "handler" procs go in the appropriate caste's subfolder under the "ABILITIES" file. - // the actual ACTION procs go in the appropriate caste's subfolder under the "POWERS" file. - // Any constants you need to access for your strain should be in the behavior holder and - // accessed using a cast to it using the mutator_type variable as defined below. (Or using an istype of the behavior holder) - // vars that absolutely must be held on the xenos themselves can be added to the Xenomorph class itself. - // Be sure to follow the spec in xeno_action.dm as far as setting up xeno_cooldown is concerned. - // - // Step 1: Write the Behavior Delegate datum IF NECESSARY - // the "behavior holder" datum defines all unique behavior and state for each xeno/strain. It works by embedding a number of 'hooks' - // for example, if you want to store bonus damage and apply it on slashes, behavior delegates are the way to do it. - // in common procs that call back to Xeno features. See other behavior delegates for examples. Afterward, set the behavior_delegate_type - // var on the strain datum to indicate which behavior holder to apply to your strain. - // - // Step 1: Copy/paste another datum definiton and edit it for your strain - // make sure to populate each of the variables listed above (at least as much as other strains) - // - // Step 2: Write the apply_mutator proc. - // FIRST: populate mutator_actions_to_add and mutator_actions_to_remove according to that documentation. - // THEN: write the body of the apply_mutator method according to your speficiations - // THEN: call mutator_update_actions on your xeno - // call recalculate actions on your mutator set (this should be auto populated) - // You should probably also call recalculate_everything() on the host Xeno to make sure you don't end up with any - // strange transient values. - // THEN: Set the mutation_type var on the host xeno to "name" the strain. - // FINALLY: Call apply_behavior_holder() to add the behavior datum to the new Xeno. - // - // You're done! - - // Both should be set to null when their use is not necessary. - /// A list of PATHS of actions that need to be removed when a xeno takes the mutator. - var/list/mutator_actions_to_remove //Actions to remove when the mutator is added - /// A list of PATHS of actions to be ADDED when the Xeno takes the mutator. - var/list/mutator_actions_to_add //Actions to add when the mutator is added - - // Type of the behavior datum to add - var/behavior_delegate_type = null // Specify this on subtypes - -/datum/xeno_mutator/New() - . = ..() - name = "[name]" - - -/datum/xeno_mutator/proc/apply_mutator(datum/mutator_set/MS) - if(!MS.can_purchase_mutator(name)) - return FALSE - if(MS.remaining_points < cost) - return FALSE - MS.remaining_points -= cost - MS.purchased_mutators += name - - if(istype(MS, /datum/mutator_set/individual_mutators)) - var/datum/mutator_set/individual_mutators/IS = MS - if(IS.xeno) - IS.xeno.hive.hive_ui.update_xeno_info() - - return TRUE - -// Sets up actions for when a mutator is taken -// Must be called at the end of any mutator that changes available actions -// (read: Strains) apply_mutator proc for the mutator to work correctly. -/datum/xeno_mutator/proc/mutator_update_actions(mob/living/carbon/xenomorph/X) - if(mutator_actions_to_remove) - for(var/action_path in mutator_actions_to_remove) - remove_action(X, action_path) - if(mutator_actions_to_add) - for(var/action_path in mutator_actions_to_add) - give_action(X, action_path) - -// Substitutes the existing behavior delegate for the strain-defined one. -/datum/xeno_mutator/proc/apply_behavior_holder(mob/living/carbon/xenomorph/X) - if (!istype(X)) - log_debug("Null mob handed to apply_behavior_holder. Tell the devs.") - log_admin("Null mob handed to apply_behavior_holder. Tell the devs.") - message_admins("Null mob handed to apply_behavior_holder. Tell the devs.") - - if (behavior_delegate_type) - if(X.behavior_delegate) - qdel(X.behavior_delegate) - X.behavior_delegate = new behavior_delegate_type() - X.behavior_delegate.bound_xeno = X - X.behavior_delegate.add_to_xeno() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm deleted file mode 100644 index 957e7f1b8926..000000000000 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/defender/steel_crest.dm +++ /dev/null @@ -1,44 +0,0 @@ -/datum/xeno_mutator/steel_crest - name = "STRAIN: Defender - Steel Crest" - description = "You trade your tail sweep and a small amount of your slash damage for slightly increased headbutt knockback and damage and the ability to slowly move and headbutt while fortified. Along with this, you gain a unique ability to accumulate damage, and use it to recover a slight amount of health and refresh your tail slam." - flavor_description = "To handle yourself, use your head. To handle others, use your head." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_DEFENDER) - mutator_actions_to_remove = list( - /datum/action/xeno_action/onclick/tail_sweep, - ) - mutator_actions_to_add = list( - /datum/action/xeno_action/onclick/soak, - ) - behavior_delegate_type = /datum/behavior_delegate/defender_steel_crest - keystone = TRUE - -/datum/xeno_mutator/steel_crest/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/defender/defender = mutator_set.xeno - defender.mutation_type = DEFENDER_STEELCREST - defender.mutation_icon_state = DEFENDER_STEELCREST - defender.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL - if(defender.fortify) - defender.ability_speed_modifier += 2.5 - mutator_update_actions(defender) - mutator_set.recalculate_actions(description, flavor_description) - defender.recalculate_stats() - -/datum/behavior_delegate/defender_steel_crest - name = "Steel Crest Defender Behavior Delegate" - -/datum/behavior_delegate/defender_steel_crest/on_update_icons() - if(bound_xeno.stat == DEAD) - return - - if(bound_xeno.fortify) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Steelcrest Defender Fortify" - return TRUE - if(bound_xeno.crest_defense) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Steelcrest Defender Crest" - return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm b/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm index 793ed45bcb13..9c94be96a65a 100644 --- a/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm +++ b/code/modules/mob/living/carbon/xenomorph/resin_constructions.dm @@ -341,11 +341,11 @@ GLOBAL_VAR_INIT(resin_lz_allowed, FALSE) construction_name = "thick resin membrane" build_path = /obj/structure/alien/movable_wall/membrane/thick -// Remote Resin Nodes for originally coded for Resin Whisperers +// Remote Weed Nodes for originally coded for Resin Whisperers /datum/resin_construction/resin_obj/resin_node - name = "Resin Node" + name = "Weed Node" desc = "Channel energy to spread our influence." - construction_name = "resin node" + construction_name = "weed node" cost = (XENO_RESIN_MEMBRANE_THICK_COST * 2) // 3x the cost of a thick membrane. At the time of coding that is 95*2 = 190 build_path = /obj/effect/alien/weeds/node diff --git a/code/modules/mob/living/carbon/xenomorph/say.dm b/code/modules/mob/living/carbon/xenomorph/say.dm index 5b8ce1ecd292..c40a50ce7523 100644 --- a/code/modules/mob/living/carbon/xenomorph/say.dm +++ b/code/modules/mob/living/carbon/xenomorph/say.dm @@ -98,6 +98,9 @@ to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) return + if(SEND_SIGNAL(src, COMSIG_XENO_TRY_HIVEMIND_TALK, message) & COMPONENT_OVERRIDE_HIVEMIND_TALK) + return + hivemind_broadcast(message, hive) /mob/living/carbon/proc/hivemind_broadcast(message, datum/hive_status/hive) diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm b/code/modules/mob/living/carbon/xenomorph/strains/behavior_delegate.dm similarity index 100% rename from code/modules/mob/living/carbon/xenomorph/mutators/behavior_delegate.dm rename to code/modules/mob/living/carbon/xenomorph/strains/behavior_delegate.dm diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm similarity index 87% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm index c14d2c6773cf..e6c8061bd0fe 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/boiler/trapper.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/boiler/trapper.dm @@ -1,40 +1,33 @@ - -/datum/xeno_mutator/trapper - name = "STRAIN: Boiler - Trapper" +/datum/xeno_strain/trapper + name = BOILER_TRAPPER description = "You trade your ability to bombard, lance, and dump your acid in order to gain some speed and the ability to create acid explosions and restrain talls within them. With your longer-range vision, set up traps that immobilize your opponents and place acid mines which deal damage to talls and barricades and reduce the cooldown of your trap deployment for every tall hit. Finally, hit talls with your Acid Shotgun ability which adds a stack of insight to empower the next trap you place once you reach a maximum of ten insight. A point-blank shot or a shot on a stunned target will instantly apply ten stacks." flavor_description = "Hsss, I love the smell of burnin' tallhost flesh in the mornin'." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_BOILER) //Only boiler. - mutator_actions_to_remove = list( + + actions_to_remove = list( /datum/action/xeno_action/activable/xeno_spit/bombard, /datum/action/xeno_action/onclick/shift_spits/boiler, /datum/action/xeno_action/activable/spray_acid/boiler, /datum/action/xeno_action/onclick/toggle_long_range/boiler, /datum/action/xeno_action/onclick/acid_shroud, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/boiler_trap, /datum/action/xeno_action/activable/acid_mine, /datum/action/xeno_action/activable/acid_shotgun, /datum/action/xeno_action/onclick/toggle_long_range/trapper, ) - keystone = TRUE behavior_delegate_type = /datum/behavior_delegate/boiler_trapper -/datum/xeno_mutator/trapper/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if(. == 0) - return +/datum/xeno_strain/trapper/apply_strain(mob/living/carbon/xenomorph/boiler/boiler) + if(!istype(boiler)) + return FALSE - var/mob/living/carbon/xenomorph/boiler/boiler = mutator_set.xeno if(boiler.is_zoomed) boiler.zoom_out() boiler.tileoffset = 0 boiler.viewsize = TRAPPER_VIEWRANGE - boiler.mutation_type = BOILER_TRAPPER boiler.plasma_types -= PLASMA_NEUROTOXIN boiler.armor_modifier -= XENO_ARMOR_MOD_LARGE // no armor boiler.health_modifier -= XENO_HEALTH_MOD_MED @@ -42,12 +35,6 @@ boiler.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 // compensating for base buffs boiler.recalculate_everything() - apply_behavior_holder(boiler) - - mutator_update_actions(boiler) - mutator_set.recalculate_actions(description, flavor_description) - - /datum/behavior_delegate/boiler_trapper name = "Boiler Trapper Behavior Delegate" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm similarity index 85% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm index 10cbc29f51b0..61c03803841b 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/carrier/eggsac.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/carrier/eggsac.dm @@ -1,48 +1,36 @@ -/datum/xeno_mutator/eggsac - name = "STRAIN: Carrier - Eggsac" +/datum/xeno_strain/eggsac + name = CARRIER_EGGSAC description = "In exchange for your ability to store huggers and place traps, you gain larger plasma stores, strong pheromones, and the ability to lay eggs by using your plasma stores. In addition, you can now carry twelve eggs at once and can place eggs one pace further than normal. \n\nYou can also place a small number of fragile eggs on normal weeds. These eggs have a lifetime of five minutes while you remain within 14 tiles. Or one minute if you leave this range." flavor_description = "An egg is always an adventure; the next one may be different." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_CARRIER) - mutator_actions_to_remove = list( + icon_state_prefix = "Eggsac" + + actions_to_remove = list( /datum/action/xeno_action/activable/throw_hugger, /datum/action/xeno_action/onclick/place_trap, /datum/action/xeno_action/activable/retrieve_egg, // readding it so it gets at the end of the ability list /datum/action/xeno_action/onclick/set_hugger_reserve, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/active_toggle/generate_egg, /datum/action/xeno_action/activable/retrieve_egg, // readding it so it gets at the end of the ability list ) + behavior_delegate_type = /datum/behavior_delegate/carrier_eggsac - keystone = TRUE -/datum/xeno_mutator/eggsac/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (!.) - return - var/mob/living/carbon/xenomorph/carrier/carrier = mutator_set.xeno - if(!istype(carrier)) - return FALSE +/datum/xeno_strain/eggsac/apply_strain(mob/living/carbon/xenomorph/carrier/carrier) carrier.plasma_types = list(PLASMA_EGG) carrier.phero_modifier += XENO_PHERO_MOD_LARGE // praetorian level pheremones - carrier.plasmapool_modifier = 1.2 - mutator_update_actions(carrier) - mutator_set.recalculate_actions(description, flavor_description) - carrier.recalculate_pheromones() carrier.recalculate_plasma() - if(carrier.huggers_cur > 0) - playsound(carrier.loc, 'sound/voice/alien_facehugger_dies.ogg', 25, 1) + carrier.recalculate_pheromones() + + if(carrier.huggers_cur) + playsound(carrier.loc, 'sound/voice/alien_facehugger_dies.ogg', 25, TRUE) carrier.huggers_cur = 0 carrier.huggers_max = 0 carrier.update_hugger_overlays() - carrier.mutation_type = CARRIER_EGGSAC - carrier.update_eggsac_overlays() carrier.eggs_max = 12 carrier.egg_planting_range = 2 - apply_behavior_holder(carrier) - return TRUE + carrier.update_eggsac_overlays() #define EGGSAC_OFF_WEED_EGGCAP 4 #define EGGSAC_EGG_SUSTAIN_DISTANCE 14 @@ -60,6 +48,10 @@ . = list() . += "Eggs sustained: [length(eggs_sustained)] / [egg_sustain_cap]" +/datum/behavior_delegate/carrier_eggsac/on_update_icons() + var/mob/living/carbon/xenomorph/carrier/bound_carrier = bound_xeno + bound_carrier.update_eggsac_overlays() + /datum/behavior_delegate/carrier_eggsac/on_life() if(length(eggs_sustained) > egg_sustain_cap) var/obj/effect/alien/egg/carrier_egg/my_egg = eggs_sustained[1] @@ -87,6 +79,9 @@ remove_egg_owner(my_egg) my_egg.start_unstoppable_decay() + M.visible_message(SPAN_XENOWARNING("[M] throes as its eggsac bursts into a mess of acid!")) + playsound(M.loc, 'sound/effects/alien_egg_burst.ogg', 25, TRUE) + ///Remove all references to src in eggs_sustained /datum/behavior_delegate/carrier_eggsac/Destroy() for(var/obj/effect/alien/egg/carrier_egg/my_egg as anything in eggs_sustained) @@ -126,7 +121,7 @@ if(egg_generation_progress >= 15) egg_generation_progress = 0 xeno.eggs_cur++ - to_chat(xeno, SPAN_XENONOTICE("You generate a egg. Now sheltering: [xeno.eggs_cur] / [xeno.eggs_max].")) + to_chat(xeno, SPAN_XENONOTICE("We generate an egg. Now sheltering: [xeno.eggs_cur] / [xeno.eggs_max].")) xeno.update_icons() #undef EGGSAC_OFF_WEED_EGGCAP diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm similarity index 96% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm index 17b5cf62052c..84877b43571e 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/crusher/charger.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/crusher/charger.dm @@ -1,10 +1,8 @@ -// // Specific momentum based damage defines #define CHARGER_DESTROY charger_ability.momentum * 40 #define CHARGER_DAMAGE_CADE charger_ability.momentum * 22 #define CHARGER_DAMAGE_SENTRY charger_ability.momentum * 9 -#define CHARGER_DAMAGE_MG charger_ability.momentum * 15 // Momentum loss defines. 8 is maximum momentum @@ -14,34 +12,26 @@ #define CCA_MOMENTUM_LOSS_MIN 1 -/datum/xeno_mutator/charger - name = "STRAIN: Crusher - Charger" +/datum/xeno_strain/charger + name = CRUSHER_CHARGER description = "In exchange for your shield, a little bit of your armor and damage, your slowdown resist from autospitters, your influence under frenzy pheromones, your stomp no longer knocking down talls, and your ability to lock your direction, you gain a considerable amount of health, some speed, your stomp does extra damage when stomping over a grounded tall, and your charge is now manually-controlled and momentum-based; the further you go, the more damage and speed you will gain until you achieve maximum momentum, indicated by your roar. In addition, your armor is now directional, being the toughest on the front, weaker on the sides, and weakest from the back. In return, you gain an ability to tumble to pass through talls and avoid enemy fire, and an ability to forcefully move enemies via ramming into them." flavor_description = "We're just getting started. Nothing stops this train. Nothing." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_CRUSHER) - mutator_actions_to_remove = list ( + + actions_to_remove = list( /datum/action/xeno_action/activable/pounce/crusher_charge, /datum/action/xeno_action/onclick/crusher_stomp, /datum/action/xeno_action/onclick/crusher_shield, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/onclick/charger_charge, /datum/action/xeno_action/activable/tumble, /datum/action/xeno_action/onclick/crusher_stomp/charger, /datum/action/xeno_action/activable/fling/charger, ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/crusher_charger -/datum/xeno_mutator/charger/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/crusher_charger - var/mob/living/carbon/xenomorph/crusher/crusher = mutator_set.xeno - crusher.mutation_type = CRUSHER_CHARGER +/datum/xeno_strain/charger/apply_strain(mob/living/carbon/xenomorph/crusher/crusher) crusher.small_explosives_stun = FALSE crusher.health_modifier += XENO_HEALTH_MOD_LARGE crusher.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 @@ -49,10 +39,6 @@ crusher.damage_modifier -= XENO_DAMAGE_MOD_SMALL crusher.ignore_aura = "frenzy" // no funny crushers going 7 morbillion kilometers per second crusher.phero_modifier = -crusher.caste.aura_strength - crusher.recalculate_pheromones() - mutator_update_actions(crusher) - mutator_set.recalculate_actions(description, flavor_description) - apply_behavior_holder(crusher) crusher.recalculate_everything() /datum/behavior_delegate/crusher_charger @@ -83,7 +69,7 @@ /datum/behavior_delegate/crusher_charger/on_update_icons() if(HAS_TRAIT(bound_xeno, TRAIT_CHARGING) && bound_xeno.body_position == STANDING_UP) - bound_xeno.icon_state = "[bound_xeno.mutation_icon_state || bound_xeno.mutation_type] Crusher Charging" + bound_xeno.icon_state = "[bound_xeno.get_strain_icon()] Crusher Charging" return TRUE // Fallback proc for shit that doesn't have a collision def @@ -643,3 +629,12 @@ return XENO_CHARGE_TRY_MOVE charger_ability.stop_momentum() + + +#undef CHARGER_DESTROY +#undef CHARGER_DAMAGE_CADE +#undef CHARGER_DAMAGE_SENTRY +#undef CCA_MOMENTUM_LOSS_HALF +#undef CCA_MOMENTUM_LOSS_THIRD +#undef CCA_MOMENTUM_LOSS_QUARTER +#undef CCA_MOMENTUM_LOSS_MIN diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm new file mode 100644 index 000000000000..f84566e9c841 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/defender/steel_crest.dm @@ -0,0 +1,22 @@ +/datum/xeno_strain/steel_crest + name = DEFENDER_STEELCREST + description = "You trade your tail sweep and a small amount of your slash damage for slightly increased headbutt knockback and damage and the ability to slowly move and headbutt while fortified. Along with this, you gain a unique ability to accumulate damage, and use it to recover a slight amount of health and refresh your tail slam." + flavor_description = "To handle yourself, use your head. To handle others, use your head." + icon_state_prefix = "Steelcrest" + + actions_to_remove = list( + /datum/action/xeno_action/activable/headbutt, + /datum/action/xeno_action/activable/fortify, + /datum/action/xeno_action/onclick/tail_sweep, + ) + actions_to_add = list( + /datum/action/xeno_action/activable/headbutt/steel_crest, + /datum/action/xeno_action/activable/fortify/steel_crest, + /datum/action/xeno_action/onclick/soak, + ) + +/datum/xeno_strain/steel_crest/apply_strain(mob/living/carbon/xenomorph/defender/defender) + defender.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL + if(defender.fortify) + defender.ability_speed_modifier += 2.5 + defender.recalculate_stats() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm similarity index 93% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm index da354b465331..d54d268f12d9 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/gardener.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/gardener.dm @@ -1,45 +1,41 @@ -/datum/xeno_mutator/gardener - name = "STRAIN: Drone - Gardener" +/datum/xeno_strain/gardener + name = DRONE_GARDENER description = "You trade your choice of resin secretions, your corrosive acid, and your ability to transfer plasma for a tiny bit of extra health regeneration on weeds and several new abilities, including the ability to plant hardier weeds, temporarily reinforce structures with your plasma, and to plant up to six potent resin fruits for your sisters by secreting your vital fluids at the cost of a bit of your health for each fruit you shape. You can use Resin Surge to speed up the growth of your fruits." flavor_description = "The glory of gardening: hands in the weeds, head in the dark, heart with resin." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_DRONE) //Only drone. - mutator_actions_to_remove = list( + + actions_to_remove = list( /datum/action/xeno_action/activable/secrete_resin, /datum/action/xeno_action/onclick/choose_resin, /datum/action/xeno_action/activable/corrosive_acid/weak, /datum/action/xeno_action/activable/transfer_plasma, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/onclick/plant_weeds/gardener, // second macro /datum/action/xeno_action/activable/resin_surge, // third macro /datum/action/xeno_action/onclick/plant_resin_fruit/greater, // fourth macro /datum/action/xeno_action/onclick/change_fruit, /datum/action/xeno_action/activable/transfer_plasma, ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/drone_gardener -/datum/xeno_mutator/gardener/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/drone_gardener - var/mob/living/carbon/xenomorph/drone/drone = mutator_set.xeno - drone.mutation_type = DRONE_GARDENER - drone.available_fruits = list(/obj/effect/alien/resin/fruit/greater, /obj/effect/alien/resin/fruit/unstable, /obj/effect/alien/resin/fruit/spore, /obj/effect/alien/resin/fruit/speed, /obj/effect/alien/resin/fruit/plasma) +/datum/xeno_strain/gardener/apply_strain(mob/living/carbon/xenomorph/drone/drone) + drone.available_fruits = list( + /obj/effect/alien/resin/fruit/greater, + /obj/effect/alien/resin/fruit/unstable, + /obj/effect/alien/resin/fruit/spore, + /obj/effect/alien/resin/fruit/speed, + /obj/effect/alien/resin/fruit/plasma + ) drone.selected_fruit = /obj/effect/alien/resin/fruit/greater drone.max_placeable = 6 drone.regeneration_multiplier = XENO_REGEN_MULTIPLIER_TIER_1 - mutator_update_actions(drone) - apply_behavior_holder(drone) + // Also change the primacy value for our place construction ability (because we want it in the same place but have another primacy ability) for(var/datum/action/xeno_action/action in drone.actions) if(istype(action, /datum/action/xeno_action/activable/place_construction)) action.ability_primacy = XENO_NOT_PRIMARY_ACTION break // Don't need to keep looking - mutator_set.recalculate_actions(description, flavor_description) /datum/action/xeno_action/onclick/plant_resin_fruit name = "Plant Resin Fruit (50)" @@ -368,9 +364,6 @@ var/mutable_appearance/fruit_sac_overlay_icon -/datum/behavior_delegate/drone_gardener/add_to_xeno() - on_update_icons() - /datum/behavior_delegate/drone_gardener/on_update_icons() if(!fruit_sac_overlay_icon) fruit_sac_overlay_icon = mutable_appearance('icons/mob/xenos/drone_strain_overlays.dmi', "Gardener Drone Walking") diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm similarity index 90% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm index 86f50b47e080..0fcbb2ecf09a 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/drone/healer.dm @@ -1,18 +1,17 @@ -/datum/xeno_mutator/healer - name = "STRAIN: Drone - Healer" +/datum/xeno_strain/healer + name = DRONE_HEALER description = "You lose your choice of resin secretions, a chunk of your slash damage, and you will experience a slighty-increased difficulty in tackling tallhosts in exchange for strong pheromones, the ability to use a bit of your health to plant a maximum of three lesser resin fruits, and the ability to heal your sisters' wounds by secreting a regenerative resin salve by using your vital fluids and a fifth of your plasma. Be wary, this is a dangerous process; overexert yourself and you may exhaust yourself to unconsciousness, or die..." flavor_description = "To the very last drop, your blood belongs to The Hive; share it with your sisters to keep them fighting." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_DRONE) //Only drone. - mutator_actions_to_remove = list( + icon_state_prefix = "Healer" + + actions_to_remove = list( /datum/action/xeno_action/activable/secrete_resin, /datum/action/xeno_action/onclick/choose_resin, /datum/action/xeno_action/activable/transfer_plasma, /datum/action/xeno_action/activable/place_construction, // so it doesn't use fifth macro /datum/action/xeno_action/onclick/plant_weeds, // so it doesn't break order ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/place_construction/not_primary, // so it doesn't use fifth macro /datum/action/xeno_action/onclick/plant_weeds, // so it doesn't break order /datum/action/xeno_action/onclick/plant_resin_fruit, // Second macro. Resin fruits belong to Gardener, but Healer has a minor variant. @@ -20,32 +19,20 @@ /datum/action/xeno_action/activable/transfer_plasma/healer, //Fourth macro, an improved plasma transfer. /datum/action/xeno_action/activable/healer_sacrifice, //Fifth macro, the ultimate ability to sacrifice yourself ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/drone_healer - -/datum/xeno_mutator/healer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/drone_healer - var/mob/living/carbon/xenomorph/drone/drone = mutator_set.xeno - drone.mutation_type = DRONE_HEALER +/datum/xeno_strain/healer/apply_strain(mob/living/carbon/xenomorph/drone/drone) drone.phero_modifier += XENO_PHERO_MOD_LARGE drone.plasma_types += PLASMA_PHEROMONE drone.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL + drone.tackle_chance_modifier -= 5 drone.max_placeable = 3 drone.available_fruits = list(/obj/effect/alien/resin/fruit) drone.selected_fruit = /obj/effect/alien/resin/fruit - drone.tackle_chance_modifier -= 5 - mutator_update_actions(drone) - apply_behavior_holder(drone) - mutator_set.recalculate_actions(description, flavor_description) - drone.recalculate_health() - drone.recalculate_damage() - drone.recalculate_pheromones() - drone.recalculate_tackle() + + drone.recalculate_everything() /* Improved Plasma Transfer @@ -123,13 +110,14 @@ to_chat(src, SPAN_XENOWARNING("[target_xeno] is already at max health!")) return -///Tiny xenos (Larva and Facehuggers), don't need as much health so don't cost as much. - if(target_xeno.mob_size == 0) + //Tiny xenos (Larva and Facehuggers), don't need as much health so don't cost as much. + if(target_xeno.mob_size == MOB_SIZE_SMALL) amount = amount * 0.15 damage_taken_mod = 1 -//Forces an equivalent exchange of health between healers so they do not spam heal each other to full health. - if(target_xeno.mutation_type == DRONE_HEALER) + //Forces an equivalent exchange of health between healers so they do not spam heal each other to full health. + var/target_is_healer = istype(target_xeno.strain, /datum/xeno_strain/healer) + if(target_is_healer) damage_taken_mod = 1 face_atom(target_xeno) @@ -144,7 +132,7 @@ playsound(src, "alien_drool", 25) var/datum/behavior_delegate/drone_healer/healer_delegate = behavior_delegate healer_delegate.salve_applied_recently = TRUE - if(target_xeno.mutation_type != DRONE_HEALER && !isfacehugger(target_xeno)) // no cheap grinding + if(!target_is_healer && !isfacehugger(target_xeno)) // no cheap grinding healer_delegate.modify_transferred(amount * damage_taken_mod) update_icons() addtimer(CALLBACK(healer_delegate, /datum/behavior_delegate/drone_healer/proc/un_salve), 10 SECONDS, TIMER_OVERRIDE|TIMER_UNIQUE) @@ -301,4 +289,3 @@ to_chat(xeno, SPAN_HIGHDANGER("Warning: [name] is a last measure skill. Using it will kill us.")) else to_chat(xeno, SPAN_HIGHDANGER("Warning: [name] is a last measure skill. Using it will kill us, but new life will be granted for our hard work for the hive.")) - diff --git a/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm new file mode 100644 index 000000000000..7fba30b6f352 --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/facehugger/watcher.dm @@ -0,0 +1,21 @@ +/datum/xeno_strain/watcher + name = FACEHUGGER_WATCHER + description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike." + flavor_description = "No need to hide when you can see the danger." + + actions_to_remove = list( + /datum/action/xeno_action/onclick/xenohide, + ) + actions_to_add = list( + /datum/action/xeno_action/onclick/toggle_long_range/runner, + ) + + behavior_delegate_type = /datum/behavior_delegate/facehugger_watcher + +/datum/xeno_strain/watcher/apply_strain(mob/living/carbon/xenomorph/facehugger/huggy) + huggy.viewsize = 10 + huggy.layer = initial(huggy.layer) + +// This has no special effects, it's just here to skip `/datum/behavior_delegate/facehugger_base/on_life()`. +/datum/behavior_delegate/facehugger_watcher + name = "Watcher Facehugger Behavior Delegate" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm similarity index 74% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm index 3653209b78f2..cf1cafde9267 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/hivelord/resin_whisperer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/hivelord/resin_whisperer.dm @@ -1,41 +1,30 @@ -/datum/xeno_mutator/resinwhisperer - name = "STRAIN: Hivelord - Resin Whisperer" - description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, sacrifice your ability to plant resin nodes outside of weeds, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions including resin nodes up to a distance of twelve paces!" +/datum/xeno_strain/resin_whisperer + name = HIVELORD_RESIN_WHISPERER + description = "You lose your corrosive acid, your ability to secrete thick resin, your ability to reinforce resin secretions, sacrifice your ability to plant weed nodes outside of weeds, and you sacrifice a fifth of your plasma reserves to enhance your vision and gain a stronger connection to the resin. You can now remotely place resin secretions including weed nodes up to a distance of twelve paces!" flavor_description = "Let the resin guide you. It whispers, so listen closely." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_HIVELORD) - mutator_actions_to_remove = list( + icon_state_prefix = "Resin Whisperer" + + actions_to_remove = list( /datum/action/xeno_action/onclick/plant_weeds, /datum/action/xeno_action/activable/secrete_resin/hivelord, /datum/action/xeno_action/activable/corrosive_acid, /datum/action/xeno_action/activable/transfer_plasma/hivelord, /datum/action/xeno_action/active_toggle/toggle_speed, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/secrete_resin/remote, //third macro /datum/action/xeno_action/activable/transfer_plasma/hivelord, // readding it so it gets at the end of the ability list /datum/action/xeno_action/active_toggle/toggle_speed, // readding it so it gets at the end of the ability list ) - keystone = TRUE - -/datum/xeno_mutator/resinwhisperer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if(!.) - return - var/mob/living/carbon/xenomorph/hivelord/hivelord = mutator_set.xeno +/datum/xeno_strain/resin_whisperer/apply_strain(mob/living/carbon/xenomorph/hivelord/hivelord) hivelord.plasmapool_modifier = 0.8 // -20% plasma pool hivelord.extra_build_dist = 12 // 1 + 12 = 13 tile build range hivelord.can_stack_builds = TRUE - - hivelord.client.change_view(10, src) - - hivelord.mutation_type = HIVELORD_RESIN_WHISPERER - mutator_update_actions(hivelord) - mutator_set.recalculate_actions(description, flavor_description) hivelord.recalculate_plasma() + hivelord.client?.change_view(10, src) + hivelord.set_resin_build_order(GLOB.resin_build_order_hivelord_whisperer) for(var/datum/action/xeno_action/action in hivelord.actions) // Also update the choose_resin icon since it resets @@ -68,12 +57,9 @@ action_type = XENO_ACTION_CLICK /datum/action/xeno_action/activable/secrete_resin/remote/use_ability(atom/target_atom, mods) - var/mob/living/carbon/xenomorph/xeno_owner = owner - if(xeno_owner.mutation_type == HIVELORD_RESIN_WHISPERER) - var/mob/living/carbon/xenomorph/hivelord/hivelord_mob = owner - if(!hivelord_mob.on_weeds()) // There is a chance that queen can't place down buildings in ovi build view so we place the rein whisperer check here. - to_chat(owner, SPAN_XENONOTICE("We must be standing on weeds to establish a connection to the resin.")) - return + if(!can_remote_build()) + to_chat(owner, SPAN_XENONOTICE("We must be standing on weeds to establish a connection to the resin.")) + return if(!action_cooldown_check()) return @@ -115,6 +101,12 @@ playsound(target_turf, "alien_resin_build", 25) return TRUE +// By default, the xeno must be on a weed tile in order to build from a distance. +/datum/action/xeno_action/activable/secrete_resin/remote/proc/can_remote_build() + if(!locate(/obj/effect/alien/weeds) in get_turf(owner)) + return FALSE + return TRUE + /datum/action/xeno_action/verb/verb_coerce_resin() set category = "Alien" set name = "Coerce Resin" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm similarity index 67% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm index 72214d06332e..5a0bc5073ee3 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/lurker/vampire.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/lurker/vampire.dm @@ -1,40 +1,27 @@ - -/datum/xeno_mutator/Vampire - name = "STRAIN: Lurker - Vampire" +/datum/xeno_strain/vampire + name = LURKER_VAMPIRE description = "You lose all of your abilities and you forefeit a chunk of your health and damage in exchange for a large amount of armor, a little bit of movement speed, increased attack speed, and brand new abilities that make you an assassin. Rush on your opponent to disorient them and Flurry to unleash a forward cleave that can hit and slow three talls and heal you for every tall you hit. Use your special AoE Tail Jab to knock talls away, doing more damage with direct hits and even more damage and a stun if they smack into walls. Finally, execute unconscious talls with a headbite that bypasses armor and heals you for a grand amount of health." flavor_description = "Your thirst for tallhost blood surpasses even mine, child. Show no mercy! Slaughter them all!" - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_LURKER) - mutator_actions_to_remove = list( + icon_state_prefix = "Vampire" + + actions_to_remove = list( /datum/action/xeno_action/onclick/lurker_invisibility, /datum/action/xeno_action/onclick/lurker_assassinate, /datum/action/xeno_action/activable/pounce/lurker, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/pounce/rush, /datum/action/xeno_action/activable/flurry, /datum/action/xeno_action/activable/tail_jab, /datum/action/xeno_action/activable/headbite, ) - keystone = TRUE - -/datum/xeno_mutator/Vampire/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == FALSE) - return - - var/mob/living/carbon/xenomorph/lurker/lurker = mutator_set.xeno +/datum/xeno_strain/vampire/apply_strain(mob/living/carbon/xenomorph/lurker/lurker) lurker.plasmapool_modifier = 0 lurker.health_modifier -= XENO_HEALTH_MOD_MED lurker.speed_modifier += XENO_SPEED_FASTMOD_TIER_1 lurker.armor_modifier += XENO_ARMOR_MOD_LARGE - lurker.melee_damage_lower = XENO_DAMAGE_TIER_3 - lurker.melee_damage_upper = XENO_DAMAGE_TIER_3 + lurker.damage_modifier -= XENO_DAMAGE_MOD_VERY_SMALL lurker.attack_speed_modifier -= 2 - mutator_update_actions(lurker) - mutator_set.recalculate_actions(description, flavor_description) lurker.recalculate_everything() - lurker.mutation_type = LURKER_VAMPIRE diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm similarity index 68% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm index a21f549ea8cd..f9a5dbedb614 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/dancer.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/dancer.dm @@ -1,44 +1,31 @@ -/datum/xeno_mutator/praetorian_dancer +/datum/xeno_strain/dancer // My name is Cuban Pete, I'm the King of the Rumba Beat - name = "STRAIN: Praetorian - Dancer" + name = PRAETORIAN_DANCER description = "You lose all of your acid-based abilities and a small amount of your armor in exchange for increased movement speed, evasion, and unparalleled agility that gives you an ability to move even more quickly, dodge bullets, and phase through tallhosts. By slashing tallhosts, you temporarily increase your movement speed and you also you apply a tag that changes how your two new tail abilities function. By tagging hosts, you will make Impale hit twice instead of once and make Tail Trip knock hosts down instead of stunning them." flavor_description = "Demonstrate to the talls what 'there is beauty in death' truly symbolizes, then dance upon their graves!" - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) // Only bae - mutator_actions_to_remove = list( + icon_state_prefix = "Dancer" + + actions_to_remove = list( /datum/action/xeno_action/activable/xeno_spit, /datum/action/xeno_action/activable/pounce/base_prae_dash, /datum/action/xeno_action/activable/prae_acid_ball, /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/prae_impale, /datum/action/xeno_action/onclick/prae_dodge, /datum/action/xeno_action/activable/prae_tail_trip, ) - behavior_delegate_type = /datum/behavior_delegate/praetorian_dancer - keystone = TRUE - -/datum/xeno_mutator/praetorian_dancer/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno - praetorian.armor_modifier -= XENO_ARMOR_MOD_VERY_SMALL - praetorian.speed_modifier += XENO_SPEED_FASTMOD_TIER_5 - praetorian.plasma_types = list(PLASMA_CATECHOLAMINE) - praetorian.claw_type = CLAW_TYPE_SHARP - mutator_update_actions(praetorian) - mutator_set.recalculate_actions(description, flavor_description) + behavior_delegate_type = /datum/behavior_delegate/praetorian_dancer - praetorian.recalculate_everything() +/datum/xeno_strain/dancer/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) + prae.armor_modifier -= XENO_ARMOR_MOD_VERY_SMALL + prae.speed_modifier += XENO_SPEED_FASTMOD_TIER_5 + prae.plasma_types = list(PLASMA_CATECHOLAMINE) + prae.claw_type = CLAW_TYPE_SHARP - apply_behavior_holder(praetorian) - praetorian.mutation_icon_state = PRAETORIAN_DANCER - praetorian.mutation_type = PRAETORIAN_DANCER + prae.recalculate_everything() /datum/behavior_delegate/praetorian_dancer name = "Praetorian Dancer Behavior Delegate" diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm similarity index 67% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm index 4beaedf8d6a8..91ea59661462 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/oppressor.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/oppressor.dm @@ -1,12 +1,11 @@ -/datum/xeno_mutator/praetorian_oppressor +/datum/xeno_strain/oppressor // Dread it, run from it, destiny still arrives... or should I say, I do - name = "STRAIN: Praetorian - Oppressor" + name = PRAETORIAN_OPPRESSOR description = "You abandon all of your acid-based abilities, your dash, some speed, and a bit of your slash damage for some resistance against small explosives, slashes that deal extra damage to prone targets, and a powerful hook ability that pulls up to three talls towards you, slows them, and has varying effects depending on how many talls you pull. You also gain a powerful punch that reduces your other abilities' cooldowns, pierces through armor, and does double damage in addition to rooting slowed targets. You can also knock talls back and slow them with your new Tail Lash and quickly grab a tall, slow it, and pull it towards you with your unique Tail Stab." flavor_description = "Dread it. Run from it. The Hive arrives all the same, or, more accurately, you do." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) - mutator_actions_to_remove = list( + icon_state_prefix = "Oppressor" + + actions_to_remove = list( /datum/action/xeno_action/activable/tail_stab, /datum/action/xeno_action/activable/xeno_spit, /datum/action/xeno_action/activable/pounce/base_prae_dash, @@ -14,38 +13,24 @@ /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, /datum/action/xeno_action/activable/corrosive_acid, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/tail_stab/tail_seize, /datum/action/xeno_action/activable/prae_abduct, /datum/action/xeno_action/activable/oppressor_punch, /datum/action/xeno_action/activable/tail_lash, ) - behavior_delegate_type = /datum/behavior_delegate/oppressor_praetorian - keystone = TRUE - -/datum/xeno_mutator/praetorian_oppressor/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno - praetorian.damage_modifier -= XENO_DAMAGE_MOD_SMALL - praetorian.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL - praetorian.small_explosives_stun = FALSE - praetorian.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 - praetorian.plasma_types = list(PLASMA_NEUROTOXIN, PLASMA_CHITIN) - praetorian.claw_type = CLAW_TYPE_SHARP - - mutator_update_actions(praetorian) - - mutator_set.recalculate_actions(description, flavor_description) + behavior_delegate_type = /datum/behavior_delegate/oppressor_praetorian - apply_behavior_holder(praetorian) +/datum/xeno_strain/oppressor/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) + prae.damage_modifier -= XENO_DAMAGE_MOD_SMALL + prae.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL + prae.small_explosives_stun = FALSE + prae.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 + prae.plasma_types = list(PLASMA_NEUROTOXIN, PLASMA_CHITIN) + prae.claw_type = CLAW_TYPE_SHARP - praetorian.recalculate_everything() - praetorian.mutation_icon_state = PRAETORIAN_OPPRESSOR - praetorian.mutation_type = PRAETORIAN_OPPRESSOR + prae.recalculate_everything() /datum/behavior_delegate/oppressor_praetorian name = "Oppressor Praetorian Behavior Delegate" @@ -60,4 +45,3 @@ target_carbon.apply_armoured_damage(get_xeno_damage_slash(target_carbon, tearing_damage), ARMOR_MELEE, BRUTE, bound_xeno.zone_selected ? bound_xeno.zone_selected : "chest") target_carbon.visible_message(SPAN_DANGER("[bound_xeno] tears into [target_carbon]!")) playsound(bound_xeno, 'sound/weapons/alien_tail_attack.ogg', 25, TRUE) - diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm similarity index 80% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm index d5ca8c4d6aad..2a344523e974 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/vanguard.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/vanguard.dm @@ -1,43 +1,31 @@ -/datum/xeno_mutator/vanguard - name = "STRAIN: Praetorian - Vanguard" +/datum/xeno_strain/vanguard + name = PRAETORIAN_VANGUARD description = "You forfeit all of your acid-based abilities and some health for some extra speed and a rechargable shield that can block one attack. Use your Pierce from up to three paces away to stab through talls, while stabbing through several will completely recharge your shield. Use your charge to plow through enemies and use it again to unleash a powerful AoE slash that reaches up to three paces. You also have a Cleave ability, amplified by your shield, which you can toggle to either immobilize or fling a target away." flavor_description = "They are my bulwark against the tallhosts. They are my Vanguard and they shall know no fear." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) //Only praetorian. - mutator_actions_to_remove = list( + icon_state_prefix = "Vanguard" + + actions_to_remove = list( /datum/action/xeno_action/activable/xeno_spit, /datum/action/xeno_action/activable/pounce/base_prae_dash, /datum/action/xeno_action/activable/prae_acid_ball, /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, /datum/action/xeno_action/activable/corrosive_acid, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/pierce, /datum/action/xeno_action/activable/pounce/prae_dash, /datum/action/xeno_action/activable/cleave, /datum/action/xeno_action/onclick/toggle_cleave, ) - behavior_delegate_type = /datum/behavior_delegate/praetorian_vanguard - keystone = TRUE - -/datum/xeno_mutator/vanguard/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno - praetorian.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 - praetorian.health_modifier -= XENO_HEALTH_MOD_MED - praetorian.claw_type = CLAW_TYPE_SHARP - mutator_update_actions(praetorian) - mutator_set.recalculate_actions(description, flavor_description) - praetorian.recalculate_everything() + behavior_delegate_type = /datum/behavior_delegate/praetorian_vanguard - praetorian.mutation_icon_state = PRAETORIAN_VANGUARD - praetorian.mutation_type = PRAETORIAN_VANGUARD +/datum/xeno_strain/vanguard/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) + prae.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 + prae.health_modifier -= XENO_HEALTH_MOD_MED + prae.claw_type = CLAW_TYPE_SHARP - apply_behavior_holder(praetorian) + prae.recalculate_everything() /datum/behavior_delegate/praetorian_vanguard name = "Praetorian Vanguard Behavior Delegate" @@ -103,8 +91,3 @@ var/datum/action/xeno_action/activable/cleave/caction = get_xeno_action_by_type(bound_xeno, /datum/action/xeno_action/activable/cleave) if (istype(caction)) caction.buffed = TRUE - - - - - diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm similarity index 79% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm index 4328058c8a8e..313778baf038 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/praetorian/warden.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/praetorian/warden.dm @@ -1,45 +1,35 @@ -/datum/xeno_mutator/praetorian_warden +/datum/xeno_strain/warden // i mean so basically im braum - name = "STRAIN: Praetorian - Warden" + name = PRAETORIAN_WARDEN description = "You trade your acid ball, acid spray, dash, and a small bit of your slash damage and speed to become an effective medic. You gain the ability to emit strong pheromones, an ability that retrieves endangered, knocked-down or sitting allies and pulls them to your location, and you gain an internal hitpoint pool that fills with every slash against your enemies, which can be spent to aid your allies and yourself by healing them or curing their ailments." flavor_description = "Only in death does your sisters' service to the Queen end. They will be untouched by plague or disease; no sickness will blight them." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_PRAETORIAN) // Only bae - mutator_actions_to_remove = list( + icon_state_prefix = "Warden" + + actions_to_remove = list( + /datum/action/xeno_action/activable/xeno_spit, /datum/action/xeno_action/activable/pounce/base_prae_dash, /datum/action/xeno_action/activable/prae_acid_ball, /datum/action/xeno_action/activable/spray_acid/base_prae_spray_acid, + /datum/action/xeno_action/onclick/tacmap, ) - mutator_actions_to_add = list( + actions_to_add = list( + /datum/action/xeno_action/onclick/emit_pheromones, + /datum/action/xeno_action/activable/xeno_spit, /datum/action/xeno_action/activable/spray_acid/prae_warden, /datum/action/xeno_action/activable/warden_heal, /datum/action/xeno_action/activable/prae_retrieve, /datum/action/xeno_action/onclick/prae_switch_heal_type, - /datum/action/xeno_action/onclick/emit_pheromones, + /datum/action/xeno_action/onclick/tacmap, ) - behavior_delegate_type = /datum/behavior_delegate/praetorian_warden - keystone = TRUE - -/datum/xeno_mutator/praetorian_warden/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - var/mob/living/carbon/xenomorph/praetorian/praetorian = mutator_set.xeno + behavior_delegate_type = /datum/behavior_delegate/praetorian_warden +/datum/xeno_strain/warden/apply_strain(mob/living/carbon/xenomorph/praetorian/prae) // Make a 'halftank' - praetorian.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 - praetorian.damage_modifier -= XENO_DAMAGE_MOD_SMALL - - mutator_update_actions(praetorian) - mutator_set.recalculate_actions(description, flavor_description) + prae.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 + prae.damage_modifier -= XENO_DAMAGE_MOD_SMALL - praetorian.recalculate_everything() - - apply_behavior_holder(praetorian) - praetorian.mutation_icon_state = PRAETORIAN_WARDEN - praetorian.mutation_type = PRAETORIAN_WARDEN + prae.recalculate_everything() /datum/behavior_delegate/praetorian_warden name = "Praetorian Warden Behavior Delegate" @@ -49,12 +39,15 @@ var/internal_hitpoints_per_attack = 50 var/internal_hp_per_life = 5 + // State var/internal_hitpoints = 0 + var/transferred_healing = 0 /datum/behavior_delegate/praetorian_warden/append_to_stat() . = list() . += "Energy Reserves: [internal_hitpoints]/[internal_hitpoints_max]" + . += "Healing Done: [transferred_healing]" /datum/behavior_delegate/praetorian_warden/on_life() internal_hitpoints = min(internal_hitpoints_max, internal_hitpoints + internal_hp_per_life) diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm similarity index 90% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm index 7881c9aa75f1..c12324aa5b2a 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/berserker.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/berserker.dm @@ -1,39 +1,28 @@ -/datum/xeno_mutator/berserker - name = "STRAIN: Ravager - Berserker" +/datum/xeno_strain/berserker + name = RAVAGER_BERSERKER description = "You lose your empower, charge, and scissor cut, decrease your health, and sacrifice a bit of your influence under frenzy pheromones to increase your movement speed, slightly increase your armor, and gain a new set of abilities that make you a terrifying melee monster. By slashing, you heal yourself and gain a stack of rage that increases your armor, movement speed, attack speed, and your heals per slash, to a maximum of six rage. Use your new Appehend ability to increase your movement speed and apply a slow on the next target you slash and use your Clothesline ability to fling your target to heal yourself, even more-so if you have a rage stack that will be used up. Finally, use your Eviscerate to unleash a devastating windmill attack that heals you for every host you hit after an immobilizing wind-up." flavor_description = "They shall be my finest warriors. They will rend and tear, crush and butcher, and maim and rage until every tallhost falls." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_RAVAGER) - mutator_actions_to_remove = list( + icon_state_prefix = "Berserker" + + actions_to_remove = list( /datum/action/xeno_action/onclick/empower, /datum/action/xeno_action/activable/pounce/charge, /datum/action/xeno_action/activable/scissor_cut, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/onclick/apprehend, /datum/action/xeno_action/activable/clothesline, /datum/action/xeno_action/activable/eviscerate, ) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/ravager_berserker -/datum/xeno_mutator/berserker/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/ravager_berserker - var/mob/living/carbon/xenomorph/ravager/ravager = mutator_set.xeno - ravager.mutation_type = RAVAGER_BERSERKER +/datum/xeno_strain/berserker/apply_strain(mob/living/carbon/xenomorph/ravager/ravager) ravager.plasma_max = 0 ravager.health_modifier -= XENO_HEALTH_MOD_MED ravager.armor_modifier += XENO_ARMOR_MOD_VERY_SMALL ravager.speed_modifier += XENO_SPEED_FASTMOD_TIER_3 ravager.received_phero_caps["frenzy"] = 2.9 // Moderate - mutator_update_actions(ravager) - mutator_set.recalculate_actions(description, flavor_description) - - apply_behavior_holder(ravager) ravager.recalculate_everything() diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm similarity index 87% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm index 913883549fba..e1d6dc583416 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/ravager/hedgehog.dm @@ -1,41 +1,28 @@ -/datum/xeno_mutator/hedgehog - name = "STRAIN: Ravager - Hedgehog" +/datum/xeno_strain/hedgehog + name = RAVAGER_HEDGEHOG description = "You lose your empower, charge, scissor cut and some slash damage, for a bit more explosive resistance, immunity to small explosions, and you gain several new abilities that allow you to become a spiky tank. You build up shards internally over time and also when taking damage that increase your armor's resilience. You can use these shards to power three new abilities: Spike Shield, which gives you a temporary shield that spits bone shards around you when damaged, Fire Spikes, which launches spikes at your target that slows them and does extra damage if they move, and finally, Spike Shed, which launches spikes all around yourself and gives you a temporary speed boost as an escape plan at the cost of all your stored shards and being unable to gain shards for thirty seconds." flavor_description = "They will be of iron will and steely muscle. In great armor shall they be clad, and with the mightiest spikes will they be armed." - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_RAVAGER) // Only Ravager. - mutator_actions_to_remove = list( + icon_state_prefix = "Hedgehog" + + actions_to_remove = list( /datum/action/xeno_action/onclick/empower, /datum/action/xeno_action/activable/pounce/charge, /datum/action/xeno_action/activable/scissor_cut, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/onclick/spike_shield, /datum/action/xeno_action/activable/rav_spikes, /datum/action/xeno_action/onclick/spike_shed, ) - behavior_delegate_type = /datum/behavior_delegate/ravager_hedgehog - keystone = TRUE - -/datum/xeno_mutator/hedgehog/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return - var/mob/living/carbon/xenomorph/ravager/ravager = mutator_set.xeno + behavior_delegate_type = /datum/behavior_delegate/ravager_hedgehog - ravager.mutation_type = RAVAGER_HEDGEHOG +/datum/xeno_strain/hedgehog/apply_strain(mob/living/carbon/xenomorph/ravager/ravager) ravager.plasma_max = 0 ravager.small_explosives_stun = FALSE ravager.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL ravager.damage_modifier -= XENO_DAMAGE_MOD_SMALL - apply_behavior_holder(ravager) - - mutator_update_actions(ravager) - mutator_set.recalculate_actions(description, flavor_description) - ravager.recalculate_everything() /datum/behavior_delegate/ravager_hedgehog diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm b/code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm similarity index 90% rename from code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm rename to code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm index 490e5ca36cba..7b9bafadeb7b 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/runner/acid.dm +++ b/code/modules/mob/living/carbon/xenomorph/strains/castes/runner/acid.dm @@ -1,37 +1,27 @@ -/datum/xeno_mutator/acider - name = "STRAIN: Runner - Acider" +/datum/xeno_strain/acider + name = RUNNER_ACIDER description = "At the cost of a little bit of your speed and all of your current abilities, you gain a considerable amount of health, some armor, and a new organ that fills with volatile acid over time. Your Tail Stab and slashes apply acid to living lifeforms that slowly burns them, and slashes against targets with acid stacks fill your acid glands. You also gain Corrosive Acid equivalent to that of a boiler that you can deploy more quickly than any other caste, at the cost of a chunk of your acid reserves with each use. Finally, after a twenty second windup, you can force your body to explode, covering everything near you with acid. The more acid you have stored, the more devastating the explosion will be, but during those twenty seconds before detonation you are slowed and give off several warning signals which give talls an opportunity to end you before you can detonate. If you successfully explode, you will reincarnate as a larva again!" flavor_description = "Burn their walls, maim their faces! Your life, for The Hive!" - cost = MUTATOR_COST_EXPENSIVE - individual_only = TRUE - caste_whitelist = list(XENO_CASTE_RUNNER) - keystone = TRUE - behavior_delegate_type = /datum/behavior_delegate/runner_acider - mutator_actions_to_remove = list( + icon_state_prefix = "Acider" + + actions_to_remove = list( /datum/action/xeno_action/activable/pounce/runner, /datum/action/xeno_action/activable/runner_skillshot, /datum/action/xeno_action/onclick/toggle_long_range/runner, ) - mutator_actions_to_add = list( + actions_to_add = list( /datum/action/xeno_action/activable/acider_acid, /datum/action/xeno_action/activable/acider_for_the_hive, ) -/datum/xeno_mutator/acider/apply_mutator(datum/mutator_set/individual_mutators/mutator_set) - . = ..() - if (. == 0) - return + behavior_delegate_type = /datum/behavior_delegate/runner_acider - var/mob/living/carbon/xenomorph/runner/runner = mutator_set.xeno - runner.mutation_icon_state = RUNNER_ACIDER - runner.mutation_type = RUNNER_ACIDER +/datum/xeno_strain/acider/apply_strain(mob/living/carbon/xenomorph/runner/runner) runner.speed_modifier += XENO_SPEED_SLOWMOD_TIER_5 runner.armor_modifier += XENO_ARMOR_MOD_MED runner.health_modifier += XENO_HEALTH_MOD_ACIDER - apply_behavior_holder(runner) - mutator_update_actions(runner) + runner.recalculate_everything() - mutator_set.recalculate_actions(description, flavor_description) /datum/behavior_delegate/runner_acider var/acid_amount = 0 diff --git a/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm b/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm new file mode 100644 index 000000000000..18f1f892ddfa --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/strains/xeno_strain.dm @@ -0,0 +1,131 @@ +/datum/xeno_strain + /// The name of the strain. Should be short but informative. + var/name + /// Description to be displayed on purchase. + var/description + /// (OPTIONAL) Flavor text to be shown on purchase. Semi-OOC + var/flavor_description + /// (OPTIONAL) A custom icon state prefix for xenos who have taken the strain. + var/icon_state_prefix + + /// A list of action typepaths which should be removed when a xeno takes the strain. + var/list/actions_to_remove + /// A list of action typepaths which should be added when a xeno takes the strain. + var/list/actions_to_add + + /// Typepath of the [/datum/behavior_delegate] to add. + var/behavior_delegate_type + +/** + * Add this strain to `xeno`, replacing their actions and behavior holder. + * + * Returns a bool indicating if the strain was successfully applied. + * **Override [/datum/xeno_strain/proc/apply_strain], not this! (Unless you know what you're doing.)** + */ +/datum/xeno_strain/proc/_add_to_xeno(mob/living/carbon/xenomorph/xeno) + SHOULD_NOT_OVERRIDE(TRUE) + + xeno.strain = src + + // Update the xeno's actions. + for(var/action_path in actions_to_remove) + remove_action(xeno, action_path) + for(var/action_path in actions_to_add) + give_action(xeno, action_path) + + // Update the xeno's behavior delegate. + if(behavior_delegate_type) + if(xeno.behavior_delegate) + qdel(xeno.behavior_delegate) + xeno.behavior_delegate = new behavior_delegate_type() + xeno.behavior_delegate.bound_xeno = xeno + xeno.behavior_delegate.add_to_xeno() + + apply_strain(xeno) + + xeno.update_icons() + xeno.hive.hive_ui.update_xeno_info() + + // Give them all of the info about the strain. + to_chat(xeno, SPAN_XENOANNOUNCE(description)) + if(flavor_description) + to_chat(xeno, SPAN_XENOLEADER(flavor_description)) + return TRUE + +/** + * Adds any special modifiers/changes from this strain to `xeno`. + * + * Called when the strain is first added to the player. + */ +/datum/xeno_strain/proc/apply_strain(mob/living/carbon/xenomorph/xeno) + // Override with custom behaviour. + return + + +/mob/living/carbon/xenomorph/verb/purchase_strain() + set name = "Purchase Strain" + set desc = "Purchase a strain for yourself" + set category = "Alien" + + // Firstly, make sure the xeno is actually able to take a strain. + if(!can_take_strain()) + return + + // Make an assoc list of {name: typepath} from the strains available to the xeno's caste. + var/list/strain_list = list() + for(var/datum/xeno_strain/strain_type as anything in caste.available_strains) + strain_list[initial(strain_type.name)] = strain_type + + // Ask the user which strain they want. + var/strain_choice = tgui_input_list(usr, "Which strain would you like to take?", "Choose Strain", strain_list, theme = "hive_status") + if(!strain_choice) + return + var/datum/xeno_strain/chosen_strain = strain_list[strain_choice] + + // Check again after the user picks one, in case anything changed. + if(!can_take_strain()) + return + // Show the user the strain's description, and double check that they want it. + if(alert(usr, "[initial(chosen_strain.description)]\n\nConfirm mutation?", "Choose Strain", "Yes", "No") != "Yes") + return + // One more time after they confirm. + if(!can_take_strain()) + return + + // Create the strain datum and apply it to the xeno. + var/datum/xeno_strain/strain_instance = new chosen_strain() + if(strain_instance._add_to_xeno(src)) + xeno_jitter(1.5 SECONDS) + // If it applied successfully, add it to the logs. + log_strain("[name] purchased strain '[strain_instance.type]'") + +/// Is this xeno currently able to take a strain? +/mob/living/carbon/xenomorph/proc/can_take_strain() + if(!length(caste.available_strains) || !check_state(TRUE)) + return FALSE + + if(strain) + to_chat(src, SPAN_WARNING("We have already chosen a strain.")) + return FALSE + + if(is_ventcrawling) + to_chat(src, SPAN_WARNING("This place is too constraining to take a strain.")) + return FALSE + + if(!isturf(loc)) + to_chat(src, SPAN_WARNING("We can't take a strain here.")) + return FALSE + + if(handcuffed || legcuffed) + to_chat(src, SPAN_WARNING("The restraints are too restricting to allow us to take a strain.")) + return FALSE + + if(health < maxHealth) + to_chat(src, SPAN_WARNING("We must be at full health to take a strain.")) + return FALSE + + if(agility || fortify || crest_defense || stealth) + to_chat(src, SPAN_WARNING("We cannot take a strain while in this stance.")) + return FALSE + + return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/update_icons.dm b/code/modules/mob/living/carbon/xenomorph/update_icons.dm index 55995ec0b264..571f261ab981 100644 --- a/code/modules/mob/living/carbon/xenomorph/update_icons.dm +++ b/code/modules/mob/living/carbon/xenomorph/update_icons.dm @@ -41,7 +41,7 @@ Q.queen_standing_icon = icon_xeno Q.queen_ovipositor_icon = 'icons/mob/xenos/ovipositor.dmi' - var/mutation_caste_state = "[mutation_type] [caste.caste_type]" + var/mutation_caste_state = "[get_strain_icon()] [caste.caste_type]" if(!walking_state_cache[mutation_caste_state]) var/cache_walking_state = FALSE for(var/state in icon_states(icon)) @@ -64,7 +64,7 @@ if(behavior_delegate?.on_update_icons()) return - var/mutation_caste_state = "[mutation_icon_state || mutation_type] [caste.caste_type]" + var/mutation_caste_state = "[get_strain_icon()] [caste.caste_type]" if(stat == DEAD) icon_state = "[mutation_caste_state] Dead" if(!(icon_state in icon_states(icon_xeno))) diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm index 7324a3af6892..2e4b968d5a59 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_helpers.dm @@ -34,6 +34,23 @@ return 100 return round(armor_integrity * 100 / armor_integrity_max) +/** + * Returns the name of the xeno's strain, if it has one. + * + * If that can't be found, returns "Normal". + */ +/mob/living/carbon/xenomorph/proc/get_strain_name() + return strain?.name || "Normal" + +/** + * Returns the custom icon state from the xeno's strain, if it has one. + * + * If that can't be found, returns "Normal" + */ +/mob/living/carbon/xenomorph/proc/get_strain_icon() + return strain?.icon_state_prefix || "Normal" + // TODO: Go through xeno/xenoid sprites and remove "Normal", so that this isn't needed. + //These don't do much currently. Or anything? Only around for legacy code. /mob/living/carbon/xenomorph/is_mob_restrained() return 0 @@ -58,4 +75,4 @@ return caste.fire_intensity_resistance /mob/living/carbon/xenomorph/alter_ghost(mob/dead/observer/ghost) - ghost.icon_state = "[mutation_type] [caste.caste_type] Running" + ghost.icon_state = "[get_strain_icon()] [caste.caste_type] Running" diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm b/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm index dd722f62df63..271b06973a6b 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_verbs.dm @@ -1,18 +1,18 @@ //// Holds Xeno verbs that don't belong anywhere else. /mob/living/carbon/xenomorph/verb/hive_status() set name = "Hive Status" - set desc = "Check the status of your current hive." + set desc = "Check the status of our current hive." set category = "Alien" if(!hive) return if((!hive.living_xeno_queen || SSmapping.configs[GROUND_MAP].map_name == MAP_WHISKEY_OUTPOST) && !hive.allow_no_queen_actions) //No Hive status on WO - to_chat(src, SPAN_WARNING("There is no Queen. You are alone.")) + to_chat(src, SPAN_WARNING("There is no Queen. We are alone.")) return if(interference) - to_chat(src, SPAN_WARNING("A headhunter temporarily cut off your psychic connection!")) + to_chat(src, SPAN_WARNING("A headhunter temporarily cut off our psychic connection!")) return hive.hive_ui.open_hive_status(src) diff --git a/code/modules/mob/living/living_health_procs.dm b/code/modules/mob/living/living_health_procs.dm index f81baca85975..dd11eb8c7faf 100644 --- a/code/modules/mob/living/living_health_procs.dm +++ b/code/modules/mob/living/living_health_procs.dm @@ -496,7 +496,7 @@ src.updatehealth() // damage MANY limbs, in random order -/mob/living/proc/take_overall_damage(brute, burn, used_weapon = null) +/mob/living/proc/take_overall_damage(brute, burn, used_weapon = null, limb_damage_chance = 80) if(status_flags & GODMODE) return 0 //godmode apply_damage(brute, BRUTE) apply_damage(burn, BURN) diff --git a/code/modules/mob/living/living_healthscan.dm b/code/modules/mob/living/living_healthscan.dm index ebdf852afa68..c06dfc9a7166 100644 --- a/code/modules/mob/living/living_healthscan.dm +++ b/code/modules/mob/living/living_healthscan.dm @@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) bleeding_check = TRUE break - if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE)) + if((!limb.brute_dam && !limb.burn_dam && !(limb.status & LIMB_DESTROYED)) && !bleeding_check && !internal_bleeding_check && !(implant && detail_level >= DETAIL_LEVEL_BODYSCAN ) && !(limb.status & LIMB_UNCALIBRATED_PROSTHETIC) && !(limb.status & LIMB_BROKEN) && !(limb.status & LIMB_SPLINTED) && !(limb.status & LIMB_SPLINTED_INDESTRUCTIBLE) && !(limb.get_incision_depth())) continue var/list/core_body_parts = list("head", "chest", "groin") var/list/current_list = list( @@ -190,7 +190,6 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "missing" = (limb.status & LIMB_DESTROYED), "limb_status" = null, "bleeding" = bleeding_check, - "open_incision" = limb.get_incision_depth(), "implant" = implant, "internal_bleeding" = internal_bleeding_check ) @@ -248,6 +247,24 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) if(limb_type) current_list["limb_type"] = limb_type + //checking for open incisions, but since eyes and mouths incisions are "head incisions" but not "head surgeries" gotta do some snowflake + if(limb.name == "head") + if(human_target_mob.active_surgeries["head"]) + current_list["open_incision"] = TRUE + + var/zone + if(human_target_mob.active_surgeries["eyes"]) + zone = "eyes" + if(human_target_mob.active_surgeries["mouth"]) + if(zone) + zone = "eyes and mouth" + else + zone = "mouth" + current_list["open_zone_incision"] = capitalize(zone) + + else + current_list["open_incision"] = limb.get_incision_depth() + limb_data_lists["[limb.name]"] = current_list data["limb_data_lists"] = limb_data_lists diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index b47860806e5c..02c1baa48c28 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -145,7 +145,7 @@ H = GLOB.huds[MOB_HUD_SECURITY_ADVANCED] HUD_nbr = 2 if("Squad HUD") - H = GLOB.huds[MOB_HUD_FACTION_USCM] + H = GLOB.huds[MOB_HUD_FACTION_MARINE] HUD_nbr = 3 else return diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 775e69dc0b92..38157a067367 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -18,6 +18,8 @@ update_Login_details() + SEND_SIGNAL(src, COMSIG_MOB_LOGIN) + client.images = null client.screen = null //remove hud items just in case if(!hud_used) @@ -58,6 +60,6 @@ client.init_verbs() - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_LOGIN, src) - SEND_SIGNAL(client, COMSIG_CLIENT_MOB_LOGIN, src) - SEND_SIGNAL(src, COMSIG_MOB_LOGIN) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_LOGGED_IN, src) + SEND_SIGNAL(client, COMSIG_CLIENT_MOB_LOGGED_IN, src) + SEND_SIGNAL(src, COMSIG_MOB_LOGGED_IN) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index f8df788aa5fc..44286b5fabe0 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -16,9 +16,6 @@ var/atom/movable/screen/hands = null //robot - var/adminhelp_marked = 0 // Prevents marking an Adminhelp more than once. Making this a client define will cause runtimes and break some Adminhelps - var/adminhelp_marked_admin = "" // Ckey of last marking admin - /// a ckey that persists client logout / ghosting, replaced when a client inhabits the mob var/persistent_ckey @@ -28,7 +25,8 @@ I'll make some notes on where certain variable defines should probably go. Changing this around would probably require a good look-over the pre-existing code. */ - var/list/observers //The list of people observing this mob. + /// The list of people observing this mob. + var/list/mob/dead/observer/observers var/zone_selected = "chest" var/use_me = 1 //Allows all mobs to use the me verb by default, will have to manually specify they cannot @@ -429,4 +427,3 @@ return src.regenerate_icons() - diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index ce9e16e3747e..4d64307ad631 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -482,7 +482,9 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( // Medical if(SKILL_MEDICAL) if(skillcheck(src, SKILL_MEDICAL, SKILL_MEDICAL_MASTER)) - return DURATION_MULTIPLIER_TIER_3 + return DURATION_MULTIPLIER_TIER_2 + if(skillcheck(src, SKILL_MEDICAL, SKILL_MEDICAL_DOCTOR)) + return DURATION_MULTIPLIER_TIER_1 // Surgeon if(SKILL_SURGERY) if(skillcheck(src, SKILL_SURGERY, SKILL_SURGERY_EXPERT)) diff --git a/code/modules/mob/mob_verbs.dm b/code/modules/mob/mob_verbs.dm index 1ba8985d56bd..f12d00cc0988 100644 --- a/code/modules/mob/mob_verbs.dm +++ b/code/modules/mob/mob_verbs.dm @@ -50,34 +50,33 @@ to_chat(usr, SPAN_DANGER("This mob type cannot throw items.")) return -/mob/proc/point_to(atom/A in view()) +/mob/proc/point_to(atom/target in view()) //set name = "Point To" //set category = "Object" - if(!isturf(src.loc) || !(A in view(src)))//target is no longer visible to us - return 0 + if(!isturf(src.loc) || !(target in view(src)))//target is no longer visible to us + return FALSE - if(!A.mouse_opacity)//can't click it? can't point at it. - return 0 + if(!target.mouse_opacity)//can't click it? can't point at it. + return FALSE if(is_mob_incapacitated() || (status_flags & FAKEDEATH)) //incapacitated, can't point - return 0 + return FALSE - var/tile = get_turf(A) - if (!tile) - return 0 + var/tile = get_turf(target) + if(!tile) + return FALSE if(recently_pointed_to > world.time) - return 0 - - next_move = world.time + 2 - - point_to_atom(A, tile) - return 1 - + return FALSE + if(SEND_SIGNAL(src, COMSIG_MOB_TRY_POINT, target) & COMPONENT_OVERRIDE_POINT) + return FALSE + next_move = world.time + 2 + point_to_atom(target, tile) + return TRUE /mob/verb/memory() set name = "Notes" diff --git a/code/modules/nightmare/nmnodes/mapload.dm b/code/modules/nightmare/nmnodes/mapload.dm index 4b9ae2a3014b..0687399a6612 100644 --- a/code/modules/nightmare/nmnodes/mapload.dm +++ b/code/modules/nightmare/nmnodes/mapload.dm @@ -94,7 +94,7 @@ . = ..() if(!.) return var/dir_path = context.get_file_path(filepath, "map") - var/regex/matcher = new(@"^([0-9]+)([\.\+])([^_]+)(_.*)?\.dmm$", "i") + var/regex/matcher = new(@"^([0-9]+)([\.\+])(([^_]+)(_.*))?\.dmm$", "i") var/list/dircontents = flist(dir_path) for(var/filename in dircontents) if(!matcher.Find(filename)) diff --git a/code/modules/nightmare/nmtasks/mapload.dm b/code/modules/nightmare/nmtasks/mapload.dm index 1ace7cd2fbec..a49bbbabdde5 100644 --- a/code/modules/nightmare/nmtasks/mapload.dm +++ b/code/modules/nightmare/nmtasks/mapload.dm @@ -34,16 +34,13 @@ /datum/nmtask/mapload/proc/step_parse() . = TRUE if(!fexists(filepath)) - log_debug("Nightmare Mapload: File does not exist: [filepath]") - return + CRASH("Nightmare Mapload: File does not exist: [filepath]") if(!parsed) parsed = new(file(filepath)) if(!parsed?.bounds) - log_debug("Nightmare Mapload: File loading failed: [filepath]") - return + CRASH("Nightmare Mapload: File loading failed: [filepath]") if(isnull(parsed.bounds[1])) - log_debug("Nightmare Mapload: Map parsing failed: [filepath]") - return + CRASH("Nightmare Mapload: Map parsing failed: [filepath]") return FALSE /datum/nmtask/mapload/proc/step_loadmap(list/statsmap) @@ -51,37 +48,40 @@ UNTIL(!Master.map_loading) target_turf = GLOB.nightmare_landmarks[landmark] if(!target_turf?.z) - log_debug("Nightmare Mapload: Could not find landmark: [landmark]") - return - var/result = parsed.load(target_turf.x, target_turf.y, target_turf.z, cropMap = TRUE, no_changeturf = FALSE, placeOnTop = FALSE, delete = replace) + if(landmark in GLOB.nightmare_landmark_tags_removed) + log_debug("Nightmare Mapload: Could not find landmark: [landmark] because it was deleted") + return + else + CRASH("Nightmare Mapload: Could not find landmark: [landmark]") + var/result = parsed.load(target_turf.x, target_turf.y, target_turf.z, crop_map = TRUE, no_changeturf = FALSE, place_on_top = FALSE, delete = replace) if(!result || !parsed.bounds) - log_debug("Nightmare Mapload: Map insertion failed unexpectedly for file: [filepath]") - return + CRASH("Nightmare Mapload: Map insertion failed unexpectedly for file: [filepath]") return FALSE /datum/nmtask/mapload/proc/step_init(list/statsmap) if(initialize_boundary_contents()) log_debug("Nightmare Mapload: Loaded '[filepath]' at '[landmark]' ([target_turf.x], [target_turf.y], [target_turf.z])") return FALSE - log_debug("Nightmare Mapload: Loaded map file but could not initialize: '[filepath]' at ([target_turf.x], [target_turf.y], [target_turf.z])") + stack_trace("Nightmare Mapload: Loaded map file but could not initialize: '[filepath]' at ([target_turf.x], [target_turf.y], [target_turf.z])") return TRUE -/// Initialize atoms/areas in bounds +/// Initialize atoms/areas in bounds - basically a Nightmare version of [/datum/map_template/initTemplateBounds] /datum/nmtask/mapload/proc/initialize_boundary_contents() var/list/bounds = parsed.bounds if(length(bounds) < 6) return - var/list/TT = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), + var/list/turf_block = block( locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ])) var/list/area/arealist = list() var/list/atom/atomlist = list() - for(var/turf/T as anything in TT) - atomlist |= T - if(T.loc) arealist |= T.loc - for(var/A in T) - atomlist |= A - SSmapping.reg_in_areas_in_z(arealist) - SSatoms.InitializeAtoms(atomlist) - // We still defer lighting, area sorting, etc + for(var/turf/turf as anything in turf_block) + atomlist += turf + if(turf.loc) + arealist |= turf.loc + for(var/atom/movable/movable as anything in turf) + atomlist += movable // Much like initTemplateBounds() this only recurses content once. Never been an issue so far, but keep it in mind. + SSmapping.reg_in_areas_in_z(arealist) // Legacy. Not sure this is needed as it should already be carried out through area Initialize. + SSatoms.InitializeAtoms(atomlist + arealist) + // We still defer lighting, area sorting, etc, to be done all in one go! SEND_SIGNAL(src, COMSIG_NIGHTMARE_TAINTED_BOUNDS, bounds) return TRUE diff --git a/code/modules/organs/limbs.dm b/code/modules/organs/limbs.dm index 09ce36dbbfcb..4c3954575245 100644 --- a/code/modules/organs/limbs.dm +++ b/code/modules/organs/limbs.dm @@ -580,8 +580,9 @@ This function completely restores a damaged organ to perfect condition. if(brute_dam || burn_dam) return TRUE if(knitting_time > 0) - return 1 - return 0 + return TRUE + update_wounds() + return FALSE /obj/limb/process() diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index f42030cce69d..69ce9ec4ce13 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -90,7 +90,7 @@ icon_state = "album" item_state = "briefcase" can_hold = list(/obj/item/photo,) - storage_slots = 20 + storage_slots = 28 /obj/item/storage/photo_album/MouseDrop(obj/over_object as obj) @@ -122,9 +122,14 @@ /obj/item/device/camera name = "camera" icon = 'icons/obj/items/items.dmi' - desc = "A polaroid camera. 10 photos left." + desc = "A polaroid camera." icon_state = "camera" - item_state = "electropack" + item_state = "camera" + item_icons = list( + WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_0.dmi', + WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_0.dmi' + ) + flags_item = TWOHANDED w_class = SIZE_SMALL flags_atom = FPRINT|CONDUCT flags_equip_slot = SLOT_WAIST @@ -132,10 +137,22 @@ black_market_value = 20 var/pictures_max = 10 var/pictures_left = 10 - var/on = 1 - var/icon_on = "camera" - var/icon_off = "camera_off" - var/size = 3 + var/size = 7 + +/obj/item/device/camera/get_examine_text(mob/user) + . = ..() + . += "It has [pictures_left] photos left." + +/obj/item/device/camera/attack_self(mob/user) //wielding capabilities + . = ..() + if(flags_item & WIELDED) + unwield(user) + else + wield(user) + +/obj/item/device/camera/dropped(mob/user) + ..() + unwield(user) /obj/item/device/camera/verb/change_size() set name = "Set Photo Focus" @@ -149,24 +166,15 @@ /obj/item/device/camera/attack(mob/living/carbon/human/M, mob/user) return -/obj/item/device/camera/attack_self(mob/user) - ..() - on = !on - if(on) - src.icon_state = icon_on - else - src.icon_state = icon_off - to_chat(user, "You switch the camera [on ? "on" : "off"].") - /obj/item/device/camera/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/device/camera_film)) - if(pictures_left) - to_chat(user, SPAN_NOTICE("[src] still has some film in it!")) + if(pictures_left > (pictures_max - 10)) + to_chat(user, SPAN_NOTICE("[src] cannot fit more film in it!")) return to_chat(user, SPAN_NOTICE("You insert [I] into [src].")) if(user.temp_drop_inv_item(I)) qdel(I) - pictures_left = pictures_max + pictures_left += 10 return ..() @@ -270,24 +278,19 @@ 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)) + if(pictures_left <= 0) + to_chat(user, SPAN_WARNING("There isn't enough film in the [src] to take a photo.")) return - if(user.contains(target) || istype(target, /atom/movable/screen)) + if(ismob(target.loc) || isstorage(target.loc) || user.contains(target) || istype(target, /atom/movable/screen)) + return + if(!(flags_item & WIELDED)) + to_chat(user, SPAN_WARNING("You need to wield the [src] with both hands to take a photo!")) 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) - icon_state = icon_on - on = 1 + addtimer(CALLBACK(src, PROC_REF(captureimage), target, user, flag), 1 SECONDS) /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) var/mob_descriptions = "" @@ -343,10 +346,17 @@ name = "Old Camera" desc = "An old, slightly beat-up digital camera, with a cheap photo printer taped on. It's a nice shade of blue." icon_state = "oldcamera" - icon_on = "oldcamera" - icon_off = "oldcamera_off" pictures_left = 30 +/obj/item/device/camera/broadcasting + name = "Broadcasting Camera" + desc = "Actively document everything you see, from the mundanity of shipside to the brutal battlefields below. Has a built-in printer for action shots." + icon_state = "broadcastingcamera" + item_state = "broadcastingcamera" + pictures_left = 20 + pictures_max = 20 + w_class = SIZE_HUGE + flags_equip_slot = NO_FLAGS //cannot be equiped /obj/item/photo/proc/construct(datum/picture/P) icon = P.fields["icon"] diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 7cf72ce1cb81..c9863d3ee9cd 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -42,8 +42,6 @@ /obj/structure/machinery/power/smes/Initialize() . = ..() - if(!powernet) - connect_to_network() dir_loop: for(var/d in GLOB.cardinals) @@ -56,14 +54,25 @@ stat |= BROKEN return terminal.master = src - if(!terminal.powernet) - terminal.connect_to_network() updateicon() start_processing() if(!should_be_mapped) warning("Non-buildable or Non-magical SMES at [src.x]X [src.y]Y [src.z]Z") + return INITIALIZE_HINT_ROUNDSTART + +/obj/structure/machinery/power/smes/LateInitialize() + . = ..() + + if(QDELETED(src)) + return + + if(!powernet && !connect_to_network()) + CRASH("[src] has failed to connect to a power network. Check that it has been mapped correctly.") + if(terminal && !terminal.powernet) + terminal.connect_to_network() + /obj/structure/machinery/power/smes/proc/updateicon() overlays.Cut() if(stat & BROKEN) return diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 497b95061d6c..3f7533f26620 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1344,7 +1344,7 @@ and you're good to go. user.next_move = world.time //No click delay on PBs. //Point blanking doesn't actually fire the projectile. Instead, it simulates firing the bullet proper. - if(!able_to_fire(user)) //If it's a valid PB aside from that you can't fire the gun, do nothing. + if(flags_gun_features & GUN_BURST_FIRING || !able_to_fire(user)) //If it's a valid PB aside from that you can't fire the gun, do nothing. return TRUE //The following relating to bursts was borrowed from Fire code. diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm index 1807213f6226..f875af99bb43 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -1271,6 +1271,19 @@ Defined in conflicts.dm of the #defines folder. QDEL_NULL(scope_element) return ..() +/obj/item/attachable/vulture_scope/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection) + . = ..() + var/new_attach_icon + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon + if("desert") + attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon + if("classic") + attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon + if("urban") + attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon + /obj/item/attachable/vulture_scope/tgui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -1814,6 +1827,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/vulture name = "\improper M707 heavy stock" icon_state = "vulture_stock" + attach_icon = "vulture_stock" hud_offset_mod = 3 /obj/item/attachable/stock/vulture/Initialize(mapload, ...) @@ -1821,6 +1835,19 @@ Defined in conflicts.dm of the #defines folder. select_gamemode_skin(type) // Doesn't give any stat additions due to the gun already having really good ones, and this is unremovable from the gun itself +/obj/item/attachable/stock/vulture/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection) + . = ..() + var/new_attach_icon + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon + if("desert") + attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon + if("classic") + attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon + if("urban") + attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon + /obj/item/attachable/stock/tactical name = "\improper MK221 tactical stock" desc = "A metal stock made for the MK221 tactical shotgun." @@ -3199,7 +3226,7 @@ Defined in conflicts.dm of the #defines folder. var/obj/projectile/P = new(src, create_cause_data(initial(name), user, src)) var/datum/ammo/flamethrower/ammo_datum = new projectile_type - ammo_datum.flamer_reagent_type = flamer_reagent.type + ammo_datum.flamer_reagent_id = flamer_reagent.id P.generate_bullet(ammo_datum) P.icon_state = "naptha_ball" P.color = flamer_reagent.color @@ -3301,6 +3328,10 @@ Defined in conflicts.dm of the #defines folder. var/bipod_deployed = FALSE /// If this should anchor the user while in use var/heavy_bipod = FALSE + // Are switching to full auto when deploying the bipod + var/full_auto_switch = FALSE + // Store our old firemode so we can switch to it when undeploying the bipod + var/old_firemode = null /obj/item/attachable/bipod/New() ..() @@ -3311,16 +3342,33 @@ Defined in conflicts.dm of the #defines folder. scatter_mod = SCATTER_AMOUNT_TIER_9 recoil_mod = RECOIL_AMOUNT_TIER_5 -/obj/item/attachable/bipod/Attach(obj/item/weapon/gun/G) +/obj/item/attachable/bipod/Attach(obj/item/weapon/gun/gun, mob/user) ..() - RegisterSignal(G, COMSIG_ITEM_DROPPED, PROC_REF(handle_drop)) + if((GUN_FIREMODE_AUTOMATIC in gun.gun_firemode_list) || (gun.flags_gun_features & GUN_SUPPORT_PLATFORM)) + var/given_action = FALSE + if(user && (gun == user.l_hand || gun == user.r_hand)) + give_action(user, /datum/action/item_action/bipod/toggle_full_auto_switch, src, gun) + given_action = TRUE + if(!given_action) + new /datum/action/item_action/bipod/toggle_full_auto_switch(src, gun) + + RegisterSignal(gun, COMSIG_ITEM_DROPPED, PROC_REF(handle_drop)) /obj/item/attachable/bipod/Detach(mob/user, obj/item/weapon/gun/detaching_gub) UnregisterSignal(detaching_gub, COMSIG_ITEM_DROPPED) + //clear out anything related to full auto switching + full_auto_switch = FALSE + old_firemode = null + for(var/item_action in detaching_gub.actions) + var/datum/action/item_action/bipod/toggle_full_auto_switch/target_action = item_action + if(target_action.target == src) + qdel(item_action) + break + if(bipod_deployed) - undeploy_bipod(detaching_gub) + undeploy_bipod(detaching_gub, user) ..() /obj/item/attachable/bipod/update_icon() @@ -3334,60 +3382,62 @@ Defined in conflicts.dm of the #defines folder. if(istype(loc, /obj/item/weapon/gun)) var/obj/item/weapon/gun/gun = loc gun.update_attachable(slot) - for(var/datum/action/A as anything in gun.actions) - A.update_button_icon() + for(var/datum/action/item_action as anything in gun.actions) + if(!istype(item_action, /datum/action/item_action/bipod/toggle_full_auto_switch)) + item_action.update_button_icon() -/obj/item/attachable/bipod/proc/handle_drop(obj/item/weapon/gun/G, mob/living/carbon/human/user) +/obj/item/attachable/bipod/proc/handle_drop(obj/item/weapon/gun/gun, mob/living/carbon/human/user) SIGNAL_HANDLER UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) if(bipod_deployed) - undeploy_bipod(G) + undeploy_bipod(gun, user) user.apply_effect(1, SUPERSLOW) user.apply_effect(2, SLOW) -/obj/item/attachable/bipod/proc/undeploy_bipod(obj/item/weapon/gun/G) - REMOVE_TRAIT(G, TRAIT_GUN_BIPODDED, "attached_bipod") +/obj/item/attachable/bipod/proc/undeploy_bipod(obj/item/weapon/gun/gun, mob/user) + REMOVE_TRAIT(gun, TRAIT_GUN_BIPODDED, "attached_bipod") bipod_deployed = FALSE accuracy_mod = -HIT_ACCURACY_MULT_TIER_5 scatter_mod = SCATTER_AMOUNT_TIER_9 recoil_mod = RECOIL_AMOUNT_TIER_5 burst_scatter_mod = 0 delay_mod = FIRE_DELAY_TIER_12 - G.recalculate_attachment_bonuses() - G.stop_fire() - var/mob/living/user - if(isliving(G.loc)) - user = G.loc - SEND_SIGNAL(user, COMSIG_MOB_UNDEPLOYED_BIPOD) - UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) + //if we are no longer on full auto, don't bother switching back to the old firemode + if(full_auto_switch && gun.gun_firemode == GUN_FIREMODE_AUTOMATIC && gun.gun_firemode != old_firemode) + gun.do_toggle_firemode(user, null, old_firemode) - if(G.flags_gun_features & GUN_SUPPORT_PLATFORM) - G.remove_firemode(GUN_FIREMODE_AUTOMATIC) + gun.recalculate_attachment_bonuses() + gun.stop_fire() + SEND_SIGNAL(user, COMSIG_MOB_UNDEPLOYED_BIPOD) + UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) + + if(gun.flags_gun_features & GUN_SUPPORT_PLATFORM) + gun.remove_firemode(GUN_FIREMODE_AUTOMATIC) if(heavy_bipod) user.anchored = FALSE - if(!QDELETED(G)) + if(!QDELETED(gun)) playsound(user,'sound/items/m56dauto_rotate.ogg', 55, 1) update_icon() -/obj/item/attachable/bipod/activate_attachment(obj/item/weapon/gun/G,mob/living/user, turn_off) +/obj/item/attachable/bipod/activate_attachment(obj/item/weapon/gun/gun, mob/living/user, turn_off) if(turn_off) if(bipod_deployed) - undeploy_bipod(G) + undeploy_bipod(gun, user) else - var/obj/support = check_bipod_support(G, user) + var/obj/support = check_bipod_support(gun, user) if(!support&&!bipod_deployed) to_chat(user, SPAN_NOTICE("You start deploying [src] on the ground.")) - if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_HOSTILE, G,INTERRUPT_DIFF_LOC)) + if(!do_after(user, 15, INTERRUPT_ALL, BUSY_ICON_HOSTILE, gun, INTERRUPT_DIFF_LOC)) return FALSE bipod_deployed = !bipod_deployed if(user) if(bipod_deployed) - ADD_TRAIT(G, TRAIT_GUN_BIPODDED, "attached_bipod") + ADD_TRAIT(gun, TRAIT_GUN_BIPODDED, "attached_bipod") to_chat(user, SPAN_NOTICE("You deploy [src] [support ? "on [support]" : "on the ground"].")) SEND_SIGNAL(user, COMSIG_MOB_DEPLOYED_BIPOD) playsound(user,'sound/items/m56dauto_rotate.ogg', 55, 1) @@ -3395,25 +3445,29 @@ Defined in conflicts.dm of the #defines folder. scatter_mod = -SCATTER_AMOUNT_TIER_10 recoil_mod = -RECOIL_AMOUNT_TIER_4 burst_scatter_mod = -SCATTER_AMOUNT_TIER_8 - if(istype(G,/obj/item/weapon/gun/rifle/sniper/M42A)) + if(istype(gun, /obj/item/weapon/gun/rifle/sniper/M42A)) delay_mod = -FIRE_DELAY_TIER_7 else delay_mod = -FIRE_DELAY_TIER_12 - G.recalculate_attachment_bonuses() - G.stop_fire() + gun.recalculate_attachment_bonuses() + gun.stop_fire() initial_mob_dir = user.dir RegisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK, PROC_REF(handle_mob_move_or_look)) - if(G.flags_gun_features & GUN_SUPPORT_PLATFORM) - G.add_firemode(GUN_FIREMODE_AUTOMATIC) + if(gun.flags_gun_features & GUN_SUPPORT_PLATFORM) + gun.add_firemode(GUN_FIREMODE_AUTOMATIC) if(heavy_bipod) user.anchored = TRUE + old_firemode = gun.gun_firemode + if(full_auto_switch && gun.gun_firemode != GUN_FIREMODE_AUTOMATIC) + gun.do_toggle_firemode(user, null, GUN_FIREMODE_AUTOMATIC) + else to_chat(user, SPAN_NOTICE("You retract [src].")) - undeploy_bipod(G) + undeploy_bipod(gun, user) update_icon() @@ -3430,10 +3484,10 @@ Defined in conflicts.dm of the #defines folder. //when user fires the gun, we check if they have something to support the gun's bipod. -/obj/item/attachable/proc/check_bipod_support(obj/item/weapon/gun/G, mob/living/user) +/obj/item/attachable/proc/check_bipod_support(obj/item/weapon/gun/gun, mob/living/user) return 0 -/obj/item/attachable/bipod/check_bipod_support(obj/item/weapon/gun/G, mob/living/user) +/obj/item/attachable/bipod/check_bipod_support(obj/item/weapon/gun/gun, mob/living/user) var/turf/T = get_turf(user) for(var/obj/O in T) if(O.throwpass && O.density && O.dir == user.dir && O.flags_atom & ON_BORDER) @@ -3445,6 +3499,31 @@ Defined in conflicts.dm of the #defines folder. return O2 return 0 +//item actions for handling deployment to full auto. +/datum/action/item_action/bipod/toggle_full_auto_switch/New(Target, obj/item/holder) + . = ..() + name = "Toggle Full Auto Switch" + action_icon_state = "full_auto_switch" + button.name = name + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state) + +/datum/action/item_action/bipod/toggle_full_auto_switch/action_activate() + var/obj/item/weapon/gun/holder_gun = holder_item + var/obj/item/attachable/bipod/attached_bipod = holder_gun.attachments["under"] + + attached_bipod.full_auto_switch = !attached_bipod.full_auto_switch + to_chat(owner, SPAN_NOTICE("[icon2html(holder_gun, owner)] You will [attached_bipod.full_auto_switch? "start" : "stop"] switching to full auto when deploying the bipod.")) + playsound(owner, 'sound/weapons/handling/gun_burst_toggle.ogg', 15, 1) + + if(attached_bipod.full_auto_switch) + button.icon_state = "template_on" + else + button.icon_state = "template" + + button.overlays.Cut() + button.overlays += image('icons/mob/hud/actions.dmi', button, action_icon_state) + /obj/item/attachable/bipod/m60 name = "bipod" @@ -3461,6 +3540,23 @@ Defined in conflicts.dm of the #defines folder. attach_icon = "vulture_bipod" heavy_bipod = TRUE +/obj/item/attachable/bipod/vulture/Initialize(mapload, ...) + . = ..() + select_gamemode_skin(type) + +/obj/item/attachable/bipod/vulture/select_gamemode_skin(expected_type, list/override_icon_state, list/override_protection) + . = ..() + var/new_attach_icon + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + attach_icon = new_attach_icon ? new_attach_icon : "s_" + attach_icon + if("desert") + attach_icon = new_attach_icon ? new_attach_icon : "d_" + attach_icon + if("classic") + attach_icon = new_attach_icon ? new_attach_icon : "c_" + attach_icon + if("urban") + attach_icon = new_attach_icon ? new_attach_icon : "u_" + attach_icon + /obj/item/attachable/burstfire_assembly name = "burst fire assembly" desc = "A small angled piece of fine machinery that increases the burst count on some weapons, and grants the ability to others. \nIncreases weapon scatter." diff --git a/code/modules/projectiles/gun_helpers.dm b/code/modules/projectiles/gun_helpers.dm index 66e3a65f2f77..781db8fc1222 100644 --- a/code/modules/projectiles/gun_helpers.dm +++ b/code/modules/projectiles/gun_helpers.dm @@ -390,7 +390,7 @@ DEFINES in setup.dm, referenced here. user.visible_message(SPAN_NOTICE("[user] attaches [attachment] to [src]."), SPAN_NOTICE("You attach [attachment] to [src]."), null, 4) user.temp_drop_inv_item(attachment) - attachment.Attach(src) + attachment.Attach(src, user) update_attachable(attachment.slot) playsound(user, 'sound/handling/attachment_add.ogg', 15, 1, 4) return TRUE diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm index a06131f98ce0..16ccb3438e23 100644 --- a/code/modules/projectiles/guns/boltaction.dm +++ b/code/modules/projectiles/guns/boltaction.dm @@ -279,3 +279,9 @@ /obj/item/weapon/gun/boltaction/vulture/skillless bypass_trait = TRUE + +/obj/item/weapon/gun/boltaction/vulture/holo_target + current_mag = /obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target + +/obj/item/weapon/gun/boltaction/vulture/holo_target/skillless + bypass_trait = TRUE diff --git a/code/modules/projectiles/guns/pistols.dm b/code/modules/projectiles/guns/pistols.dm index c17ca5bca739..362841651b2d 100644 --- a/code/modules/projectiles/guns/pistols.dm +++ b/code/modules/projectiles/guns/pistols.dm @@ -236,7 +236,6 @@ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi' icon_state = "c_deagle" item_state = "c_deagle" - base_gun_icon = "c_deagle" current_mag = /obj/item/ammo_magazine/pistol/heavy/super/highimpact black_market_value = 100 @@ -257,7 +256,6 @@ desc = "A Desert Eagle anodized in gold and adorned with rosewood grips. The living definition of ostentatious, it's flashy, unwieldy, tremendously heavy, and kicks like a mule. But as a symbol of power, there's nothing like it." icon_state = "g_deagle" item_state = "g_deagle" - base_gun_icon = "g_deagle" //------------------------------------------------------- //NP92 pistol @@ -588,8 +586,8 @@ name = "\improper 88 Mod 4 combat pistol" desc = "Standard issue USCM firearm. Also found in the hands of Weyland-Yutani PMC teams. Fires 9mm armor shredding rounds and is capable of 3-round burst." icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' - icon_state = "88m4" - item_state = "88m4" + icon_state = "_88m4" // to comply with css standards + item_state = "_88m4" fire_sound = "88m4" firesound_volume = 20 reload_sound = 'sound/weapons/gun_88m4_reload.ogg' diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm index 29b2c55b7ec0..b631f093bafe 100644 --- a/code/modules/projectiles/guns/rifles.dm +++ b/code/modules/projectiles/guns/rifles.dm @@ -1763,9 +1763,9 @@ /obj/item/weapon/gun/rifle/rmc_f90/set_gun_config_values() ..() - fire_delay = FIRE_DELAY_TIER_8 + fire_delay = FIRE_DELAY_TIER_11 burst_amount = BURST_AMOUNT_TIER_3 - burst_delay = FIRE_DELAY_TIER_8 + burst_delay = FIRE_DELAY_TIER_11 accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1 accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7 scatter = SCATTER_AMOUNT_TIER_8 @@ -1804,7 +1804,7 @@ /obj/item/weapon/gun/rifle/rmc_f90/scope/set_gun_config_values() ..() - fire_delay = FIRE_DELAY_TIER_7 + fire_delay = FIRE_DELAY_TIER_11 burst_amount = 0 accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1 accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7 @@ -1844,9 +1844,9 @@ /obj/item/weapon/gun/rifle/rmc_f90/shotgun/set_gun_config_values() ..() - fire_delay = FIRE_DELAY_TIER_8 + fire_delay = FIRE_DELAY_TIER_11 burst_amount = BURST_AMOUNT_TIER_3 - burst_delay = FIRE_DELAY_TIER_8 + burst_delay = FIRE_DELAY_TIER_11 accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4 + 2*HIT_ACCURACY_MULT_TIER_1 accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_2 scatter = SCATTER_AMOUNT_TIER_8 diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index 9c1e2bbbd7ca..a2f2a8a003a2 100644 --- a/code/modules/projectiles/guns/smartgun.dm +++ b/code/modules/projectiles/guns/smartgun.dm @@ -316,14 +316,15 @@ return FALSE var/mob/living/carbon/human/H = user if(!skillcheckexplicit(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_SMARTGUN) && !skillcheckexplicit(user, SKILL_SPEC_WEAPONS, SKILL_SPEC_ALL)) - to_chat(H, SPAN_WARNING("You don't seem to know how to use \the [src]...")) + balloon_alert(user, "insufficient skills") return FALSE if(requires_harness) if(!H.wear_suit || !(H.wear_suit.flags_inventory & SMARTGUN_HARNESS)) - to_chat(H, SPAN_WARNING("You need a harness suit to be able to fire [src]...")) + balloon_alert(user, "harness required") return FALSE if(cover_open) to_chat(H, SPAN_WARNING("You can't fire \the [src] with the feed cover open! (alt-click to close)")) + balloon_alert(user, "cannot fire; feed cover open") return FALSE /obj/item/weapon/gun/smartgun/unique_action(mob/user) @@ -337,6 +338,7 @@ return secondary_toggled = !secondary_toggled to_chat(user, "[icon2html(src, usr)] You changed \the [src]'s ammo preparation procedures. You now fire [secondary_toggled ? "armor shredding rounds" : "highly precise rounds"].") + balloon_alert(user, "firing [secondary_toggled ? "armor shredding" : "highly precise"]") playsound(loc,'sound/machines/click.ogg', 25, 1) ammo = secondary_toggled ? ammo_secondary : ammo_primary var/datum/action/item_action/smartgun/toggle_ammo_type/TAT = locate(/datum/action/item_action/smartgun/toggle_ammo_type) in actions @@ -387,7 +389,7 @@ return FALSE return TRUE if(!battery || battery.power_cell.charge == 0) - to_chat(usr, SPAN_WARNING("[src] emits a low power warning and immediately shuts down!")) + balloon_alert(usr, "low power") return FALSE return FALSE diff --git a/code/modules/projectiles/magazines/rifles.dm b/code/modules/projectiles/magazines/rifles.dm index bfc411a2ea63..d12f390ccd95 100644 --- a/code/modules/projectiles/magazines/rifles.dm +++ b/code/modules/projectiles/magazines/rifles.dm @@ -457,6 +457,14 @@ max_rounds = 4 gun_type = /obj/item/weapon/gun/boltaction/vulture w_class = SIZE_MEDIUM // maybe small? This shit's >4 inches long mind you + ammo_band_icon = "+vulture_band" + ammo_band_icon_empty = "+vulture_band_e" + +/obj/item/ammo_magazine/rifle/boltaction/vulture/holo_target + name = "\improper M707 \"Vulture\" holo-target magazine (20x102mm)" + desc = "A magazine for the M707 \"Vulture\" anti-matieriel rifle. Contains up to 4 massively oversized IFF-CAPABLE holo-targeting rounds, which excel at marking heavy targets to be attacked by allied ground forces. The logistical requirements for such capabilities heavily hinder the performance and stopping power of this round." + default_ammo = /datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target + ammo_band_color = AMMO_BAND_COLOR_HOLOTARGETING //=ROYAL MARINES=\\ diff --git a/code/modules/reagents/chemistry_machinery/chem_simulator.dm b/code/modules/reagents/chemistry_machinery/chem_simulator.dm index 8a95e3f3b07e..dd7f008e47d2 100644 --- a/code/modules/reagents/chemistry_machinery/chem_simulator.dm +++ b/code/modules/reagents/chemistry_machinery/chem_simulator.dm @@ -380,8 +380,7 @@ relate(C) if(!C.original_id) C.original_id = target.data.id - C.id = encode_reagent(C) - C.name = C.id + encode_reagent(C) if(C.id in simulations) //We've already simulated this before, so we don't need to continue C = GLOB.chemical_reagents_list[C.id] @@ -577,8 +576,8 @@ var/obj/item/paper/research_report/report = new /obj/item/paper/research_report/(loc) 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.name = "Simulation result for [D.id]" + report.info += "

Official Company Document
Simulated Synthesis Report

Result for [D.id]

" report.generate(D) 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) @@ -590,7 +589,9 @@ var/suffix = " " for(var/datum/chem_property/P in C.properties) suffix += P.code+"[P.level]" - return O.name + suffix + C.id = O.name + " " + copytext(md5(suffix),1,3) + suffix //Show random suffix AND real properties on research paper + C.name = O.name + " " + copytext(md5(suffix),1,3) //Show ONLY random suffix on health analyzers + return /obj/structure/machinery/chem_simulator/proc/complexity_to_string_list() var/list/L = list() diff --git a/code/modules/reagents/chemistry_machinery/pandemic.dm b/code/modules/reagents/chemistry_machinery/pandemic.dm index 5cd7f6584705..f44da3af9613 100644 --- a/code/modules/reagents/chemistry_machinery/pandemic.dm +++ b/code/modules/reagents/chemistry_machinery/pandemic.dm @@ -87,7 +87,6 @@ if(!(virus_type in discovered_diseases)) return var/obj/item/reagent_container/glass/bottle/B = new/obj/item/reagent_container/glass/bottle(src.loc) - B.icon_state = "bottle3" var/datum/disease/D = null if(!virus_type) var/datum/disease/advance/A = GLOB.archive_diseases[href_list["create_virus_culture"]] diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm index 52354f0d6b01..cee75ca58c06 100644 --- a/code/modules/reagents/chemistry_properties/prop_special.dm +++ b/code/modules/reagents/chemistry_properties/prop_special.dm @@ -96,7 +96,7 @@ 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, holder.name) + SSticker.mode.get_specific_call(/datum/emergency_call/goon/chem_retrieval, TRUE, FALSE, holder.name) // "Weyland-Yutani Goon (Chemical Investigation Squad)" 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) diff --git a/code/modules/reagents/chemistry_reagents/medical.dm b/code/modules/reagents/chemistry_reagents/medical.dm index f69d1b952c43..1e9eb0e0084b 100644 --- a/code/modules/reagents/chemistry_reagents/medical.dm +++ b/code/modules/reagents/chemistry_reagents/medical.dm @@ -8,7 +8,7 @@ id = "inaprovaline" description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients. If the lungs are functional, inaprovaline will allow respiration while under cardiac arrest. Slows down bleeding and acts as a weak painkiller. Overdosing may cause severe damage to cardiac tissue." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#dcbaf0" // rgb: 200, 165, 220 overdose = HIGH_REAGENTS_OVERDOSE overdose_critical = HIGH_REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -42,7 +42,7 @@ id = "tramadol" description = "Tramadol is a centrally acting analgesic and is considered to be a relatively safe. The analgesic potency is claimed to be about one tenth that of morphine. It is used to treat both acute and chronic pain of moderate to (moderately) severe intensity. Tramadol is generally considered as a medicinal drug with a low potential for dependence relative to morphine. Overdosing on tramadol is highly toxic." reagent_state = LIQUID - color = "#C8A5DC" + color = "#d7c7e0" custom_metabolism = AMOUNT_PER_TIME(15, 10 MINUTES) // Lasts 10 minutes for 15 units overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL @@ -54,7 +54,7 @@ id = "oxycodone" description = "Oxycodone is an opioid agonist with addiction potential similar to that of morphine. It is approved for the treatment of patients with moderate to severe pain who are expected to need continuous opioids for an extended period of time. Overdosing on oxycodone can cause hallucinations, brain damage and be highly toxic." reagent_state = LIQUID - color = "#E01D25" + color = "#1cc282" custom_metabolism = AMOUNT_PER_TIME(15, 5 MINUTES) // Lasts 5 minutes for 15 units overdose = MED_REAGENTS_OVERDOSE overdose_critical = MED_REAGENTS_OVERDOSE_CRITICAL @@ -66,7 +66,7 @@ id = "sterilizine" description = "A sterilizer used to clean wounds in preparation for surgery. Its use has mostly been outclassed to the cheaper alternative of space cleaner." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#b8d2f5" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_UNCOMMON /datum/reagent/medical/leporazine @@ -74,7 +74,7 @@ id = "leporazine" description = "A drug used to treat hypothermia and hyperthermia. Stabilizes patient body temperture. Prevents the use of cryogenics. Overdosing on leporazine can cause extreme drowsyness." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#a03919" // rgb: 200, 165, 220 overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -85,7 +85,7 @@ id = "kelotane" description = "Common medicine used to treat burns, caustic and corrosive trauma. Overdosing on kelotane can cause internal tissue damage." reagent_state = LIQUID - color = "#D8C58C" + color = "#d8b343" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -96,7 +96,7 @@ id = "dermaline" description = "Advanced medicine used to treat severe burn trauma. Enables the body to restore even the direst heat-damaged tissue. Overdosing on dermaline can cause severe internal tissue damage." reagent_state = LIQUID - color = "#F8C57C" + color = "#e2972e" overdose = LOWH_REAGENTS_OVERDOSE overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -107,7 +107,7 @@ id = "dexalin" description = "Dexalin is used in the treatment of oxygen deprivation by feeding oxygen to red blood cells directly inside the bloodstream. Used as an antidote to lexorin poisoning." reagent_state = LIQUID - color = "#C865FC" + color = "#1f28a7" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -118,7 +118,7 @@ id = "dexalinp" description = "Dexalin Plus is an upgraded form of Dexalin with added iron and carbon to quicken the rate which oxygen binds to the hemoglobin in red blood cells." reagent_state = LIQUID - color = "#C8A5FC" + color = "#293fff" overdose = LOWH_REAGENTS_OVERDOSE overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -129,7 +129,7 @@ id = "tricordrazine" description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries." reagent_state = LIQUID - color = "#B865CC" + color = "#d87f2b" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_UNCOMMON @@ -140,7 +140,7 @@ id = "anti_toxin" description = "General use anti-toxin, that neutralizes most toxins in the bloodstream. Commonly used in many advanced chemicals. Can be used as a mild anti-hallucinogen and to reduce tiredness." reagent_state = LIQUID - color = "#A8F59C" + color = "#3fc92a" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -151,7 +151,7 @@ id = "adminordrazine" description = "A magical substance created by gods to dissolve extreme amounts of salt." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#dae63b" // rgb: 200, 165, 220 properties = list(PROPERTY_OMNIPOTENT = 2) flags = REAGENT_TYPE_MEDICAL @@ -160,7 +160,7 @@ id = "thwei" description = "A strange, alien liquid." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#41c498" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_SPECIAL objective_value = OBJECTIVE_HIGH_VALUE properties = list( @@ -182,7 +182,7 @@ id = "neuraline" description = "A chemical cocktail tailored to enhance or dampen specific neural processes." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#a244d8" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 5 SECONDS) overdose = 2 overdose_critical = 3 @@ -195,7 +195,7 @@ id = "arithrazine" description = "A stabilized variant of dylovene. Its toxin-cleansing properties are weakened and there are harmful side effects, but it does not react with other compounds to create toxin." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#3c8529" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS) overdose = REAGENTS_OVERDOSE/2 overdose_critical = REAGENTS_OVERDOSE_CRITICAL/2 @@ -207,7 +207,7 @@ id = "russianred" description = "An emergency radiation treatment. The list of potential side effects include retinal damage and unconsciousness." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#ce2727" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 2 SECONDS) overdose = MED_REAGENTS_OVERDOSE overdose_critical = MED_REAGENTS_OVERDOSE_CRITICAL @@ -218,7 +218,7 @@ id = "alkysine" description = "Alkysine is a drug used to lessen and heal the damage to neurological tissue after a catastrophic injury. Small amounts can repair extensive brain trauma. Functions as a very weak painkiller. Overdosing on alkysine is extremely toxic." reagent_state = LIQUID - color = "#E89599" + color = "#e9d191" custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS) overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL @@ -241,7 +241,7 @@ id = "peridaxon" description = "Prevents symptoms caused by damaged internal organs while in the bloodstream, but does not fix the organ damage. Recommended for patients awaiting internal organ surgery. Overdosing on peridaxon will cause internal tissue damage." reagent_state = LIQUID - color = "#C845DC" + color = "#403142" overdose = LOWH_REAGENTS_OVERDOSE overdose_critical = LOWH_REAGENTS_OVERDOSE_CRITICAL custom_metabolism = AMOUNT_PER_TIME(1, 40 SECONDS) @@ -253,7 +253,7 @@ id = "bicaridine" description = "Bicaridine is an analgesic medication and can be used to treat severe external blunt trauma and to stabilize patients. Overdosing on Bicaridine will cause caustic burns and toxins." reagent_state = LIQUID - color = "#E8756C" + color = "#e7554a" overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL chemclass = CHEM_CLASS_COMMON @@ -288,7 +288,7 @@ id = "ultrazine" description = "A highly-potent, long-lasting combination CNS and muscle stimulant. Extremely addictive." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#ffec43" // rgb: 200, 165, 220 custom_metabolism = 0.0167 //5 units will last approximately 10 minutes overdose = LOWM_REAGENTS_OVERDOSE overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL @@ -314,7 +314,7 @@ id = "cryoxadone" description = "Industrial grade cryogenic medicine. Treats most types of tissue damage. Its main limitation is that the patient's body temperature must be under 170K to metabolise correctly." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#4acaca" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_UNCOMMON properties = list(PROPERTY_CRYOMETABOLIZING = 2, PROPERTY_NEOGENETIC = 1, PROPERTY_ANTICORROSIVE = 1, PROPERTY_ANTITOXIC = 1, PROPERTY_ANTICARCINOGENIC = 1) @@ -332,7 +332,7 @@ id = "clonexadone" description = "Advanced cryogenic medicine made from cryoxadone. Treats most types of tissue damage. Requires temperatures below 170K to to metabolise correctly." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#51b4db" // rgb: 200, 165, 220 chemclass = CHEM_CLASS_UNCOMMON properties = list(PROPERTY_CRYOMETABOLIZING = 6, PROPERTY_NEOGENETIC = 3, PROPERTY_ANTICORROSIVE = 3, PROPERTY_ANTITOXIC = 3, PROPERTY_ANTICARCINOGENIC = 3) @@ -351,7 +351,7 @@ id = "spaceacillin" description = "General use theta-lactam antibiotic. Prevents and cures mundane infections." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#9749c4" // rgb: 200, 165, 220 custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS) overdose = REAGENTS_OVERDOSE overdose_critical = REAGENTS_OVERDOSE_CRITICAL diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 79377d9c0849..5f96de812819 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -81,8 +81,8 @@ to_chat(usr, SPAN_NOTICE("Unable to comply.")) return TRUE -/obj/structure/machinery/computer/shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) - if(port && (shuttleId == initial(shuttleId) || override)) +/obj/structure/machinery/computer/shuttle/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) + if(port && (shuttleId == initial(shuttleId))) shuttleId = port.id /obj/structure/machinery/computer/shuttle/ert @@ -96,6 +96,15 @@ var/disabled = FALSE var/compatible_landing_zones = list() + /// this interface is busy - used in [/obj/structure/machinery/computer/shuttle/ert/proc/launch_home] as this can take a second + var/spooling + + /// if this shuttle only has the option to return home + var/must_launch_home = FALSE + + /// if the ERT that used this shuttle has returned home + var/mission_accomplished = FALSE + /obj/structure/machinery/computer/shuttle/ert/broken name = "nonfunctional shuttle control console" disabled = TRUE @@ -108,8 +117,48 @@ /obj/structure/machinery/computer/shuttle/ert/proc/get_landing_zones() . = list() for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary) - if(!dock.is_external) - . += list(dock) + if(!is_mainship_level(dock.z)) + continue + + if(dock.is_external) + continue + + . += list(dock) + +/obj/structure/machinery/computer/shuttle/ert/proc/launch_home() + if(spooling) + return + + var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId) + + spooling = TRUE + SStgui.update_uis(src) + + var/datum/turf_reservation/loaded = SSmapping.lazy_load_template(ert.distress_beacon.home_base, force = TRUE) + var/turf/bottom_left = loaded.bottom_left_turfs[1] + var/turf/top_right = loaded.top_right_turfs[1] + + var/obj/docking_port/stationary/emergency_response/target + for(var/obj/docking_port/stationary/emergency_response/shuttle in SSshuttle.stationary) + if(shuttle.z != bottom_left.z) + continue + if(shuttle.x >= top_right.x || shuttle.y >= top_right.y) + continue + if(shuttle.x <= bottom_left.x || shuttle.y <= bottom_left.y) + continue + + target = shuttle + break + + if(!target) + spooling = FALSE + return + + SSshuttle.moveShuttleToDock(ert, target, TRUE) + target.lockdown_on_land = TRUE + + spooling = FALSE + must_launch_home = FALSE /obj/structure/machinery/computer/shuttle/ert/is_disabled() @@ -122,10 +171,25 @@ disabled = FALSE /obj/structure/machinery/computer/shuttle/ert/tgui_interact(mob/user, datum/tgui/ui) + var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId) + + if(ert.distress_beacon && ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/obj/item/card/id/id = human_user.get_active_hand() + if(!istype(id)) + id = human_user.get_inactive_hand() + + if(!istype(id)) + id = human_user.get_idcard() + + if(!id || !HAS_TRAIT_FROM_ONLY(id, TRAIT_ERT_ID, ert.distress_beacon)) + to_chat(user, SPAN_WARNING("Your ID is not authorized to interact with this terminal.")) + balloon_alert(user, "unauthorized!") + return + ui = SStgui.try_update_ui(user, src, ui) if (!ui) - var/obj/docking_port/mobile/shuttle = SSshuttle.getShuttle(shuttleId) - ui = new(user, src, "NavigationShuttle", "[shuttle.name] Navigation Computer") + ui = new(user, src, "NavigationShuttle", "[ert.name] Navigation Computer") ui.open() @@ -154,6 +218,9 @@ .["shuttle_mode"] = ert.mode .["flight_time"] = ert.timeLeft(0) .["is_disabled"] = disabled + .["spooling"] = spooling + .["must_launch_home"] = must_launch_home + .["mission_accomplished"] = mission_accomplished var/door_count = length(ert.external_doors) var/locked_count = 0 @@ -188,7 +255,31 @@ return var/obj/docking_port/mobile/emergency_response/ert = SSshuttle.getShuttle(shuttleId) + switch(action) + if("button-push") + playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) + return FALSE + if("open") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("open", external_only = TRUE) + if("close") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("close", external_only = TRUE) + if("lockdown") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("force-lock", external_only = TRUE) + if("lock") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("lock", external_only = TRUE) + if("unlock") + if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) + return TRUE + ert.control_doors("unlock", external_only = TRUE) if("move") if(ert.mode != SHUTTLE_IDLE) to_chat(usr, SPAN_WARNING("You can't move to a new destination whilst in transit.")) @@ -217,29 +308,17 @@ SSshuttle.moveShuttle(ert.id, dock.id, TRUE) to_chat(usr, SPAN_NOTICE("You begin the launch sequence to [dock].")) return TRUE - if("button-push") - playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) - return FALSE - if("open") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("open", external_only = TRUE) - if("close") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("close", external_only = TRUE) - if("lockdown") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("force-lock", external_only = TRUE) - if("lock") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("lock", external_only = TRUE) - if("unlock") - if(ert.mode == SHUTTLE_CALL || ert.mode == SHUTTLE_RECALL) - return TRUE - ert.control_doors("unlock", external_only = TRUE) + if("launch_home") + if(!must_launch_home) + return + + if(ert.mode != SHUTTLE_IDLE) + to_chat(ui.user, SPAN_WARNING("Unable to return home.")) + balloon_alert(ui.user, "can't go home!") + return + + launch_home() + return TRUE /obj/structure/machinery/computer/shuttle/ert/attack_hand(mob/user) . = ..(user) @@ -257,6 +336,8 @@ /obj/structure/machinery/computer/shuttle/ert/small/get_landing_zones() . = list() for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary) + if(!is_mainship_level(dock.z)) + continue if(istype(dock, /obj/docking_port/stationary/emergency_response/external/hangar_port)) continue if(istype(dock, /obj/docking_port/stationary/emergency_response/external/hangar_starboard)) @@ -273,6 +354,8 @@ /obj/structure/machinery/computer/shuttle/ert/big/get_landing_zones() . = list() for(var/obj/docking_port/stationary/emergency_response/dock in SSshuttle.stationary) + if(!is_mainship_level(dock.z)) + continue . += list(dock) /obj/structure/machinery/computer/shuttle/lifeboat diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm index 1301a0c0925d..92196cb07e2e 100644 --- a/code/modules/shuttle/computers/dropship_computer.dm +++ b/code/modules/shuttle/computers/dropship_computer.dm @@ -141,10 +141,13 @@ // if the dropship has crashed don't allow more interactions var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId) if(shuttle.mode == SHUTTLE_CRASHED) - to_chat(user, SPAN_NOTICE("\The [src] is not responsive")) + to_chat(user, SPAN_NOTICE("[src] is unresponsive.")) return if(dropship_control_lost) + if(shuttle.is_hijacked) + to_chat(user, SPAN_WARNING("The shuttle is not responding due to an unauthorized access attempt.")) + return var/remaining_time = timeleft(door_control_cooldown) / 10 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)) @@ -324,14 +327,14 @@ colonial_marines.add_current_round_status_to_end_results("Hijack") /obj/structure/machinery/computer/shuttle/dropship/flight/proc/remove_door_lock() + if(door_control_cooldown) + deltimer(door_control_cooldown) + door_control_cooldown = null var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId) if(shuttle.is_hijacked) return 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) var/obj/docking_port/mobile/marine_dropship/shuttle = SSshuttle.getShuttle(shuttleId) diff --git a/code/modules/shuttle/computers/escape_pod_computer.dm b/code/modules/shuttle/computers/escape_pod_computer.dm index c45ac7d56102..2af71fadaddb 100644 --- a/code/modules/shuttle/computers/escape_pod_computer.dm +++ b/code/modules/shuttle/computers/escape_pod_computer.dm @@ -55,7 +55,7 @@ .["docking_status"] = STATE_LAUNCHED var/obj/structure/machinery/door/door = shuttle.door_handler.doors[1] .["door_state"] = door.density - .["door_lock"] = shuttle.door_handler.is_locked + .["door_lock"] = shuttle.door_handler.status == SHUTTLE_DOOR_LOCKED .["can_delay"] = TRUE//launch_status[2] .["launch_without_evac"] = launch_without_evac @@ -238,7 +238,7 @@ /obj/structure/machinery/door/airlock/evacuation/Destroy() if(linked_shuttle) - linked_shuttle.mode = SHUTTLE_CRASHED + linked_shuttle.set_mode(SHUTTLE_CRASHED) linked_shuttle.door_handler.doors -= list(src) . = ..() diff --git a/code/modules/shuttle/docking.dm b/code/modules/shuttle/docking.dm index a21ec330d4c9..63e220deadc6 100644 --- a/code/modules/shuttle/docking.dm +++ b/code/modules/shuttle/docking.dm @@ -1,7 +1,5 @@ /// This is the main proc. It instantly moves our mobile port to stationary port `new_dock`. /obj/docking_port/mobile/proc/initiate_docking(obj/docking_port/stationary/new_dock, movement_direction, force=FALSE) - // Crashing this ship with NO SURVIVORS - if(new_dock.get_docked() == src) remove_ripples() return DOCKING_SUCCESS diff --git a/code/modules/shuttle/dropship_hijack.dm b/code/modules/shuttle/dropship_hijack.dm index c01445be5b5b..73150f5bfc08 100644 --- a/code/modules/shuttle/dropship_hijack.dm +++ b/code/modules/shuttle/dropship_hijack.dm @@ -176,13 +176,14 @@ turfs += get_area_turfs(/area/almayer/shipboard/brig/cic_hallway) turfs += get_area_turfs(/area/almayer/shipboard/brig/cryo) turfs += get_area_turfs(/area/almayer/shipboard/brig/evidence_storage) - turfs += get_area_turfs(/area/almayer/shipboard/brig/execution) turfs += get_area_turfs(/area/almayer/shipboard/brig/general_equipment) turfs += get_area_turfs(/area/almayer/shipboard/brig/lobby) - turfs += get_area_turfs(/area/almayer/shipboard/brig/main_office) + turfs += get_area_turfs(/area/almayer/shipboard/brig/starboard_hallway) turfs += get_area_turfs(/area/almayer/shipboard/brig/perma) turfs += get_area_turfs(/area/almayer/shipboard/brig/processing) - turfs += get_area_turfs(/area/almayer/shipboard/brig/surgery) + turfs += get_area_turfs(/area/almayer/shipboard/brig/medical) + turfs += get_area_turfs(/area/almayer/shipboard/brig/mp_bunks) + turfs += get_area_turfs(/area/almayer/shipboard/brig/chief_mp_office) turfs += get_area_turfs(/area/almayer/command/cichallway) turfs += get_area_turfs(/area/almayer/command/cic) if("Upper deck Midship") @@ -191,14 +192,13 @@ turfs += get_area_turfs(/area/almayer/medical/containment) turfs += get_area_turfs(/area/almayer/medical/containment/cell) turfs += get_area_turfs(/area/almayer/medical/medical_science) - turfs += get_area_turfs(/area/almayer/medical/testlab) turfs += get_area_turfs(/area/almayer/medical/hydroponics) if("Upper deck Aftship") turfs += get_area_turfs(/area/almayer/engineering/upper_engineering) turfs += get_area_turfs(/area/almayer/engineering/laundry) if("Lower deck Foreship") turfs += get_area_turfs(/area/almayer/hallways/hangar) - turfs += get_area_turfs(/area/almayer/hallways/vehiclehangar) + turfs += get_area_turfs(/area/almayer/hallways/lower/vehiclehangar) if("Lower deck Midship") turfs += get_area_turfs(/area/almayer/medical/chemistry) turfs += get_area_turfs(/area/almayer/medical/lower_medical_lobby) diff --git a/code/modules/shuttle/helpers.dm b/code/modules/shuttle/helpers.dm index 6b29f155582e..9c8d817ec237 100644 --- a/code/modules/shuttle/helpers.dm +++ b/code/modules/shuttle/helpers.dm @@ -19,7 +19,7 @@ if(!door_controllers[direction]) var/datum/door_controller/single/new_controller = new() new_controller.label = label - new_controller.is_locked = FALSE + new_controller.status = SHUTTLE_DOOR_UNLOCKED door_controllers[direction] = new_controller var/datum/door_controller/single/controller = door_controllers[direction] @@ -29,12 +29,12 @@ if(direction == "all") for(var/i in door_controllers) var/datum/door_controller/single/control = door_controllers[i] - if(!control.is_locked) + if(control.status != SHUTTLE_DOOR_LOCKED) return FALSE return TRUE if(door_controllers[direction]) var/datum/door_controller/single/single_controller = door_controllers[direction] - return single_controller.is_locked + return single_controller.status == SHUTTLE_DOOR_LOCKED else WARNING("Direction [direction] does not exist.") return FALSE @@ -60,9 +60,9 @@ for(var/direction in door_controllers) var/datum/door_controller/single/controller = door_controllers[direction] - var/list/door_data = list("id" = direction, "value" = controller.is_locked) + var/list/door_data = list("id" = direction, "value" = controller.status) . += list(door_data) - if(!controller.is_locked) + if(controller.status == SHUTTLE_DOOR_UNLOCKED) all_locked = FALSE var/list/door_data = list("id" = "all", "value" = all_locked) @@ -74,7 +74,7 @@ /datum/door_controller/single var/label = "dropship" var/list/doors = list() - var/is_locked = FALSE + var/status = SHUTTLE_DOOR_UNLOCKED /datum/door_controller/single/Destroy(force, ...) . = ..() @@ -93,23 +93,29 @@ if("close") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, close)) if("force-lock") + if (status == SHUTTLE_DOOR_BROKEN) + continue INVOKE_ASYNC(src, PROC_REF(lockdown_door), door) - is_locked = TRUE + status = SHUTTLE_DOOR_LOCKED if("lock") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, lock)) - is_locked = TRUE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_LOCKED if("unlock") INVOKE_ASYNC(door, TYPE_PROC_REF(/obj/structure/machinery/door/airlock, unlock)) - is_locked = FALSE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_UNLOCKED if("force-lock-launch") if(asynchronous) INVOKE_ASYNC(src, PROC_REF(lockdown_door_launch), door) else lockdown_door_launch(door) - is_locked = TRUE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_LOCKED if("force-unlock") INVOKE_ASYNC(src, PROC_REF(force_lock_open_door), door) - is_locked = FALSE + if (status != SHUTTLE_DOOR_BROKEN) + status = SHUTTLE_DOOR_UNLOCKED else CRASH("Unknown door command [action]") diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 85fc38bf5f1b..5e8d1db63716 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -380,10 +380,82 @@ var/shuttle_flags = NONE +#define WORLDMAXX_CUTOFF (world.maxx + 1) +#define WORLDMAXY_CUTOFF (world.maxx + 1) +/** + * Calculated and populates the information used for docking and some internal vars. + * This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles! + * + * Arguments: + * * loading_from - The template that the shuttle was loaded from, if not given we iterate shuttle_areas to calculate information instead + */ +/obj/docking_port/mobile/proc/calculate_docking_port_information(datum/map_template/shuttle/loading_from) + var/port_x_offset = loading_from?.port_x_offset + var/port_y_offset = loading_from?.port_y_offset + var/width = loading_from?.width + var/height = loading_from?.height + if(!loading_from) + if(!length(shuttle_areas)) + CRASH("Attempted to calculate a docking port's information without a template before it was assigned any areas!") + // no template given, use shuttle_areas to calculate width and height + var/min_x = -1 + var/min_y = -1 + var/max_x = WORLDMAXX_CUTOFF + var/max_y = WORLDMAXY_CUTOFF + for(var/area/area as anything in shuttle_areas) + for(var/turf/turf in area) + min_x = max(turf.x, min_x) + max_x = min(turf.x, max_x) + min_y = max(turf.y, min_y) + max_y = min(turf.y, max_y) + CHECK_TICK + + if(min_x == -1 || max_x == WORLDMAXX_CUTOFF) + CRASH("Failed to locate shuttle boundaries when iterating through shuttle areas, somehow.") + if(min_y == -1 || max_y == WORLDMAXY_CUTOFF) + CRASH("Failed to locate shuttle boundaries when iterating through shuttle areas, somehow.") + + width = (max_x - min_x) + 1 + height = (max_y - min_y) + 1 + port_x_offset = min_x - x + port_y_offset = min_y - y + + if(dir in list(EAST, WEST)) + src.width = height + src.height = width + else + src.width = width + src.height = height + + switch(dir) + if(NORTH) + dwidth = port_x_offset - 1 + dheight = port_y_offset - 1 + if(EAST) + dwidth = height - port_y_offset + dheight = port_x_offset - 1 + if(SOUTH) + dwidth = width - port_x_offset + dheight = height - port_y_offset + if(WEST) + dwidth = port_y_offset - 1 + dheight = width - port_x_offset +#undef WORLDMAXX_CUTOFF +#undef WORLDMAXY_CUTOFF + /obj/docking_port/mobile/register() . = ..() SSshuttle.mobile += src +/** + * Actions to be taken after shuttle is loaded and has been moved to its final location + * + * Arguments: + * * replace - TRUE if this shuttle is replacing an existing one. FALSE by default. + */ +/obj/docking_port/mobile/proc/postregister(replace = FALSE) + return + /obj/docking_port/mobile/Destroy(force) if(force) QDEL_NULL(alarm_sound_loop) @@ -442,6 +514,10 @@ // Called after the shuttle is loaded from template /obj/docking_port/mobile/proc/linkup(datum/map_template/shuttle/template, obj/docking_port/stationary/dock) + + // ================== CM Change ================== + // This is gone in /tg/ backend but kept for historical reasons + // Suspect this is supposed to be handled in register var/list/static/shuttle_id = list() var/idnum = ++shuttle_id[id] if(idnum > 1) @@ -449,12 +525,12 @@ id = "[id][idnum]" if(name == initial(name)) name = "[name] [idnum]" - for(var/place in shuttle_areas) - var/area/area = place - area.connect_to_shuttle(src, dock, idnum, FALSE) - for(var/each in place) - var/atom/atom = each - atom.connect_to_shuttle(src, dock, idnum, FALSE) + // ================ END CM Change ================ + + for(var/area/place as anything in shuttle_areas) + place.connect_to_shuttle(TRUE, src, dock) + for(var/atom/individual_atoms in place) + individual_atoms.connect_to_shuttle(TRUE, src, dock) //this is a hook for custom behaviour. Maybe at some point we could add checks to see if engines are intact @@ -716,6 +792,10 @@ else if(error) setTimer(20) return + if(mode == SHUTTLE_CRASHED) + destination = null + timer = 0 + return if(rechargeTime) set_mode(SHUTTLE_RECHARGING) destination = null @@ -734,6 +814,8 @@ setTimer(callTime * engine_coeff()) enterTransit() return + if(SHUTTLE_CRASHED) + return set_idle() @@ -1004,3 +1086,15 @@ to_chat(user, SPAN_WARNING("Shuttle already in transit.")) return FALSE return TRUE + +/obj/docking_port/mobile/proc/get_transit_path_type() + . = /turf/open/space/transit + switch(preferred_direction) + if(NORTH) + return /turf/open/space/transit/north + if(SOUTH) + return /turf/open/space/transit/south + if(EAST) + return /turf/open/space/transit/east + if(WEST) + return /turf/open/space/transit/west diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm index f741df301bbb..cb04d9a81ddb 100644 --- a/code/modules/shuttle/shuttles/dropship.dm +++ b/code/modules/shuttle/shuttles/dropship.dm @@ -43,6 +43,9 @@ door_control.add_door(air, "port") if("aft_door") door_control.add_door(air, "aft") + var/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/hatch = air + if(istype(hatch)) + hatch.linked_dropship = src RegisterSignal(src, COMSIG_DROPSHIP_ADD_EQUIPMENT, PROC_REF(add_equipment)) RegisterSignal(src, COMSIG_DROPSHIP_REMOVE_EQUIPMENT, PROC_REF(remove_equipment)) @@ -81,10 +84,12 @@ door_control.add_door(air, "port") if("aft_door") door_control.add_door(air, "aft") + RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_dir_change)) /obj/docking_port/mobile/marine_dropship/Destroy(force) . = ..() qdel(door_control) + UnregisterSignal(src, COMSIG_ATOM_DIR_CHANGE) /obj/docking_port/mobile/marine_dropship/proc/control_doors(action, direction, force, asynchronous = TRUE) // its been locked down by the queen @@ -118,15 +123,27 @@ set_security_level(SEC_LEVEL_RED) return +/obj/docking_port/mobile/marine_dropship/proc/on_dir_change(datum/source, old_dir, new_dir) + SIGNAL_HANDLER + for(var/place in shuttle_areas) + for(var/obj/structure/machinery/door/air in place) + air.handle_multidoor(old_dir, new_dir) + /obj/docking_port/mobile/marine_dropship/alamo name = "Alamo" id = DROPSHIP_ALAMO - preferred_direction = SOUTH + preferred_direction = SOUTH // If you are changing this, please update the dir of the path below as well + +/obj/docking_port/mobile/marine_dropship/alamo/get_transit_path_type() + return /turf/open/space/transit/dropship/alamo /obj/docking_port/mobile/marine_dropship/normandy name = "Normandy" id = DROPSHIP_NORMANDY - preferred_direction = SOUTH + preferred_direction = SOUTH // If you are changing this, please update the dir of the path below as well + +/obj/docking_port/mobile/marine_dropship/normandy/get_transit_path_type() + return /turf/open/space/transit/dropship/normandy /obj/docking_port/mobile/marine_dropship/check() . = ..() @@ -287,7 +304,7 @@ /obj/docking_port/stationary/marine_dropship/crash_site/on_arrival(obj/docking_port/mobile/arriving_shuttle) . = ..() - arriving_shuttle.mode = SHUTTLE_CRASHED + arriving_shuttle.set_mode(SHUTTLE_CRASHED) for(var/mob/living/carbon/affected_mob in (GLOB.alive_human_list + GLOB.living_xeno_list)) //knock down mobs if(affected_mob.z != z) continue diff --git a/code/modules/shuttle/shuttles/ert.dm b/code/modules/shuttle/shuttles/ert.dm index b619645c501c..f0224addadf6 100644 --- a/code/modules/shuttle/shuttles/ert.dm +++ b/code/modules/shuttle/shuttles/ert.dm @@ -2,14 +2,6 @@ ERT Shuttles */ -#define ERT_SHUTTLE_DEFAULT_RECHARGE 90 SECONDS - -#define ADMIN_LANDING_PAD_1 "base-ert1" -#define ADMIN_LANDING_PAD_2 "base-ert2" -#define ADMIN_LANDING_PAD_3 "base-ert3" -#define ADMIN_LANDING_PAD_4 "base-ert4" -#define ADMIN_LANDING_PAD_5 "base-ert5" - // Base ERT Shuttle /obj/docking_port/mobile/emergency_response name = "ERT Shuttle" @@ -21,6 +13,8 @@ rechargeTime = ERT_SHUTTLE_DEFAULT_RECHARGE // 90s cooldown to recharge var/list/doors = list() var/list/external_doors = list() + var/datum/emergency_call/distress_beacon + var/list/local_landmarks = list() /obj/docking_port/mobile/emergency_response/Initialize(mapload) . = ..(mapload) @@ -31,11 +25,34 @@ air.breakable = FALSE air.indestructible = TRUE air.unacidable = TRUE + RegisterSignal(src, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_dir_change)) /obj/docking_port/mobile/emergency_response/enterTransit() control_doors("force-lock-launch", force = TRUE, external_only = TRUE) + UnregisterSignal(src, COMSIG_ATOM_DIR_CHANGE) ..() +/obj/docking_port/mobile/emergency_response/register() + . = ..() + + for(var/turf/current_turf as anything in return_turfs()) + for(var/obj/effect/landmark/landmark in current_turf.GetAllContents()) + LAZYADD(local_landmarks[landmark.type], landmark) + +/obj/docking_port/mobile/emergency_response/initiate_docking(obj/docking_port/stationary/new_dock, movement_direction, force) + . = ..() + if(. != DOCKING_SUCCESS) + return + + if(!is_mainship_level(z)) + return + + if(!distress_beacon || !distress_beacon.home_base) + return + + var/obj/structure/machinery/computer/shuttle/ert/console = getControlConsole() + console.must_launch_home = TRUE + /obj/docking_port/mobile/emergency_response/proc/control_doors(action, force = FALSE, external_only = FALSE) var/list/door_list = doors if(external_only) @@ -77,10 +94,10 @@ air.lock() air.safe = 1 -/obj/docking_port/mobile/emergency_response/setDir(newdir) - . = ..() +/obj/docking_port/mobile/emergency_response/proc/on_dir_change(datum/source, old_dir, new_dir) + SIGNAL_HANDLER for(var/obj/structure/machinery/door/shuttle_door in doors) - shuttle_door.handle_multidoor() + shuttle_door.handle_multidoor(old_dir, new_dir) // ERT Shuttle 1 /obj/docking_port/mobile/emergency_response/ert1 @@ -182,6 +199,7 @@ width = 7 height = 13 var/is_external = FALSE + var/lockdown_on_land = FALSE /obj/docking_port/stationary/emergency_response/on_arrival(obj/docking_port/mobile/arriving_shuttle) . = ..() @@ -189,6 +207,12 @@ var/obj/docking_port/mobile/emergency_response/ert = arriving_shuttle ert.control_doors("unlock", force = FALSE) + if(lockdown_on_land) + var/obj/structure/machinery/computer/shuttle/ert/console = arriving_shuttle.getControlConsole() + console.disable() + console.mission_accomplished = TRUE + lockdown_on_land = FALSE + /obj/docking_port/stationary/emergency_response/port1 name = "Almayer starboard landing pad" dir = NORTH @@ -254,7 +278,7 @@ width = 17 height = 29 airlock_id = "s_umbilical" - airlock_area = /area/almayer/hallways/port_umbilical + airlock_area = /area/almayer/hallways/lower/port_umbilical /obj/docking_port/stationary/emergency_response/external/hangar_starboard name = "Almayer hanger starboard external airlock" @@ -263,7 +287,7 @@ width = 17 height = 29 airlock_id = "n_umbilical" - airlock_area = /area/almayer/hallways/starboard_umbilical + airlock_area = /area/almayer/hallways/lower/starboard_umbilical // These are docking ports not on the almayer /obj/docking_port/stationary/emergency_response/idle_port1 @@ -310,24 +334,24 @@ /datum/map_template/shuttle/response_ert name = "Response Shuttle" - shuttle_id = "ert_response_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT1 /datum/map_template/shuttle/pmc_ert name = "PMC Shuttle" - shuttle_id = "ert_pmc_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT2 /datum/map_template/shuttle/upp_ert name = "UPP Shuttle" - shuttle_id = "ert_upp_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT3 /datum/map_template/shuttle/twe_ert name = "TWE Shuttle" - shuttle_id = "ert_twe_shuttle" + shuttle_id = MOBILE_SHUTTLE_ID_ERT4 /datum/map_template/shuttle/small_ert name = "Rescue Shuttle" - shuttle_id = "ert_small_shuttle_north" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_SMALL /datum/map_template/shuttle/big_ert name = "Boarding Shuttle" - shuttle_id = "ert_shuttle_big" + shuttle_id = MOBILE_SHUTTLE_ID_ERT_BIG diff --git a/code/modules/shuttle/shuttles/trijent_elevator.dm b/code/modules/shuttle/shuttles/trijent_elevator.dm index 457c150212c0..ff10485e8d5a 100644 --- a/code/modules/shuttle/shuttles/trijent_elevator.dm +++ b/code/modules/shuttle/shuttles/trijent_elevator.dm @@ -37,12 +37,6 @@ . = ..() 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 diff --git a/code/modules/shuttle/vehicle_elevator.dm b/code/modules/shuttle/vehicle_elevator.dm index d2e102933fd8..8f6a9025ba4f 100644 --- a/code/modules/shuttle/vehicle_elevator.dm +++ b/code/modules/shuttle/vehicle_elevator.dm @@ -7,10 +7,11 @@ id = MOBILE_SHUTTLE_VEHICLE_ELEVATOR - callTime = 5 SECONDS - ignitionTime = 1 SECONDS + // Call and ""ignition"" times are set to line up with the sound effects. + callTime = 4 SECONDS + ignitionTime = 5 SECONDS - ignition_sound = 'sound/machines/asrs_raising.ogg' + ignition_sound = 'sound/machines/asrs_lowering.ogg' ambience_idle = null ambience_flight = null @@ -28,19 +29,50 @@ railings += R /obj/docking_port/mobile/vehicle_elevator/on_ignition() - for(var/i in gears) - var/obj/structure/machinery/gear/G = i - G.start_moving() - -/obj/docking_port/mobile/vehicle_elevator/afterShuttleMove() + . = ..() + // If the elevator isn't in the vehicle bay, start the gears immediately. if(!is_mainship_level(z)) + start_gears() + + // Play the 'raising' sound effect at the destination docking port manually. + // `landing_sound` can't be used since that only plays on the elevator itself, + // and this sound file is too long for that either way. + playsound(destination, 'sound/machines/asrs_raising.ogg', 60) return - for(var/i in gears) - var/obj/structure/machinery/gear/G = i - G.stop_moving() - for(var/i in railings) - var/obj/structure/machinery/door/poddoor/railing/R = i - INVOKE_ASYNC(R, TYPE_PROC_REF(/obj/structure/machinery/door, open)) + + // If the elevator *is* in the vehicle bay, close the railings and start the gears when it leaves. + close_railings() + addtimer(CALLBACK(src, PROC_REF(start_gears)), ignitionTime) + +/obj/docking_port/mobile/vehicle_elevator/afterShuttleMove() + . = ..() + // Check `get_docked()` in order to skip this if it just moved to the 'transit' port. + if(get_docked() == destination) + stop_gears() + + // If the elevator moved to the vehicle bay, open the railings. + if(is_mainship_level(z)) + open_railings() + +/obj/docking_port/mobile/vehicle_elevator/proc/start_gears() + for(var/obj/structure/machinery/gear/gear as anything in gears) + gear.start_moving() + +/obj/docking_port/mobile/vehicle_elevator/proc/stop_gears() + for(var/obj/structure/machinery/gear/gear as anything in gears) + gear.stop_moving() + +/obj/docking_port/mobile/vehicle_elevator/proc/open_railings() + for(var/obj/structure/machinery/door/poddoor/railing/railing as anything in railings) + // If the railing isn't already open. + if(railing.density) + railing.open() + +/obj/docking_port/mobile/vehicle_elevator/proc/close_railings() + for(var/obj/structure/machinery/door/poddoor/railing/railing as anything in railings) + // If the railing isn't already closed. + if(!railing.density) + railing.close() /obj/docking_port/stationary/vehicle_elevator name = "Root Vehicle Elevator Dock" @@ -55,6 +87,46 @@ id = "almayer vehicle" roundstart_template = /datum/map_template/shuttle/vehicle + //elevator effects (four so the entire elevator doesn't vanish when there's one opaque obstacle between you and the actual elevator loc). + var/obj/effect/elevator/vehicle/SW + var/obj/effect/elevator/vehicle/SE + var/obj/effect/elevator/vehicle/NW + var/obj/effect/elevator/vehicle/NE + +/obj/docking_port/stationary/vehicle_elevator/almayer/Initialize(mapload) + . = ..() + // Create and offset some effects for the elevator shaft sprite. + SW = new(locate(src.x - 2, src.y - 2, src.z)) + + SE = new(locate(src.x + 2, src.y - 2, src.z)) + SE.pixel_x = -128 + + NW = new(locate(src.x - 2, src.y + 2, src.z)) + NW.pixel_y = -128 + + NE = new(locate(src.x + 2, src.y + 2, src.z)) + NE.pixel_x = -128 + NE.pixel_y = -128 + + SW.invisibility = INVISIBILITY_ABSTRACT + SE.invisibility = INVISIBILITY_ABSTRACT + NW.invisibility = INVISIBILITY_ABSTRACT + NE.invisibility = INVISIBILITY_ABSTRACT + +// Make the elevator shaft visible when the elevator leaves. +/obj/docking_port/stationary/vehicle_elevator/almayer/on_departure(obj/docking_port/mobile/departing_shuttle) + SW.invisibility = 0 + SE.invisibility = 0 + NW.invisibility = 0 + NE.invisibility = 0 + +// And make it invisible again when the elevator returns. +/obj/docking_port/stationary/vehicle_elevator/almayer/on_arrival(obj/docking_port/mobile/arriving_shuttle) + SW.invisibility = INVISIBILITY_ABSTRACT + SE.invisibility = INVISIBILITY_ABSTRACT + NW.invisibility = INVISIBILITY_ABSTRACT + NE.invisibility = INVISIBILITY_ABSTRACT + /obj/docking_port/stationary/vehicle_elevator/adminlevel name = "Adminlevel Vehicle Elevator Dock" id = "adminlevel vehicle" diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index dc6f3a682b24..a7dbe35a9776 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -218,7 +218,7 @@ if(iselevator) if(istype(T,/turf/open/space)) if(is_mainship_level(T.z)) - T.ChangeTurf(/turf/open/floor/almayer/empty) + T.ChangeTurf(/turf/open/floor/almayer/empty/requisitions) else T.ChangeTurf(/turf/open/gm/empty) else if(istype(T,/turf/open/space)) diff --git a/code/modules/shuttles/shuttle_supply.dm b/code/modules/shuttles/shuttle_supply.dm index 7eb7b96eb2e8..acbcb2937ab9 100644 --- a/code/modules/shuttles/shuttle_supply.dm +++ b/code/modules/shuttles/shuttle_supply.dm @@ -10,10 +10,10 @@ var/max_late_time = 300 var/railing_id = "supply_elevator_railing" var/gear_id = "supply_elevator_gear" - var/obj/effect/elevator/supply/SW //elevator effects (four so the entire elevator doesn't vanish when - var/obj/effect/elevator/supply/SE //there's one opaque obstacle between you and the actual elevator loc). - var/obj/effect/elevator/supply/NW - var/obj/effect/elevator/supply/NE + var/obj/effect/elevator/SW //elevator effects (four so the entire elevator doesn't vanish when + var/obj/effect/elevator/SE //there's one opaque obstacle between you and the actual elevator loc). + var/obj/effect/elevator/NW + var/obj/effect/elevator/NE var/Elevator_x var/Elevator_y var/Elevator_z @@ -34,15 +34,15 @@ Elevator_x = pick_loc().x Elevator_y = pick_loc().y Elevator_z = pick_loc().z - SW = new /obj/effect/elevator/supply(locate(Elevator_x-2,Elevator_y-2,Elevator_z)) + SW = new /obj/effect/elevator(locate(Elevator_x-2,Elevator_y-2,Elevator_z)) SW.vis_contents += elevator_animation - SE = new /obj/effect/elevator/supply(locate(Elevator_x+2,Elevator_y-2,Elevator_z)) + SE = new /obj/effect/elevator(locate(Elevator_x+2,Elevator_y-2,Elevator_z)) SE.pixel_x = -128 SE.vis_contents += elevator_animation - NW = new /obj/effect/elevator/supply(locate(Elevator_x-2,Elevator_y+2,Elevator_z)) + NW = new /obj/effect/elevator(locate(Elevator_x-2,Elevator_y+2,Elevator_z)) NW.pixel_y = -128 NW.vis_contents += elevator_animation - NE = new /obj/effect/elevator/supply(locate(Elevator_x+2,Elevator_y+2,Elevator_z)) + NE = new /obj/effect/elevator(locate(Elevator_x+2,Elevator_y+2,Elevator_z)) NE.pixel_x = -128 NE.pixel_y = -128 NE.vis_contents += elevator_animation @@ -184,15 +184,3 @@ if(M.id == gear_id) spawn() M.icon_state = "gear" - -/obj/effect/landmark/vehicleelevator/Initialize(mapload, ...) - . = ..() - GLOB.vehicle_elevator = get_turf(src) - return INITIALIZE_HINT_QDEL - -/datum/shuttle/ferry/supply/vehicle - railing_id = "vehicle_elevator_railing" - gear_id = "vehicle_elevator_gears" - -/datum/shuttle/ferry/supply/vehicle/pick_loc() - return GLOB.vehicle_elevator diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 8be96f27404a..15622228e91f 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -166,3 +166,11 @@ var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) return api.Visibility() + +/world/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + if(!istype(parameters, /list)) + parameters = list() + + return api.TriggerEvent(event_name, parameters, wait_for_completion) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 07ce3b684584..898516f12486 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -17,7 +17,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) 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) + sleep(world.tick_lag) TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") /datum/tgs_api/latest @@ -69,3 +69,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/Visibility() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/TriggerEvent(event_name, list/parameters, wait_for_completion) + return FALSE diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index 945e2e411767..7c87922750b9 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -181,7 +181,7 @@ var/json = json_encode(data) while(requesting_new_port && !override_requesting_new_port) - sleep(1) + sleep(world.tick_lag) //we need some port open at this point to facilitate return communication if(!world.port) @@ -209,7 +209,7 @@ requesting_new_port = FALSE while(export_lock) - sleep(1) + sleep(world.tick_lag) export_lock = TRUE last_interop_response = null @@ -217,7 +217,7 @@ text2file(json, server_commands_json_path) for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I) - sleep(1) + sleep(world.tick_lag) if(!last_interop_response) TGS_ERROR_LOG("Failed to get export result for: [json]") diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 616263098fd3..f4806f7adb97 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.8.0" +"5.9.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index 1c7d67d20cdf..92c7a8388a71 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -14,6 +14,7 @@ #define DMAPI5_BRIDGE_COMMAND_KILL 4 #define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 #define DMAPI5_BRIDGE_COMMAND_CHUNK 6 +#define DMAPI5_BRIDGE_COMMAND_EVENT 7 #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" @@ -34,6 +35,7 @@ #define DMAPI5_BRIDGE_PARAMETER_VERSION "version" #define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" #define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" +#define DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION "eventInvocation" #define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" #define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" @@ -81,6 +83,7 @@ #define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9 #define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10 #define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11 +#define DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT 12 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -116,3 +119,9 @@ #define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" #define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" #define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" + +#define DMAPI5_EVENT_ID "eventId" + +#define DMAPI5_EVENT_INVOCATION_NAME "eventName" +#define DMAPI5_EVENT_INVOCATION_PARAMETERS "parameters" +#define DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION "notifyCompletion" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index a5c064a8eaf1..95b8edd3ee5c 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -27,6 +27,8 @@ var/chunked_requests = 0 var/list/chunked_topics = list() + var/list/pending_events = list() + var/detached = FALSE /datum/tgs_api/v5/New() @@ -46,6 +48,10 @@ var/datum/tgs_version/api_version = ApiVersion() version = null // we want this to be the TGS version, not the interop version + + // sleep once to prevent an issue where world.Export on the first tick can hang indefinitely + sleep(world.tick_lag) + 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!") @@ -125,7 +131,7 @@ TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Passed") @@ -249,6 +255,40 @@ WaitForReattach(TRUE) return chat_channels.Copy() +/datum/tgs_api/v5/TriggerEvent(event_name, list/parameters, wait_for_completion) + RequireInitialBridgeResponse() + WaitForReattach(TRUE) + + if(interop_version.minor < 9) + TGS_WARNING_LOG("Interop version too low for custom events!") + return FALSE + + var/str_parameters = list() + for(var/i in parameters) + str_parameters += "[i]" + + var/list/response = Bridge(DMAPI5_BRIDGE_COMMAND_EVENT, list(DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION = list(DMAPI5_EVENT_INVOCATION_NAME = event_name, DMAPI5_EVENT_INVOCATION_PARAMETERS = str_parameters, DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION = wait_for_completion))) + if(!response) + return FALSE + + var/event_id = response[DMAPI5_EVENT_ID] + if(!event_id) + return FALSE + + TGS_DEBUG_LOG("Created event ID: [event_id]") + if(!wait_for_completion) + return TRUE + + TGS_DEBUG_LOG("Waiting for completion of event ID: [event_id]") + + while(!pending_events[event_id]) + sleep(world.tick_lag) + + TGS_DEBUG_LOG("Completed wait on event ID: [event_id]") + pending_events -= event_id + + return TRUE + /datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) TGS_DEBUG_LOG("DecodeChannels()") var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index a0ab35987670..0c5e701a32b6 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -65,7 +65,7 @@ if(detached) // Wait up to one minute for(var/i in 1 to 600) - sleep(1) + sleep(world.tick_lag) if(!detached && (!require_channels || length(chat_channels))) break @@ -77,8 +77,11 @@ /datum/tgs_api/v5/proc/PerformBridgeRequest(bridge_request) WaitForReattach(FALSE) + TGS_DEBUG_LOG("Bridge request start") // This is an infinite sleep until we get a response var/export_response = world.Export(bridge_request) + TGS_DEBUG_LOG("Bridge request complete") + if(!export_response) TGS_ERROR_LOG("Failed bridge request: [bridge_request]") return @@ -88,7 +91,7 @@ TGS_ERROR_LOG("Failed bridge request, missing content!") return - var/response_json = file2text(content) + var/response_json = TGS_FILE2TEXT_NATIVE(content) if(!response_json) TGS_ERROR_LOG("Failed bridge request, failed to load content!") return diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index 05e6c4e1b214..e1f2cb638578 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -176,6 +176,10 @@ var/list/reattach_response = TopicResponse(error_message) reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands() reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort() + + for(var/eventId in pending_events) + pending_events[eventId] = TRUE + return reattach_response if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK) @@ -276,6 +280,15 @@ TGS_WORLD_ANNOUNCE(message) return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT) + var/event_id = topic_parameters[DMAPI5_EVENT_ID] + if (!istext(event_id)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_ID]") + + TGS_DEBUG_LOG("Completing event ID [event_id]...") + pending_events[event_id] = TRUE + return TopicResponse() + return TopicResponse("Unknown command: [command]") /datum/tgs_api/v5/proc/WorldBroadcast(message) diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index d531d4b7b9dd..237207fdfd05 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -14,6 +14,7 @@ #undef DMAPI5_BRIDGE_COMMAND_KILL #undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND #undef DMAPI5_BRIDGE_COMMAND_CHUNK +#undef DMAPI5_BRIDGE_COMMAND_EVENT #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS @@ -34,6 +35,7 @@ #undef DMAPI5_BRIDGE_PARAMETER_VERSION #undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE #undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL +#undef DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION #undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT #undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION @@ -81,6 +83,7 @@ #undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST +#undef DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -116,3 +119,9 @@ #undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME #undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT #undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY + +#undef DMAPI5_EVENT_ID + +#undef DMAPI5_EVENT_INVOCATION_NAME +#undef DMAPI5_EVENT_INVOCATION_PARAMETERS +#undef DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION diff --git a/code/modules/tgui/tgui_number_input.dm b/code/modules/tgui/tgui_number_input.dm index 4c06b5333b6d..356448853db3 100644 --- a/code/modules/tgui/tgui_number_input.dm +++ b/code/modules/tgui/tgui_number_input.dm @@ -145,6 +145,7 @@ "min_value" = min_value, "preferences" = list(), "title" = title, + "integer_only" = integer_only ) /datum/tgui_input_number/ui_data(mob/user) diff --git a/code/modules/tgui_panel/ping_relay.dm b/code/modules/tgui_panel/ping_relay.dm new file mode 100644 index 000000000000..36929a2e33b0 --- /dev/null +++ b/code/modules/tgui_panel/ping_relay.dm @@ -0,0 +1,52 @@ +GLOBAL_DATUM_INIT(relays_panel, /datum/ping_relay_tgui, new) + +/datum/tgui_panel/proc/ping_relays() + GLOB.relays_panel.tgui_interact(client.mob) + +/datum/ping_relay_tgui/tgui_interact(mob/user, datum/tgui/ui) + var/list/relay_ping_conf = CONFIG_GET(keyed_list/connection_relay_ping) + if(!length(relay_ping_conf)) + to_chat(user, "There are no relays configured to test.") + return + + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PingRelaysPanel", "Relay Pings") + ui.open() + ui.set_autoupdate(FALSE) + +/datum/ping_relay_tgui/ui_state(mob/user) + return GLOB.always_state + +/datum/ping_relay_tgui/ui_static_data(mob/user) + var/list/data = list() + var/list/relay_names = list() + var/list/relay_pings = list() + var/list/relay_cons = list() + + var/list/relay_ping_conf = CONFIG_GET(keyed_list/connection_relay_ping) + var/list/relay_con_conf = CONFIG_GET(keyed_list/connection_relay_con) + for(var/key in relay_ping_conf) + // assumption: keys are the same in both configs + relay_names += key + relay_pings += relay_ping_conf[key] + relay_cons += relay_con_conf[key] + + data["relay_names"] = relay_names + data["relay_pings"] = relay_pings + data["relay_cons"] = relay_cons + return data + +/datum/ping_relay_tgui/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + var/mob/user = ui.user + + switch(action) + if("connect") + to_chat(user, "Now connecting via [params["desc"]]. Please wait..."); + user << link(params["url"]) + ui.close() + return diff --git a/code/modules/tgui_panel/telemetry.dm b/code/modules/tgui_panel/telemetry.dm index eb5c7d96a4d9..4ef1f06bfac0 100644 --- a/code/modules/tgui_panel/telemetry.dm +++ b/code/modules/tgui_panel/telemetry.dm @@ -86,7 +86,7 @@ // Check for a malformed history object if (!row || row.len < 3 || (!row["ckey"] || !row["address"] || !row["computer_id"])) - return + continue /* TODO - Reintroduce this when we get a proper round ID tracking, and we want to log it to database @@ -103,7 +103,7 @@ continue */ - if (world.IsBanned(row["ckey"], row["address"], row["computer_id"], real_bans_only = TRUE)) + if (world.IsBanned(row["ckey"], row["address"], row["computer_id"], real_bans_only = TRUE, is_telemetry = TRUE)) found = row break diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index f33f190d80e0..25338a4a3b5d 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -92,6 +92,9 @@ if(type == "telemetry") analyze_telemetry(payload) return TRUE + if(type == "act/ping_relays") + ping_relays() + return TRUE /** * public diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 90040ec9acf9..6f2b63e5b9e8 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -74,19 +74,24 @@ /// A trait source when adding traits through unit tests #define TRAIT_SOURCE_UNIT_TESTS "unit_tests" +// Unit tests #include "autowiki.dm" +#include "check_runtimes.dm" #include "create_and_destroy.dm" -#include "focus_only_tests.dm" +#include "emote_panels.dm" #include "missing_icons.dm" #include "resist.dm" +#include "spawn_humans.dm" #include "spritesheets.dm" #include "subsystem_init.dm" #include "tgui_create_message.dm" #include "timer_sanity.dm" +#include "tutorials.dm" +#include "xeno_strains.dm" + +// Unit tests backend +#include "focus_only_tests.dm" #include "unit_test.dm" -#include "spawn_humans.dm" -#include "check_runtimes.dm" -#include "emote_panels.dm" #undef TEST_ASSERT #undef TEST_ASSERT_EQUAL diff --git a/code/modules/unit_tests/spritesheets.dm b/code/modules/unit_tests/spritesheets.dm index c7c16c6535e8..142d3f958821 100644 --- a/code/modules/unit_tests/spritesheets.dm +++ b/code/modules/unit_tests/spritesheets.dm @@ -2,6 +2,7 @@ /datum/unit_test/spritesheets /datum/unit_test/spritesheets/Run() + var/regex/valid_css_class = new(@"^([\l_][\w\-]|[\l_\-][\l_])") for(var/datum/asset/spritesheet/sheet as anything in subtypesof(/datum/asset/spritesheet)) if(!initial(sheet.name)) //Ignore abstract types continue @@ -9,3 +10,6 @@ for(var/sprite_name in sheet.sprites) if(!sprite_name) TEST_FAIL("Spritesheet [sheet.type] has a nameless icon state.") + if(!valid_css_class.Find(sprite_name)) + // https://www.w3.org/TR/CSS2/syndata.html#value-def-identifier + TEST_FAIL("Spritesheet [sheet.type] has a icon state that doesn't comply with css standards: '[sprite_name]'.") diff --git a/code/modules/unit_tests/tutorials.dm b/code/modules/unit_tests/tutorials.dm new file mode 100644 index 000000000000..d835a4f272cb --- /dev/null +++ b/code/modules/unit_tests/tutorials.dm @@ -0,0 +1,19 @@ +/datum/unit_test/tutorials + +/datum/unit_test/tutorials/Run() + var/datum/tutorial/base_path = /datum/tutorial + for(var/datum/tutorial/tutorial_path as anything in subtypesof(base_path)) + if(initial(tutorial_path.parent_path) == tutorial_path) + continue + + // Make sure these variables are overridden on any subtypes. + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.name), initial(base_path.name), + "[tutorial_path] does not have a name set.") + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.tutorial_id), initial(base_path.tutorial_id), + "[tutorial_path] does not have a tutorial_id set.") + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.desc), initial(base_path.desc), + "[tutorial_path] does not have a desc set.") + TEST_ASSERT_NOTEQUAL(initial(tutorial_path.icon_state), initial(base_path.icon_state), + "[tutorial_path] does not have an icon_state set.") + +// TODO: Add a test verifying that a basic tutorial can be started and completed. (Requires unit test client handling) diff --git a/code/modules/unit_tests/xeno_strains.dm b/code/modules/unit_tests/xeno_strains.dm new file mode 100644 index 000000000000..6609f977efeb --- /dev/null +++ b/code/modules/unit_tests/xeno_strains.dm @@ -0,0 +1,59 @@ +/datum/unit_test/xeno_strains + +/datum/unit_test/xeno_strains/Run() + for(var/mob/living/carbon/xenomorph/caste_mob as anything in subtypesof(/mob/living/carbon/xenomorph)) + var/datum/caste_datum/caste_datum = GLOB.xeno_datum_list[initial(caste_mob.caste_type)] + if(!caste_datum) + // not really strain related but may as well have this in here + TEST_FAIL("[caste_mob] has no `/datum/caste_datum`! (Possible mismatch of `caste_type`)") + continue + + for(var/datum/xeno_strain/strain_path as anything in caste_datum.available_strains) + // Check for these, but test the strain either way. + if(!initial(strain_path.name)) + TEST_FAIL("[strain_path] has no name!") + if(!initial(strain_path.description)) + TEST_FAIL("[strain_path] has no description!") + + test_strain(caste_mob, strain_path) + +/datum/unit_test/xeno_strains/proc/test_strain(mob_path, strain_path) + var/mob/living/carbon/xenomorph/fred = allocate(mob_path) + var/datum/xeno_strain/strain = new strain_path() + + strain._add_to_xeno(fred) + + // Actions which should have been removed. + var/list/removed_actions = strain.actions_to_remove + // Exclude any actions which are in both strain lists (re-added afterwards). + removed_actions -= (removed_actions & strain.actions_to_add) + + // Actions which should have been added. + var/list/added_actions = strain.actions_to_add.Copy() + + for(var/datum/action/action as anything in fred.actions) + if(action.type in removed_actions) + TEST_FAIL("[strain.type] failed to remove [action.type] when added to a Xenomorph!") + if(action.type in added_actions) + // Remove this action from `added_actions`. + added_actions -= action.type + // If there's anything left in `added_actions`, then something wasn't given to the xeno. + if(length(added_actions)) + TEST_FAIL("[strain.type] failed to give the following actions when added to a Xenomorph: [json_encode(added_actions)]") + + // If the strain has a `/datum/behavior_delegate`, but it wasn't applied to the xeno. + if(strain.behavior_delegate_type && !istype(fred.behavior_delegate, strain.behavior_delegate_type)) + TEST_FAIL("[strain.type]'s behavior_delegate was not applied when added to a Xenomorph!") + + // If the strain doesn't have a custom icon state set. + if(!strain.icon_state_prefix) + // Check if any of the sprites in the xeno's .dmi file belong to this strain. + // If there are any, it probably means that someone just forgot to add an `icon_state_prefix` to the strain. + for(var/icon_state in icon_states(fred.icon)) + if(string_starts_with(icon_state, strain.name)) // (This won't catch everything, but it should get the easy ones.) + TEST_FAIL("[fred.icon] contains sprites for [strain.type] that aren't being used!") + break + + // If the strain *does* have a custom icon state set, but the xeno's sprite wasn't changed to it. + else if(!string_starts_with(fred.icon_state, strain.icon_state_prefix)) + TEST_FAIL("[strain.type]'s icon_state_prefix was not applied when added to a Xenomorph!") diff --git a/code/modules/vehicles/interior/interior.dm b/code/modules/vehicles/interior/interior.dm index f2afcd5ae5f7..8fb65602c9b3 100644 --- a/code/modules/vehicles/interior/interior.dm +++ b/code/modules/vehicles/interior/interior.dm @@ -304,21 +304,13 @@ // Returns min and max turfs for the interior /datum/interior/proc/get_bound_turfs() - var/turf/min = TURF_FROM_COORDS_LIST(reservation.bottom_left_coords) - if(!min) - return null - - var/turf/max = TURF_FROM_COORDS_LIST(reservation.top_right_coords) - if(!max) - return null - - return list(min, max) + return list(reservation.bottom_left_turfs[1], reservation.top_right_turfs[1]) /datum/interior/proc/get_middle_coords() - var/turf/min = reservation.bottom_left_coords - var/turf/max = reservation.top_right_coords + var/turf/min = reservation.bottom_left_turfs[1] + var/turf/max = reservation.top_right_turfs[1] + return list(Floor(min.x + (max.x - min.x)/2), Floor(min.y + (max.y - min.y)/2), min.z) - 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_hardpoints.dm b/code/modules/vehicles/multitile/multitile_hardpoints.dm index a6014c6cf2cd..2a6f97dda06f 100644 --- a/code/modules/vehicles/multitile/multitile_hardpoints.dm +++ b/code/modules/vehicles/multitile/multitile_hardpoints.dm @@ -149,7 +149,7 @@ hps += H var/chosen_hp = tgui_input_list(usr, "Select a hardpoint to remove", "Hardpoint Removal", (hps + "Cancel")) - if(chosen_hp == "Cancel" || !chosen_hp) + if(chosen_hp == "Cancel" || !chosen_hp || !in_range(src, user)) return var/obj/item/hardpoint/old = chosen_hp diff --git a/code/modules/vehicles/van/van.dm b/code/modules/vehicles/van/van.dm index c4aa64360ec0..8bf114d6b4a8 100644 --- a/code/modules/vehicles/van/van.dm +++ b/code/modules/vehicles/van/van.dm @@ -83,7 +83,7 @@ icon_state = null - RegisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGIN, PROC_REF(add_default_image)) + RegisterSignal(SSdcs, COMSIG_GLOB_MOB_LOGGED_IN, PROC_REF(add_default_image)) for(var/I in GLOB.player_list) add_default_image(SSdcs, I) @@ -125,7 +125,7 @@ mobs_under += L RegisterSignal(L, COMSIG_PARENT_QDELETING, PROC_REF(remove_under_van)) - RegisterSignal(L, COMSIG_MOB_LOGIN, PROC_REF(add_client)) + RegisterSignal(L, COMSIG_MOB_LOGGED_IN, PROC_REF(add_client)) RegisterSignal(L, COMSIG_MOVABLE_MOVED, PROC_REF(check_under_van)) if(L.client) @@ -141,7 +141,7 @@ UnregisterSignal(L, list( COMSIG_PARENT_QDELETING, - COMSIG_MOB_LOGIN, + COMSIG_MOB_LOGGED_IN, COMSIG_MOVABLE_MOVED, )) diff --git a/colonialmarines.dme b/colonialmarines.dme index 0b39e89042d2..67f16fc49081 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -112,6 +112,7 @@ #include "code\__DEFINES\tgui.dm" #include "code\__DEFINES\traits.dm" #include "code\__DEFINES\turf_flags.dm" +#include "code\__DEFINES\turfs.dm" #include "code\__DEFINES\tutorial.dm" #include "code\__DEFINES\unit_tests.dm" #include "code\__DEFINES\urls.dm" @@ -172,6 +173,7 @@ #include "code\__HELPERS\guid.dm" #include "code\__HELPERS\icons.dm" #include "code\__HELPERS\job.dm" +#include "code\__HELPERS\lazy_templates.dm" #include "code\__HELPERS\level_traits.dm" #include "code\__HELPERS\lighting.dm" #include "code\__HELPERS\lists.dm" @@ -184,6 +186,7 @@ #include "code\__HELPERS\sanitize_values.dm" #include "code\__HELPERS\shell.dm" #include "code\__HELPERS\status_effects.dm" +#include "code\__HELPERS\string_lists.dm" #include "code\__HELPERS\text.dm" #include "code\__HELPERS\traits.dm" #include "code\__HELPERS\type2type.dm" @@ -298,6 +301,7 @@ #include "code\controllers\subsystem\sound_loops.dm" #include "code\controllers\subsystem\soundscape.dm" #include "code\controllers\subsystem\statpanel.dm" +#include "code\controllers\subsystem\stickyban.dm" #include "code\controllers\subsystem\techtree.dm" #include "code\controllers\subsystem\tgui.dm" #include "code\controllers\subsystem\ticker.dm" @@ -341,6 +345,7 @@ #include "code\datums\fluff_emails.dm" #include "code\datums\global_variables.dm" #include "code\datums\http.dm" +#include "code\datums\lazy_template.dm" #include "code\datums\map_config.dm" #include "code\datums\matrix_editor.dm" #include "code\datums\medal_awards.dm" @@ -406,6 +411,7 @@ #include "code\datums\components\overlay_lighting.dm" #include "code\datums\components\rename.dm" #include "code\datums\components\speed_modifier.dm" +#include "code\datums\components\temporary_mute.dm" #include "code\datums\components\toxin_buildup.dm" #include "code\datums\components\tutorial_status.dm" #include "code\datums\components\weed_damage_reduction.dm" @@ -504,6 +510,7 @@ #include "code\datums\emergency_calls\deus_vult.dm" #include "code\datums\emergency_calls\dutch.dm" #include "code\datums\emergency_calls\emergency_call.dm" +#include "code\datums\emergency_calls\ert_stations.dm" #include "code\datums\emergency_calls\feral_xenos.dm" #include "code\datums\emergency_calls\forsaken_xenos.dm" #include "code\datums\emergency_calls\goons.dm" @@ -822,6 +829,7 @@ #include "code\game\machinery\buttons.dm" #include "code\game\machinery\cell_charger.dm" #include "code\game\machinery\cloning.dm" +#include "code\game\machinery\colony_floodlights.dm" #include "code\game\machinery\constructable_frame.dm" #include "code\game\machinery\cryo.dm" #include "code\game\machinery\cryopod.dm" @@ -834,7 +842,6 @@ #include "code\game\machinery\fuelcell_recycler.dm" #include "code\game\machinery\fusion_engine.dm" #include "code\game\machinery\gear.dm" -#include "code\game\machinery\groundmap_geothermal.dm" #include "code\game\machinery\hologram.dm" #include "code\game\machinery\holosign.dm" #include "code\game\machinery\igniter.dm" @@ -866,6 +873,7 @@ #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_admin.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" @@ -968,7 +976,9 @@ #include "code\game\machinery\vending\vendor_types\antag\antag_gear.dm" #include "code\game\machinery\vending\vendor_types\antag\antag_guns_snowflake.dm" #include "code\game\machinery\vending\vendor_types\antag\antag_guns_sorted.dm" +#include "code\game\machinery\vending\vendor_types\crew\combat_correspondent.dm" #include "code\game\machinery\vending\vendor_types\crew\commanding_officer.dm" +#include "code\game\machinery\vending\vendor_types\crew\engineering.dm" #include "code\game\machinery\vending\vendor_types\crew\medical.dm" #include "code\game\machinery\vending\vendor_types\crew\mp.dm" #include "code\game\machinery\vending\vendor_types\crew\pilot_officer.dm" @@ -1238,6 +1248,7 @@ #include "code\game\objects\items\toys\crayons.dm" #include "code\game\objects\items\toys\toy_weapons.dm" #include "code\game\objects\items\toys\toys.dm" +#include "code\game\objects\items\toys\trading_cards.dm" #include "code\game\objects\items\weapons\blades.dm" #include "code\game\objects\items\weapons\energy.dm" #include "code\game\objects\items\weapons\misc.dm" @@ -1284,10 +1295,13 @@ #include "code\game\objects\structures\props.dm" #include "code\game\objects\structures\reagent_dispensers.dm" #include "code\game\objects\structures\safe.dm" +#include "code\game\objects\structures\shower.dm" #include "code\game\objects\structures\signs.dm" +#include "code\game\objects\structures\sink.dm" #include "code\game\objects\structures\surface.dm" #include "code\game\objects\structures\tables_racks.dm" #include "code\game\objects\structures\tank_dispenser.dm" +#include "code\game\objects\structures\urinal.dm" #include "code\game\objects\structures\vulture_spotter.dm" #include "code\game\objects\structures\watercloset.dm" #include "code\game\objects\structures\windoor_assembly.dm" @@ -1394,10 +1408,8 @@ #include "code\modules\admin\NewBan.dm" #include "code\modules\admin\player_notes.dm" #include "code\modules\admin\server_verbs.dm" -#include "code\modules\admin\stickyban.dm" #include "code\modules\admin\STUI.dm" #include "code\modules\admin\tag.dm" -#include "code\modules\admin\ToRban.dm" #include "code\modules\admin\medal_panel\medals_panel.dm" #include "code\modules\admin\medal_panel\medals_panel_tgui.dm" #include "code\modules\admin\player_panel\player_action.dm" @@ -1563,11 +1575,16 @@ #include "code\modules\clothing\suits\bio.dm" #include "code\modules\clothing\suits\jobs.dm" #include "code\modules\clothing\suits\labcoat.dm" -#include "code\modules\clothing\suits\marine_armor.dm" #include "code\modules\clothing\suits\marine_coat.dm" #include "code\modules\clothing\suits\miscellaneous.dm" #include "code\modules\clothing\suits\storage.dm" #include "code\modules\clothing\suits\utility.dm" +#include "code\modules\clothing\suits\marine_armor\_marine_armor.dm" +#include "code\modules\clothing\suits\marine_armor\ert.dm" +#include "code\modules\clothing\suits\marine_armor\ghillie.dm" +#include "code\modules\clothing\suits\marine_armor\intel.dm" +#include "code\modules\clothing\suits\marine_armor\smartgunner.dm" +#include "code\modules\clothing\suits\marine_armor\spec_fire.dm" #include "code\modules\clothing\under\color.dm" #include "code\modules\clothing\under\gimmick.dm" #include "code\modules\clothing\under\marine_uniform.dm" @@ -1762,8 +1779,10 @@ #include "code\modules\gear_presets\survivors\kutjevo\preset_kutjevo.dm" #include "code\modules\gear_presets\survivors\lv_522\forcon_survivors.dm" #include "code\modules\gear_presets\survivors\lv_624\clfship_insert_lv624.dm" +#include "code\modules\gear_presets\survivors\lv_624\corporate_dome_insert_lv624.dm" #include "code\modules\gear_presets\survivors\lv_624\preset_lv.dm" #include "code\modules\gear_presets\survivors\new_varadero\preset_new_varadero.dm" +#include "code\modules\gear_presets\survivors\shivas_snowball\panic_room_insert_shivas.dm" #include "code\modules\gear_presets\survivors\shivas_snowball\preset_shivas_snowball.dm" #include "code\modules\gear_presets\survivors\solaris\crashlanding-offices_insert_bigred.dm" #include "code\modules\gear_presets\survivors\solaris\preset_solaris.dm" @@ -1965,7 +1984,6 @@ #include "code\modules\mob\living\carbon\xenomorph\xeno_verbs.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoAttacks.dm" #include "code\modules\mob\living\carbon\xenomorph\Xenomorph.dm" -#include "code\modules\mob\living\carbon\xenomorph\XenoMutatorSets.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoOverwatch.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoProcs.dm" #include "code\modules\mob\living\carbon\xenomorph\XenoUpgrade.dm" @@ -2004,6 +2022,7 @@ #include "code\modules\mob\living\carbon\xenomorph\abilities\praetorian\praetorian_macros.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\praetorian\praetorian_powers.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_abilities.dm" +#include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_macros.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\predalien\predalien_powers.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\queen\queen_abilities.dm" #include "code\modules\mob\living\carbon\xenomorph\abilities\queen\queen_macros.dm" @@ -2045,23 +2064,24 @@ #include "code\modules\mob\living\carbon\xenomorph\castes\Spitter.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Warrior.dm" #include "code\modules\mob\living\carbon\xenomorph\items\iff_tag.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\behavior_delegate.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\mutator.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\boiler\trapper.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\carrier\eggsac.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\crusher\charger.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\defender\steel_crest.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\drone\gardener.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\drone\healer.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\hivelord\resin_whisperer.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\lurker\vampire.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\dancer.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\oppressor.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\vanguard.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\praetorian\warden.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\ravager\berserker.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\ravager\hedgehog.dm" -#include "code\modules\mob\living\carbon\xenomorph\mutators\strains\runner\acid.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\behavior_delegate.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\xeno_strain.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\boiler\trapper.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\carrier\eggsac.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\crusher\charger.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\defender\steel_crest.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\drone\gardener.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\drone\healer.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\facehugger\watcher.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\hivelord\resin_whisperer.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\lurker\vampire.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\dancer.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\oppressor.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\vanguard.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\praetorian\warden.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\ravager\berserker.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\ravager\hedgehog.dm" +#include "code\modules\mob\living\carbon\xenomorph\strains\castes\runner\acid.dm" #include "code\modules\mob\living\silicon\death.dm" #include "code\modules\mob\living\silicon\login.dm" #include "code\modules\mob\living\silicon\say.dm" @@ -2353,6 +2373,7 @@ #include "code\modules\tgui_input\text.dm" #include "code\modules\tgui_panel\audio.dm" #include "code\modules\tgui_panel\external.dm" +#include "code\modules\tgui_panel\ping_relay.dm" #include "code\modules\tgui_panel\telemetry.dm" #include "code\modules\tgui_panel\tgui_panel.dm" #include "code\modules\tooltip\tooltip.dm" diff --git a/config/example/config.txt b/config/example/config.txt index 8a976e02a580..f055a5d65bff 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -4,6 +4,7 @@ # $include dbconfig.txt # $include resources.txt # $include icon_source.txt +# $include relays.txt ## Server name: This appears at the top of the screen in-game. In this case it will read "tgstation: station_name" where station_name is the randomly generated name of the station for the round. Remove the # infront of SERVERNAME and replace 'tgstation' with the name of your choice # SERVERNAME spacestation13 @@ -151,9 +152,6 @@ BANAPPEALS https://cm-ss13.com/viewforum.php?f=76 ##Defines the ticklag for the world. 0.9 is the normal one, 0.5 is smoother. TICKLAG 0.5 -## Uncomment this to ban use of ToR -#TOR_BAN - ## Uncomment this to have country flags pop up in OOC alongside names if the user has the pref turned on (uses IP-API) #OOC_COUNTRY_FLAGS diff --git a/config/example/relays.txt b/config/example/relays.txt new file mode 100644 index 000000000000..562e917fa484 --- /dev/null +++ b/config/example/relays.txt @@ -0,0 +1,22 @@ +## Settings controlling the relay ping browser accessed via PingIndicator in TGChat +## Pings are performed by timing how long it takes to download favicon.ico from the PingURL + +## Connection Relays: Name must match both ping and connect pairs +## CONNECTION_RELAY_PING Name|PingURL +## CONNECTION_RELAY_CON Name|ConnectURL +CONNECTION_RELAY_PING Direct|play.cm-ss13.com:8998 +CONNECTION_RELAY_CON Direct|play.cm-ss13.com:1400 +CONNECTION_RELAY_PING United Kingdom, London|uk.cm-ss13.com:8998 +CONNECTION_RELAY_CON United Kingdom, London|uk.cm-ss13.com:1400 +CONNECTION_RELAY_PING France, Gravelines|eu-w.cm-ss13.com:8998 +CONNECTION_RELAY_CON France, Gravelines|eu-w.cm-ss13.com:1400 +CONNECTION_RELAY_PING Poland, Warsaw|eu-e.cm-ss13.com:8998 +CONNECTION_RELAY_CON Poland, Warsaw|eu-e.cm-ss13.com:1400 +CONNECTION_RELAY_PING Oregon, Hillsboro|us-w.cm-ss13.com:8998 +CONNECTION_RELAY_CON Oregon, Hillsboro|us-w.cm-ss13.com:1400 +CONNECTION_RELAY_PING Virginia, Vint Hill|us-e.cm-ss13.com:8998 +CONNECTION_RELAY_CON Virginia, Vint Hill|us-e.cm-ss13.com:1400 +CONNECTION_RELAY_PING Singapore|asia-se.cm-ss13.com:8998 +CONNECTION_RELAY_CON Singapore|asia-se.cm-ss13.com:1400 +CONNECTION_RELAY_PING Australia, Sydney|aus.cm-ss13.com:8998 +CONNECTION_RELAY_CON Australia, Sydney|aus.cm-ss13.com:1400 diff --git a/html/changelogs/AutoChangeLog-pr-5517.yml b/html/changelogs/AutoChangeLog-pr-5517.yml deleted file mode 100644 index b6a010ef1b90..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5517.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "cuberound" -delete-after: True -changes: - - balance: "increases healing node heal from 10hp every 5 sec to 20 hp every 5 sec" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5648.yml b/html/changelogs/AutoChangeLog-pr-5648.yml deleted file mode 100644 index 368e32b82d9f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5648.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SpartanBobby" -delete-after: True -changes: - - maptweak: "Fixes the two gauss sentry guns that were boxxed in by a mapper over a year ago on ice 3" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5838.yml b/html/changelogs/AutoChangeLog-pr-5838.yml new file mode 100644 index 000000000000..d180f50f7635 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5838.yml @@ -0,0 +1,7 @@ +author: "nauticall" +delete-after: True +changes: + - imageadd: "Resprites first aid kits, coffins, material stacks, mortar shells, and chemistry items. Chemistry sprites ported from Baystation / Aurora." + - bugfix: "Recolors several reagent sprites to be more in-line with their established colors, such as on autoinjectors." + - bugfix: "Fixed invisible cloth tables." + - bugfix: "Fixed wrong shading on the large floodlight." \ No newline at end of file diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml index da89432474a7..f344da79decb 100644 --- a/html/changelogs/archive/2024-02.yml +++ b/html/changelogs/archive/2024-02.yml @@ -85,3 +85,393 @@ that are already active on your character. cuberound: - balance: increases flare pouch storage slots from 8 to 16 +2024-02-05: + Drathek: + - bugfix: Added more null testing to helmet visors. + Poltava: + - imageadd: updated intel expedition chestrig sprite + SpartanBobby: + - maptweak: Fixes the two gauss sentry guns that were boxxed in by a mapper over + a year ago on ice 3 + Warfan1815: + - bugfix: Open surgical incisions now show up on a health scanner even if there + is nothing else wrong. + - bugfix: Open surgical incisions in the head "zones" (mouth and eyes) now show + up independently on health scanner + cuberound: + - balance: increases healing node heal from 10hp every 5 sec to 20 hp every 5 sec +2024-02-06: + InsaneRed: + - rscadd: Warden Praetorians can now see how much healing they've done. + - qol: Re-organizes the warden ''hotbar'' + - bugfix: SO's M3 armor now has the proper description. + Vicacrov: + - bugfix: Fixes Defenders staying Fortified in critical state - Fortify now automatically + toggles itself off upon the Defender getting critted. +2024-02-07: + InsaneRed: + - balance: Scout specialist incin/high impact mag crates now only has 3 instead + of 5 + Steelpoint: + - rscadd: USCM Chestrig has been added to squad prep vendors, alternative sprite + of a satchel, similar in appearance to the welder-chestrig. +2024-02-08: + Megaddd: + - imageadd: added 4 bone-gel fill level sprite states + SpartanBobby: + - maptweak: changes to LV624 Engineering and T-comms, mostly detailing but changes + some doors and object placement +2024-02-09: + Huffie56: + - refactor: turning newscasters into "props". + - qol: added two new section to replace ammunition section primary ammunition and + sidearm ammunition and rearranged it for team leader. + - balance: added the ability for comtech, medic, and squad leader to buy M4A3 (HP + and AP) and VP78 magazines for 3 points and M44 Heavy for 6 points. + - balance: added the ability for SG to buy M4A3 (HP and AP) and VP78 magazines for + 5 points and M44 Heavy for 10 points. + - balance: added the ability for rifleman to buy M4A3 (HP and AP) and VP78 magazines + for 5 points. +2024-02-10: + Drathek: + - bugfix: Fixed an oversight with burst point blank firing + SabreML: + - bugfix: Fixed trash carts not being pick-uppable by the dropship's fulton recovery + system. + blackdragonTOW: + - admin: added logging for 3rd party victory events + private-tristan: + - rscadd: Pizza ERT is back, although incredibly unlikely to occur + - bugfix: UPP ERT no longer rolls 3 times (1 for random, 1 for friendly, and 1 for + hostile), due to this, UPP comms will always be scrambled at the beginning, + no way to tell intentions before meeting. + - rscadd: Chem Goon Research Consultant now spawns with reagent scanner goggles. +2024-02-11: + Drathek: + - bugfix: Fix gardener fruit count not always updating + Vicacrov: + - bugfix: Fixed Warden Praetorians being able to move around the ovipositored Queen + with their Retrieve ability. +2024-02-12: + Stakeyng: + - qol: Lets you put an extra accessory item in your helmet. + harryob: + - server: tor banning functionality is removed +2024-02-13: + Huffie56: + - refactor: refactored watercloset.dm file. + SabreML: + - ui: Made the Tutorial Menu automatically close when a tutorial is started. + - code_imp: Made the tutorial Xenomorph not inherit the user's 'age' prefix. + - code_imp: Added a basic unit test for tutorials. +2024-02-14: + SabreML: + - bugfix: Fixed crates and similar objects layering below the dropship's fulton + recovery system. + Zonespace Drathek: + - balance: Lesser drones and Facehuggers cannot speak, custom emote, or point for + 3 minutes after spawning +2024-02-15: + InsaneRed: + - balance: Drop pouch now scales the same as normal webbing + SabreML: + - bugfix: Fixed some changelog icons being smaller than others. + Vicacrov: + - maptweak: LV-624 tfort's floodlights are now colony floodlights. + VileBeggar: + - qol: Attaching the bipod to weapons that have full auto (HPR included) will give + you a button toggle for immediately switching to full auto when deploying the + bipod. +2024-02-16: + BadAtThisGame302: + - rscadd: Added two new beacons for the CL, Lawyer and Bodyguard. + - rscadd: Added an Executive Specialist and Executive Supervisor Lawyer preset. + - rscadd: Added a cyanide pill in the CLs briefcase for an easy way out. + - rscadd: Added a Wey-Yu Coffee Mug in the CLs briefcase as a souvenir sale. + Drathek: + - bugfix: Fixed xeno tutorial allowing evolution/de-evolution + - bugfix: Fixed some runtimes with tutorials + SabreML: + - bugfix: Fixed the 'Clear' button not resetting the number of keybind assignment + slots. (Keybinds menu) + - refactor: Refactored xeno strains. + - rscadd: Added a keybind setting to open the 'Purchase Strain' window. (Also renamed + the macro) + cuberound: + - balance: m4ra ammo looses about 1/5 of initial effect duration per 10 tiles traveled + harryob: + - admin: permanent and sticky bans are now handled in game, instead of being managed + externally +2024-02-17: + MobiusWon: + - rscadd: Adds integral Motion Detector to XM4 IO Armor + - balance: Uniform utility accessories (I.E. Webbing) no longer can be equipped + while the XM4 is worn. Armor slots increased to 5 to compensate. + Steelpoint: + - balance: Royal Marine Commando's firearms now have a higher rate of fire, comparable + to the M41A. + mullenpaul: + - code_imp: rework logic of restrictedinput component to reduce checks +2024-02-19: + Blundir: + - imageadd: updated many old/legacy sprites + Diegoflores31: + - balance: Tail Jab will now target enemies on the same tile it was targeted. + - balance: Aiming Tail Jab directly on a target will do an additional 15 damage +2024-02-20: + BeagleGaming1: + - balance: Xenos can slash reactors + - balance: Reactors that are damaged will still run until reaching weld damage or + being manually de-activated + - balance: Reactors that are damaged will lose fuel (when applicable) and fail more + often when fuel runs out, new cells need to be used to reset the fail rate + - balance: Reactors can be damaged by bullets or explosions + - code_imp: Updated Power all ship reactors admin button code + - imageadd: Updated reactor sprites + - maptweak: Minor changes to reactors and surrounding areas + Drathek: + - code_imp: Autowiki now skips guns and mags without icon_states + - code_imp: Unit testing for spritesheets now enforces css requirements for class + names + - imageadd: Gun stats lineart now uses the no_name sprite again for guns without + lineart + - rscdel: Removed death messages for lesser drones and facehuggers that are still + temporarily muted + Huffie56: + - balance: add the ability for SG to buy an VP78 or an SU-6 each for 15 points. + SabreML: + - ui: Added tooltips to entry icons in the changelog. + - code_imp: Added a unit test for xeno strains. + Vicacrov: + - bugfix: Fixes a missing examine text when you hit an exactly half-full ammo magazine + against your helmet. + Zonespace27: + - bugfix: You can no longer remove vehicle parts from a vehicle at a distance +2024-02-21: + Contrabang: + - rscadd: Falling out of a Dropship en route to an LZ, now lets your corpse plummet + to the ground instead of being deleted. + Drathek: + - maptweak: Fixed access for two doors on the Almayer + - balance: Corrected vampire lurker damage values (Effectively reduction by 5 damage + for most attacks) + Stakeyng: + - rscadd: mou is now compatible with the shotgun scabbard + VileBeggar: + - rscadd: The Vulture can now be loaded with holo-targetting rounds which have severely + hampered ballistic performance, but mark any target that is hit, increasing + their damage taken by 33% for a brief period of time. + hislittlecuzingames: + - maptweak: tweaked Trijent Dam to add a new choke point. + private-tristan: + - rscdel: VAIMS (vaipo med spec) no longer gets a redundant burn line + - balance: VAIMS now gets an extra MAR mag. + - bugfix: Forsaken and Feral xenos can now (correctly) use hive-status + - spellcheck: fixed a case where we/our wouldn't be used when attempting to access + hive status with no queen +2024-02-22: + BadAtThisGame302: + - rscadd: Implemented a probability of playing a static-filled transmission as the + distress received response. + Drathek: + - bugfix: Fixed automatic CMB ERT caused by black market heat + - code_imp: get_specific_call now only accepts a path or a string of a path + - ui: Fix broken admin Medals Panel + - spellcheck: Reworded message when a facehugger's temporary mute ends to not mention + hivemind + Huffie56: + - refactor: refactored files with the aim of making fixing barricade with a welder + more constant. + - bugfix: being unable to repair more than one metal barricade at the time. + Kaga: + - bugfix: Fixed a bug that broke ID-Lockable items in presets. Rejoice, PMC Snipers, + pre-equipped USCM Specs, UPP Commandos, and WY Deathsquads. + LaylaMcC: + - rscadd: Increased levels of acidic blood and carpotoxin in xenomeat and carp fillets. + - rscdel: Xenomeat and carp fillet-based recipes no longer add additional acidic + blood or carpotoxin. + - qol: Master level domestic skill allows the use of the food processor to remove + acidic blood and carpotoxin from xenomeat and carp fillets. + - bugfix: Turning named pieces of human meat into meatballs will retain the human's + name. + SabreML: + - rscadd: Added 'observe' functionality to Xenomorphs, allowing observers to view + the target's UI. + - rscadd: Made observing a player also show their action buttons. + - refactor: Refactored the 'gun action' buttons, making them show their names in + the status bar when hovered over. + TheGamerdk: + - rscadd: CIC can now view helmet cameras of Command Staff. Literally 1984 + iloveloopers: + - qol: Autolathes are now significantly faster. +2024-02-23: + AtticusRezzer: + - bugfix: Fixed the incorrect area flag in lifeboats allowing tunneling + Drathek: + - balance: Increased same tile weed expansion delay for queen from 7s to 10s + Huffie56: + - maptweak: split each Hallway area port and starboard into three areas.(fore midship + aft) + - maptweak: change the area around north and south west staircase to remove emergency + shutters. + - maptweak: change the area west of squad preparation room to remove emergency shutter. + - maptweak: change the area west of lower engi to make emergency shutter be at the + frontier of the area. + InsaneRed: + - rscadd: Added a new ability to the predalien "Feral Rush" that increases it's + armor and speed for a short duration. + - rscadd: Added two new abilities to the predalien "Feral Frenzy" and a toggle. + The predalien can now switch between a single target GUT and an AOE one, both + of which has damage that scale with your kills. + - rscdel: Removed the predaliens gib ability + - rscdel: Removed the predaliens "pounce" ability + - rscdel: Removed the predaliens "Ground Smash" ability + - balance: Predalien no longer has plasma costs, or plasma. + - balance: The Plasma Rifle, which is ONLY used to hunt abominations now has a higher + ROF and has incin bullets. + - spellcheck: Re-wrote the predalien text to be more up to date and remove missinformation + - qol: Everyone can see how many kills the predalien has by examining it. + - rscadd: Added a "Feral Smash" ability that lets you grab somebody and smash them + to the ground, this scales with kills and is a devastating attack. + - balance: Removed screenshake from predalien's screech + - balance: Predalien removes fire stacks faster. + - bugfix: Girders are now slashable by very_sharp_claws instead of just having a + queen chack + SabreML: + - bugfix: Fixed the search function of TGUI input lists. + - qol: Made the TGUI input list search bar automatically focus when toggled. + - bugfix: Fixed Xenomorphs not having their caste's tackle duration values applied + to them. + fira: + - code_imp: Updated mapping backend from /tg/ upstream. + iloveloopers: + - qol: Reagent tanks can now be dragged faster. +2024-02-24: + BadAtThisGame302: + - rscadd: Added a CL and Goon nightmare insert spawn. + - mapadd: added a new nightmare insert on LV which revamps the Corporate Dome into + a holdout. + SabreML: + - bugfix: Fixed the 88 Mod 4 pistol's holster sprite. + Segrain: + - admin: Check Ckey verb is now available on player panel. + - bugfix: Fully healed limbs should now properly remove the overlays for their wounds + and bandages. + TopHatPenguin: + - rscdel: Removes part of MOPP suit desc. + Warfan1815: + - rscadd: Added WeyYu Trading Cards (they come in packs of 5, single, or in special + packs of WeyYu Gold) buyable at rec vendor (and/or colony tobacco vendors in + the case of the special cigarette packs) + - imageadd: Added sprites of the WeyYu Trading Cards, trading card packs, and special + WeyYu Gold cigarette packs. +2024-02-25: + Drathek: + - ui: Added the relay ping browser accessed by the tgchat ping to test and use alternative + connections to the server + - ui: Added onConfirmChange prop to Button.Confirm component. + - config: Added CONNECTION_RELAY_PING and CONNECTION_RELAY_CON in the relays.txt + config that is optionally included in config.txt + - rscadd: Welding a barricade will now repeat automatically if it can still be repaired. + - balance: 'Reverted multi-welding change to barricades: All barricades must be + welded one at a time.' + - refactor: Refactored more barricade code. + Huffie56: + - refactor: refactor marine_armor.dm and split it into multiples files. + SabreML: + - bugfix: Fixed 'hidden' action buttons being shown to observing players. + - qol: Made any observers transfer over when a Xenomorph evolves/de-evolves. + SpartanBobby: + - maptweak: Edits to secure storage LV624s detailing + - maptweak: Make a few unabreakable walls on kutjevo breakable, touches the east + botony caves flanks ands removes some ledges from combat routes + - maptweak: Edits to southwest dorms LV522 + - maptweak: Redetails bigred Libary +2024-02-26: + Mister-moon1: + - balance: Reverted flare range buff 7->5 tiles + SpartanBobby: + - maptweak: Edits to southyard sci-annex + harryob: + - admin: marking a ticket now actually stops other people from messing with your + marked ticket + realforest2001: + - admin: Mods can now run votes where appropriate. + - admin: Moved a few event verbs from Admin level to Senior Mod. + - admin: Added a log to creating new bank accounts. +2024-02-27: + BadAtThisGame302: + - mapadd: added a new nightmare insert in the Operations Panic Room on Shivas + - rscadd: Added trucker hats to the Solaris and Trijent Trucker survs. + - rscadd: Added the CMB Marshal jacket to the CMB Marshal. + - imageadd: Differentiated the CMB Deputy and CMB Marshal jackets to accurately + know which is which. Courtesy of AmoryBlaine. + - imageadd: Added new insulated gloves, coveralls (Tan/Red), updated the blue coveralls, + Five Colonist Clothes (Grey/Khaki/Pink/Blue/Green), updated the Orange/Blue/Black + hazard vests and updated the CMB Uniform and Cap. Courtesy of AmoryBlaine. + Drathek: + - bugfix: Fixed a runtime when swapping tools during cade welding + Huffie56: + - rscadd: adding vendor for maintenance technician. + - code_imp: remove some item that maintenance technician spawned with and put them + in is vendor instead. + - maptweak: replaced secured closet by vendor for maintenance technician. + - balance: set base price for B12 to 30 and for the M4 to 20. + - balance: Medic comtech and SL have a discount of 20% for the B12 and M4. (B12=24 + & M4=16=) + - balance: removed the free M4 for FTL but added FTL the option to buy it for 20. + - balance: changed the price of Drop Pouch from 15 to 10. + InsaneRed: + - balance: Oppressor tailhook is now 8 deciseconds instead of 7. + Megaddd: + - balance: health analyzer no longer shows large custom research chem property text + rows. + SabreML: + - qol: Added a failure message when trying to remove a built-in helmet visor. + paulrpg,kugamo: + - imageadd: shuttle rotation sprites added + - maptweak: escape pods now use new floors +2024-02-28: + Birdtalon: + - bugfix: Admin verbs - Hide will now hide Control Mob verb + Drathek: + - bugfix: Fixed the Mass Screenshot Debug verb bounds + LTNTS: + - rscadd: 'brig areas: warden office, MP bunks, starboard hallway, interrogation + room, evidence storage' + - spellcheck: changes brig surgery to brig medical + - code_imp: removed some brig areas from hijack, added other brig areas + SabreML: + - bugfix: Fixed acid pillars shooting nested marines. + Segrain: + - bugfix: FORECON and RMC now can add their frequences to groundside radiotowers. + - bugfix: Fisticuffs attacks are no longer attributed to wrong mob. + - admin: TWE mobs are now properly counted on Who screen. + - spellcheck: Changed names of "resin node" and "resin hole" to "weed node" and + "resin trap" respectfully. + - bugfix: CLF survivors no longer incorrectly get told that they are not hostile + to marines. + Warfan1815: + - spellcheck: Fixed the order of trading cards (as they were accidentally inverted) + Zonespace27: + - bugfix: M707 spotting scope should no longer teleport its user. + - bugfix: M707's attachments should now correctly reflect the map's camouflage. + ihatethisengine: + - balance: Pried open dropship hatches cannot be remotely locked anymore + mullenpaul: + - bugfix: ammo consumption logic for cas tgui correctly counts +2024-02-29: + MobiusWon: + - balance: Readds M4 armor to FTL vendor as a default item + Nanu: + - balance: Removed the ability for Combat Synths in the UPP/CLF ERT to use guns, + as well as the CLF Survivor Synth. + - rscadd: Did a few minor tweaks to help fill in some of the space given by the + removal of guns/ammo from the Combat Synths loadout. + Segrain: + - bugfix: Removed an exploit involving crates. + cuberound: + - balance: omnisentrygun price down to 300, but it goes up 100 points after each + purchase + mullenpaul: + - code_imp: removed duplicated signal code from dropship equipment diff --git a/html/changelogs/archive/2024-03.yml b/html/changelogs/archive/2024-03.yml new file mode 100644 index 000000000000..89c57884d3fd --- /dev/null +++ b/html/changelogs/archive/2024-03.yml @@ -0,0 +1,151 @@ +2024-03-01: + BadAtThisGame302: + - rscadd: Added a new uniform to the Flight Control Operator. + - rscadd: Added a new faction IFF grouping for WY Survs. + - rscadd: Added the ICC and the CL survs to the WY IFF System. + - rscadd: Added the USCM CL to the WY IFF System. + Drathek BadAtThisGame: + - maptweak: Fixed various nightmare inserts that were not spawning; removing or + disabling others that were not in use. + - maptweak: Updated containerroom_xenos insert for Solaris Ridge to include coms + tower (BadAtThisGame) + - code_imp: Nightmare errors are now a runtime. + Huffie56: + - refactor: refactored stage three of black goo and added stage four. + Lok1: + - rscadd: maintenance stations stun when exiting like closets + Vicacrov: + - rscadd: 'You can now order the following in Requisitions: M2C ammo, M56D ammo, + UA 45-F mini sentry ammo, UA 60-FP sentry ammo.' +2024-03-02: + GrrrKitten: + - rscadd: New Deployable Fax Backpack for the Civilian Combat Correspondent + - rscadd: New Wieldable Broadcasting Camera for the Civilian Combat Correspondent + - rscadd: Cameras can no longer be turned off but have to be wielded to take photos + - rscadd: Add's new Combat Correspondent vendor with CC's basic outfits and standard + gear + - bugfix: Fixes numerous camera/photo bugs + - imageadd: Adds new itemstates for the polaroid camera + TheGamerdk: + - refactor: Overwatch console will now save your filter settings + Vicacrov: + - bugfix: Hugger and acid traps no longer activate when they get shuttlecrushed. + Warfan1815: + - bugfix: Fixes the pulling of trading cards out of a pack message being visible + to other people + iloveloopers: + - bugfix: custom flamer chemicals now work on the flamer nozzle +2024-03-03: + Drathek: + - bugfix: Fixed skills not getting set for UPP and CLF synths + - spellcheck: Fixed naming of colony synth gen 1 and gen 2 being swapped + TheGamerdk: + - bugfix: Fixes the lifeboat black turfs of Doom + Vicacrov: + - qol: The Transfer Plasma ability now has a blue, healing overlay and causes a + second-long jitter upon success, to show the recipient that they are being targeted. + - rscadd: Larvae now do the attack animation when nudging. + harryob: + - admin: opening a new ticket via pming now automatically marks the ticket +2024-03-04: + Foxtrot: + - rscadd: Added a CLF Team Leader spawn to the nightmare insert on LV-624 + - spellcheck: Updated the CLF & PMC ship nightmare insert intro text + SabreML: + - rscadd: Made the vehicle bay elevator look and sound better when in use. + - bugfix: Fixed the vehicle bay elevator's front railings not closing when the elevator + was lowered. + - bugfix: Fixed the vehicle bay elevator's docking port falling down the elevator + shaft when it was lowered. + - bugfix: Fixed falling into the vehicle bay elevator shaft teleporting players + to the requisitions elevator. + TheGamerdk: + - rscadd: New View Given Medals button to see what medals you've given to others + - bugfix: Sensor tower no longer ignores half the hive + private-tristan: + - qol: Added balloon alerts to smartgunners + realforest2001: + - code_imp: Plastic Explosives and subtypes now have variable controlled skill checks + rather than hard-code. + - bugfix: MPs can now use Riot Breaching Charges as intended. +2024-03-05: + Segrain: + - admin: Marking tickets properly recognises your ckey. + ZephyrTFA, harryob: + - rscadd: framework for new ert stations ported from tgstation/tgstation#71785, + by ZephyrTFA + - rscadd: distress beacons now start in transit to the ship, and will return to + their own home base. they can't keep going back and forth between the ship and + their base + realforest2001: + - imageadd: Added AI Core themed walls, windows and floors from Zenith. + - imageadd: Added AI Core themed blast doors from Zenith. + - imageadd: Added a few additional AI Core themed floors from myself. + - maptweak: Remapped the AI core to use the new walls/floors. + - rscadd: Added a subtype of AI Core floor that glows orange for thematic lighting. +2024-03-06: + Drathek: + - bugfix: Fixed crashed/hijack dropship not staying in the crashed mode. + Vicacrov: + - rscadd: Added a professor dummy cabinet to the CMO office, containing Professor + DUMMY and its control tablet. It is a tool to teach new medical personnel with. + The cabinet is accessible by the CMO and the SEA only. + harryob: + - admin: byond account age and first time connected to server can now be seen in + the player panel + nauticall: + - mapadd: Revamped the Chinook event map. +2024-03-08: + BadAtThisGame302: + - mapadd: added a new Fiorina nightmare insert with CMB and UA Officers responding + to the distress signal. + Drathek: + - bugfix: Fixes some issues with SMES and reactors connecting to the powernet + Vicacrov: + - spellcheck: Fixed some grammar issues when attacking spiderwebs and when producing + eggs as an eggsac carrier. + realforest2001: + - admin: Adds a remote admin ARES Interface so staff can see the interface remotely. + - admin: Staff can now approve and revoke ARES Access tickets via remote interface + if there are no Working Joes. + sleepynecrons: + - imageadd: changed warrior tail to old one + - imageadd: edited weed overlays to reflect altered tail shape + - imageadd: fixed holes in a couple warrior sprites +2024-03-09: + Drathek: + - bugfix: Fix pod doors no longer updating adjacent tiles + iloveloopers: + - balance: ravager empower range is now 4 tiles +2024-03-11: + Segrain: + - admin: Actually fixed the last case of being warned against interacting with ticket + already marked by you. +2024-03-12: + Drathek: + - bugfix: Fix chestrig not displaying on maps with different skins (e.g. Shivas) + Katskan: + - balance: Medical Skill 4 reduced speed buff from -75% duration to -50% duration + - balance: Medical Skill 3 increased speed buff from -0% duration to -25% duration + Segrain: + - rscadd: Requisitions' vendor now has medical radio keys in stock. + - rscadd: CE and CMO can now get spare departmental headsets from their vendors + to recruit survivors without having to go to Requisitions. + - bugfix: Wiping frequencies off radiotowers no longer breaks them forever. + Stakeyng: + - balance: Drop pouch has more space (2 large (unchanged), 4 medium, 8 small) + ihatethisengine2: + - bugfix: Dropship door prying can now always be performed by queen even if open + or not locked + realforest2001: + - soundadd: Added pda_ping.ogg, sourced from Paradise SS13 mailapproved.ogg + - rscadd: Added notification sounds from certain APOLLO ticket interactions. + - rscadd: People making an access ticket request are now notified of the status + changes. +2024-03-13: + Segrain: + - bugfix: Picking up clothes/armour with somebody else's medal attached no longer + makes the medal fall off (trying to wear them still does). + - bugfix: Doctors calling themselves surgeons now properly get playtime medals. + - bugfix: Playtime medals now use assignments instead of backend paygrade codes + (e.g. "Awarded to Squad Leader John Doe" instead of "Awarded to ME5 John Doe"). diff --git a/icons/effects/spacevines.dmi b/icons/effects/spacevines.dmi index 5f6f19fdd916..bcd121055bf5 100644 Binary files a/icons/effects/spacevines.dmi and b/icons/effects/spacevines.dmi differ diff --git a/icons/mob/hud/actions.dmi b/icons/mob/hud/actions.dmi index 820da22ea5b1..3c3e6dd9de3d 100644 Binary files a/icons/mob/hud/actions.dmi and b/icons/mob/hud/actions.dmi differ diff --git a/icons/mob/hud/actions_xeno.dmi b/icons/mob/hud/actions_xeno.dmi index 6a48235a4f3b..c829821730c2 100644 Binary files a/icons/mob/hud/actions_xeno.dmi and b/icons/mob/hud/actions_xeno.dmi differ diff --git a/icons/mob/hud/hud.dmi b/icons/mob/hud/hud.dmi index c9e4c0c6c23d..507ec0dd485b 100644 Binary files a/icons/mob/hud/hud.dmi and b/icons/mob/hud/hud.dmi differ diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi index 9fc39fb5acd2..eba8a2d0289c 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/belt.dmi b/icons/mob/humans/onmob/belt.dmi index 4cff5838fbbb..453f2e9e2b2d 100644 Binary files a/icons/mob/humans/onmob/belt.dmi and b/icons/mob/humans/onmob/belt.dmi differ diff --git a/icons/mob/humans/onmob/contained/war_correspondent.dmi b/icons/mob/humans/onmob/contained/war_correspondent.dmi deleted file mode 100644 index 38bef4845cb3..000000000000 Binary files a/icons/mob/humans/onmob/contained/war_correspondent.dmi and /dev/null differ diff --git a/icons/mob/humans/onmob/feet.dmi b/icons/mob/humans/onmob/feet.dmi index e8a6e49477c1..fdf6a4a40e80 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 d8fc38fff824..923a417f4f89 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 cfe8b33da4ee..9fc0bc82c123 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 e69c0191042f..ab93b68640fc 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/items_lefthand_0.dmi b/icons/mob/humans/onmob/items_lefthand_0.dmi index b3adba7e980e..bcf2773e8dd7 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 357a94f60cf7..91dc908a8293 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 485e270510d8..d53360ec86a7 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 7bcc772c7375..c5b67e97c2e1 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/suit_0.dmi b/icons/mob/humans/onmob/suit_0.dmi index 3fc9e8e0770b..737b59f6c4af 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 61297e9f98cb..c372b8a6d72c 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/ties.dmi b/icons/mob/humans/onmob/ties.dmi index 7ea2037463bf..87581eb94168 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 79f54b2afebe..9126bfccb699 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 index 12f4d104c2f0..89500b39a596 100644 Binary files a/icons/mob/humans/onmob/uniform_1.dmi and b/icons/mob/humans/onmob/uniform_1.dmi differ diff --git a/icons/mob/xenos/boiler.dmi b/icons/mob/xenos/boiler.dmi index 94d45c459e03..4edcf556eb11 100644 Binary files a/icons/mob/xenos/boiler.dmi and b/icons/mob/xenos/boiler.dmi differ diff --git a/icons/mob/xenos/burrower.dmi b/icons/mob/xenos/burrower.dmi index f546776e6b27..c54684e61bc9 100644 Binary files a/icons/mob/xenos/burrower.dmi and b/icons/mob/xenos/burrower.dmi differ diff --git a/icons/mob/xenos/crusher.dmi b/icons/mob/xenos/crusher.dmi index 014246dbee66..a198cc1d5cd9 100644 Binary files a/icons/mob/xenos/crusher.dmi and b/icons/mob/xenos/crusher.dmi differ diff --git a/icons/mob/xenos/drone.dmi b/icons/mob/xenos/drone.dmi index 937ddaa7b96a..a918d6fb95ab 100644 Binary files a/icons/mob/xenos/drone.dmi and b/icons/mob/xenos/drone.dmi differ diff --git a/icons/mob/xenos/facehugger.dmi b/icons/mob/xenos/facehugger.dmi index 2d8665899331..d44903adf941 100644 Binary files a/icons/mob/xenos/facehugger.dmi and b/icons/mob/xenos/facehugger.dmi differ diff --git a/icons/mob/xenos/warrior.dmi b/icons/mob/xenos/warrior.dmi index d766959d1070..21752fc94e79 100644 Binary files a/icons/mob/xenos/warrior.dmi and b/icons/mob/xenos/warrior.dmi differ diff --git a/icons/mob/xenos/weeds_64x64.dmi b/icons/mob/xenos/weeds_64x64.dmi index 53c971cfe97c..895338f542f9 100644 Binary files a/icons/mob/xenos/weeds_64x64.dmi and b/icons/mob/xenos/weeds_64x64.dmi differ diff --git a/icons/obj/items/chemistry.dmi b/icons/obj/items/chemistry.dmi index 1eaef75bb6fb..77d554fd3b90 100644 Binary files a/icons/obj/items/chemistry.dmi and b/icons/obj/items/chemistry.dmi differ diff --git a/icons/obj/items/cigarettes.dmi b/icons/obj/items/cigarettes.dmi index db313199afb2..89b3ca2195fa 100644 Binary files a/icons/obj/items/cigarettes.dmi and b/icons/obj/items/cigarettes.dmi differ diff --git a/icons/obj/items/clothing/backpacks.dmi b/icons/obj/items/clothing/backpacks.dmi index fa03f0434fb5..13acfa42cc40 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/belts.dmi b/icons/obj/items/clothing/belts.dmi index 946fbfd23cda..2506ee0eb48d 100644 Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi index ae311984e2c3..ff0aa3d08ec8 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 7f4de16bb174..c1910d21b599 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/gloves.dmi b/icons/obj/items/clothing/gloves.dmi index f1fe9b303046..b290778d2d28 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 e9da08f07477..3e2a1dcfc243 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/shoes.dmi b/icons/obj/items/clothing/shoes.dmi index a83cb1574307..c4e01786e579 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 7d67de8e5a2e..5057a89fe278 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 25f3737dfe90..366f2acb3512 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/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi index f5d782e9dc0f..788e24bf46e6 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/drinks.dmi b/icons/obj/items/drinks.dmi index 7623a980e435..1203f3d18edd 100644 Binary files a/icons/obj/items/drinks.dmi and b/icons/obj/items/drinks.dmi differ diff --git a/icons/obj/items/items.dmi b/icons/obj/items/items.dmi index 80daeefc21d5..bf9b64474af5 100644 Binary files a/icons/obj/items/items.dmi and b/icons/obj/items/items.dmi differ diff --git a/icons/obj/items/playing_cards.dmi b/icons/obj/items/playing_cards.dmi index 4db5c94cf063..61b521edddd8 100644 Binary files a/icons/obj/items/playing_cards.dmi and b/icons/obj/items/playing_cards.dmi differ diff --git a/icons/obj/items/reagentfillings.dmi b/icons/obj/items/reagentfillings.dmi index 1514db495e13..4bfd2752482b 100644 Binary files a/icons/obj/items/reagentfillings.dmi and b/icons/obj/items/reagentfillings.dmi differ diff --git a/icons/obj/items/storage.dmi b/icons/obj/items/storage.dmi index 6edbf5b6c7d3..44dfac1c246e 100644 Binary files a/icons/obj/items/storage.dmi and b/icons/obj/items/storage.dmi differ diff --git a/icons/obj/items/surgery_tools.dmi b/icons/obj/items/surgery_tools.dmi index a5df6761d289..c5e30c0c8c2f 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/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi index e60e9463b8a2..8b3b5e0f1c80 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/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi index 4ecb121a7feb..1f0b98967a25 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/guns/lineart.dmi b/icons/obj/items/weapons/guns/lineart.dmi index 212b3988fc02..6c1dae5bd5c1 100644 Binary files a/icons/obj/items/weapons/guns/lineart.dmi and b/icons/obj/items/weapons/guns/lineart.dmi differ diff --git a/icons/obj/structures/closet.dmi b/icons/obj/structures/closet.dmi index e0e50ab9ae09..4377a48779cb 100644 Binary files a/icons/obj/structures/closet.dmi and b/icons/obj/structures/closet.dmi differ diff --git a/icons/obj/structures/doors/blastdoors_shutters.dmi b/icons/obj/structures/doors/blastdoors_shutters.dmi index c5ec97be49b8..8c63d0580922 100644 Binary files a/icons/obj/structures/doors/blastdoors_shutters.dmi and b/icons/obj/structures/doors/blastdoors_shutters.dmi differ diff --git a/icons/obj/structures/doors/dropship1_cargo.dmi b/icons/obj/structures/doors/dropship1_cargo.dmi index 699a3cc13b9f..be517592324f 100644 Binary files a/icons/obj/structures/doors/dropship1_cargo.dmi and b/icons/obj/structures/doors/dropship1_cargo.dmi differ diff --git a/icons/obj/structures/doors/dropship1_pilot.dmi b/icons/obj/structures/doors/dropship1_pilot.dmi index 776882a136e4..0ae55add9966 100644 Binary files a/icons/obj/structures/doors/dropship1_pilot.dmi and b/icons/obj/structures/doors/dropship1_pilot.dmi differ diff --git a/icons/obj/structures/doors/dropship1_side.dmi b/icons/obj/structures/doors/dropship1_side.dmi index 346811438914..7f3298d69975 100644 Binary files a/icons/obj/structures/doors/dropship1_side.dmi and b/icons/obj/structures/doors/dropship1_side.dmi differ diff --git a/icons/obj/structures/doors/dropship2_cargo.dmi b/icons/obj/structures/doors/dropship2_cargo.dmi index 4e2ebfe0e3d2..f6bd23184889 100644 Binary files a/icons/obj/structures/doors/dropship2_cargo.dmi and b/icons/obj/structures/doors/dropship2_cargo.dmi differ diff --git a/icons/obj/structures/doors/dropship2_pilot.dmi b/icons/obj/structures/doors/dropship2_pilot.dmi index 9a77adf39f70..226249be4d84 100644 Binary files a/icons/obj/structures/doors/dropship2_pilot.dmi and b/icons/obj/structures/doors/dropship2_pilot.dmi differ diff --git a/icons/obj/structures/doors/dropship2_side.dmi b/icons/obj/structures/doors/dropship2_side.dmi index 03c0492d7df9..8dfa437d6521 100644 Binary files a/icons/obj/structures/doors/dropship2_side.dmi and b/icons/obj/structures/doors/dropship2_side.dmi differ diff --git a/icons/obj/structures/machinery/airlock_machines.dmi b/icons/obj/structures/machinery/airlock_machines.dmi index 0c4643269cdf..30a5fecccda8 100644 Binary files a/icons/obj/structures/machinery/airlock_machines.dmi and b/icons/obj/structures/machinery/airlock_machines.dmi differ diff --git a/icons/obj/structures/machinery/atmos.dmi b/icons/obj/structures/machinery/atmos.dmi index 39440487ab39..651f2481039a 100644 Binary files a/icons/obj/structures/machinery/atmos.dmi and b/icons/obj/structures/machinery/atmos.dmi differ diff --git a/icons/obj/structures/machinery/big_floodlight.dmi b/icons/obj/structures/machinery/big_floodlight.dmi index b76f63956a2c..3e180d9a620e 100644 Binary files a/icons/obj/structures/machinery/big_floodlight.dmi and b/icons/obj/structures/machinery/big_floodlight.dmi differ diff --git a/icons/obj/structures/machinery/biogenerator.dmi b/icons/obj/structures/machinery/biogenerator.dmi index c65a9571b097..373b40e7d40d 100644 Binary files a/icons/obj/structures/machinery/biogenerator.dmi and b/icons/obj/structures/machinery/biogenerator.dmi differ diff --git a/icons/obj/structures/machinery/computer3.dmi b/icons/obj/structures/machinery/computer3.dmi index 047417f303f3..a00ec12ddfa3 100644 Binary files a/icons/obj/structures/machinery/computer3.dmi and b/icons/obj/structures/machinery/computer3.dmi differ diff --git a/icons/obj/structures/machinery/drone_fab.dmi b/icons/obj/structures/machinery/drone_fab.dmi index 3a13a8684ac8..785e46c90001 100644 Binary files a/icons/obj/structures/machinery/drone_fab.dmi and b/icons/obj/structures/machinery/drone_fab.dmi differ diff --git a/icons/obj/structures/machinery/fusion_eng.dmi b/icons/obj/structures/machinery/fusion_eng.dmi index 4d42baac7255..9bd902420151 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/machinery/geothermal.dmi b/icons/obj/structures/machinery/geothermal.dmi index a3cd64c37421..6d3d5af4ef88 100644 Binary files a/icons/obj/structures/machinery/geothermal.dmi and b/icons/obj/structures/machinery/geothermal.dmi differ diff --git a/icons/obj/structures/machinery/library.dmi b/icons/obj/structures/machinery/library.dmi index 00e90fc7babf..3efeeef8b9f5 100644 Binary files a/icons/obj/structures/machinery/library.dmi and b/icons/obj/structures/machinery/library.dmi differ diff --git a/icons/obj/structures/machinery/meter.dmi b/icons/obj/structures/machinery/meter.dmi index 5f3051d8c05f..7cc681511108 100644 Binary files a/icons/obj/structures/machinery/meter.dmi and b/icons/obj/structures/machinery/meter.dmi differ diff --git a/icons/obj/structures/machinery/power.dmi b/icons/obj/structures/machinery/power.dmi index 76ca47047b63..aae3f3d69c13 100644 Binary files a/icons/obj/structures/machinery/power.dmi and b/icons/obj/structures/machinery/power.dmi differ diff --git a/icons/obj/structures/machinery/robotics.dmi b/icons/obj/structures/machinery/robotics.dmi index c53e7823cab7..5939f215b744 100644 Binary files a/icons/obj/structures/machinery/robotics.dmi and b/icons/obj/structures/machinery/robotics.dmi differ diff --git a/icons/obj/structures/machinery/virology.dmi b/icons/obj/structures/machinery/virology.dmi index 2f2f92602196..50a45753b784 100644 Binary files a/icons/obj/structures/machinery/virology.dmi and b/icons/obj/structures/machinery/virology.dmi differ diff --git a/icons/obj/structures/mortar.dmi b/icons/obj/structures/mortar.dmi index 7888d146357d..16e821c3d192 100644 Binary files a/icons/obj/structures/mortar.dmi and b/icons/obj/structures/mortar.dmi differ diff --git a/icons/obj/structures/props/almayer_props64.dmi b/icons/obj/structures/props/almayer_props64.dmi index c45b37d6ef15..f47f19be9081 100644 Binary files a/icons/obj/structures/props/almayer_props64.dmi and b/icons/obj/structures/props/almayer_props64.dmi differ diff --git a/icons/obj/structures/tables.dmi b/icons/obj/structures/tables.dmi index bee6f34772be..39783bfd8b4d 100644 Binary files a/icons/obj/structures/tables.dmi and b/icons/obj/structures/tables.dmi differ diff --git a/icons/turf/dropship.dmi b/icons/turf/dropship.dmi index b3cf56eb4549..e4261344ebba 100644 Binary files a/icons/turf/dropship.dmi and b/icons/turf/dropship.dmi differ diff --git a/icons/turf/dropship2.dmi b/icons/turf/dropship2.dmi index 754c20d9ead4..53a44fe75b71 100644 Binary files a/icons/turf/dropship2.dmi and b/icons/turf/dropship2.dmi differ diff --git a/icons/turf/ert_shuttle.dmi b/icons/turf/ert_shuttle.dmi index befed9f547b7..39018d4f1611 100644 Binary files a/icons/turf/ert_shuttle.dmi and b/icons/turf/ert_shuttle.dmi differ diff --git a/icons/turf/escapepods.dmi b/icons/turf/escapepods.dmi index 089db3cd3e19..96aa67789bb1 100644 Binary files a/icons/turf/escapepods.dmi and b/icons/turf/escapepods.dmi differ diff --git a/icons/turf/floors/aicore.dmi b/icons/turf/floors/aicore.dmi new file mode 100644 index 000000000000..0396b9bef241 Binary files /dev/null and b/icons/turf/floors/aicore.dmi differ diff --git a/icons/turf/ground_map.dmi b/icons/turf/ground_map.dmi index 1970ad966106..944293c2c423 100644 Binary files a/icons/turf/ground_map.dmi and b/icons/turf/ground_map.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index 14ff9b3d0ef2..c995c03de342 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/icons/turf/walls/almayer_aicore.dmi b/icons/turf/walls/almayer_aicore.dmi new file mode 100644 index 000000000000..5ce7aaf2022f Binary files /dev/null and b/icons/turf/walls/almayer_aicore.dmi differ diff --git a/icons/turf/walls/almayer_aicore_white.dmi b/icons/turf/walls/almayer_aicore_white.dmi new file mode 100644 index 000000000000..721cd7c63f28 Binary files /dev/null and b/icons/turf/walls/almayer_aicore_white.dmi differ diff --git a/icons/turf/walls/window_frames.dmi b/icons/turf/walls/window_frames.dmi index e6dee0c29189..5fbe51615e98 100644 Binary files a/icons/turf/walls/window_frames.dmi and b/icons/turf/walls/window_frames.dmi differ diff --git a/icons/turf/walls/windows.dmi b/icons/turf/walls/windows.dmi index a3f2fd1d4198..2904c8d5fa9a 100644 Binary files a/icons/turf/walls/windows.dmi and b/icons/turf/walls/windows.dmi differ diff --git a/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json b/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json index 54c13d429c0e..156b291fb203 100644 --- a/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json +++ b/maps/Nightmare/maps/FOP_v3_Sciannex/nightmare.json @@ -1,3 +1,10 @@ [ - { "type": "map_sprinkle", "path": "sprinkles/" } + { "type": "map_sprinkle", "path": "sprinkles/" }, +{ + "type": "map_insert", + "landmark": "riot_control", + "chance": 0.5, + "path": "standalone/riot_in_progress.dmm", + "when": { "riot_in_progress": "true" } +} ] diff --git a/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json b/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json index fe51488c7066..217ac5a8cb38 100644 --- a/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json +++ b/maps/Nightmare/maps/FOP_v3_Sciannex/scenario.json @@ -1 +1,9 @@ -[] +[ + { + "type": "pick", "name": "Riot Control", + "choices": [ + { "weight": 4, "type": "def", "values": { "riot_in_progress": "none" } }, + { "weight": 2, "type": "def", "values": { "riot_in_progress": "true" } } + ] + } +] diff --git a/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json b/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json index 9c3008696d3a..301ffa337115 100644 --- a/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json +++ b/maps/Nightmare/maps/Ice_Colony_v3/nightmare.json @@ -96,5 +96,12 @@ "landmark": "lz2-north", "path": "lz2-variations/north/full-closed.dmm", "when": { "lz2-north": "full" } - } + }, + { + "type": "map_insert", + "landmark": "panic_room", + "chance": 0.5, + "path": "standalone/panic_room_hold.dmm", + "when": { "panic_room": "full" } + } ] diff --git a/maps/Nightmare/maps/Ice_Colony_v3/scenario.json b/maps/Nightmare/maps/Ice_Colony_v3/scenario.json index 414bbcb15abc..4b4eb7b6b92f 100644 --- a/maps/Nightmare/maps/Ice_Colony_v3/scenario.json +++ b/maps/Nightmare/maps/Ice_Colony_v3/scenario.json @@ -8,6 +8,13 @@ { "weight": 1, "type": "def", "values": { "lz2-southwest": "half", "lz2-south-gate": "none", "lz2-southeast": "half", "lz2-eastsouth": "full", "lz2-southeast-gate": "full", "lz2-east": "none", "lz2-east-gate": "half", "lz2-north": "none"} }, { "weight": 1, "type": "def", "values": { "lz2-southwest": "full", "lz2-south-gate": "none", "lz2-southeast": "half", "lz2-eastsouth": "none", "lz2-southeast-gate": "open", "lz2-east": "full", "lz2-east-gate": "none", "lz2-north": "open"} } ] +}, +{ + "type": "pick", "name": "Panic Room", + "choices": [ + { "weight": 10, "type": "def", "values": { "panic_room": "none"} }, + { "weight": 3, "type": "def", "values": { "panic_room": "full"} } + ] } ] diff --git a/maps/Nightmare/maps/LV624/nightmare.json b/maps/Nightmare/maps/LV624/nightmare.json index 8f81a61c16de..0fe51643177b 100644 --- a/maps/Nightmare/maps/LV624/nightmare.json +++ b/maps/Nightmare/maps/LV624/nightmare.json @@ -6,6 +6,13 @@ "path": "standalone/clfship.dmm", "when": { "lvevent": "fallen_ship" } }, + { + "type": "map_insert", + "landmark": "corporatedome", + "chance": 0.5, + "path": "standalone/corporatedome.dmm", + "when": { "lvevent": "asset_protection" } + }, { "type": "map_insert", "landmark": "lv-skylight", diff --git a/maps/Nightmare/maps/LV624/scenario.json b/maps/Nightmare/maps/LV624/scenario.json index 3c8051a4eb17..6880cb542f2a 100644 --- a/maps/Nightmare/maps/LV624/scenario.json +++ b/maps/Nightmare/maps/LV624/scenario.json @@ -13,7 +13,8 @@ { "weight": 2, "type": "def", "values": { "lvevent": "none" } }, { "weight": 4, "type": "def", "values": { "lvevent": "last_stand" } }, { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "bridge" } }, - { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "right" } } + { "weight": 2, "type": "def", "values": { "lvevent": "fallen_ship", "mainpath": "right" } }, + { "weight": 2, "type": "def", "values": { "lvevent": "asset_protection", "mainpath": "left" } } ] } ] diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index 30ef6b33d69a..b605e7115c10 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -8,11 +8,6 @@ icon_state = "pwall" }, /area/space) -"aac" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/outside/n) "aad" = ( /turf/open/mars_cave{ icon_state = "mars_cave_2" @@ -165,6 +160,12 @@ icon_state = "dark" }, /area/bigredv2/outside/space_port) +"aaB" = ( +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "aaC" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, @@ -571,23 +572,11 @@ icon_state = "darkgreen2" }, /area/bigredv2/outside/space_port) -"abL" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/outside/n) "abM" = ( /turf/open/mars_cave{ icon_state = "mars_cave_5" }, /area/bigredv2/caves_north) -"abN" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) "abO" = ( /turf/open/mars_cave, /area/bigredv2/caves_north) @@ -629,33 +618,21 @@ /obj/structure/window_frame/solaris, /turf/open/floor/plating, /area/bigredv2/outside/space_port) -"abU" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/outside/n) "abV" = ( /turf/open/mars_cave{ icon_state = "mars_cave_11" }, /area/bigredv2/caves_north) -"abW" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) -"abX" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) "abY" = ( +/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 = 4; + health = 25000 + }, /turf/open/mars_cave{ icon_state = "mars_cave_7" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_north) "abZ" = ( /obj/structure/machinery/light{ dir = 1 @@ -671,11 +648,16 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/space_port) -"acc" = ( +"acb" = ( +/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 = 4; + health = 25000 + }, /turf/open/mars_cave{ - icon_state = "mars_cave_15" + icon_state = "mars_cave_2" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_north) "acd" = ( /obj/effect/landmark/good_item, /turf/open/floor/plating, @@ -711,11 +693,6 @@ icon_state = "warnplate" }, /area/bigredv2/outside/space_port) -"ack" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/caves_lambda) "acl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, @@ -818,12 +795,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"acE" = ( -/obj/structure/machinery/botany, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/marshal_office) "acF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -831,11 +802,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"acG" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, -/area/bigredv2/outside/n) "acH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -1289,22 +1255,6 @@ icon_state = "wood" }, /area/bigredv2/outside/marshal_office) -"adX" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) -"adY" = ( -/obj/structure/closet/secure_closet/detective, -/obj/item/weapon/gun/smg/fp9000, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) "adZ" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/xenobiology) @@ -3010,7 +2960,8 @@ /turf/open/floor, /area/bigredv2/outside/marshal_office) "aiN" = ( -/obj/structure/machinery/computer/prisoner, +/obj/structure/surface/table, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/marshal_office) "aiO" = ( @@ -3308,11 +3259,6 @@ icon_state = "bcircuit" }, /area/bigredv2/outside/marshal_office) -"ajD" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/outside/n) "ajE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -3502,25 +3448,12 @@ icon_state = "bcircuit" }, /area/bigredv2/outside/marshal_office) -"akf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akg" = ( -/obj/effect/landmark/static_comms/net_one, +"akh" = ( /turf/open/floor{ - icon_state = "bcircuit" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/marshal_office) +/area/bigredv2/outside/telecomm/n_cave) "aki" = ( /obj/structure/surface/table, /obj/item/clothing/mask/gas, @@ -3577,8 +3510,7 @@ /turf/open/floor, /area/bigredv2/outside/marshal_office) "akr" = ( -/obj/structure/surface/table, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/structure/machinery/computer/prisoner, /turf/open/floor, /area/bigredv2/outside/marshal_office) "aks" = ( @@ -3725,26 +3657,12 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) -"akN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, +"akP" = ( /turf/open/floor{ - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 6; - icon_state = "red" + dir = 8; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/marshal_office) +/area/bigredv2/outside/telecomm/n_cave) "akQ" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/door/window/brigdoor/southright, @@ -3820,6 +3738,14 @@ icon_state = "whitepurplefull" }, /area/bigredv2/caves/lambda/xenobiology) +"ald" = ( +/obj/structure/surface/table/reinforced, +/obj/item/book/manual/research_and_development, +/turf/open/floor{ + dir = 4; + icon_state = "whitepurple" + }, +/area/bigredv2/caves/lambda/xenobiology) "ale" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -3889,9 +3815,12 @@ }, /area/bigredv2/outside/nw) "alp" = ( -/obj/structure/machinery/light, +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + dir = 1; + name = "\improper Marshal Office Evidence Room" + }, /turf/open/floor{ - icon_state = "bcircuit" + icon_state = "delivery" }, /area/bigredv2/outside/marshal_office) "alr" = ( @@ -3944,15 +3873,6 @@ }, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"aly" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/barricade/handrail{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "alz" = ( /obj/structure/bed/chair{ dir = 4 @@ -4259,18 +4179,6 @@ /obj/effect/landmark/survivor_spawner, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"amv" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/barricade/handrail{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "amw" = ( /obj/structure/bed/chair{ dir = 4 @@ -4572,11 +4480,6 @@ /obj/effect/spawner/random/powercell, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"ann" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/outside/n) "ano" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Lambda Lab Maintenance Storage" @@ -4605,11 +4508,14 @@ }, /area/bigredv2/outside/medical) "ant" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" +/obj/structure/window/framed/solaris, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Dormitories"; + name = "\improper Dormitories Shutters" }, -/area/bigredv2/outside/ne) +/turf/open/floor/plating, +/area/bigredv2/outside/general_offices) "anu" = ( /obj/structure/machinery/light{ dir = 4 @@ -4774,10 +4680,13 @@ /turf/closed/wall/solaris, /area/bigredv2/outside/hydroponics) "anU" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" +/obj/structure/window/framed/solaris, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Greenhouse"; + name = "\improper Greenhouse Shutters" }, -/area/bigredv2/caves_lambda) +/turf/open/floor/plating, +/area/bigredv2/outside/hydroponics) "anV" = ( /obj/item/reagent_container/spray/pepper, /turf/open/floor{ @@ -4809,9 +4718,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/medical) -"aoa" = ( -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/caves_north) "aob" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/virology) @@ -4916,29 +4822,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"aor" = ( -/obj/item/clothing/under/darkred, -/obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aos" = ( -/obj/structure/surface/rack, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aot" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/brown, -/obj/structure/machinery/washing_machine{ - pixel_y = 13 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "aou" = ( /turf/open/floor/plating, /area/bigredv2/outside/general_offices) @@ -5173,12 +5056,6 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/general_offices) -"apf" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "apg" = ( /obj/item/clothing/under/lightbrown, /turf/open/floor{ @@ -5672,7 +5549,7 @@ }, /area/bigredv2/outside/medical) "aqv" = ( -/obj/structure/machinery/cm_vending/sorted/medical/no_access, +/obj/structure/bed, /turf/open/floor{ icon_state = "white" }, @@ -5690,20 +5567,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/library) -"aqy" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/door_control{ - id = "Medical"; - name = "Storm Shutters"; - pixel_y = 32 - }, -/obj/structure/bed, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "aqz" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5712,15 +5575,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aqB" = ( -/obj/structure/machinery/computer/crew{ - density = 0; - pixel_y = 16 - }, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) "aqC" = ( /obj/structure/surface/table, /turf/open/floor{ @@ -5728,33 +5582,6 @@ icon_state = "whitebluefull" }, /area/bigredv2/outside/medical) -"aqE" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) -"aqF" = ( -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) -"aqG" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "aqH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -5877,22 +5704,6 @@ icon_state = "elevatorshaft" }, /area/bigredv2/caves/lambda/breakroom) -"aqZ" = ( -/obj/structure/noticeboard{ - desc = "A board for pinning important items upon."; - dir = 1; - name = "trophy board"; - pixel_y = 30 - }, -/obj/item/XenoBio/Chitin{ - anchored = 1; - pixel_y = 27 - }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, -/area/bigredv2/caves/lambda/breakroom) "ara" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp{ @@ -5970,7 +5781,7 @@ }, /area/bigredv2/outside/medical) "ark" = ( -/obj/structure/bed, +/obj/structure/bed/roller, /turf/open/floor{ icon_state = "white" }, @@ -5986,15 +5797,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"arn" = ( -/obj/structure/machinery/computer/med_data{ - density = 0; - pixel_y = 16 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "arp" = ( /turf/open/mars{ icon_state = "mars_dirt_3" @@ -6006,36 +5808,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/n) -"arr" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, -/area/bigredv2/outside/n) "ars" = ( /obj/structure/bed/chair{ dir = 1 }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"art" = ( -/obj/structure/surface/table, -/obj/item/clothing/under/lightbrown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aru" = ( -/obj/structure/surface/table, -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"arv" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_10" - }, -/area/bigredv2/outside/n) "arw" = ( /obj/structure/machinery/power/apc, /turf/open/floor/plating, @@ -6058,14 +5836,6 @@ icon_state = "dark" }, /area/bigredv2/outside/general_offices) -"arz" = ( -/obj/structure/prop/vehicles/crawler{ - icon_state = "crawler_covered_bed" - }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_lambda) "arA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, @@ -6212,14 +5982,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"arV" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "arW" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ @@ -6339,12 +6101,6 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/outside/virology) -"asm" = ( -/obj/item/device/flashlight/lantern, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) "asn" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/armor/vest, @@ -6489,13 +6245,6 @@ icon_state = "whitegreenfull" }, /area/bigredv2/outside/medical) -"asG" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "asH" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -6724,17 +6473,8 @@ icon_state = "whitepurplecorner" }, /area/bigredv2/outside/medical) -"atp" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "atq" = ( -/obj/structure/bed/roller, +/obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor{ icon_state = "white" }, @@ -6745,42 +6485,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"ats" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/obj/structure/surface/table, -/obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) -"att" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) -"atu" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) -"atv" = ( -/obj/structure/morgue{ - dir = 2 - }, -/turf/open/floor{ - dir = 9; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "atw" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -6978,18 +6682,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/medical) -"atW" = ( -/obj/effect/decal/cleanable/blood{ - icon_state = "gib6" - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ - name = "\improper Medical Clinic" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "atX" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood{ @@ -7069,7 +6761,7 @@ }, /area/bigredv2/outside/general_offices) "aui" = ( -/obj/structure/surface/table/woodentable, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "wood" }, @@ -7141,6 +6833,12 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/breakroom) +"aus" = ( +/turf/open/floor{ + dir = 10; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "aut" = ( /turf/open/floor{ dir = 4; @@ -7166,7 +6864,8 @@ /area/bigredv2/caves/lambda/breakroom) "auw" = ( /obj/structure/showcase{ - icon_state = "mechfab1" + icon = 'icons/obj/structures/machinery/research.dmi'; + icon_state = "d_analyzer_la" }, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -7268,13 +6967,6 @@ icon_state = "whitepurplecorner" }, /area/bigredv2/outside/medical) -"auJ" = ( -/obj/structure/bed/roller, -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) "auK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -7304,51 +6996,12 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"auO" = ( -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) "auP" = ( /turf/open/floor{ dir = 9; icon_state = "whiteblue" }, /area/bigredv2/outside/medical) -"auR" = ( -/obj/structure/morgue{ - dir = 2 - }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auS" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/morgue{ - dir = 2 - }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auT" = ( -/obj/structure/surface/table, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "auU" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -7369,12 +7022,6 @@ "auW" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/outside/c) -"auX" = ( -/obj/structure/barricade/handrail, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "auY" = ( /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) @@ -7647,11 +7294,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"avK" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, -/area/bigredv2/outside/n) "avM" = ( /obj/structure/machinery/light{ dir = 8 @@ -7791,11 +7433,6 @@ icon_state = "purple" }, /area/bigredv2/caves/lambda/research) -"awf" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/caves_lambda) "awg" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ @@ -7823,14 +7460,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"awj" = ( -/obj/structure/machinery/door/airlock/almayer/medical{ - name = "\improper Medical Clinic Morgue" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "awk" = ( /obj/structure/machinery/medical_pod/sleeper, /turf/open/floor{ @@ -7843,13 +7472,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"awm" = ( -/obj/structure/machinery/optable, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "awn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, @@ -7914,19 +7536,6 @@ /obj/effect/landmark/crap_item, /turf/open/floor, /area/bigredv2/outside/general_offices) -"awx" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) -"awy" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/ne) "awz" = ( /obj/item/ashtray/bronze{ pixel_x = -7 @@ -8145,12 +7754,6 @@ icon_state = "grimy" }, /area/bigredv2/outside/dorms) -"axf" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor{ - icon_state = "grimy" - }, -/area/bigredv2/outside/dorms) "axg" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -8188,12 +7791,6 @@ /obj/structure/barricade/wooden, /turf/open/floor, /area/bigredv2/outside/general_offices) -"axm" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, -/area/bigredv2/outside/n) "axn" = ( /obj/structure/window/reinforced/toughened{ dir = 1; @@ -8314,20 +7911,6 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"axD" = ( -/obj/structure/morgue{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"axE" = ( -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "axF" = ( /obj/structure/barricade/wooden, /obj/structure/barricade/wooden, @@ -8643,11 +8226,6 @@ icon_state = "wood" }, /area/bigredv2/outside/general_offices) -"ayz" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/outside/ne) "ayA" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light, @@ -8809,12 +8387,6 @@ "ayV" = ( /turf/open/floor/plating, /area/bigredv2/outside/medical) -"ayW" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) "ayX" = ( /obj/effect/landmark/good_item, /turf/open/floor, @@ -8855,16 +8427,6 @@ icon_state = "wood" }, /area/bigredv2/outside/general_offices) -"aze" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/ne) "azf" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -9065,11 +8627,13 @@ /turf/open/floor/plating, /area/bigredv2/outside/engineering) "azF" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/effect/decal/warning_stripes{ + icon_state = "W-corner" + }, /turf/open/mars_cave{ - icon_state = "mars_dirt_4" + icon_state = "mars_cave_2" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_lambda) "azG" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -9119,9 +8683,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"azR" = ( -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/w) "azS" = ( /obj/structure/machinery/vending/snack{ icon_state = "snack-broken"; @@ -9161,10 +8722,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"azX" = ( -/obj/structure/machinery/camera/autoname, -/turf/open/floor, -/area/bigredv2/outside/dorms) "azY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -9192,32 +8749,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"aAc" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - name = "\improper Bar Maintenance" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/bar) -"aAd" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ - dir = 1; - name = "\improper Marshal Office Evidence Room" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/marshal_office) -"aAe" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/bar) "aAf" = ( /obj/structure/machinery/light{ dir = 1 @@ -9227,11 +8758,6 @@ "aAg" = ( /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aAh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/outside/ne) "aAi" = ( /turf/open/floor{ dir = 8; @@ -9368,12 +8894,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aAD" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "aAE" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; @@ -9383,16 +8903,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/dorms) -"aAF" = ( -/obj/structure/window_frame/solaris, -/turf/open/floor/plating, -/area/bigredv2/outside/marshal_office) -"aAG" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 8 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/bar) "aAH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -9695,13 +9205,6 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/eta/research) -"aBx" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/ne) "aBy" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -9848,24 +9351,6 @@ /obj/item/trash/candy, /turf/open/floor, /area/bigredv2/outside/dorms) -"aBV" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aBW" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -9881,12 +9366,6 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/dorms) -"aBY" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/ne) "aBZ" = ( /obj/structure/bed/stool, /turf/open/floor{ @@ -9909,28 +9388,17 @@ }, /area/bigredv2/outside/ne) "aCd" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" +/turf/open/mars{ + icon_state = "mars_dirt_3" }, /area/bigredv2/outside/ne) "aCe" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/eta/xenobiology) "aCf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"aCg" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Greenhouse Storage" - }, +/obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor{ - icon_state = "delivery" + icon_state = "whitegreenfull" }, /area/bigredv2/outside/hydroponics) "aCh" = ( @@ -10180,12 +9648,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aCQ" = ( -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor{ - icon_state = "grimy" - }, -/area/bigredv2/outside/dorms) "aCR" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -10217,22 +9679,11 @@ icon_state = "delivery" }, /area/bigredv2/outside/bar) -"aCV" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"aCW" = ( +/turf/open/mars{ + icon_state = "mars_dirt_8" }, /area/bigredv2/outside/ne) -"aCX" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aCY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -10257,18 +9708,17 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aDc" = ( -/obj/structure/bookcase{ - density = 0 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aDd" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "wood" }, @@ -10282,14 +9732,17 @@ }, /area/bigredv2/outside/library) "aDf" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 7; + pixel_y = 14 }, -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Library Backroom" +/obj/structure/window{ + dir = 8 }, /turf/open/floor{ - icon_state = "delivery" + icon_state = "wood" }, /area/bigredv2/outside/library) "aDg" = ( @@ -10301,15 +9754,10 @@ }, /area/bigredv2/outside/library) "aDh" = ( -/obj/structure/machinery/light{ +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/bed/chair/comfy{ dir = 4 }, -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, /turf/open/floor{ icon_state = "wood" }, @@ -10354,11 +9802,6 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) -"aDo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate/random/barrel, -/turf/open/floor, -/area/bigredv2/outside/cargo) "aDp" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, @@ -10587,16 +10030,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"aDR" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/outside/ne) -"aDT" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/outside/ne) "aDU" = ( /obj/structure/closet/athletic_mixed, /obj/structure/machinery/light{ @@ -10667,19 +10100,6 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) -"aEf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/crap_item, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "aEg" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/popcorn, @@ -10699,18 +10119,17 @@ /turf/open/floor/plating, /area/bigredv2/caves/eta/living) "aEk" = ( -/obj/structure/surface/table/woodentable, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, /obj/effect/landmark/objective_landmark/close, /turf/open/floor{ - icon_state = "wood" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/library) +/area/bigredv2/outside/ne) "aEl" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 +/obj/structure/surface/table, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 4 }, /turf/open/floor{ icon_state = "wood" @@ -10811,13 +10230,6 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"aEB" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "aEC" = ( /obj/effect/decal/cleanable/blood/gibs/body, /turf/open/floor{ @@ -10880,13 +10292,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor, /area/bigredv2/outside/dorms) -"aEL" = ( -/obj/structure/machinery/camera/autoname{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/dorms) "aEM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood{ @@ -10929,15 +10334,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aES" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aET" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/shovel/spade, @@ -10953,13 +10349,6 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "aEW" = ( /obj/item/tool/hatchet, /obj/effect/decal/cleanable/dirt, @@ -11277,29 +10666,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aFQ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFR" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFS" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, -/area/bigredv2/outside/ne) "aFT" = ( /obj/structure/surface/table/woodentable, /obj/item/device/radio, @@ -11353,16 +10719,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aFZ" = ( -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/caves_north) "aGa" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -11406,16 +10762,6 @@ icon_state = "wood" }, /area/bigredv2/outside/library) -"aGf" = ( -/obj/structure/machinery/door_control{ - id = "Library"; - name = "Storm Shutters"; - pixel_x = 32 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aGg" = ( /obj/structure/machinery/light/built{ dir = 4 @@ -11656,30 +11002,10 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aGK" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aGL" = ( /obj/structure/machinery/biogenerator, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aGN" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" - }, -/area/bigredv2/outside/library) -"aGO" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" - }, -/area/bigredv2/outside/library) "aGP" = ( /obj/structure/filingcabinet/medical, /obj/effect/landmark/objective_landmark/science, @@ -11691,6 +11017,9 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/power/apc{ + dir = 1 + }, /turf/open/floor{ icon_state = "wood" }, @@ -11995,19 +11324,9 @@ icon_state = "delivery" }, /area/bigredv2/outside/hydroponics) -"aHM" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, -/area/bigredv2/outside/library) "aHN" = ( /obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aHO" = ( /obj/structure/bed/chair/wood/normal, @@ -12324,16 +11643,11 @@ /obj/structure/machinery/vending/snack, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aIG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, -/area/bigredv2/outside/library) "aIH" = ( /obj/structure/surface/table/woodentable, /obj/item/paper, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "wood" }, @@ -12688,7 +12002,6 @@ /turf/open/floor, /area/bigredv2/outside/hydroponics) "aJB" = ( -/obj/structure/machinery/vending/cola, /obj/structure/machinery/light{ dir = 4 }, @@ -12696,15 +12009,6 @@ icon_state = "yellowfull" }, /area/bigredv2/outside/hydroponics) -"aJC" = ( -/obj/structure/machinery/alarm{ - dir = 4; - pixel_x = -30 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aJD" = ( /obj/structure/surface/table/woodentable, /obj/item/toy/dice/d20, @@ -13051,16 +12355,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aKA" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/outside/ne) -"aKB" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, -/area/bigredv2/outside/ne) "aKC" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -13122,16 +12416,19 @@ }, /area/bigredv2/outside/hydroponics) "aKK" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) -"aKL" = ( -/obj/structure/bookcase{ - density = 0 - }, /obj/structure/machinery/light{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"aKL" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "wood" }, @@ -13140,19 +12437,15 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aKN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aKO" = ( /obj/structure/bed/chair/wood/normal{ @@ -13309,7 +12602,7 @@ /area/bigredv2/outside/office_complex) "aLh" = ( /obj/effect/landmark/nightmare{ - insert_tag = "lz1north" + insert_tag = "lz1north_mining" }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/space_port) @@ -13331,14 +12624,6 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor, /area/bigredv2/outside/cargo) -"aLn" = ( -/obj/structure/surface/table, -/obj/structure/machinery/light, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "aLo" = ( /obj/structure/surface/table, /obj/item/device/radio, @@ -13471,17 +12756,8 @@ }, /area/bigredv2/outside/hydroponics) "aLF" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, -/area/bigredv2/outside/library) -"aLG" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aLH" = ( /turf/open/floor/bluegrid{ @@ -14429,16 +13705,10 @@ /area/bigredv2/outside/hydroponics) "aOi" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aOj" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aOk" = ( /turf/open/mars{ @@ -14840,46 +14110,46 @@ }, /area/bigredv2/outside/hydroponics) "aPk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, +/obj/structure/bed/chair/wood/normal, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aPl" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aPm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/library) "aPn" = ( /obj/effect/landmark/crap_item, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" + icon_state = "wood" }, /area/bigredv2/outside/library) "aPo" = ( +/obj/structure/surface/table/woodentable, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/machinery/computer/emails{ + dir = 4 + }, /turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" + icon_state = "wood" }, /area/bigredv2/outside/library) "aPp" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, /turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" + icon_state = "wood" }, /area/bigredv2/outside/library) "aPq" = ( @@ -15307,8 +14577,8 @@ /turf/open/floor, /area/bigredv2/outside/hydroponics) "aQr" = ( -/obj/structure/machinery/camera/autoname{ - dir = 4 +/obj/structure/bookcase{ + icon_state = "book-5" }, /turf/open/floor{ icon_state = "wood" @@ -15316,12 +14586,25 @@ /area/bigredv2/outside/library) "aQs" = ( /obj/structure/machinery/light, +/obj/structure/window{ + dir = 4 + }, +/obj/structure/surface/table/woodentable, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10"; + pixel_y = 11 + }, /turf/open/floor{ icon_state = "wood" }, /area/bigredv2/outside/library) "aQt" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/surface/table, +/obj/structure/window, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 4 + }, /turf/open/floor{ icon_state = "wood" }, @@ -17494,6 +16777,17 @@ icon_state = "warnwhite" }, /area/bigredv2/outside/virology) +"aWj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 10; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "aWk" = ( /turf/open/floor{ dir = 8; @@ -17556,6 +16850,11 @@ icon_state = "whitebluefull" }, /area/bigredv2/outside/general_store) +"aWy" = ( +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "aWz" = ( /obj/structure/showcase{ icon_state = "bus" @@ -17948,14 +17247,6 @@ "aXH" = ( /turf/open/floor/plating, /area/bigredv2/outside/cargo) -"aXJ" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - name = "\improper General Store Storage" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/cargo) "aXL" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -18057,18 +17348,6 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/cargo) -"aYe" = ( -/obj/structure/window/framed/solaris, -/obj/structure/curtain, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) -"aYf" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "aYh" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -18436,27 +17715,6 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 9; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"aZq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZr" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -18584,18 +17842,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZP" = ( -/obj/structure/machinery/camera/autoname, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZQ" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, @@ -18807,10 +18053,6 @@ icon_state = "chapel" }, /area/bigredv2/outside/chapel) -"bax" = ( -/obj/structure/closet/emcloset, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bay" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -19424,13 +18666,6 @@ icon_state = "white" }, /area/bigredv2/outside/virology) -"bcp" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bcq" = ( /obj/effect/landmark/crap_item, /turf/open/floor{ @@ -19438,21 +18673,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"bcr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) -"bcs" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bct" = ( /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..."; @@ -19674,6 +18894,10 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) +"bcW" = ( +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "bcX" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, @@ -19707,14 +18931,6 @@ icon_state = "rampbottom" }, /area/bigredv2/outside/chapel) -"bdf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "loadingarea" - }, -/area/bigredv2/outside/cargo) "bdg" = ( /turf/open/floor{ icon_state = "delivery" @@ -19955,19 +19171,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/w) -"beb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/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{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/w) "bec" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor, @@ -19977,9 +19180,9 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "bee" = ( -/obj/structure/cargo_container/kelland/left, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/obj/structure/closet/emcloset, +/turf/open/floor, +/area/bigredv2/outside/cargo) "bef" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -20080,22 +19283,12 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"bew" = ( -/obj/structure/cargo_container/kelland/right, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "bex" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bey" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bez" = ( /obj/structure/machinery/autolathe, /turf/open/floor, @@ -20206,19 +19399,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"beR" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/w) -"beS" = ( -/obj/structure/lz_sign/solaris_sign, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "beT" = ( /obj/structure/machinery/light{ dir = 8 @@ -20294,34 +19474,6 @@ icon_state = "dark" }, /area/bigredv2/outside/office_complex) -"bff" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) -"bfg" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - dir = 1; - name = "\improper General Store Maintenance" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/cargo) -"bfh" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) "bfi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -20445,15 +19597,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bfA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) "bfB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -20521,8 +19664,8 @@ }, /area/bigredv2/outside/office_complex) "bfK" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 8 +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 }, /turf/open/floor{ icon_state = "dark" @@ -20577,18 +19720,6 @@ icon_state = "whiteyellowfull" }, /area/bigredv2/outside/office_complex) -"bfT" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) -"bfU" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "bfV" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, @@ -20597,13 +19728,6 @@ icon_state = "bot" }, /area/bigredv2/outside/cargo) -"bfW" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bfX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/trashcart, @@ -20753,10 +19877,12 @@ }, /area/bigredv2/outside/office_complex) "bgq" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" +/obj/structure/closet/emcloset, +/turf/open/floor{ + dir = 1; + icon_state = "bot" }, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/cargo) "bgr" = ( /obj/structure/closet/secure_closet/security, /obj/effect/landmark/objective_landmark/close, @@ -20838,13 +19964,6 @@ icon_state = "whiteyellowfull" }, /area/bigredv2/outside/office_complex) -"bgC" = ( -/obj/structure/closet/emcloset, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) "bgD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -21015,31 +20134,17 @@ }, /area/bigredv2/caves/mining) "bhb" = ( -/obj/structure/machinery/light, /turf/open/floor{ - dir = 1; - icon_state = "bot" + icon_state = "floor4" }, /area/bigredv2/outside/cargo) -"bhc" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) -"bhd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, +"bhe" = ( +/obj/structure/machinery/light, /turf/open/floor{ dir = 1; - icon_state = "asteroidfloor" + icon_state = "bot" }, -/area/bigredv2/outside/space_port_lz2) -"bhe" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/cargo) "bhf" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -21156,9 +20261,11 @@ }, /area/bigredv2/outside/space_port_lz2) "bhD" = ( -/obj/structure/cargo_container/arious/leftmid, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "floor4" + }, +/area/bigredv2/outside/cargo) "bhE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/light{ @@ -21166,16 +20273,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bhH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "bhI" = ( /obj/item/stack/sheet/metal/med_small_stack, /turf/open/mars_cave{ @@ -21188,28 +20285,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/c) -"bhM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5; - pixel_x = -1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"bhN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 10; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "bhO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -21238,15 +20313,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/c) -"bhS" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "bhT" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -21318,14 +20384,9 @@ dir = 4 }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "floor4" }, -/area/bigredv2/outside/space_port_lz2) -"bio" = ( -/obj/structure/cargo_container/arious/rightmid, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/cargo) "biq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -21487,10 +20548,6 @@ /obj/item/stack/cable_coil/cut, /turf/open/floor/plating, /area/bigredv2/outside/c) -"biX" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/bigredv2/caves/lambda/xenobiology) "biY" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -21528,27 +20585,10 @@ /obj/structure/machinery/camera/autoname/lz_camera, /turf/open/floor/plating, /area/bigredv2/outside/space_port_lz2) -"bjh" = ( -/obj/item/reagent_container/spray/cleaner, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) "bji" = ( /obj/item/reagent_container/glass/bottle/tramadol, /turf/open/floor, /area/bigredv2/outside/cargo) -"bjj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjk" = ( /obj/effect/landmark/crap_item, /turf/open/floor{ @@ -21588,25 +20628,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bjt" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) -"bjv" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5; - pixel_x = -1 - }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjw" = ( /turf/open/floor{ dir = 1; @@ -21684,11 +20705,14 @@ }, /area/bigredv2/outside/s) "bjJ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" + dir = 4; + icon_state = "redcorner" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/office_complex) "bjK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -21727,13 +20751,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bjP" = ( -/obj/structure/cargo_container/arious/right, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) -"bjQ" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/space_port_lz2) "bjR" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -21744,15 +20761,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/cargo) -"bjX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjY" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -21789,14 +20797,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/s) -"bke" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "bkf" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_y = -32 @@ -21823,10 +20823,6 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/se) -"bkk" = ( -/obj/structure/cargo_container/horizontal/blue/top, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "bkl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, @@ -22056,19 +21052,6 @@ icon_state = "white" }, /area/bigredv2/caves/lambda/xenobiology) -"blb" = ( -/obj/structure/surface/table, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) -"blc" = ( -/obj/structure/surface/table, -/obj/item/clothing/ears/earmuffs, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bld" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, @@ -23130,14 +22113,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"boD" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) "boG" = ( /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/almayer{ @@ -23388,13 +22363,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bpv" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) "bpx" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_4" @@ -23629,11 +22597,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bqe" = ( -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) "bqf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -23643,17 +22606,6 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) -"bqg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bqk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/alarm{ @@ -23815,17 +22767,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"brc" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/outside/n) -"brd" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "bre" = ( /obj/structure/bed/chair, /turf/open/floor{ @@ -23972,10 +22913,6 @@ "brE" = ( /turf/open/floor/greengrid, /area/bigredv2/outside/filtration_cave_cas) -"brG" = ( -/obj/structure/cargo_container/horizontal/blue/middle, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "brI" = ( /obj/structure/sign/safety/galley{ pixel_x = -32 @@ -24389,12 +23326,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"btv" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "btw" = ( /turf/open/floor/plating, /area/bigredv2/outside/lz2_south_cas) @@ -24503,13 +23434,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/s) -"bup" = ( -/obj/item/stack/sheet/wood, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_north) "buu" = ( /turf/open/mars_cave{ icon_state = "mars_cave_17" @@ -24540,11 +23464,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/s) -"buP" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/outside/n) "buQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -27653,6 +26572,11 @@ /obj/item/tool/hand_labeler, /turf/open/floor, /area/bigred/ground/garage_workshop) +"bGC" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_5" + }, +/area/bigredv2/outside/n) "bGL" = ( /turf/open/floor{ dir = 1; @@ -27677,6 +26601,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"bJQ" = ( +/turf/open/mars{ + icon_state = "mars_dirt_10" + }, +/area/bigredv2/outside/n) "bJS" = ( /obj/structure/largecrate/random/barrel/green, /obj/effect/decal/cleanable/dirt, @@ -27732,6 +26661,14 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) +"bOZ" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "bPy" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -27748,11 +26685,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) +"bQh" = ( +/turf/open/mars{ + icon_state = "mars_dirt_11" + }, +/area/bigredv2/outside/n) "bQi" = ( /turf/open/floor{ icon_state = "darkish" }, /area/bigredv2/caves/lambda/virology) +"bQG" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_6" + }, +/area/bigredv2/caves_lambda) "bRd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -27780,11 +26727,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"bSc" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" +"bRV" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor{ + icon_state = "white" }, -/area/bigredv2/outside/ne) +/area/bigredv2/outside/virology) "bSw" = ( /obj/structure/cable{ icon_state = "1-4" @@ -27797,6 +26745,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"bSy" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "bTm" = ( /obj/structure/surface/table, /obj/item/folder/black_random, @@ -27813,6 +26770,17 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves_se) +"bVX" = ( +/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 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_13" + }, +/area/bigredv2/caves_north) "bWk" = ( /turf/open/floor{ dir = 1; @@ -27835,17 +26803,6 @@ /obj/item/reagent_container/spray/cleaner, /turf/open/floor, /area/bigredv2/outside/cargo) -"bYp" = ( -/obj/effect/decal/cleanable/blood/oil, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "bYW" = ( /obj/structure/pipes/vents/pump, /turf/open/floor{ @@ -27886,6 +26843,21 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/carpet, /area/bigredv2/outside/admin_building) +"ccI" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating{ + dir = 4; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "ccP" = ( /obj/structure/surface/table, /obj/effect/spawner/random/bomb_supply, @@ -27895,15 +26867,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) -"ccU" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - dir = 1; - name = "\improper Medical Clinic Power Station" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "cdA" = ( /turf/open/mars_cave{ icon_state = "mars_cave_5" @@ -27922,6 +26885,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"ceF" = ( +/obj/structure/surface/table/woodentable, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "cfr" = ( /obj/item/explosive/grenade/baton{ dir = 8 @@ -27930,18 +26900,17 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"cfS" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "cgt" = ( /turf/open/floor{ icon_state = "delivery" }, /area/bigredv2/outside/dorms) +"cgO" = ( +/turf/open/floor{ + dir = 5; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "chq" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -27949,9 +26918,10 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_lambda) -"chy" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" +"ciG" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave{ + icon_state = "mars_cave_7" }, /area/bigredv2/outside/n) "ciY" = ( @@ -28021,18 +26991,15 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) -"cnO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "freezerfloor" +"cnG" = ( +/obj/structure/platform{ + dir = 1 }, -/area/bigredv2/outside/dorms) -"coc" = ( -/turf/open/mars{ - icon_state = "mars_dirt_12" +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/ne) +/area/bigredv2/outside/telecomm/n_cave) "coT" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor{ @@ -28046,6 +27013,14 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_se) +"cpQ" = ( +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "cqj" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -28058,6 +27033,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"crl" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "crv" = ( /obj/structure/surface/table, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -28069,11 +27053,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"crO" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, -/area/bigredv2/outside/sw) "crQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" @@ -28125,15 +27104,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) -"cwk" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/space_port_lz2) "cxi" = ( /obj/structure/machinery/light{ dir = 4 @@ -28161,6 +27131,12 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"cAf" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_north) "cAs" = ( /turf/open/floor{ dir = 1; @@ -28172,6 +27148,15 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"cBq" = ( +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "cCr" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -28194,6 +27179,28 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"cGc" = ( +/obj/structure/machinery/botany, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/marshal_office) +"cGi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) +"cGv" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "containerroom_xenos" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/nw/ceiling) "cGQ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ @@ -28229,6 +27236,22 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) +"cHz" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/lz2_cave) +"cHH" = ( +/turf/open/mars{ + icon_state = "mars_dirt_11" + }, +/area/bigredv2/outside/ne) "cHI" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ @@ -28295,6 +27318,15 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"cLq" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/barricade/handrail{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/marshal_office) "cLZ" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/close, @@ -28344,6 +27376,12 @@ icon_state = "delivery" }, /area/bigredv2/caves/eta/research) +"cPg" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) "cPZ" = ( /obj/structure/window/framed/solaris/reinforced, /obj/effect/decal/cleanable/dirt, @@ -28361,6 +27399,20 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"cQO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor, +/area/bigredv2/outside/general_offices) +"cRb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "cRP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter, @@ -28403,16 +27455,6 @@ icon_state = "mars_cave_11" }, /area/bigredv2/caves_se) -"cVT" = ( -/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/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) "cVY" = ( /turf/open/mars, /area/bigredv2/outside/space_port_lz2) @@ -28424,6 +27466,12 @@ icon_state = "wood" }, /area/bigredv2/outside/admin_building) +"cYy" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 8 + }, +/turf/open/floor/plating, +/area/bigredv2/outside/bar) "cYI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -28484,6 +27532,11 @@ icon_state = "delivery" }, /area/bigredv2/outside/c) +"dgH" = ( +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_north) "dhN" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/almayer{ @@ -28500,13 +27553,6 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) -"dhT" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "dij" = ( /obj/structure/fence, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -28524,15 +27570,27 @@ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) -"dlr" = ( +"dka" = ( +/obj/effect/landmark/crap_item, /turf/open/mars_cave{ - icon_state = "mars_cave_13" + icon_state = "mars_dirt_4" }, /area/bigredv2/outside/n) +"dkY" = ( +/obj/structure/platform, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "dmB" = ( /obj/item/tool/pickaxe, /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"dmO" = ( +/obj/structure/machinery/fuelcell_recycler, +/turf/open/floor/plating, +/area/bigredv2/caves/eta/storage) "dnV" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -28612,10 +27670,15 @@ }, /area/bigredv2/caves/lambda/research) "dtX" = ( +/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 = 4; + health = 25000 + }, /turf/open/mars_cave{ icon_state = "mars_cave_14" }, -/area/bigredv2/outside/n) +/area/bigredv2/caves_north) "duo" = ( /obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/floor/plating, @@ -28626,14 +27689,6 @@ }, /turf/open/gm/river, /area/bigredv2/outside/engineering) -"duI" = ( -/obj/structure/machinery/door/airlock/almayer/command/colony{ - name = "\improper Operations" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/admin_building) "dvB" = ( /obj/item/ore/coal{ pixel_x = 9; @@ -28650,19 +27705,17 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) -"dwe" = ( -/obj/item/tool/warning_cone{ - pixel_x = 16; - pixel_y = 14 +"dws" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 }, -/turf/open/mars, -/area/bigredv2/outside/n) -"dwg" = ( -/obj/structure/cargo_container/arious/rightmid, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +/turf/open/floor/plating{ + dir = 6; + icon_state = "warnplate" }, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/telecomm/warehouse) "dwL" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -28701,11 +27754,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"dzs" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, -/area/bigredv2/outside/n) "dzY" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -28716,6 +27764,11 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating, /area/bigredv2/outside/lz2_south_cas) +"dAX" = ( +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "dBa" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 9 @@ -28782,6 +27835,10 @@ /obj/item/weapon/twohanded/folded_metal_chair, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"dCU" = ( +/obj/structure/cargo_container/horizontal/blue/middle, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "dEf" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/light, @@ -28856,6 +27913,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dIH" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "dJc" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -28894,13 +27960,6 @@ icon_state = "mars_cave_5" }, /area/bigredv2/outside/lambda_cave_cas) -"dMT" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/ne) "dNd" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ @@ -28925,11 +27984,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"dNH" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, -/area/bigredv2/outside/n) "dOu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -28942,6 +27996,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dOZ" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/n) "dPb" = ( /obj/item/tool/pickaxe/drill, /turf/open/mars_cave{ @@ -28965,6 +28025,9 @@ icon_state = "mars_cave_23" }, /area/bigredv2/caves/mining) +"dPJ" = ( +/turf/closed/wall/r_wall/unmeltable, +/area/bigredv2/outside/c) "dQw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -28977,6 +28040,11 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"dQR" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) "dQZ" = ( /obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt, @@ -28993,12 +28061,12 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"dTa" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +"dTi" = ( +/obj/item/stack/sheet/wood, /turf/open/mars_cave{ icon_state = "mars_cave_9" }, -/area/bigredv2/outside/ne) +/area/bigredv2/caves_north) "dUj" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -29015,11 +28083,27 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves/mining) +"dVp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "dVA" = ( /turf/open/mars_cave{ icon_state = "mars_cave_5" }, /area/bigredv2/outside/lz2_south_cas) +"dVM" = ( +/obj/structure/largecrate/supply/supplies, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "dWd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -29028,11 +28112,6 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) -"dWg" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, -/area/bigredv2/outside/ne) "dWl" = ( /obj/structure/closet/toolcloset, /turf/open/floor{ @@ -29057,6 +28136,11 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/eta) +"dXK" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_13" + }, +/area/bigredv2/outside/n) "dZO" = ( /obj/effect/decal/cleanable/blood{ dir = 8; @@ -29129,6 +28213,15 @@ icon_state = "asteroidfloor" }, /area/bigred/ground/garage_workshop) +"efK" = ( +/obj/structure/machinery/computer/crew{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/medical) "egI" = ( /obj/item/ore, /obj/item/ore{ @@ -29151,14 +28244,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"eiS" = ( -/obj/structure/closet/coffin/woodencrate, -/obj/effect/decal/cleanable/dirt, +"eiR" = ( +/obj/structure/window, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "wood" }, -/area/bigredv2/outside/n) +/area/bigredv2/outside/library) "eju" = ( /obj/item/ore{ pixel_x = 9; @@ -29186,6 +28277,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"elh" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_6" + }, +/area/bigredv2/outside/n) "els" = ( /obj/structure/ore_box, /turf/open/mars_cave{ @@ -29232,6 +28328,14 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"enJ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ + name = "\improper Dormitories Restroom" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/dorms) "eoU" = ( /turf/open/floor/almayer{ dir = 1; @@ -29249,18 +28353,18 @@ icon_state = "mars_cave_9" }, /area/bigredv2/caves/mining) -"erf" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +"eqr" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ + dir = 1; + name = "\improper Dormitories Restroom" }, -/obj/structure/machinery/camera/autoname{ - dir = 1 +/turf/open/floor{ + icon_state = "delivery" }, -/turf/open/floor, /area/bigredv2/outside/dorms) "ers" = ( /obj/effect/landmark/nightmare{ - insert_tag = "etatunnel" + insert_tag = "etatunnel_open" }, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) @@ -29347,13 +28451,6 @@ icon_state = "asteroidwarning" }, /area/bigred/ground/garage_workshop) -"eyA" = ( -/obj/structure/largecrate/random/barrel/true_random, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "ezQ" = ( /obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/plating{ @@ -29361,12 +28458,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"eAG" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_cave_20" - }, -/area/bigredv2/caves_north) "eAU" = ( /turf/open/floor{ dir = 4; @@ -29415,6 +28506,16 @@ icon_state = "mars_cave_5" }, /area/bigredv2/caves_lambda) +"eFr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "eGa" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /turf/open/mars_cave{ @@ -29440,6 +28541,14 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) +"eGv" = ( +/obj/structure/window, +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "eGM" = ( /turf/open/floor{ icon_state = "darkyellowcorners2" @@ -29451,15 +28560,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) -"eIB" = ( -/obj/item/tool/warning_cone{ - pixel_y = 20 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "eIN" = ( /obj/structure/machinery/power/port_gen/pacman, /obj/effect/decal/cleanable/dirt, @@ -29485,6 +28585,13 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/general_offices) +"eKm" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "eKU" = ( /obj/structure/machinery/door_control{ id = "filtration"; @@ -29523,6 +28630,13 @@ icon_state = "mars_cave_23" }, /area/bigredv2/caves_lambda) +"eNe" = ( +/obj/item/clothing/under/darkred, +/obj/structure/surface/rack, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "eNx" = ( /obj/effect/landmark/nightmare{ insert_tag = "lambda-cave-mushroom" @@ -29552,17 +28666,17 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"eRe" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "eRI" = ( /turf/open/floor{ icon_state = "delivery" }, /area/bigredv2/outside/c) -"eRW" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "crashlanding-eva" - }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/bar) "eSm" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -29603,7 +28717,7 @@ /area/bigredv2/caves/mining) "eUT" = ( /obj/effect/landmark/nightmare{ - insert_tag = "viro-rock" + insert_tag = "viro-rock_open" }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/virology) @@ -29625,9 +28739,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"eVZ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" +"eVM" = ( +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, /area/bigredv2/outside/n) "eWd" = ( @@ -29640,12 +28756,36 @@ /obj/effect/decal/cleanable/dirt, /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"eWv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "eWy" = ( /obj/effect/decal/cleanable/dirt, /obj/item/moneybag, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"eWB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/recharge_station, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) +"eWE" = ( +/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 = 4; + health = 25000 + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/caves_north) "eWG" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/close, @@ -29664,6 +28804,27 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) +"eYy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor{ + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"eYH" = ( +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/dorms) +"eYK" = ( +/obj/item/reagent_container/spray/cleaner, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "floor4" + }, +/area/bigredv2/outside/cargo) "eZw" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -29674,11 +28835,17 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"fbF" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" +"fbf" = ( +/turf/open/mars{ + icon_state = "mars_dirt_8" }, -/area/bigredv2/outside/n) +/area/bigredv2/outside/sw) +"fbB" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "crashlanding-eva" + }, +/turf/closed/wall/solaris, +/area/bigredv2/outside/bar) "fcG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset, @@ -29696,15 +28863,6 @@ "fdy" = ( /turf/open/floor, /area/bigredv2/caves/eta/living) -"fdC" = ( -/obj/structure/barricade/handrail{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "feN" = ( /turf/open/floor{ dir = 9; @@ -29804,6 +28962,14 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/caves/eta/living) +"fni" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Medical Clinic Morgue" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/medical) "fnv" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/carpet, @@ -29813,14 +28979,6 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) -"foj" = ( -/obj/structure/largecrate/random/barrel/true_random, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "foB" = ( /turf/open/mars_cave{ icon_state = "mars_cave_22" @@ -29843,10 +29001,21 @@ }, /turf/closed/wall/wood, /area/bigredv2/caves/mining) -"fpt" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/gm/river, -/area/bigredv2/outside/c) +"fsT" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_7" + }, +/area/bigredv2/outside/n) +"fsY" = ( +/turf/open/mars{ + icon_state = "mars_dirt_6" + }, +/area/bigredv2/outside/space_port_lz2) +"ftY" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_7" + }, +/area/bigredv2/outside/sw) "fus" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -29921,6 +29090,12 @@ icon_state = "mars_cave_10" }, /area/bigredv2/outside/lz1_telecomm_cas) +"fxZ" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_lambda) "fyp" = ( /obj/structure/machinery/power/apc, /turf/open/floor{ @@ -29954,15 +29129,18 @@ icon_state = "dark" }, /area/bigredv2/outside/filtration_plant) -"fBU" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, -/area/bigredv2/caves_north) "fCb" = ( /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) +"fDf" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Greenhouse Storage" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/hydroponics) "fDr" = ( /turf/open/floor{ dir = 1; @@ -29977,6 +29155,11 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) +"fEE" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_15" + }, +/area/bigredv2/outside/ne) "fFG" = ( /obj/structure/largecrate/random/barrel, /turf/open/mars_cave{ @@ -29988,11 +29171,25 @@ icon_state = "mars_dirt_3" }, /area/bigredv2/outside/space_port_lz2) +"fGK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/caves_north) "fGN" = ( /turf/open/mars_cave{ icon_state = "mars_cave_20" }, /area/bigredv2/caves_research) +"fHw" = ( +/obj/structure/barricade/handrail, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "fHF" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -30010,6 +29207,17 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/eta) +"fKO" = ( +/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 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_5" + }, +/area/bigredv2/caves_north) "fKW" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -30019,6 +29227,15 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/caves/eta/living) +"fKY" = ( +/obj/structure/window, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "fLj" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -30078,11 +29295,6 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/xenobiology) -"fNh" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/caves_lambda) "fOc" = ( /turf/open/mars_cave{ icon_state = "mars_cave_3" @@ -30127,6 +29339,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"fPe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "fPB" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -30180,6 +29399,17 @@ icon_state = "mars_cave_10" }, /area/bigredv2/outside/lz2_west_cas) +"fTg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "fUk" = ( /obj/structure/surface/table, /obj/item/clothing/head/hardhat, @@ -30201,13 +29431,17 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) -"fVm" = ( +"fVt" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +/obj/structure/surface/table, +/obj/structure/machinery/light{ + dir = 4 }, -/area/bigredv2/outside/n) +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "fWw" = ( /turf/open/jungle{ bushes_spawn = 0; @@ -30224,6 +29458,13 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"fXR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "fYH" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) @@ -30268,10 +29509,11 @@ icon_state = "bcircuitoff" }, /area/bigredv2/caves/lambda/research) -"gbt" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" +"gbA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, /area/bigredv2/outside/ne) "gcR" = ( @@ -30289,10 +29531,21 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"gdK" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_6" + }, +/area/bigredv2/outside/n) "gdN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars, /area/bigredv2/caves/eta/xenobiology) +"gej" = ( +/turf/open/floor{ + dir = 6; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "geC" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" @@ -30321,6 +29574,14 @@ icon_state = "whitepurple" }, /area/bigredv2/caves/lambda/research) +"ghh" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "gio" = ( /turf/open/mars_cave, /area/bigredv2/outside/filtration_cave_cas) @@ -30381,14 +29642,6 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_lambda) -"gnk" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ - name = "\improper Dormitories Restroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "gnR" = ( /obj/structure/largecrate/random/barrel/red, /obj/effect/decal/cleanable/dirt, @@ -30415,6 +29668,14 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"gpA" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "gpB" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" @@ -30454,17 +29715,18 @@ icon_state = "mars_dirt_4" }, /area/space) -"gtG" = ( -/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 +"gts" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_5" +/obj/structure/morgue{ + dir = 2 }, -/area/bigredv2/caves_north) +/turf/open/floor{ + dir = 1; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "gtX" = ( /turf/open/mars_cave, /area/bigredv2/caves_se) @@ -30501,11 +29763,6 @@ icon_state = "elevatorshaft" }, /area/bigredv2/caves/lambda/breakroom) -"gwb" = ( -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, -/area/bigredv2/outside/ne) "gwg" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -30552,11 +29809,20 @@ }, /area/bigredv2/caves/mining) "gAE" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" +/obj/structure/sink{ + dir = 1; + pixel_y = -9 }, +/turf/open/floor, /area/bigredv2/outside/hydroponics) +"gAX" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/office_complex) "gCx" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -30598,13 +29864,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"gGC" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "gGO" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ @@ -30635,11 +29894,22 @@ icon_state = "mars_cave_4" }, /area/bigredv2/caves_virology) -"gKG" = ( +"gMj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, /turf/open/floor{ - icon_state = "asteroidwarning" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/c) +"gMC" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/bomb_supply, +/turf/open/floor, +/area/bigredv2/outside/cargo) "gML" = ( /obj/structure/machinery/power/turbine, /turf/open/floor{ @@ -30657,10 +29927,6 @@ "gNH" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves) -"gOf" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/bigredv2/caves/eta/storage) "gOr" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -30668,6 +29934,22 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"gPb" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 3 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"gPc" = ( +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "gPh" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/door/airlock/almayer/secure/colony{ @@ -30685,14 +29967,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"gQP" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/turf/open/floor, -/area/bigredv2/outside/cargo) +"gQj" = ( +/obj/structure/cargo_container/horizontal/blue/top, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "gSg" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -30756,6 +30034,9 @@ icon_state = "darkblue2" }, /area/bigredv2/caves/eta/research) +"gWD" = ( +/turf/closed/wall/solaris, +/area/bigredv2/outside/space_port_lz2) "gWU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -30793,13 +30074,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) -"gYM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "gZc" = ( /obj/structure/machinery/light{ dir = 8 @@ -30812,6 +30086,14 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"hah" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "loadingarea" + }, +/area/bigredv2/outside/cargo) "haT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -30820,6 +30102,15 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"hbx" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/roller, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "hcb" = ( /obj/effect/landmark/hunter_secondary, /turf/open/mars_cave{ @@ -30844,12 +30135,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"hdJ" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/caves_north) "heG" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -30863,19 +30148,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"heI" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/outside/n) -"heU" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) "hfB" = ( /obj/item/ore{ pixel_x = -5; @@ -30885,6 +30157,18 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"hgr" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/ne) +"hgO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_14" + }, +/area/bigredv2/outside/n) "hgT" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_7" @@ -30896,6 +30180,12 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"hhX" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor/plating, +/area/bigredv2/outside/bar) "hiP" = ( /obj/structure/sign/safety/one{ pixel_x = 16 @@ -31005,13 +30295,11 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_plant) -"hul" = ( +"hto" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/tool/hatchet, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) +/obj/structure/machinery/vending/cola, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "hvQ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -31048,6 +30336,11 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"hyC" = ( +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/warehouse) "hzg" = ( /obj/structure/cable{ icon_state = "1-6" @@ -31100,6 +30393,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hDK" = ( +/obj/structure/largecrate/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "hEz" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -31121,6 +30422,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hFv" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "hFP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/item_pool_spawner/survivor_ammo, @@ -31129,10 +30439,40 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hFV" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/n) +"hGv" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) +"hHa" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "hHb" = ( /obj/structure/sign/safety/ladder, /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/oob) +"hHG" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/bigredv2/caves/eta/storage) +"hJH" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "hKl" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/drinks/bottle/goldschlager, @@ -31205,6 +30545,11 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_se) +"hQO" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_14" + }, +/area/bigredv2/outside/n) "hRy" = ( /obj/structure/surface/rack, /turf/open/floor/plating{ @@ -31242,6 +30587,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hVP" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "bot" + }, +/area/bigredv2/outside/cargo) "hWa" = ( /turf/open/floor{ icon_state = "dark" @@ -31302,11 +30656,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"iaq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "iaC" = ( /obj/structure/platform, /turf/open/gm/river, @@ -31326,16 +30675,38 @@ "ibP" = ( /turf/open/floor/plating, /area/bigredv2/caves_research) +"ibV" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "ibZ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_16" }, /area/bigredv2/caves_sw) +"ice" = ( +/obj/structure/surface/table, +/obj/item/clothing/ears/earmuffs, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "icQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" }, /area/bigredv2/caves_sw) +"idn" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/n) "idM" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor{ @@ -31343,12 +30714,18 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"idO" = ( +"idT" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/caves_lambda) +"ied" = ( +/obj/structure/surface/table, +/obj/item/clothing/under/brown, /turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" + icon_state = "freezerfloor" }, -/area/bigredv2/outside/virology) +/area/bigredv2/outside/general_offices) "iep" = ( /obj/structure/surface/rack, /obj/item/clothing/head/hardhat/dblue{ @@ -31395,13 +30772,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"igi" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "igM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -31429,6 +30799,15 @@ /obj/structure/window/framed/solaris, /turf/open/floor/plating, /area/bigredv2/outside/engineering) +"iis" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "ijU" = ( /obj/structure/prop/almayer/cannon_cables{ name = "\improper Cables" @@ -31442,9 +30821,13 @@ icon_state = "floor1" }, /area/bigredv2/oob) -"ilN" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/n) +"ilH" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "ilO" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 @@ -31506,6 +30889,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"ipo" = ( +/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/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_north) "iqF" = ( /obj/structure/prop/invuln/minecart_tracks, /turf/open/mars_cave{ @@ -31522,18 +30915,6 @@ /obj/effect/spawner/random/technology_scanner, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"isk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/vending/snack, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"isr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "itL" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, @@ -31546,6 +30927,11 @@ icon_state = "mars_cave_16" }, /area/bigredv2/outside/lz1_north_cas) +"ivW" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/ne) "iwG" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -31558,6 +30944,15 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"ixN" = ( +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "ixR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -31566,17 +30961,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/lambda_cave_cas) -"iyd" = ( -/obj/structure/machinery/computer/general_air_control{ - dir = 8; - pixel_y = 6 - }, -/obj/structure/surface/table, -/turf/open/floor{ - dir = 4; - icon_state = "darkyellow2" - }, -/area/bigredv2/outside/filtration_plant) "iyY" = ( /turf/open/mars_cave{ icon_state = "mars_cave_13" @@ -31624,6 +31008,19 @@ }, /turf/open/gm/river, /area/bigredv2/outside/engineering) +"iCu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/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{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/w) "iDJ" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -31684,9 +31081,22 @@ "iGK" = ( /turf/open/mars_cave, /area/bigredv2/caves_sw) +"iGY" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "mars_cave_6" + }, +/area/bigredv2/caves_north) +"iHe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "iIp" = ( /obj/effect/landmark/nightmare{ - insert_tag = "chapel" + insert_tag = "chapel_cult" }, /turf/closed/wall/solaris, /area/bigredv2/outside/chapel) @@ -31720,15 +31130,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"iNE" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/warehouse) "iNR" = ( /turf/open/gm/river, /area/bigredv2/outside/engineering) -"iOL" = ( +"iOR" = ( /obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/n) +/area/bigredv2/outside/ne) "iPE" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 @@ -31754,9 +31171,10 @@ }, /area/bigredv2/caves_research) "iRf" = ( +/obj/structure/fence, /turf/open/floor{ dir = 1; - icon_state = "asteroidwarning" + icon_state = "asteroidfloor" }, /area/bigredv2/outside/telecomm/n_cave) "iRw" = ( @@ -31774,11 +31192,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) -"iSc" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, -/area/bigredv2/outside/n) "iSz" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -31788,6 +31201,17 @@ /obj/structure/barricade/handrail, /turf/open/floor/plating/plating_catwalk, /area/bigredv2/outside/engineering) +"iTN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/plating{ + dir = 10; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "iUe" = ( /turf/open/floor{ dir = 6; @@ -31816,13 +31240,22 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"iXL" = ( -/obj/effect/decal/cleanable/dirt, +"iXs" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/prop/server_equipment/yutani_server{ + density = 0; + pixel_y = 16 + }, /turf/open/floor{ dir = 1; icon_state = "asteroidfloor" }, /area/bigredv2/outside/telecomm/n_cave) +"iXx" = ( +/turf/open/mars_cave, +/area/bigredv2/outside/n) "iXN" = ( /obj/item/ore{ pixel_x = -7; @@ -31855,12 +31288,6 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) -"iZh" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "iZi" = ( /obj/structure/machinery/light, /turf/open/floor{ @@ -31871,6 +31298,15 @@ /obj/structure/surface/rack, /turf/open/floor, /area/bigredv2/caves) +"jay" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "jbU" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -31885,7 +31321,7 @@ /area/bigredv2/caves/mining) "jcn" = ( /obj/effect/landmark/nightmare{ - insert_tag = "tcomms" + insert_tag = "tcomms_open" }, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) @@ -31915,17 +31351,11 @@ icon_state = "mars_dirt_3" }, /area/bigredv2/outside/s) -"jfn" = ( -/obj/structure/window/framed/solaris/reinforced, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Engineering"; - name = "\improper Engineering Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"jeO" = ( +/turf/open/mars{ + icon_state = "mars_dirt_13" }, -/area/bigredv2/outside/engineering) +/area/bigredv2/outside/n) "jfr" = ( /turf/open/floor{ dir = 5; @@ -31989,14 +31419,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"jku" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/tool/surgery/hemostat, -/obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "jkO" = ( /obj/item/explosive/grenade/high_explosive/frag, /turf/open/mars_cave, @@ -32008,11 +31430,17 @@ /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"jmY" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" +"jlS" = ( +/turf/open/floor{ + dir = 10; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/sw) +/area/bigredv2/outside/space_port_lz2) +"jmD" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_6" + }, +/area/bigredv2/outside/ne) "jna" = ( /obj/item/prop/alien/hugger, /turf/open/floor{ @@ -32045,16 +31473,19 @@ dir = 5 }, /obj/effect/landmark/nightmare{ - insert_tag = "dorms" + insert_tag = "dorms_party" }, /turf/open/floor, /area/bigredv2/outside/dorms) -"joi" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - icon_state = "bcircuit" +"jph" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, -/area/bigredv2/outside/telecomm/warehouse) +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor, +/area/bigredv2/outside/dorms) "jpT" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -32078,6 +31509,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"jrN" = ( +/obj/structure/closet/crate/trashcart, +/turf/open/floor{ + icon_state = "asteroidplating" + }, +/area/bigredv2/outside/space_port_lz2) "jsL" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -32093,17 +31530,6 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves/mining) -"jtX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "juo" = ( /obj/structure/machinery/light{ dir = 8 @@ -32113,17 +31539,12 @@ icon_state = "podhatch" }, /area/bigredv2/caves/lambda/research) -"jvh" = ( -/obj/structure/largecrate/supply, +"jvP" = ( +/obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "wood" }, -/area/bigredv2/outside/n) -"jvt" = ( -/obj/structure/cargo_container/horizontal/blue/bottom, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/library) "jwj" = ( /obj/structure/platform/shiva{ dir = 8 @@ -32182,6 +31603,24 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"jAR" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/marshal_office) +"jAX" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_17" + }, +/area/bigredv2/caves_lambda) +"jBo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/woodentable, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "jBq" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ @@ -32221,6 +31660,12 @@ icon_state = "mars_cave_10" }, /area/bigredv2/caves_virology) +"jDo" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "jDy" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -32306,6 +31751,12 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"jJO" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_13" + }, +/area/bigredv2/caves_north) "jKI" = ( /obj/structure/platform_decoration/shiva{ dir = 8 @@ -32336,11 +31787,15 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"jMB" = ( +"jNE" = ( +/obj/structure/machinery/washing_machine, +/obj/structure/machinery/washing_machine{ + pixel_y = 13 + }, /turf/open/floor{ - icon_state = "asteroidwarning" + icon_state = "freezerfloor" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/general_offices) "jOc" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; @@ -32351,6 +31806,14 @@ icon_state = "delivery" }, /area/bigredv2/outside/lz2_south_cas) +"jOj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/surgery/hemostat, +/obj/effect/decal/cleanable/blood, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "jOS" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe/plasmacutter{ @@ -32372,6 +31835,11 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jPQ" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/ne) "jPV" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; @@ -32394,16 +31862,6 @@ /obj/item/storage/firstaid/fire, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"jQe" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary{ - density = 0; - pixel_y = 16 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "jQS" = ( /obj/structure/prop/almayer/cannon_cable_connector{ name = "\improper Cable connector" @@ -32441,6 +31899,32 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"jRH" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 5; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) +"jSe" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "mars_cave_20" + }, +/area/bigredv2/caves_north) +"jTa" = ( +/obj/structure/machinery/camera/autoname, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 5; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "jTk" = ( /obj/structure/surface/table, /obj/effect/decal/cleanable/molten_item, @@ -32454,6 +31938,14 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/hydroponics) +"jUd" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + name = "\improper General Store Storage" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/cargo) "jUM" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -32506,16 +31998,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"jWa" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "jWj" = ( /obj/effect/decal/cleanable/blood, /turf/open/mars_cave{ @@ -32539,6 +32021,17 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"jWR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 9; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "jXf" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 @@ -32624,6 +32117,11 @@ /obj/item/weapon/broken_bottle, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"kcH" = ( +/turf/open/mars{ + icon_state = "mars_dirt_9" + }, +/area/bigredv2/outside/sw) "kcZ" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/fence, @@ -32631,12 +32129,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/filtration_cave_cas) -"kdd" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "kdf" = ( /obj/item/tool/warning_cone{ pixel_y = 17 @@ -32693,6 +32185,11 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/mars_cave, /area/bigredv2/caves_lambda) +"kfx" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_15" + }, +/area/bigredv2/outside/n) "kfY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -32700,6 +32197,15 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/research) +"kgl" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "kgn" = ( /obj/item/paper/bigred/crazy, /turf/open/floor/plating{ @@ -32744,6 +32250,21 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"khB" = ( +/obj/structure/prop/vehicles/crawler{ + icon_state = "crawler_covered_bed" + }, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_lambda) +"khK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "khP" = ( /obj/structure/platform{ dir = 1 @@ -32773,6 +32294,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"kjH" = ( +/obj/structure/surface/table, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "kjT" = ( /obj/item/ore{ pixel_x = 13; @@ -32830,11 +32358,6 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/outside/engineering) -"knF" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/outside/ne) "knN" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -32849,30 +32372,11 @@ icon_state = "mars_cave_7" }, /area/bigredv2/outside/filtration_cave_cas) -"kos" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "kpd" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) -"kpf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, /turf/open/mars_cave{ - icon_state = "mars_cave_16" + icon_state = "mars_cave_14" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/ne) "kqS" = ( /turf/open/floor{ icon_state = "wood" @@ -32952,6 +32456,30 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"kwh" = ( +/obj/structure/surface/table/woodentable, +/obj/item/paper_bin/wy{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/paper_bin/wy{ + pixel_x = -4; + pixel_y = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"kwq" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "kwQ" = ( /turf/open/floor{ dir = 10; @@ -32977,6 +32505,22 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"kzF" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/ne) +"kAs" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "kBn" = ( /turf/closed/wall/solaris, /area/bigredv2/caves) @@ -32998,11 +32542,34 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"kCm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" +"kCR" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/bigredv2/outside/ne) +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) +"kDb" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "kDs" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/waterbottle{ @@ -33013,12 +32580,6 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) -"kED" = ( -/obj/structure/cargo_container/kelland/left, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "kFe" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor{ @@ -33073,11 +32634,11 @@ icon_state = "darkred2" }, /area/bigredv2/caves/eta/research) -"kLW" = ( -/obj/effect/landmark/crap_item, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"kMk" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" }, /area/bigredv2/outside/ne) "kMs" = ( @@ -33102,6 +32663,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"kMA" = ( +/obj/structure/bed/chair/wood/normal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "kMJ" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -33136,6 +32704,12 @@ icon_state = "asteroidwarning" }, /area/bigredv2/caves_lambda) +"kOv" = ( +/obj/structure/largecrate/random, +/turf/open/floor{ + icon_state = "asteroidplating" + }, +/area/bigredv2/outside/space_port_lz2) "kPu" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -33160,11 +32734,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/mars_cave, /area/bigredv2/caves_east) -"kRo" = ( -/turf/open/floor{ - icon_state = "bcircuit" +"kRy" = ( +/obj/structure/machinery/power/apc{ + dir = 1 }, -/area/bigredv2/outside/telecomm/warehouse) +/turf/open/floor/plating, +/area/bigredv2/outside/medical) "kRK" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -33206,13 +32781,14 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) -"kTC" = ( -/obj/structure/surface/table, -/obj/item/stack/sheet/glass{ - amount = 30 +"kVR" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 }, -/turf/open/floor, -/area/bigredv2/outside/cargo) +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "kVS" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -33239,6 +32815,24 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_se) +"kWW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/lz2_cave) +"kXV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/roller, +/turf/open/floor{ + dir = 1; + icon_state = "whitegreen" + }, +/area/bigredv2/outside/medical) "kYd" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/outside/e) @@ -33255,16 +32849,11 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_lambda) -"laX" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 9; - pixel_y = -3 - }, -/turf/open/floor{ - icon_state = "white" +"lbh" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_17" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "lbZ" = ( /obj/item/frame/rack, /obj/effect/decal/cleanable/dirt, @@ -33307,6 +32896,13 @@ icon_state = "floor1" }, /area/bigredv2/oob) +"ldD" = ( +/obj/item/tool/warning_cone{ + pixel_x = 16; + pixel_y = 14 + }, +/turf/open/mars, +/area/bigredv2/outside/n) "lhh" = ( /obj/structure/fence, /obj/structure/disposalpipe/segment, @@ -33339,6 +32935,15 @@ icon_state = "floor1" }, /area/bigredv2/oob) +"llZ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "lmg" = ( /obj/structure/bed/chair/office/light{ dir = 4 @@ -33381,6 +32986,24 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) +"lqp" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) +"lrs" = ( +/obj/structure/machinery/door/airlock/almayer/command/colony{ + name = "\improper Operations" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/admin_building) "lrH" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -33399,6 +33022,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"lsk" = ( +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "lsq" = ( /obj/item/device/flashlight/lantern, /turf/open/mars_cave{ @@ -33416,6 +33046,17 @@ icon_state = "mars_cave_19" }, /area/bigredv2/outside/filtration_plant) +"ltK" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "Dormitories"; + name = "Storm Shutters"; + pixel_y = -32 + }, +/turf/open/floor, +/area/bigredv2/outside/dorms) "luA" = ( /obj/item/tool/crowbar/red, /turf/open/floor/plating{ @@ -33464,6 +33105,18 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lym" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/barricade/handrail{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/marshal_office) "lyx" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ @@ -33477,18 +33130,18 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves) +"lAC" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/ne) "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{ - icon_state = "bcircuit" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "lBc" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/c) @@ -33506,6 +33159,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lCt" = ( +/obj/structure/machinery/power/reactor/colony{ + name = "Reactor Turbine" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/engineering) "lCR" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/flask/vacuumflask{ @@ -33554,6 +33215,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lEP" = ( +/obj/structure/surface/table/woodentable, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "lGt" = ( /turf/open/floor{ icon_state = "delivery" @@ -33567,10 +33234,24 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lID" = ( +/obj/structure/barricade/handrail{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "lIL" = ( /obj/structure/sign/safety/fire_haz, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"lIS" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/outside/ne) "lKw" = ( /obj/item/paper/bigred/walls, /obj/structure/machinery/light/small{ @@ -33590,7 +33271,7 @@ /area/bigredv2/caves/mining) "lMt" = ( /obj/effect/landmark/nightmare{ - insert_tag = "cargo" + insert_tag = "cargo_containers" }, /turf/closed/wall/solaris, /area/bigredv2/outside/cargo) @@ -33605,7 +33286,7 @@ /area/bigredv2/caves_lambda) "lMB" = ( /obj/effect/landmark/nightmare{ - insert_tag = "lz1cave" + insert_tag = "lz1cave_flank" }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/space_port) @@ -33619,6 +33300,25 @@ icon_state = "asteroidwarning" }, /area/bigred/ground/garage_workshop) +"lNp" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/office_complex) +"lOL" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_20" + }, +/area/bigredv2/outside/n) +"lPg" = ( +/turf/closed/wall/solaris, +/area/bigredv2/outside/n) "lPh" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_x = 3; @@ -33649,16 +33349,22 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/virology) -"lRu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +"lRC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/handrail{ + dir = 8 }, /turf/open/floor{ - dir = 4; + dir = 8; icon_state = "asteroidwarning" }, -/area/bigredv2/outside/telecomm/lz2_cave) +/area/bigredv2/outside/c) +"lSb" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/ne) "lSm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -33680,16 +33386,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"lSL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "lSS" = ( /obj/item/tool/warning_cone, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -33715,6 +33411,17 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/outside/engineering) +"lTV" = ( +/obj/structure/surface/table, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) +"lUa" = ( +/turf/open/mars{ + icon_state = "mars_dirt_8" + }, +/area/bigredv2/outside/n) "lUd" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -33728,11 +33435,10 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_se) -"lVm" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/outside/n) +"lUM" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/bigredv2/caves/lambda/xenobiology) "lVr" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -33803,25 +33509,22 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"mcc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/vending/cola, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"mdU" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 +"mbz" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + name = "\improper Bar Maintenance" }, /turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" + icon_state = "delivery" }, -/area/bigredv2/outside/telecomm/lz2_cave) +/area/bigredv2/outside/bar) +"mda" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/caves_lambda) "meT" = ( /turf/open/mars, /area/bigredv2/outside/eta) @@ -33833,17 +33536,24 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) -"mhx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/surface/table, -/obj/structure/machinery/light{ - dir = 4 +"mfG" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor{ + icon_state = "freezerfloor" }, -/obj/item/stack/sheet/glass{ - amount = 30 +/area/bigredv2/outside/general_offices) +"mfQ" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor{ + dir = 10; + icon_state = "darkyellow2" }, -/turf/open/floor, -/area/bigredv2/outside/cargo) +/area/bigredv2/outside/engineering) "mhF" = ( /obj/structure/machinery/light{ dir = 4 @@ -33861,6 +33571,13 @@ }, /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/caves/mining) +"mhV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "mhZ" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor{ @@ -33890,6 +33607,10 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"mkt" = ( +/obj/structure/cargo_container/kelland/right, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "mlV" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -33911,18 +33632,24 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"mnv" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor{ + icon_state = "grimy" + }, +/area/bigredv2/outside/dorms) +"mnY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "moE" = ( /turf/open/mars_cave{ icon_state = "mars_cave_9" }, /area/bigredv2/caves_research) -"mpn" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "mqf" = ( /obj/structure/bed/chair{ dir = 8; @@ -33997,6 +33724,23 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"mtM" = ( +/obj/structure/closet/secure_closet/detective, +/obj/item/weapon/gun/smg/fp9000, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/marshal_office) +"mtS" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "muP" = ( /turf/closed/wall/wood, /area/bigredv2/caves_research) @@ -34039,6 +33783,20 @@ "mzV" = ( /turf/open/mars, /area/bigredv2/outside/filtration_plant) +"mAY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) +"mBc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/hatchet, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "mBo" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_x = -7; @@ -34060,11 +33818,24 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_cave_cas) +"mDt" = ( +/turf/open/floor{ + icon_state = "asteroidplating" + }, +/area/bigredv2/outside/space_port_lz2) "mDN" = ( /turf/open/mars_cave{ icon_state = "mars_cave_15" }, /area/bigredv2/outside/lz1_north_cas) +"mEC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E-corner" + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/caves_north) "mEH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34089,12 +33860,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/lz1_north_cas) -"mGS" = ( -/obj/effect/landmark/static_comms/net_two, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, -/area/bigredv2/outside/admin_building) "mHp" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, @@ -34103,6 +33868,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_se) +"mIc" = ( +/obj/effect/landmark/static_comms/net_two, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/admin_building) "mIr" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_7" @@ -34125,12 +33896,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) -"mJH" = ( -/obj/structure/cargo_container/arious/leftmid, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "mKM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 @@ -34142,6 +33907,15 @@ icon_state = "mars_dirt_11" }, /area/bigredv2/outside/space_port_lz2) +"mOc" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + dir = 1; + name = "\improper General Store Maintenance" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/cargo) "mOW" = ( /obj/structure/pipes/standard/tank/oxygen, /turf/open/floor/plating{ @@ -34156,6 +33930,14 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"mPo" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "mPC" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/fence, @@ -34239,14 +34021,6 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) -"mWI" = ( -/turf/open/mars_cave, -/area/bigredv2/outside/n) -"mWJ" = ( -/turf/open/mars{ - icon_state = "mars_dirt_9" - }, -/area/bigredv2/outside/sw) "mXw" = ( /obj/item/storage/toolbox/mechanical, /turf/open/mars_cave{ @@ -34284,6 +34058,10 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"nbu" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "ncv" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/effect/decal/cleanable/blood{ @@ -34308,6 +34086,13 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"ncT" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "ndw" = ( /turf/open/floor{ dir = 4; @@ -34379,6 +34164,11 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"nlB" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_16" + }, +/area/bigredv2/outside/n) "nlJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -34405,6 +34195,11 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves_research) +"nnz" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_5" + }, +/area/bigredv2/outside/n) "nnK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -34447,6 +34242,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"nra" = ( +/turf/open/mars{ + icon_state = "mars_dirt_13" + }, +/area/bigredv2/outside/sw) "nrj" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -1; @@ -34515,6 +34315,16 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"nvn" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "nwB" = ( /turf/open/floor{ dir = 8; @@ -34538,6 +34348,17 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"nzB" = ( +/obj/structure/machinery/computer/general_air_control{ + dir = 8; + pixel_y = 6 + }, +/obj/structure/surface/table, +/turf/open/floor{ + dir = 4; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/filtration_plant) "nzN" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -34545,6 +34366,15 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"nAA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "nBb" = ( /obj/item/ammo_magazine/pistol/b92fs, /obj/item/weapon/gun/pistol/b92fs{ @@ -34577,6 +34407,11 @@ icon_state = "mars_cave_13" }, /area/bigredv2/outside/lz2_south_cas) +"nEH" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_10" + }, +/area/bigredv2/outside/n) "nEJ" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_5" @@ -34625,24 +34460,10 @@ /area/bigredv2/outside/filtration_cave_cas) "nGt" = ( /obj/effect/landmark/nightmare{ - insert_tag = "admin" + insert_tag = "admin_pmc" }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/admin_building) -"nGU" = ( -/obj/structure/toilet{ - dir = 1 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"nHb" = ( -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "nHQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -34663,14 +34484,6 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) -"nIs" = ( -/obj/structure/window/framed/solaris, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "Greenhouse"; - name = "\improper Greenhouse Shutters" - }, -/turf/open/floor/plating, -/area/bigredv2/outside/hydroponics) "nKL" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "An exchange valve"; @@ -34709,6 +34522,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nOe" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "nPz" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34777,12 +34598,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"nVa" = ( -/obj/structure/fence, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "nVq" = ( /turf/open/floor{ icon_state = "dark" @@ -34807,6 +34622,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nWG" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 + }, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) "nXh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/human, @@ -34840,6 +34664,13 @@ /obj/item/tool/warning_cone, /turf/open/mars, /area/bigredv2/outside/s) +"nZB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "nZD" = ( /obj/structure/platform_decoration{ dir = 8 @@ -34911,12 +34742,6 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/breakroom) -"oeT" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) "ofn" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/solaris, @@ -34972,11 +34797,15 @@ /obj/structure/cargo_container/hd/left/alt, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"oip" = ( -/turf/open/mars{ - icon_state = "mars_dirt_6" +"oji" = ( +/obj/structure/morgue{ + dir = 2 }, -/area/bigredv2/outside/space_port_lz2) +/turf/open/floor{ + dir = 1; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "ojD" = ( /obj/structure/platform_decoration{ dir = 4 @@ -35001,6 +34830,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"okt" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "ole" = ( /turf/open/floor/almayer{ dir = 1; @@ -35082,17 +34918,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"ooP" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door_control{ - id = "Dormitories"; - name = "Storm Shutters"; - pixel_y = -32 - }, -/turf/open/floor, -/area/bigredv2/outside/dorms) "opz" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -35166,6 +34991,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/outside/lz2_west_cas) +"ovQ" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/ne) "ovZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -35222,6 +35053,15 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/plating, /area/bigredv2/caves_virology) +"ozO" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "ozQ" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, @@ -35252,12 +35092,23 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) -"oEJ" = ( -/obj/structure/largecrate/random, -/turf/open/floor{ - icon_state = "asteroidplating" +"oFj" = ( +/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 }, -/area/bigredv2/outside/space_port_lz2) +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/caves_north) +"oFx" = ( +/obj/item/device/flashlight/lantern, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/ne) "oFY" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/item/prop/alien/hugger, @@ -35337,6 +35188,14 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"oMf" = ( +/obj/structure/fence, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "oNu" = ( /turf/open/mars_cave{ icon_state = "mars_cave_11" @@ -35356,20 +35215,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"oOt" = ( +"oOw" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) -"oOM" = ( -/obj/structure/surface/table, -/obj/item/clothing/under/brown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) +/turf/open/gm/river, +/area/bigredv2/outside/c) "oQz" = ( /obj/structure/machinery/light/double{ dir = 1 @@ -35398,12 +35247,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"oSN" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "oTf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail{ @@ -35453,6 +35296,16 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"oUY" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "oWc" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -35474,6 +35327,16 @@ icon_state = "darkblue2" }, /area/bigredv2/outside/admin_building) +"oWk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/lz2_cave) "oWp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/handrail, @@ -35494,12 +35357,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"oWM" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/outside/ne) "oXr" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -35618,7 +35475,7 @@ /area/bigredv2/outside/admin_building) "pdN" = ( /obj/effect/landmark/nightmare{ - insert_tag = "lz1entrance" + insert_tag = "lz1entrance_v2" }, /turf/open/mars, /area/bigredv2/outside/nw) @@ -35631,6 +35488,11 @@ /obj/structure/window_frame/solaris, /turf/open/floor/plating, /area/bigredv2/outside/dorms) +"pgh" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_17" + }, +/area/bigredv2/outside/ne) "pgi" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, @@ -35653,6 +35515,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/outside/filtration_cave_cas) +"pgP" = ( +/obj/structure/surface/table, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "phi" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -35723,15 +35591,15 @@ /turf/closed/wall/solaris/rock, /area/bigredv2/caves) "pri" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 +/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{ - dir = 1; - icon_state = "asteroidwarning" +/turf/open/mars_cave{ + icon_state = "mars_cave_15" }, -/area/bigredv2/outside/c) +/area/bigredv2/caves_north) "psE" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor{ @@ -35744,16 +35612,6 @@ }, /turf/open/floor, /area/bigredv2/caves/eta/living) -"ptV" = ( -/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 = 4; - health = 25000 - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/caves_north) "puU" = ( /obj/item/paper/bigred/witness, /turf/open/mars_cave{ @@ -35767,6 +35625,10 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"pvj" = ( +/obj/structure/machinery/camera/autoname, +/turf/open/floor, +/area/bigredv2/outside/dorms) "pvk" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "Righty tighty, lefty loosey!"; @@ -35830,12 +35692,11 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) -"pBh" = ( -/obj/structure/surface/table, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) +"pzC" = ( +/obj/structure/window/framed/solaris, +/obj/structure/curtain, +/turf/open/floor/plating, +/area/bigredv2/outside/medical) "pBv" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -35873,20 +35734,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"pEp" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) -"pGN" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "pGP" = ( /obj/structure/barricade/handrail{ dir = 4 @@ -35896,13 +35743,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) -"pGS" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/tool, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "pHb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -35910,12 +35750,15 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves_sw) -"pIh" = ( -/obj/structure/machinery/power/geothermal, +"pIl" = ( +/obj/structure/morgue{ + dir = 2 + }, /turf/open/floor{ - icon_state = "white" + dir = 9; + icon_state = "whiteblue" }, -/area/bigredv2/outside/virology) +/area/bigredv2/outside/medical) "pIN" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -35923,6 +35766,19 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_lambda) +"pJn" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/ne) +"pJt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "pJS" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -4; @@ -35953,6 +35809,11 @@ icon_state = "mars_cave_19" }, /area/bigredv2/caves/mining) +"pLH" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_6" + }, +/area/bigredv2/outside/ne) "pMi" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/extinguisher, @@ -35983,6 +35844,20 @@ icon_state = "darkred2" }, /area/bigredv2/caves/eta/research) +"pNn" = ( +/obj/structure/machinery/light, +/obj/structure/surface/table/woodentable, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/machinery/door_control{ + id = "Library"; + name = "Storm Shutters" + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "pNU" = ( /obj/structure/bed, /obj/item/prop/alien/hugger, @@ -36002,12 +35877,28 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"pOt" = ( +/obj/structure/machinery/optable, +/turf/open/floor{ + dir = 4; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "pOL" = ( /obj/structure/closet/crate/miningcar/yellow, /turf/open/mars_cave{ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"pPh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating{ + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "pPo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -36048,6 +35939,20 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"pTo" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/lz2_cave) "pTA" = ( /obj/structure/platform_decoration/shiva{ dir = 1 @@ -36179,11 +36084,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"qap" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_7" - }, -/area/bigredv2/outside/space_port_lz2) "qaK" = ( /obj/structure/largecrate, /turf/open/floor{ @@ -36195,14 +36095,16 @@ /obj/vehicle/powerloader/ft, /turf/open/floor/plating, /area/bigredv2/outside/nw/ceiling) -"qez" = ( -/obj/structure/fence, -/obj/effect/decal/cleanable/dirt, +"qby" = ( /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "bcircuit" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/telecomm/lz2_cave) +"qcQ" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_7" + }, +/area/bigredv2/outside/space_port_lz2) "qeK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, @@ -36266,16 +36168,6 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves/mining) -"qhS" = ( -/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 = 4; - health = 25000 - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) "qiA" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -36324,14 +36216,6 @@ /obj/effect/spawner/random/toolbox, /turf/open/floor, /area/bigred/ground/garage_workshop) -"qlT" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "qmm" = ( /obj/structure/cargo_container/hd/right/alt, /turf/open/floor/plating, @@ -36347,12 +36231,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"qmY" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/outside/n) "qoj" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -36373,6 +36251,15 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) +"qoQ" = ( +/obj/structure/morgue{ + dir = 1 + }, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "qpn" = ( /obj/item/tool/warning_cone{ pixel_x = -6 @@ -36394,15 +36281,26 @@ /obj/item/storage/firstaid/fire, /turf/open/floor, /area/bigred/ground/garage_workshop) +"qsd" = ( +/obj/structure/cargo_container/kelland/left, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) +"qse" = ( +/obj/structure/largecrate/supply, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "qsE" = ( /turf/closed/wall/solaris/reinforced, /area/bigred/ground/garage_workshop) -"qtx" = ( +"qus" = ( +/obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "delivery" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/dorms) "qux" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -36419,6 +36317,17 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"quX" = ( +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Engineering"; + name = "\improper Engineering Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/bigredv2/outside/engineering) "qvA" = ( /obj/effect/landmark/xeno_spawn, /turf/open/mars_cave{ @@ -36431,6 +36340,11 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"qwm" = ( +/turf/open/mars{ + icon_state = "mars_dirt_12" + }, +/area/bigredv2/outside/n) "qwx" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -36459,17 +36373,6 @@ icon_state = "darkredcorners2" }, /area/bigredv2/outside/admin_building) -"qyq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "qzO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -36494,6 +36397,11 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/lz2_south_cas) +"qDZ" = ( +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "qEs" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -36574,13 +36482,6 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/cargo) -"qJL" = ( -/obj/structure/fence, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/n) "qJV" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; @@ -36591,12 +36492,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"qKx" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "prison" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/marshal_office) "qLk" = ( /obj/item/device/flashlight/lantern, /turf/open/mars_cave{ @@ -36610,6 +36505,20 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/eta) +"qMS" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_18" + }, +/area/bigredv2/outside/n) +"qNp" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "qNu" = ( /obj/structure/surface/table, /obj/structure/machinery/light/small{ @@ -36620,21 +36529,27 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/xenobiology) +"qNH" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor{ + icon_state = "asteroidplating" + }, +/area/bigredv2/outside/space_port_lz2) "qNP" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor, /area/bigred/ground/garage_workshop) -"qNT" = ( -/obj/structure/platform{ - dir = 4 +"qNU" = ( +/obj/structure/surface/table, +/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ + dir = 1 }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/landing/console2) "qOM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -9; @@ -36655,6 +36570,12 @@ "qPT" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/eta) +"qQl" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/marshal_office) "qQn" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -36662,13 +36583,20 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_lambda) +"qQr" = ( +/obj/item/stack/sheet/wood, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_7" + }, +/area/bigredv2/caves_north) "qSj" = ( /obj/structure/cargo_container/hd/mid/alt, /turf/open/floor/plating, /area/bigredv2/caves/mining) "qTu" = ( /obj/effect/landmark/nightmare{ - insert_tag = "viro" + insert_tag = "viro_open" }, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) @@ -36705,6 +36633,12 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"qVw" = ( +/turf/open/floor{ + dir = 5; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/virology) "qVB" = ( /obj/item/weapon/shield/riot, /obj/effect/decal/cleanable/blood/drip{ @@ -36722,6 +36656,24 @@ icon_state = "wood" }, /area/bigredv2/outside/admin_building) +"qYB" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "qYY" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 @@ -36755,6 +36707,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"rat" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/marshal_office) "raQ" = ( /obj/structure/barricade/handrail/wire{ dir = 4 @@ -36763,6 +36721,17 @@ icon_state = "mars_cave_9" }, /area/bigredv2/outside/telecomm/lz2_cave) +"raU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "rbD" = ( /obj/structure/largecrate/random, /turf/open/floor/plating{ @@ -36770,6 +36739,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"rbV" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "rcc" = ( /obj/structure/prop/almayer/missile_tube{ desc = "A detached drill arm of a big old Seegson D-602 Mining Robot. Seems to be jury rigged to run without the main robot assembly."; @@ -36837,27 +36813,22 @@ icon_state = "mars_cave_2" }, /area/space) +"rfX" = ( +/obj/structure/surface/table, +/obj/item/bodybag, +/obj/item/bodybag, +/obj/item/bodybag, +/turf/open/floor{ + dir = 5; + icon_state = "whitegreen" + }, +/area/bigredv2/outside/medical) "rgp" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/outside/lz1_north_cas) -"rhx" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5; - pixel_x = -1 - }, -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "rhP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -36900,12 +36871,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"rmk" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - icon_state = "podhatchfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "rml" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor, @@ -36968,20 +36933,22 @@ /area/bigredv2/caves/mining) "rrl" = ( /obj/effect/landmark/nightmare{ - insert_tag = "filtration" + insert_tag = "filtration_restored" }, /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/outside/s) +"rrF" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_13" + }, +/area/bigredv2/outside/ne) "rsv" = ( /turf/open/mars_cave{ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) -"rsQ" = ( -/turf/closed/wall/r_wall/unmeltable, -/area/bigredv2/outside/c) "rtL" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -37017,14 +36984,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"ruF" = ( -/obj/structure/largecrate/supply, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "ruS" = ( /obj/structure/bed/chair{ dir = 8; @@ -37065,6 +37024,12 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) +"rzR" = ( +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/ne) "rzT" = ( /obj/structure/sign/nosmoking_1, /turf/closed/wall/solaris/reinforced, @@ -37177,6 +37142,15 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"rKy" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/recharge_station, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "rKP" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, /turf/open/floor/plating{ @@ -37184,6 +37158,11 @@ icon_state = "warnplate" }, /area/bigredv2/oob) +"rLM" = ( +/turf/open/mars{ + icon_state = "mars_dirt_12" + }, +/area/bigredv2/outside/ne) "rLR" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_nest, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, @@ -37233,6 +37212,11 @@ /obj/item/weapon/harpoon, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"rNd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/crap_item, +/turf/open/floor, +/area/bigredv2/outside/hydroponics) "rOK" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/item/weapon/baton/loaded, @@ -37276,6 +37260,19 @@ }, /turf/open/floor/plating, /area/bigredv2/oob) +"rRE" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/woodentable, +/obj/item/prop/magazine/book/bladerunner{ + pixel_y = 3 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "rRO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ @@ -37289,16 +37286,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/storage) -"rTr" = ( -/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 = 4; - health = 25000 - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, -/area/bigredv2/caves_north) "rTN" = ( /obj/structure/fence, /turf/open/floor{ @@ -37349,12 +37336,30 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) -"rVx" = ( +"rVy" = ( +/obj/structure/window, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/surface/table/woodentable, +/obj/effect/landmark/objective_landmark/close, +/obj/item/prop/magazine/book/starshiptroopers, /turf/open/floor{ - dir = 9; - icon_state = "darkyellow2" + icon_state = "wood" }, -/area/bigredv2/outside/engineering) +/area/bigredv2/outside/library) +"rVE" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/outside/n) +"rVT" = ( +/obj/structure/fence, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "rWF" = ( /obj/item/stack/cable_coil/cut{ pixel_x = 6; @@ -37418,14 +37423,17 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"rZi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/bed/roller, -/turf/open/floor{ - dir = 1; - icon_state = "whitegreen" +"rYS" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/area/bigredv2/outside/medical) +/obj/structure/surface/table, +/obj/effect/spawner/random/toolbox, +/turf/open/floor, +/area/bigredv2/outside/cargo) +"rZn" = ( +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/w) "rZQ" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/snacks/csandwich, @@ -37436,6 +37444,13 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"rZU" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "sap" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -37446,17 +37461,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"saH" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/effect/landmark/objective_landmark/close, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "saX" = ( /obj/structure/machinery/power/turbine, /turf/open/floor{ @@ -37471,6 +37475,14 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"sbm" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/toolbox, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "sbz" = ( /obj/structure/platform/kutjevo/rock{ dir = 8 @@ -37499,6 +37511,15 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/living) +"scK" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "sdP" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating, @@ -37536,24 +37557,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"shf" = ( -/obj/structure/barricade/handrail{ - dir = 4 - }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) -"shm" = ( -/obj/structure/window/reinforced/tinted, -/obj/structure/machinery/shower{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "freezerfloor" +"shK" = ( +/obj/structure/cargo_container/arious/right, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" }, -/area/bigredv2/outside/dorms) +/area/bigredv2/outside/space_port_lz2) "shV" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -37660,17 +37669,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"som" = ( -/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 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_13" - }, -/area/bigredv2/caves_north) "sqc" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -37688,6 +37686,13 @@ icon_state = "mars_cave_10" }, /area/bigredv2/caves_research) +"sqt" = ( +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "sqQ" = ( /obj/item/paper/bigred/them, /turf/open/floor/plating{ @@ -37695,6 +37700,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"sri" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "sso" = ( /obj/structure/bed/chair, /turf/open/mars_cave{ @@ -37717,12 +37730,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"stJ" = ( +"stZ" = ( +/obj/effect/landmark/static_comms/net_two, /turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" + icon_state = "bcircuit" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/telecomm/lz2_cave) "sus" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -37768,11 +37781,15 @@ icon_state = "delivery" }, /area/bigred/ground/garage_workshop) -"svp" = ( +"swk" = ( +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor{ - icon_state = "asteroidplating" + dir = 8; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/space_port_lz2) +/area/bigredv2/outside/w) "swJ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, @@ -37809,13 +37826,6 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) -"szg" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "szi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -37837,6 +37847,15 @@ icon_state = "darkyellowcorners2" }, /area/bigredv2/outside/engineering) +"szZ" = ( +/obj/structure/window/reinforced/tinted, +/obj/structure/machinery/shower{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/dorms) "sAG" = ( /obj/effect/landmark/hunter_primary, /turf/open/mars_cave{ @@ -37868,12 +37887,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_east) -"sBF" = ( -/obj/structure/cargo_container/kelland/right, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "sCj" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ @@ -37925,6 +37938,12 @@ icon_state = "darkgreencorners2" }, /area/bigredv2/caves/eta/research) +"sFv" = ( +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_north) "sFW" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/mars_cave{ @@ -38052,28 +38071,14 @@ icon_state = "mars_cave_19" }, /area/bigredv2/outside/lz2_south_cas) -"sTf" = ( -/obj/structure/surface/table, -/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/landing/console2) "sUQ" = ( /obj/structure/machinery/photocopier, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) -"sVY" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/item/clothing/under/darkred, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) +"sVB" = ( +/obj/structure/window_frame/solaris, +/turf/open/floor/plating, +/area/bigredv2/outside/marshal_office) "sWa" = ( /obj/item/ore{ pixel_x = 12; @@ -38083,6 +38088,17 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"sWh" = ( +/obj/structure/platform_decoration, +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "sWS" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating{ @@ -38145,6 +38161,22 @@ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) +"taV" = ( +/obj/structure/closet/coffin/woodencrate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) +"tbS" = ( +/obj/structure/morgue{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "tcb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/pizzabox/meat, @@ -38177,6 +38209,12 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) +"tdz" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor{ + icon_state = "grimy" + }, +/area/bigredv2/outside/dorms) "tdB" = ( /obj/structure/tunnel{ id = "hole1" @@ -38254,12 +38292,11 @@ /obj/effect/decal/cleanable/ash, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"tgk" = ( +"tgf" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) +/obj/structure/machinery/vending/snack, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "tgF" = ( /obj/effect/spawner/random/tool, /turf/open/shuttle/escapepod{ @@ -38293,6 +38330,20 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/engineering) +"tjX" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_7" + }, +/area/bigredv2/outside/n) +"tkM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "tkN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -38301,11 +38352,22 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) -"tlj" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" +"tkY" = ( +/obj/structure/noticeboard{ + desc = "A board for pinning important items upon."; + dir = 1; + name = "trophy board"; + pixel_y = 30 }, -/area/bigredv2/outside/n) +/obj/item/XenoBio/Chitin{ + anchored = 1; + pixel_y = 27 + }, +/turf/open/floor{ + dir = 1; + icon_state = "elevatorshaft" + }, +/area/bigredv2/caves/lambda/breakroom) "tlP" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/structure/machinery/light{ @@ -38313,6 +38375,15 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"tmj" = ( +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -30 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "tmH" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ @@ -38331,11 +38402,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) -"tng" = ( +"tnG" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ - icon_state = "mars_dirt_4" + icon_state = "mars_cave_2" }, -/area/bigredv2/caves_lambda) +/area/bigredv2/outside/n) "toA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, @@ -38352,11 +38424,25 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"tpU" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor{ + icon_state = "whitegreenfull" + }, +/area/bigredv2/outside/hydroponics) +"tpY" = ( +/obj/structure/lz_sign/solaris_sign, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "tqi" = ( /turf/open/mars_cave{ icon_state = "mars_cave_19" }, /area/bigredv2/caves/mining) +"tqS" = ( +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/caves_north) "trk" = ( /turf/open/mars_cave{ icon_state = "mars_cave_13" @@ -38463,22 +38549,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"twS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/lz2_cave) -"tyH" = ( -/obj/item/stack/sheet/wood, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/caves_north) "tzJ" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" @@ -38494,6 +38564,21 @@ icon_state = "wood" }, /area/bigredv2/caves/eta/living) +"tAM" = ( +/obj/structure/surface/table/woodentable, +/obj/item/newspaper{ + pixel_x = -7 + }, +/obj/item/prop/magazine/book/theartofwar{ + pixel_x = 11 + }, +/obj/item/tool/pen{ + pixel_x = -7 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "tAW" = ( /obj/effect/landmark/lv624/xeno_tunnel, /turf/open/floor{ @@ -38573,11 +38658,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"tCQ" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/caves_lambda) "tDk" = ( /obj/structure/machinery/light/double{ dir = 1 @@ -38603,6 +38683,13 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) +"tFt" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "tFO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -38611,17 +38698,21 @@ icon_state = "delivery" }, /area/bigredv2/caves/lambda/breakroom) -"tGJ" = ( -/turf/open/floor{ - icon_state = "podhatchfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "tHl" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/mars{ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/c) +"tHB" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "tIq" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -38664,12 +38755,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"tJH" = ( -/turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port_lz2) "tKr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair{ @@ -38698,12 +38783,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"tKE" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/ne) "tKR" = ( /turf/open/floor{ icon_state = "delivery" @@ -38714,6 +38793,23 @@ icon_state = "mars_cave_14" }, /area/bigredv2/caves_north) +"tLO" = ( +/obj/structure/machinery/computer/med_data{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) +"tMa" = ( +/obj/structure/surface/table, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "tNz" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" @@ -38729,13 +38825,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"tPr" = ( -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"tQg" = ( +/obj/structure/cargo_container/horizontal/blue/bottom, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) +"tQj" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_20" }, -/area/bigredv2/outside/ne) +/area/bigredv2/caves_lambda) "tQo" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ore/uranium{ @@ -38753,17 +38851,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_lambda) -"tQY" = ( -/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 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) "tRd" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A pipe."; @@ -38822,12 +38909,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"tVm" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"tUY" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/area/bigredv2/caves_lambda) +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "tVn" = ( /obj/item/tool/lighter/zippo, /turf/open/floor, @@ -38845,12 +38935,24 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"tWf" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "tWS" = ( /obj/effect/landmark/item_pool_spawner/survivor_ammo, /turf/open/mars_cave{ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"tYM" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "prison_breakout" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/marshal_office) "tZU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -38883,6 +38985,10 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"ucl" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "ucH" = ( /turf/open/mars_cave, /area/bigredv2/caves_virology) @@ -38891,15 +38997,6 @@ icon_state = "mars_cave_4" }, /area/bigredv2/caves_se) -"uey" = ( -/obj/structure/window/framed/solaris, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Dormitories"; - name = "\improper Dormitories Shutters" - }, -/turf/open/floor/plating, -/area/bigredv2/outside/general_offices) "ueL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/window/framed/solaris, @@ -38907,10 +39004,11 @@ icon_state = "panelscorched" }, /area/bigredv2/outside/engineering) -"ueW" = ( -/obj/structure/closet/crate/trashcart, +"ufc" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "asteroidplating" + dir = 4; + icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) "ufu" = ( @@ -38928,10 +39026,9 @@ icon_state = "darkgreencorners2" }, /area/bigredv2/caves/eta/research) -"ufD" = ( +"ugc" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/surface/table, -/obj/effect/spawner/random/tool, +/obj/structure/largecrate/random/barrel, /turf/open/floor, /area/bigredv2/outside/cargo) "ugW" = ( @@ -38956,6 +39053,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"ujq" = ( +/obj/structure/bed/roller, +/turf/open/floor{ + dir = 9; + icon_state = "whitegreen" + }, +/area/bigredv2/outside/medical) "ujC" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -38984,6 +39088,16 @@ icon_state = "floor5" }, /area/bigredv2/oob) +"ukv" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_15" + }, +/area/bigredv2/caves_lambda) +"ukW" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_20" + }, +/area/bigredv2/outside/ne) "ulk" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -39002,6 +39116,20 @@ /obj/item/device/flashlight/on, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"ume" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/door_control{ + id = "Medical"; + name = "Storm Shutters"; + pixel_y = 32 + }, +/obj/structure/bed, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "umK" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -39058,26 +39186,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"usF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/handrail{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "usG" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" }, /area/bigredv2/caves_east) -"utg" = ( -/turf/open/mars{ - icon_state = "mars_dirt_13" - }, -/area/bigredv2/outside/sw) "uuo" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -39111,10 +39224,24 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/filtration_plant) +"uwV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/general_offices) "uxx" = ( /obj/structure/machinery/door/poddoor/almayer/closed, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"uyd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/lz2_cave) "uyk" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -39143,6 +39270,10 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) +"uBP" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "uCa" = ( /obj/effect/landmark/corpsespawner/miner, /turf/open/floor/plating{ @@ -39152,7 +39283,7 @@ /area/bigredv2/caves/mining) "uCD" = ( /obj/effect/landmark/nightmare{ - insert_tag = "reactor" + insert_tag = "reactor_meltdown" }, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) @@ -39163,6 +39294,16 @@ }, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"uDt" = ( +/obj/structure/surface/table, +/obj/item/bodybag, +/obj/item/bodybag, +/obj/item/bodybag, +/turf/open/floor{ + dir = 1; + icon_state = "whitegreen" + }, +/area/bigredv2/outside/medical) "uDA" = ( /obj/item/stack/sheet/glass, /turf/open/floor{ @@ -39232,13 +39373,6 @@ icon_state = "darkredcorners2" }, /area/bigredv2/caves/eta/xenobiology) -"uHx" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "uHE" = ( /obj/item/tool/warning_cone{ pixel_y = 19 @@ -39259,6 +39393,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"uIz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "uIB" = ( /obj/effect/vehicle_spawner/van/decrepit, /obj/effect/decal/cleanable/blood/oil, @@ -39349,10 +39490,6 @@ icon_state = "bcircuitoff" }, /area/bigredv2/caves/lambda/research) -"uQY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/general_offices) "uRE" = ( /obj/effect/landmark/nightmare{ insert_tag = "medbay-passage" @@ -39364,17 +39501,6 @@ icon_state = "floor1" }, /area/bigredv2/oob) -"uSp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/c) "uSt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -39388,6 +39514,15 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/space_port_lz2) +"uST" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + dir = 1; + name = "\improper Medical Clinic Power Station" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/medical) "uTO" = ( /obj/structure/machinery/pipedispenser, /turf/open/floor{ @@ -39405,6 +39540,13 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"uVi" = ( +/obj/structure/surface/table, +/obj/item/clothing/under/lightbrown, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "uVn" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -39418,13 +39560,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/living) -"uXO" = ( -/obj/structure/sink{ - dir = 1; - pixel_y = -9 - }, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "uXW" = ( /turf/open/mars_cave{ icon_state = "mars_cave_8" @@ -39508,6 +39643,16 @@ "vex" = ( /turf/closed/wall/wood, /area/bigredv2/outside/lz2_south_cas) +"vfo" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 9; + pixel_y = -3 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/medical) "vfI" = ( /turf/open/mars{ icon_state = "mars_dirt_13" @@ -39520,6 +39665,13 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"vgE" = ( +/obj/structure/fence, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "vgZ" = ( /obj/structure/platform/shiva, /obj/structure/platform/shiva{ @@ -39529,6 +39681,12 @@ icon_state = "bcircuitoff" }, /area/bigredv2/caves/lambda/research) +"vhw" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/bigredv2/outside/medical) "vhF" = ( /obj/item/device/flashlight/lantern, /turf/open/mars_cave{ @@ -39543,11 +39701,6 @@ icon_state = "dark" }, /area/bigredv2/outside/filtration_plant) -"vis" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, -/area/bigredv2/outside/ne) "viN" = ( /obj/structure/machinery/door_control{ id = "workshop_br_g"; @@ -39572,6 +39725,25 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_plant) +"vkf" = ( +/obj/effect/landmark/crap_item, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/ne) +"vkv" = ( +/turf/open/floor{ + dir = 9; + icon_state = "darkyellow2" + }, +/area/bigredv2/outside/engineering) +"vkF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/turf/open/floor, +/area/bigredv2/outside/cargo) "vld" = ( /obj/item/tool/warning_cone, /turf/open/mars_cave{ @@ -39681,6 +39853,13 @@ icon_state = "mars_dirt_14" }, /area/bigredv2/outside/eta) +"vsi" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/space_port_lz2) "vti" = ( /obj/structure/closet/crate, /obj/effect/landmark/objective_landmark/close, @@ -39710,7 +39889,7 @@ /area/bigredv2/caves/eta/research) "vvi" = ( /obj/effect/landmark/nightmare{ - insert_tag = "lz1containers" + insert_tag = "lz1containers_scramble" }, /turf/open/floor{ dir = 4; @@ -39742,13 +39921,17 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"vwP" = ( -/obj/structure/fence, +"vxv" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/structure/surface/table, +/obj/structure/machinery/light, /turf/open/floor{ dir = 1; icon_state = "asteroidfloor" }, -/area/bigredv2/outside/telecomm/n_cave) +/area/bigredv2/outside/n) "vxQ" = ( /obj/item/tool/pickaxe/gold, /turf/open/floor/plating, @@ -39757,12 +39940,6 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"vzk" = ( -/obj/structure/cargo_container/arious/right, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/space_port_lz2) "vzL" = ( /obj/item/weapon/gun/boltaction, /turf/open/floor/plating{ @@ -39774,23 +39951,17 @@ /obj/structure/window/framed/solaris/reinforced/tinted, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"vAy" = ( -/obj/structure/platform_decoration, -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "vBy" = ( /obj/item/ammo_magazine/shotgun/beanbag/riot, /turf/open/mars_cave{ icon_state = "mars_cave_17" }, /area/bigredv2/caves_research) +"vBI" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/outside/n) "vBT" = ( /obj/structure/surface/table/reinforced, /obj/structure/transmitter/colony_net/rotary{ @@ -39849,9 +40020,41 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/living) +"vGE" = ( +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) +"vGN" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ + name = "\improper Medical Clinic" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/medical) "vHw" = ( /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"vHU" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) +"vIQ" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "vKv" = ( /turf/open/floor{ dir = 8; @@ -39861,16 +40064,6 @@ "vLd" = ( /turf/open/floor, /area/bigred/ground/garage_workshop) -"vMb" = ( -/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 = 4; - health = 25000 - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_north) "vMj" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -39927,12 +40120,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"vQe" = ( -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) "vQZ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -39945,15 +40132,6 @@ /obj/structure/sign/safety/high_voltage, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) -"vRJ" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "vRK" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -39981,6 +40159,12 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"vUy" = ( +/obj/structure/cargo_container/kelland/left, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "vVl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Toilet" @@ -39990,20 +40174,6 @@ 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) -"vVB" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_lambda) "vVF" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; @@ -40030,12 +40200,26 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/nw) +"vXJ" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/caves_lambda) "vYw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"vZh" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/item/clothing/under/darkred, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "waJ" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -40071,6 +40255,18 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wbD" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) +"wbY" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) "wcs" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave{ @@ -40164,12 +40360,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"whv" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) "whE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/close, @@ -40229,16 +40419,39 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"wmN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "wni" = ( /turf/open/floor{ icon_state = "darkredcorners2" }, /area/bigredv2/caves/eta/xenobiology) +"woe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "wog" = ( /turf/open/mars_cave{ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) +"woK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 6; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) "wpf" = ( /turf/open/mars_cave{ icon_state = "mars_cave_19" @@ -40250,17 +40463,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) -"wpP" = ( -/obj/structure/platform, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) -"wpT" = ( -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/mars, -/area/bigredv2/outside/space_port_lz2) "wry" = ( /obj/structure/surface/table, /obj/structure/transmitter/colony_net/rotary{ @@ -40285,6 +40487,15 @@ /obj/structure/plasticflaps, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wss" = ( +/obj/item/tool/warning_cone{ + pixel_y = 20 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/telecomm/n_cave) "wtj" = ( /turf/open/floor/plating, /area/bigredv2/caves/mining) @@ -40374,13 +40585,12 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"wzc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 1 +"wyP" = ( +/obj/structure/cargo_container/kelland/right, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" }, -/turf/open/floor, -/area/bigredv2/outside/general_offices) +/area/bigredv2/outside/space_port_lz2) "wBi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -40395,6 +40605,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"wBu" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "wCo" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_4" @@ -40416,19 +40636,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) -"wDK" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/obj/structure/prop/server_equipment/yutani_server{ - density = 0; - pixel_y = 16 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "wFL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/safety/hazard{ @@ -40479,15 +40686,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/se) -"wGP" = ( -/obj/structure/morgue{ - dir = 1 - }, -/turf/open/floor{ - dir = 10; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "wGV" = ( /obj/item/tool/wrench, /turf/open/floor{ @@ -40530,15 +40728,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/lz1_north_cas) -"wLg" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ - dir = 1; - name = "\improper Dormitories Restroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "wLD" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/plating{ @@ -40621,28 +40810,11 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) -"wQu" = ( -/obj/structure/surface/table/reinforced, -/obj/item/book/manual/research_and_development, -/turf/open/floor{ - dir = 4; - icon_state = "whitepurple" - }, -/area/bigredv2/caves/lambda/xenobiology) "wQC" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" }, /area/bigredv2/caves_lambda) -"wQD" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "redcorner" - }, -/area/bigredv2/outside/office_complex) "wRH" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight, @@ -40698,6 +40870,11 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) +"wWE" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_19" + }, +/area/bigredv2/outside/n) "wWK" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -40717,6 +40894,11 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/lz1_north_cas) +"wXv" = ( +/turf/open/mars{ + icon_state = "mars_dirt_14" + }, +/area/bigredv2/outside/space_port_lz2) "wXz" = ( /turf/open/floor/plating, /area/bigredv2/caves/eta/research) @@ -40738,19 +40920,24 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"wZv" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) "wZC" = ( /turf/open/mars{ icon_state = "mars_dirt_11" }, /area/bigredv2/outside/eta) -"xah" = ( -/obj/structure/largecrate/supply/supplies, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" +"wZP" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" }, -/area/bigredv2/outside/n) +/area/bigredv2/outside/space_port_lz2) "xaH" = ( /turf/closed/wall/wood, /area/bigredv2/caves_sw) @@ -40780,6 +40967,17 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"xcz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating{ + dir = 4; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "xej" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -40795,11 +40993,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/filtration_plant) -"xeV" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/bomb_supply, -/turf/open/floor, -/area/bigredv2/outside/cargo) "xfx" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -40845,6 +41038,12 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"xgm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/ne) "xgw" = ( /turf/open/mars_cave{ icon_state = "mars_cave_9" @@ -40874,6 +41073,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"xjU" = ( +/obj/structure/cargo_container/arious/right, +/turf/open/mars, +/area/bigredv2/outside/space_port_lz2) "xkq" = ( /turf/open/mars_cave{ icon_state = "mars_cave_3" @@ -40955,15 +41158,6 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"xrN" = ( -/obj/structure/machinery/washing_machine, -/obj/structure/machinery/washing_machine{ - pixel_y = 13 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "xrO" = ( /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..."; @@ -40979,6 +41173,17 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"xsf" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 9 + }, +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "xte" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, @@ -41061,15 +41266,6 @@ icon_state = "vault" }, /area/bigredv2/outside/marshal_office) -"xyw" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "xyz" = ( /obj/structure/girder, /obj/effect/decal/cleanable/dirt, @@ -41078,6 +41274,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"xzb" = ( +/obj/structure/surface/rack, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "xzi" = ( /obj/effect/decal/remains/xeno, /turf/open/floor/plating{ @@ -41152,22 +41354,6 @@ "xFZ" = ( /turf/open/mars_cave, /area/bigredv2/caves_lambda) -"xGT" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor{ - icon_state = "asteroidplating" - }, -/area/bigredv2/outside/space_port_lz2) -"xHQ" = ( -/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/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_north) "xIo" = ( /obj/structure/window/framed/solaris/reinforced/hull, /turf/open/floor/plating{ @@ -41284,6 +41470,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) +"xQd" = ( +/obj/structure/largecrate/random/barrel/true_random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "xRl" = ( /obj/item/weapon/gun/pistol/b92fs{ pixel_x = 13; @@ -41293,6 +41487,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"xRn" = ( +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_north) "xSa" = ( /obj/structure/prop/dam/crane, /turf/open/mars_cave{ @@ -41316,6 +41516,16 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"xWl" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda"; + name = "Lambda Lockdown" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/caves_north) "xWm" = ( /turf/open/floor{ icon_state = "whitepurplefull" @@ -41354,12 +41564,16 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) -"xWI" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" +"xWR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/bigredv2/outside/n) +/turf/open/floor/plating{ + dir = 8; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "xWV" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -41397,6 +41611,11 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) +"xXT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "xYc" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -41427,6 +41646,12 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"yao" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor{ + icon_state = "yellowfull" + }, +/area/bigredv2/outside/hydroponics) "yar" = ( /turf/open/floor{ dir = 4; @@ -41487,9 +41712,18 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/eta) +"yej" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "yfe" = ( /obj/effect/landmark/nightmare{ - insert_tag = "eta" + insert_tag = "eta_carp" }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/eta/xenobiology) @@ -41522,6 +41756,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"ygN" = ( +/obj/structure/machinery/washing_machine, +/obj/item/clothing/under/brown, +/obj/structure/machinery/washing_machine{ + pixel_y = 13 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "ygP" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -46067,11 +46311,11 @@ aao aao aao ayf -wpT +bcW cVY ayf cVY -bhD +uBP ayf cVY cVY @@ -46288,10 +46532,10 @@ cVY cVY cVY cVY -bio -bkk -brG -jvt +ucl +gQj +dCU +tQg cVY cVY bjN @@ -46505,7 +46749,7 @@ ayf cVY cVY cVY -bjP +xjU cVY cVY cVY @@ -46718,10 +46962,10 @@ aao aao aao ayf -bee +qsd cVY cVY -bhe +nbu cVY cVY cVY @@ -46935,7 +47179,7 @@ aao aao aao ayf -bew +mkt cVY cVY hpg @@ -46954,7 +47198,7 @@ ayf bsa ayf ayf -qap +qcQ tVp fFO cVY @@ -47143,8 +47387,8 @@ aXw aXw aZl aoD -pIh -pIh +bRV +bRV aoD aoD aoD @@ -47181,7 +47425,7 @@ vKv vKv vKv vKv -btv +jlS tVp ayf ayf @@ -47342,7 +47586,7 @@ aIb lQU aFt aFu -idO +qVw aoD aNg aNc @@ -47398,7 +47642,7 @@ eWd eWd eWd eWd -brd +dAX tVp tVp ayf @@ -47615,8 +47859,8 @@ bjn bid bsa eWd -brd -kED +dAX +vUy tVp ayf aao @@ -47832,8 +48076,8 @@ bje bie bsb eWd -brd -sBF +dAX +wyP tVp ayf aao @@ -48020,7 +48264,7 @@ aoD aao aao ayf -beS +tpY cVY uSC tVp @@ -48049,7 +48293,7 @@ bie bie bsc eWd -brd +dAX tVp tVp ayf @@ -48266,7 +48510,7 @@ bie bie bsd eWd -brd +dAX tVp tVp ayf @@ -48456,7 +48700,7 @@ aao ayf ayf cVY -bgq +wXv tVp bgX bhx @@ -48483,7 +48727,7 @@ bie bie bse eWd -brd +dAX tVp tVp ayf @@ -48700,7 +48944,7 @@ bie bie bsb eWd -brd +dAX tVp tVp ayf @@ -48917,7 +49161,7 @@ bie bie bsc eWd -brd +dAX tVp tVp ayf @@ -49102,7 +49346,7 @@ aSB aoD aSB aSB -azR +rZn aSB tVp mMf @@ -49134,7 +49378,7 @@ bie bie bsd eWd -brd +dAX tVp tVp ayf @@ -49351,7 +49595,7 @@ bie bie bse eWd -brd +dAX tVp tVp ayf @@ -49538,8 +49782,8 @@ aWk aVI aWk aWk -bcp -bcp +iHe +iHe vKv vKv vKv @@ -49568,7 +49812,7 @@ bie bjo bsb eWd -brd +dAX tVp tVp ayf @@ -49718,7 +49962,7 @@ axv anp anp anp -anp +cGv ajx ajY akK @@ -49756,7 +50000,7 @@ bdZ bdZ bdZ bmN -bfW +ufc bmN bmN bmN @@ -49785,7 +50029,7 @@ bie bie bsc eWd -brd +dAX tVp tVp ayf @@ -49972,7 +50216,7 @@ bdZ bdZ bdZ beu -bcr +woe tVp tVp tVp @@ -50002,9 +50246,9 @@ bje bie bsd eWd -brd +dAX tVp -mJH +tWf ayf aao aao @@ -50144,9 +50388,9 @@ ahR aln ajy bFw -bjj -bjj -jtX +xWR +xWR +iTN axZ avT azo @@ -50189,9 +50433,9 @@ bdZ aUQ bdZ bev -bcr +woe tVp -bfT +wbD tVp tVp bgX @@ -50219,9 +50463,9 @@ brb bpu bsa eWd -brd +dAX tVp -dwg +wZP ayf aao aao @@ -50361,9 +50605,9 @@ akK aln ajy bFw -kRo -joi -bjX +hyC +iNE +pPh axZ avT avT @@ -50396,7 +50640,7 @@ asj aoH aoH asK -aXJ +jUd asK beQ aYF @@ -50406,7 +50650,7 @@ bdZ aUQ bdZ bev -bcr +woe tVp tVp tVp @@ -50436,9 +50680,9 @@ eWd eWd eWd eWd -brd +dAX tVp -vzk +shK ayf aao aao @@ -50578,9 +50822,9 @@ ahR aln ajy bFw -kRo -kRo -bjX +hyC +hyC +pPh axZ avT avT @@ -50629,7 +50873,7 @@ aao tVp tVp bgX -boD +sbm kHK kHK bmN @@ -50653,7 +50897,7 @@ eWd bmN bmN bmN -tJH +vGE tVp ayf ayf @@ -50795,9 +51039,9 @@ atm aln ajy bFw -rhx -bjv -bqg +ccI +xcz +dws aya avT azo @@ -50846,29 +51090,29 @@ aao aao tVp bgX -boD +sbm eWd -brd -oEJ -xGT -svp +dAX +kOv +qNH +mDt bgX eWd -qlT +cpQ ayf ayf bsa ayf ayf -qap +qcQ tVp tVp tVp bgX eWd -brd +dAX tVp -qap +qcQ tVp tVp tVp @@ -51059,7 +51303,7 @@ bdZ bev tVp tVp -bfU +jDo tVp tVp bgX @@ -51071,7 +51315,7 @@ vKv vKv eWd eWd -sTf +qNU ayf ayf ayf @@ -51079,17 +51323,17 @@ ayf ayf tVp tVp -qap +qcQ tVp bgX eWd -brd +dAX tVp tVp tVp tVp tVp -qap +qcQ aao aao aao @@ -51288,26 +51532,26 @@ bmN bmN eWd eWd -aLn +gpA ayf aFc aFc aFc ayf -jfn -jfn +quX +quX axX tVp bgX eWd -brd +dAX tVp tVp tVp tVp tVp tVp -oip +fsY lzI aao aao @@ -51496,22 +51740,22 @@ tVp tVp tVp tVp -bhc -bpv -cwk -brd -svp -ueW -oEJ +mAY +vsi +dIH +dAX +mDt +jrN +kOv bgX eWd -blb -bjQ +lTV +gWD aFc aFc bsI azb -rVx +vkv kVT azb vKv @@ -51702,28 +51946,28 @@ aXH asK bdZ aWk -beR +swk aUQ aUQ aUQ aUQ bdZ -bcs +tUY vKv vKv vKv vKv -bhd +dVp kHK -bik +crl kHK vKv vKv vKv eWd eWd -pGS -bjQ +okt +gWD aFc aFc bsI @@ -51923,7 +52167,7 @@ asK aUQ bdZ bdZ -beb +iCu bdZ asK eWd @@ -51932,15 +52176,15 @@ eWd asK eWd eWd -bik +crl kHK -bjt -bjt -bjQ +tMa +tMa +gWD eWd eWd -blc -bjQ +ice +gWD aFc aFc bsI @@ -52159,8 +52403,8 @@ bkz asK lMt aFc -crO -mWJ +ftY +kcH azb hhK sCt @@ -52364,19 +52608,19 @@ aZu aZu aZu asK -kTC +kjH beT baz aZu bbM -gQP +rYS asK aZw aZu bld asK -crO -mWJ +ftY +kcH bme azb hhK @@ -52570,22 +52814,22 @@ aXH asK baz aZu -aEV +cRb aZu aZu aZu aZu aZu -bdf +hah bfy bfV -bgC +bgq atA -xeV -bqe -heU -bqe -bqe +gMC +bhb +bik +bhb +bhb aZu asK aZu @@ -52799,10 +53043,10 @@ aZO aZu atA bkn -bqe +bhb bfB bgD -bjh +eYK bbe bjR bbe @@ -52825,7 +53069,7 @@ rzb bsK axX bme -utg +nra aao glB xpb @@ -53011,16 +53255,16 @@ bdK aZM aZu beU -bfA +hVP bgE baF asK aZu -bqe -heU -bqe -tgk -aDo +bhb +bik +bhb +bhD +ugc atA bkl aZO @@ -53041,7 +53285,7 @@ tTI rzb bsL azb -utg +nra bpx aao euF @@ -53236,8 +53480,8 @@ bbe bhE bbR biK -ufD -mhx +vkF +fVt atA bkl aZu @@ -53447,7 +53691,7 @@ aZu beU bfC bfX -bhb +bhe asK asK asK @@ -53460,8 +53704,8 @@ aLl aZu blh asK -crO -jmY +ftY +fbf bme axX azB @@ -54092,7 +54336,7 @@ bbg auk asK asK -bax +bee aZu bex bbe @@ -54309,7 +54553,7 @@ aZO baz bcy asK -bax +bee aZu baz beU @@ -54518,7 +54762,7 @@ aWB aoH aXH aXH -bfg +mOc aZu aZO aZO @@ -54528,7 +54772,7 @@ bcz asK bdM aZu -bey +eRe aZu aZu aZu @@ -55203,7 +55447,7 @@ bnr bok bnr bpi -kVT +mfQ ayr nPz nVq @@ -55318,8 +55562,8 @@ aao aao aao aao -lVm -dlr +dQR +dXK asc acp adi @@ -55344,13 +55588,13 @@ ahP aog aoR alu -aqv +atq aqw aqw aqw -atp +hbx amj -auJ +ujq avw awb awP @@ -55534,8 +55778,8 @@ aao aao aao aao -dlr -dtX +dXK +hQO aqL asc acp @@ -55561,13 +55805,13 @@ ahP ahP ajz alD -aqv +atq aqw arR arR -atq +ark amj -rZi +kXV aqw awc awQ @@ -55750,9 +55994,9 @@ aao aao aao aao -acc +kfx aqL -ann +nnz aqL asc acp @@ -55778,11 +56022,11 @@ ahP ahP ajz alD -aqv +atq aqw arR asC -atq +ark amj auK aqw @@ -55818,7 +56062,7 @@ aOB aVO aoH asK -aXJ +jUd asK asK aZu @@ -55966,8 +56210,8 @@ aao aao aao aao -lVm -acc +dQR +kfx aqL aqL aqL @@ -56182,9 +56426,9 @@ pXu aao aao aao -lVm -lVm -dtX +dQR +dQR +hQO aqL agq ahe @@ -56397,9 +56641,9 @@ pXu pXu pXu rgp -lVm -dlr -lVm +dQR +dXK +dQR agq ahe ahe @@ -56470,7 +56714,7 @@ aVP aoH aHF aHF -aYf +wZv asK aZw aZu @@ -56503,7 +56747,7 @@ bmV ayr bnV tTI -cKu +eYy ayZ bpF slG @@ -56613,10 +56857,10 @@ wXg wKx pXu pXu -awx -dtX +tnG +hQO aqL -avK +lOL asc acp acp @@ -56645,12 +56889,12 @@ ana acp acp acp -qKx -aqy -ark -arV -ark -ark +tYM +ume +aqv +bOZ +aqv +aqv amj auL avx @@ -56720,7 +56964,7 @@ ayr ayr xAX tTI -cKu +eYy ayZ nPz tTI @@ -56830,15 +57074,15 @@ wXg wKx pXu pXu -axm +hgO aqL -ann +nnz aqL asc acp acy -acE -acE +cGc +cGc acC acU acC @@ -57045,10 +57289,10 @@ aao wXg wXg wKx -lVm -acc -azF -buP +dQR +kfx +idn +gdK aqL aqL asc @@ -57073,7 +57317,7 @@ aiZ afS afS afS -aAd +alp ame ahj anx @@ -57260,14 +57504,14 @@ aao aao aao aao -ajD -lVm -lVm -lVm -azF -ann +nlB +dQR +dQR +dQR +idn +nnz aqL -aac +wWE asc acr acz @@ -57289,7 +57533,7 @@ acp aja ajC ake -alp +rat acr ame ahj @@ -57297,7 +57541,7 @@ aer afS aoT acp -arn +tLO arm aip asE @@ -57477,14 +57721,14 @@ aao aao aao aao -lVm -lVm -lVm -lVm -brc +dQR +dQR +dQR +dQR +hFV aqL aqL -heI +lbh asc acs acz @@ -57514,7 +57758,7 @@ acp acp acp acp -aqB +efK arl aiY asF @@ -57604,9 +57848,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -57694,14 +57938,14 @@ aao aao aao aao -lVm -lVm -lVm -lVm -awx -ajD -ajD -lVm +dQR +dQR +dQR +dQR +tnG +nlB +nlB +dQR asc acq acz @@ -57720,10 +57964,10 @@ agz ahm ahj acp -aZp -bhH -akf -bhN +jWR +cGi +kCR +aWj biA ame ahj @@ -57913,12 +58157,12 @@ aao aao aao aao -lVm -lVm -awx -lVm -lVm -lVm +dQR +dQR +tnG +dQR +dQR +dQR asc acq acz @@ -57937,10 +58181,10 @@ agz ahm aie acp -aZq +eFr aiX -akg -akN +qQl +iis afS ame ahj @@ -57948,11 +58192,11 @@ anx afS akM acp -aEB -asG -asG -asG -ats +eKm +rbV +rbV +rbV +vxv alu auN aqw @@ -57988,7 +58232,7 @@ apC apC apC apJ -duI +lrs apJ apC apC @@ -58133,9 +58377,9 @@ aao aao aao aao -lVm -lVm -acc +dQR +dQR +kfx asc acp acz @@ -58154,10 +58398,10 @@ agz ahn ahj acp -aZq +eFr aiX aiX -akN +iis afS amg ahj @@ -58166,11 +58410,11 @@ afS aoT acp aqM -buP -buP +gdK +gdK aqL -att -atW +yej +vGN atr atr arU @@ -58201,7 +58445,7 @@ aQV aRT aof aTV -mGS +mIc tap aof aNK @@ -58350,9 +58594,9 @@ aao aao aao aao -lVm -abU -acc +dQR +elh +kfx asc acq acz @@ -58371,10 +58615,10 @@ agz ahn aic acp -aZP -bhM -bhM -akO +jTa +raU +raU +woK afS amg aic @@ -58383,7 +58627,7 @@ acp acp acp aqM -buP +gdK aqL aqL asc @@ -58472,9 +58716,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -58567,14 +58811,14 @@ aao aao aao aao -abY -lVm -acc +tjX +dQR +kfx asc acp acy -acE -acE +cGc +cGc acC acC adp @@ -58783,10 +59027,10 @@ aao aao aao aao -buP -avK -lVm -mWI +gdK +lOL +dQR +iXx asc acp acp @@ -58822,7 +59066,7 @@ aqL aqL asc alD -aqF +uDt arR arR aqw @@ -59002,8 +59246,8 @@ aao aao aqL aqL -heI -lVm +lbh +dQR ags alF alF @@ -59039,7 +59283,7 @@ aqL aqL asc alD -auO +rfX avy aqw avy @@ -59219,9 +59463,9 @@ aao aao aqL aqL -heI -lVm -acc +lbh +dQR +kfx aqL arp acP @@ -59254,12 +59498,12 @@ aqM aqL aqL aqL -atu +hGv alu alu -aYe -awj -aYe +pzC +fni +pzC alu alu ayR @@ -59308,9 +59552,9 @@ aBR tHl bhi dbi -lSL -lSL -qyq +oWk +oWk +fTg aHD aIn bjD @@ -59436,9 +59680,9 @@ aao aqL aqL aqL -heI -lVm -tlj +lbh +dQR +bGC aqL arp acP @@ -59471,13 +59715,13 @@ aqM aqL aqL aqL -aqE +cBq alu -atv +pIl avz aqw auP -wGP +qoQ alu ayS azv @@ -59525,9 +59769,9 @@ aBR bhi bhi dbi -nHb -lAK -bYp +qby +stZ +cHz aHD eRI ofX @@ -59650,15 +59894,15 @@ aao aao aao aqL -ann +nnz aqL -abL -lVm -dlr -dtX +rVE +dQR +dXK +hQO aqL arp -dwe +ldD acP acP acP @@ -59690,11 +59934,11 @@ aqL aqL asc alu -auR +oji avA aqw awW -axD +tbS alu ayT awi @@ -59742,9 +59986,9 @@ aBR bhi bhi dbi -nHb -nHb -twS +qby +qby +kWW aHF mSn bjE @@ -59868,16 +60112,16 @@ aao aao aqL aqL -aac -lVm -igi -oOt -oOt -eIB -kos -oOt -oOt -stJ +wWE +dQR +eWv +fPe +fPe +wss +akP +fPe +fPe +aus acP acP acP @@ -59907,11 +60151,11 @@ aqL aqL asc alu -auR +oji avA aqw awW -axD +tbS alu ayU aqw @@ -59959,9 +60203,9 @@ aBR eTj bhi dbi -mdU -lRu -uSp +pTo +uyd +gMj aHF aMg bjF @@ -60083,22 +60327,22 @@ aao aao aao aao -aac -ajD -lVm -lVm -isr +wWE +nlB +dQR +dQR +nZB pRP -vwP -pEp -iXL -qez +iRf +akh +mhV +oMf pRP -gKG +aWy acP acP acP -chy +jeO asc acp afn @@ -60124,11 +60368,11 @@ aqL aqL asc alu -auS +gts avA aqw awW -axD +tbS alu alu azH @@ -60300,22 +60544,22 @@ aao aao aao aao -abY -lVm -lVm -dlr -iRf +tjX +dQR +dQR +dXK +aaB pRP -vAy -qNT -qNT -saH -qez -gKG +sWh +hFv +hFv +kAs +oMf +aWy acP acP acP -eVZ +bJQ aao acp afo @@ -60341,13 +60585,13 @@ aqL aqL asc alu -auR +oji avA -laX +vfo awW -axD +tbS alu -vQe +kRy ayV ayV alu @@ -60517,21 +60761,21 @@ aao aao aao aao -acG -lVm -acc -dNH +qMS +dQR +kfx +fsT +aaB +oMf +dkY +qDZ +hJH +lqp iRf -qez -wpP -tGJ -rmk -jWa -vwP -gKG +aWy acP acP -chy +jeO aqL aao acp @@ -60556,15 +60800,15 @@ aqM aqL aqL asa -atu +hGv alu -auT +jRH avB -awm +pOt awX -axE -ccU -ayW +gej +uST +vhw ayV ayV alu @@ -60735,19 +60979,19 @@ aao aao aao aao -abY -acc +tjX +kfx aqL -isr -qez -wpP -tGJ -tGJ -xyw -vwP -gKG +nZB +oMf +dkY +qDZ +qDZ +cnG +iRf +aWy acP -chy +jeO aqL aao aao @@ -60952,17 +61196,17 @@ aao aao aao aao -abY -acc +tjX +kfx aqL -isr +nZB pRP -wDK -vRJ -vRJ -kpd -qez -oSN +iXs +scK +scK +oUY +oMf +wmN acP agq aao @@ -60986,7 +61230,7 @@ anz aoj aoj apH -aqG +kVR aqL arp acP @@ -61169,17 +61413,17 @@ aao aao aao aao -acG -acG -fbF -iRf +qMS +qMS +vBI +aaB pRP -qez -vwP -qez -qez +oMf +iRf +oMf +oMf pRP -oSN +wmN acP asc acp @@ -61387,16 +61631,16 @@ aao aao aao aao -abY -acc -iZh -szg -szg -kdd -kdd -kdd -szg -cfS +tjX +kfx +cgO +pJt +pJt +gPc +gPc +gPc +pJt +uIz acP asc acp @@ -61605,10 +61849,10 @@ aao aao aao aao -lVm -ajD -ajD -fbF +dQR +nlB +nlB +vBI arp acP acP @@ -61823,9 +62067,9 @@ aao aao aao aao -lVm -lVm -acc +dQR +dQR +kfx arp acP acP @@ -62038,11 +62282,11 @@ aao aao aao aao -abY -lVm -lVm -lVm -dtX +tjX +dQR +dQR +dQR +hQO arp acP acP @@ -62255,13 +62499,13 @@ aao aao aao aao -abY -abN -lVm -dtX +tjX +vHU +dQR +hQO aqL aqL -dzs +lUa acP acP acP @@ -62276,7 +62520,7 @@ acp acp acp acp -aiN +akr adS ajL akq @@ -62472,9 +62716,9 @@ aao aao aao aao -acG -lVm -acc +qMS +dQR +kfx aqL aqL aqL @@ -62496,7 +62740,7 @@ adS ahk adk ajL -akr +aiN acr adS ajL @@ -62690,10 +62934,10 @@ aao aao aao aao -abY -acc +tjX +kfx aqL -ann +nnz aqL arp acP @@ -62781,12 +63025,12 @@ aIn aKt aMc aHF -bhS +tHB aVp aVp aVp aVp -bke +vIQ bku bmF wtC @@ -62907,13 +63151,13 @@ aao aao aao aao -abY -qmY -fbF +tjX +ciG +vBI aqL aqL aqL -dzs +lUa acP acP acP @@ -62932,12 +63176,12 @@ aje ajM adS acr -aly -amv +cLq +lym alx adS -aly -aly +cLq +cLq acr aqK arq @@ -62958,7 +63202,7 @@ asJ aua asJ aDQ -aEL +eYH aws amI aHD @@ -63124,9 +63368,9 @@ aao aao aao aao -abY -abY -acc +tjX +tjX +kfx aqL aqL aqL @@ -63136,7 +63380,7 @@ acP acP asc acq -adX +jAR aeu adc afs @@ -63216,8 +63460,8 @@ aBR aMc aHF aMg -shf -shf +lID +lID aMg aHF aHF @@ -63341,19 +63585,19 @@ aao aao aao aao -abY -abY -dtX +tjX +tjX +hQO aqL aqL aao aqL -dzs +lUa acP acP asc acp -adY +mtM jGn adW adW @@ -63372,7 +63616,7 @@ adS anD alA alA -aAF +sVB aqM aqL ase @@ -63432,11 +63676,11 @@ aIm aBR aMc aHD -rsQ +dPJ gpR gpR -rsQ -jQe +dPJ +nvn bkf awp bkH @@ -63557,9 +63801,9 @@ aao aao aao aao -arv -lVm -dtX +nEH +dQR +hQO aqL aqL aqL @@ -63591,7 +63835,7 @@ adk adS acr aqM -arr +qwm asc amI aty @@ -63648,12 +63892,12 @@ aFM aHC aBR aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awM awM @@ -63713,7 +63957,7 @@ byM ycP rTq aBE -bww +dmO bww bww hkv @@ -63774,8 +64018,8 @@ aao aao aao aao -abY -acc +tjX +kfx aqL aqL aqL @@ -63825,7 +64069,7 @@ amn amn amn cgt -wLg +eqr amn amn amn @@ -63865,12 +64109,12 @@ aHF aHD aBR aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awM bkI @@ -63930,7 +64174,7 @@ aNx bAA bDi aBE -gOf +hHG bBv bww bBN @@ -63991,9 +64235,9 @@ aao aao aao aao -lVm -lVm -fbF +dQR +dQR +vBI aqL aqL aqL @@ -64031,7 +64275,7 @@ amn atz atY amn -azX +pvj asJ awY axH @@ -64040,11 +64284,11 @@ asJ azT amn aBj -aBV +qYB aBk aBk aBj -aFQ +rKy amn aHD aIp @@ -64083,10 +64327,10 @@ aHD aIm aMc aHD -rsQ +dPJ gpR -fpt -rsQ +oOw +dPJ aMc aHF awM @@ -64147,7 +64391,7 @@ ofJ aOP aOP aBE -gOf +hHG bww bww bBO @@ -64207,23 +64451,23 @@ aao aao aao aao -arv -lVm -lVm -lVm -fbF +nEH +dQR +dQR +dQR +vBI aqL -buP +gdK aqL aqL arp acP acP -ilN -qJL -qJL -qJL -ilN +lPg +mtS +mtS +mtS +lPg acP asc acr @@ -64261,7 +64505,7 @@ aBW aCR aBW aEM -cnO +eWB amn aHD aBR @@ -64301,8 +64545,8 @@ aFM aHF aHF aCN -usF -fdC +lRC +bSy aCN aHF aHF @@ -64424,23 +64668,23 @@ aao aao aao aao -avK -lVm -lVm -abX -lVm -ajD -fbF +lOL +dQR +dQR +cPg +dQR +nlB +vBI aqL aqL arp acP acP -dhT -fVm -eiS -xah -nVa +rZU +khK +taV +dVM +rVT acP ags alF @@ -64642,22 +64886,22 @@ aao aao aao aqL -avK -dlr -lVm -lVm -lVm -tlj +lOL +dXK +dQR +dQR +dQR +bGC aqL aqL arp acP acP -dhT -fVm +rZU +khK ahS -xah -nVa +dVM +rVT acP acP acP @@ -64688,14 +64932,14 @@ dJc axK ayp asJ -erf +jph amn aBm -hul +mBc aBk aBk aEN -aFR +ibV amn aHD aBR @@ -64735,8 +64979,8 @@ aIn aMc aHF aMg -shf -shf +lID +lID aMg aHF aHF @@ -64861,20 +65105,20 @@ aao aqL aqL aqL -heI -lVm -lVm -acc +lbh +dQR +dQR +kfx aqL aqL arp acP acP -dhT +rZU ahS ahS -jvh -nVa +qse +rVT acP acP acP @@ -64908,7 +65152,7 @@ asJ azW amn aBn -jku +jOj aBk aBk amn @@ -64951,11 +65195,11 @@ aHD aWJ aMc aHD -rsQ +dPJ gpR gpR -rsQ -jQe +dPJ +nvn aHF awp bkL @@ -65076,12 +65320,12 @@ aao aao aao aqL -buP +gdK aqL -heI -lVm -lVm -dtX +lbh +dQR +dQR +hQO aqL aqL arp @@ -65123,13 +65367,13 @@ awZ ayp asJ aws -gnk +enJ aBo aBW aBk aBk aEN -nGU +ozO amn aHD aBR @@ -65167,12 +65411,12 @@ aMg axW aIp aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awp bkM @@ -65295,20 +65539,20 @@ aao aqL aqL aqL -heI -lVm -acc +lbh +dQR +kfx aqL aqL aqL arp acP acP -dhT +rZU ahS ahS -fVm -nVa +khK +rVT acP acP acP @@ -65340,7 +65584,7 @@ axd asJ asJ azY -aAD +qus aBp aBW aBk @@ -65384,12 +65628,12 @@ aKt aIp aBR aMc -auX +fHw gpR gpR gpR gpR -pri +wBu aHF awp qeK @@ -65401,8 +65645,8 @@ bnH yar box yar -iyd -iyd +nzB +nzB eKU yar yar @@ -65510,22 +65754,22 @@ aao aao aao aao -ann -aac -lVm -lVm -acc +nnz +wWE +dQR +dQR +kfx aqL aqL aqL arp acP acP -dhT +rZU ahS -fVm -eiS -nVa +khK +taV +rVT acP acP acP @@ -65556,14 +65800,14 @@ aua aua awn aua -ooP +ltK amn aBq aBq -shm +szZ aBk aEN -pGN +nOe amn aHF aFM @@ -65602,10 +65846,10 @@ aBR aBR aWW aHD -rsQ +dPJ gpR -fpt -rsQ +oOw +dPJ aMc aHF awp @@ -65728,21 +65972,21 @@ aao aao aao aqL -heI -lVm -lVm -acc -dNH +lbh +dQR +dQR +kfx +fsT aqL aqL aqL -dzs +lUa acP -dhT -ruF -foj -eyA -nVa +rZU +hDK +xQd +eVM +rVT acP acP acP @@ -65820,8 +66064,8 @@ aBR aMc aHF aCN -usF -fdC +lRC +bSy aCN aHF aHF @@ -65946,20 +66190,20 @@ aao aao aao aao -abY -lVm -dtX +tjX +dQR +hQO aqL aqL aqL aqL arp acP -ilN -mpn -mpn -mpn -ilN +lPg +vgE +vgE +vgE +lPg acP acP acP @@ -65987,7 +66231,7 @@ amn avG awq awq -aCQ +tdz awq axM aws @@ -66163,15 +66407,15 @@ aao aao aao aao -acG -acc +qMS +kfx aqL aqL aqL aao aqL aqL -dzs +lUa acP acP acP @@ -66203,7 +66447,7 @@ atY amn asJ awq -axf +mnv axN ays axN @@ -66381,8 +66625,8 @@ aao aao aao aao -acc -ann +kfx +nnz aqL aao aao @@ -66598,7 +66842,7 @@ aao aao aao aao -acc +kfx aqL aqL aqL @@ -66635,7 +66879,7 @@ amI aty atY amn -azX +pvj awr axg axO @@ -66691,7 +66935,7 @@ aHF aHF aHF asv -wQD +bjJ bgx bkw blX @@ -66815,15 +67059,15 @@ aao aao aao aao -lVm -fbF +dQR +vBI aqL aqL aqL aqL aqL aqL -dzs +lUa acP acP acP @@ -66898,8 +67142,8 @@ bdv bac bcf asv -bff -bfK +lNp +gAX bge bgs bfM @@ -67032,18 +67276,18 @@ aao aao aao aao -lVm -abY -ajD -xWI -ajD -fbF +dQR +tjX +nlB +dOZ +nlB +vBI aqL aqL aqL -iSc -iSc -dzs +bQh +bQh +lUa acP acP acP @@ -67075,11 +67319,11 @@ axh amn amn anJ -aAc +mbz anJ anJ anJ -eRW +fbB amn amn amn @@ -67249,29 +67493,29 @@ aao aao aao aao -lVm -lVm -mWI -lVm -lVm -lVm -fbF +dQR +dQR +iXx +dQR +dQR +dQR +vBI aqL aqL aqL aqL aqL -dzs +lUa acP acP acP acP asc -ilN -gGC -gGC -gGC -gGC +lPg +hHa +hHa +hHa +hHa ahS ahS ahS @@ -67332,7 +67576,7 @@ bdx bdx bdx asv -bfh +bfK bfM bgc bgt @@ -67467,27 +67711,27 @@ aao aao aao aao -lVm -lVm -acG -lVm -lVm -dlr -abU -abU -fbF +dQR +dQR +qMS +dQR +dQR +dXK +elh +elh +vBI aqL aqL aqL -dzs +lUa acP acP acP asc -gGC -ruF -ruF -fVm +hHa +hDK +hDK +khK ahS ahS ahS @@ -67509,8 +67753,8 @@ apc apc ars anJ -aAe -aAG +hhX +cYy aCb aCb aCU @@ -67685,14 +67929,14 @@ aao aao aao aao -lVm -lVm -lVm -dtX +dQR +dQR +dQR +hQO aqL -avK -dlr -tlj +lOL +dXK +bGC aqL aqL aqL @@ -67701,12 +67945,12 @@ acP acP acP asc -gGC -eiS -fVm +hHa +taV +khK ahS ahS -fVm +khK ahS ahS aku @@ -67904,26 +68148,26 @@ aao aao aao aao -acc +kfx aqL aqL aqL aqL -heI -fbF +lbh +vBI aqL aqL aqL -dzs +lUa acP acP asc -gGC -foj +hHa +xQd ahS ahS -fVm -fVm +khK +khK ahS ahS ako @@ -68121,34 +68365,34 @@ aao aao aao aao -acc +kfx aqL -buP +gdK aqL aqL -heI -lVm -fbF +lbh +dQR +vBI aqL aqL arp acP acP asc -gGC +hHa ahS ahS ahS -fVm +khK ahS ahS -fVm +khK ako -aor +eNe ape apN ape -art +uVi ako asL atD @@ -68338,18 +68582,18 @@ aao aao aao aao -lVm -fbF +dQR +vBI aqL -dNH +fsT aqL -heI -lVm -tlj +lbh +dQR +bGC aqL aqL aqL -dzs +lUa acP asc ahS @@ -68359,19 +68603,19 @@ ahS ahS ahS ahS -fVm +khK ako -aos +xzb ape apN ape -pBh +pgP ako asM atE apc ako -isk +tgf aop apc axR @@ -68380,7 +68624,7 @@ azc ako aAJ apo -tPr +sqt anJ aEa aER @@ -68555,14 +68799,14 @@ aao aao aao aao -lVm -acc +dQR +kfx aqL aqL -aac -lVm -abX -dtX +wWE +dQR +cPg +hQO aqL aao aqL @@ -68570,25 +68814,25 @@ arp acP asc ahS -fVm -fVm +khK +khK ahS ahS ahS -fVm -eiS +khK +taV ako ape ape -sVY +vZh ape -oOM +ied ako asN atE apc ako -iaq +xXT aop apc ako @@ -68773,39 +69017,39 @@ aao aao aao aao -lVm -ajD -ajD -lVm -lVm -acc -dNH +dQR +nlB +nlB +dQR +dQR +kfx +fsT aqL aao aao aqL -dzs +lUa asc -gGC +hHa ahS -fVm +khK ahS ahS -fVm -foj -foj +khK +xQd +xQd ako ape -apf +mfG apO aqR -aru +tFt ako asO atE apc ako -mcc +hto aop axi ako @@ -68988,14 +69232,14 @@ aao aao aao aao -arv -abU -abU -lVm -lVm -lVm -lVm -dtX +nEH +elh +elh +dQR +dQR +dQR +dQR +hQO aqL aqL aqL @@ -69003,16 +69247,16 @@ aao aqL arp asc -gGC +hHa ahS ahS ahS -xah +dVM aao aao aao ako -xrN +jNE ape eJU aqS @@ -69204,14 +69448,14 @@ aao aao aao aao -dlr -dlr -abW -lVm -lVm -lVm -lVm -acc +dXK +dXK +wbY +dQR +dQR +dQR +dQR +kfx aqL aqL aqL @@ -69220,16 +69464,16 @@ aqL aqL arp asc -gGC -foj -ruF +hHa +xQd +hDK aao aao aao aao aao ako -aot +ygN apg apP ape @@ -69249,7 +69493,7 @@ ako aAK apo apo -aCV +kMk apo apo apo @@ -69421,23 +69665,23 @@ aao aao aao aao -ann +nnz aqL -avK -dlr -lVm -lVm -abW -acc +lOL +dXK +dQR +dQR +wbY +kfx aqL -buP +gdK aqL aqL aqL aqL aqL asc -gGC +hHa aao aao aao @@ -69446,7 +69690,7 @@ aao aao aao ako -xrN +jNE ape apN aqT @@ -69472,7 +69716,7 @@ apo apo apo apo -awy +iOR apo apo apo @@ -69642,10 +69886,10 @@ aqL aqL aqL aqL -avK -lVm -lVm -acc +lOL +dQR +dQR +kfx aqL aqL aao @@ -69860,7 +70104,7 @@ aqL aqL aqL aqL -heI +lbh aad alJ akX @@ -70072,15 +70316,15 @@ aao aao aao aao -buP +gdK aqL -iOL -dNH +dka +fsT aqL hKM aad aad -hdJ +dTi aao aao aao @@ -70116,12 +70360,12 @@ ako ako aAK apo -nIs -aCX -uHx -aES -gAE -aGK +anU +nWG +tpU +jay +aCf +ilH anT aIw msq @@ -70328,12 +70572,12 @@ avI apc axk axS -aBx -aze -aBx +mnY +kwq +mnY aAL -aBx -aCg +mnY +fDf aCY aCZ aET @@ -70508,11 +70752,11 @@ aao aao aao aao -oeT -ptV +cAf +eWE aad aad -qhS +acb abM aao aao @@ -70555,7 +70799,7 @@ aCo aCZ aEU aMQ -uXO +gAE anT aIw aJs @@ -70726,11 +70970,11 @@ aao aao aao aao -bup -tQY -fBU -som -gtG +qQr +oFj +jJO +bVX +fKO aao aao aao @@ -70767,7 +71011,7 @@ arD arD aMk apo -nIs +anU aCZ aCZ aQa @@ -70943,11 +71187,11 @@ aao aao aao aao -vMb -rTr +abY +dtX akX akX -eAG +jSe aao aao aao @@ -70984,12 +71228,12 @@ arD arD aMk apo -nIs -gYM +anU +fXR aCo aEU aCZ -gAE +aCf anT aIy aIC @@ -71159,12 +71403,12 @@ aao aao aao abq -tyH -xHQ -cVT -cVT +iGY +pri +ipo +ipo rYt -cVT +ipo aao aao aao @@ -71201,12 +71445,12 @@ arD arD aMk apo -nIs -gYM +anU +fXR aCo aEW aCZ -gAE +aCf anT aIz aIC @@ -71418,12 +71662,12 @@ arD arD aMk apo -nIs -gYM -aEf +anU +fXR +rNd aEU aCZ -gAE +aCf anT bix aIC @@ -71598,7 +71842,7 @@ aad wMp akX akX -oeT +cAf akX aao aao @@ -71635,12 +71879,12 @@ arD arD aMk apo -nIs -gAE +anU +aCf aCZ aQa aCZ -aGK +ilH anT aIz aIC @@ -72060,7 +72304,7 @@ akL akL akL akL -wzc +cQO apc avJ ako @@ -72068,7 +72312,7 @@ aBu arD arD aMk -nIs +anU aCi aCZ aCZ @@ -72276,16 +72520,16 @@ apU asX aoB auf -uQY -uey -uey -uey +uwV +ant +ant +ant ako aBu arD arD aMk -nIs +anU aCj aCo aCo @@ -72494,15 +72738,15 @@ aoB apU aoB akL -dMT +gbA aqa aqa aqa -ant -aKB -vis +rzR +cHH +aCW aMk -nIs +anU aOc aCo aCo @@ -72711,13 +72955,13 @@ asY aoB aug akL -tKE +xgm aCc aCc aCc aCc aCc -gwb +aCd aMk anT aCl @@ -72930,11 +73174,11 @@ auh akL aBu aCc -knF -aDR -aKA -aAh -gwb +pLH +lIS +jmD +ivW +aCd aMk anT aCm @@ -73147,13 +73391,13 @@ akL akL aBu aCc -knF -aDT +pLH +pgh aao -kCm -aAh +kzF +ivW aMk -nIs +anU aCn aCZ aCo @@ -73334,12 +73578,12 @@ aao aao aao aao -aEe -kpf -kpf -kpf -aEe -aEe +mEC +fGK +fGK +fGK +mEC +mEC aao aao aao @@ -73362,15 +73606,15 @@ ata ata ata aqa -ant +rzR aCc aCc -aDT +pgh aao aao -ayz +fEE aMk -nIs +anU aCo aCZ aEg @@ -73378,7 +73622,7 @@ aCo aQa aCZ anT -aIE +yao aJA aKJ aEd @@ -73550,13 +73794,13 @@ aao aao aao aao -aoa -aFZ -aFZ -aFZ -aFZ -aFZ -aoa +tqS +xWl +xWl +xWl +xWl +xWl +tqS aao aao aao @@ -73574,20 +73818,20 @@ aao aao aao aCc -asm +oFx aCc aCc aCc -knF +pLH aCc aCc aCc -aFS -kCm +ukW +kzF aao -ayz +fEE aMk -nIs +anU aCp aDb aEh @@ -73597,7 +73841,7 @@ aCZ anT aIF aJB -aKK +aCZ aLE aMp aLE @@ -73767,13 +74011,13 @@ aao aao aao aao -aoa -bjJ -qtx -qtx -qtx -jMB -aoa +tqS +sFv +xRn +xRn +xRn +dgH +tqS aao aao aao @@ -73793,16 +74037,16 @@ aao aao aao aao -oWM -oWM +hgr +hgr aao aao -knF +pLH aCc -knF -aFS -dWg -bSc +pLH +ukW +rrF +kpd aMk anW anW @@ -73984,13 +74228,13 @@ aao aao aao aao -aoa -aFZ -aFZ -aFZ -aFZ -aFZ -aoa +tqS +xWl +xWl +xWl +xWl +xWl +tqS aao aao aao @@ -74009,34 +74253,34 @@ aao aao aao aao -anU -kCm -kCm -gbt +tQj +kzF +kzF +lAC aao aao aCc aCc aCc aCc -knF +pLH bMz apo anW -aDc -aEi -aDc -aDg -aDc -aEi -aDc -aJC aKL -aEi -aDc -aEi -aDc -aEi +aui +aKK +kgl +ixN +anW +aQr +aKL +aKL +anW +aKL +anW +aQr +aQr aQr anW aTq @@ -74201,12 +74445,12 @@ aao aao aao aao -aCf -aCf -aCf -aCf -aCf -aCf +azF +azF +azF +azF +azF +azF aao aao tQw @@ -74224,14 +74468,14 @@ tQw aao aao aao -ack -tng -arz -anU -kCm -ayz -knF -whv +bQG +vXJ +khB +tQj +kzF +fEE +pLH +ovQ aCc aCc aCc @@ -74240,19 +74484,19 @@ aCc aCc aMk anW -aDc +aKL aEi -aDc -aDg -aDc aEi -aDc +kgl aEi -aDc +tmj aEi -aDc aEi -aDc +aui +tkM +aui +sri +aEi aEi aEi aqx @@ -74440,38 +74684,38 @@ tQw tQw aao aao -tVm -tng -tng -tng -ack -awf -ayz -knF -whv +fxZ +vXJ +vXJ +vXJ +bQG +jAX +fEE +pLH +ovQ aCc aCc -knF +pLH aCc aCc -knF +pLH aMk anW -aDc -aEi +aKL +aui aDe aGe -aGN -aHM -aHM -aHM +aOi +aOi +aOi +ncT aKM aLF -aLF -aLF -aLF -aPk +aOj aEi +aOj +aPk +tAM aqx aTq aTq @@ -74656,36 +74900,36 @@ tQw tQw tQw aao -ack -tng -tng -tng -tng -arz -awf -kCm -aAh -kLW +bQG +vXJ +vXJ +vXJ +vXJ +khB +jAX +kzF +ivW +vkf aCc -knF +pLH aCc aCc aCc aCc aMk anW -aDc -aEi +anW +aDf aDg -aEi -aGO +fKY +aOj aHN -aIG -aIG +aOj +aEi aKN -aLG -aLG -aLG +aOi +aOi +jvP aOi aPl aQs @@ -74873,16 +75117,16 @@ tQw ahw tQw tQw -fNh -tng -tng -tng -tng -tng +idT +vXJ +vXJ +vXJ +vXJ +vXJ aao aao -kCm -dTa +kzF +lSb aCc aCc aCc @@ -74892,20 +75136,20 @@ aCc aMk anW aDd -aEi -aDg -aEi -aEi -aEi -aEi -aEi +aDh +xsf +qNp +aui +aui +aui aEi aEi -aDc aEi +aHO +rVy aOj aPm -aQt +ncT aRu nnK aTt @@ -75090,39 +75334,39 @@ tQw ujC ujC tQw -vVB -ack -tng -tng +ukv +bQG +vXJ +vXJ aao aao aao aao aao -aBY -aAh -knF -knF +pJn +ivW +pLH +pLH aCc aCc aCc aMk anW -aDe +aEl aQt aEl -aGf +aQt aEi -aHO +kMA aIH aJD aKO aEi +aHO +eGv aEi -aEi -aOj aPn -aEi +aui ocA aTq aTp @@ -75308,38 +75552,38 @@ ujC ujC tQw tQw -tCQ -tCQ +mda +mda aao aao aao -kCm -gbt -kCm -kCm -gbt -aCd -aAh +kzF +lAC +kzF +kzF +lAC +jPQ +ivW aCc aCc aCc aMk anW -aDf anW anW anW -aEi +anW +kDb aHO lDa lDa aKO aEi -aDc aEi -aOj +eiR +lsk aPo -aQs +pNn anW aTq aTq @@ -75531,9 +75775,9 @@ aao aao aao aao -kCm -kCm -kCm +kzF +kzF +kzF aao aao aao @@ -75541,22 +75785,22 @@ aCc aCc aCc aMk -anW -aDg +apo +apo aEk -aui +apo anW voz +ghh +ghh +aui +nAA +ghh aEi aEi aEi -aEi -aEi -aDc -aEi -aGO aPp -aEi +lEP aqx aTq aTq @@ -75748,32 +75992,32 @@ tQw aao aao aao -kCm -gbt +kzF +lAC aao aao aao aao -knF -knF +pLH +pLH aCc aMk +apo +apo +apo +apo anW -aDh -aEl -aEi -anW -aGQ -aEi -aEi -aEi -aGQ -aEi -aEi aGQ -aEi -aEi -aEi +ceF +jBo +aui +rRE +jBo +mPo +llZ +gPb +gPb +kwh aqx aTq aTq @@ -75973,12 +76217,12 @@ aao aao aao aao -coc +rLM aMk -anW -anW -anW -anW +apo +apo +apo +apo anW anW anW @@ -77906,7 +78150,7 @@ aev adZ aao gNH -biX +lUM aev aev aoE @@ -78123,13 +78367,13 @@ aev adZ aao gNH -biX +lUM aev anM aqb aps adZ -aqZ +tkY arF aso arF @@ -81376,7 +81620,7 @@ adZ adZ adZ aeQ -wQu +ald daB amO afy diff --git a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm index 8f6063172ff5..7b28c00cc0d6 100644 --- a/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm +++ b/maps/map_files/BigRed/sprinkles/15.reactor_meltdown.dmm @@ -916,9 +916,8 @@ }, /area/bigredv2/outside/engineering) "dy" = ( -/obj/structure/machinery/power/geothermal{ - name = "Reactor Turbine"; - power_generation_max = 1e+006 +/obj/structure/machinery/power/reactor/colony{ + name = "Reactor Turbine" }, /turf/open/floor/plating, /area/bigredv2/outside/engineering) diff --git a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm index 7acf197b3ddb..19f720daf929 100644 --- a/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm +++ b/maps/map_files/BigRed/sprinkles/25.chapel_cult.dmm @@ -51,11 +51,6 @@ icon_state = "darkish" }, /area/bigredv2/outside/chapel) -"aj" = ( -/turf/open/floor{ - icon_state = "darkish" - }, -/area/bigredv2/outside/chapel) "ak" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -550,7 +545,7 @@ ab "} (10,1,1) = {" ac -aj +ae av aI aW diff --git a/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm b/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm index 6aa3dfd2cfc2..bfce848e5656 100644 --- a/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm +++ b/maps/map_files/BigRed/sprinkles/25.containerroom_xenos.dmm @@ -36,12 +36,8 @@ /turf/open/floor/plating, /area/bigredv2/outside/nw) "i" = ( -/obj/structure/machinery/light{ - dir = 1; - icon_state = "tube1" - }, -/turf/open/floor/plating, -/area/bigredv2/outside/nw) +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/telecomm/warehouse) "j" = ( /turf/open/floor/plating, /area/bigredv2/outside/nw) @@ -130,6 +126,84 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/nw) +"D" = ( +/obj/effect/landmark/static_comms/net_one, +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/warehouse) +"H" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/plating{ + dir = 10; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) +"K" = ( +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/warehouse) +"O" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/plating{ + dir = 8; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) +"S" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating{ + dir = 4; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) +"T" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/plating{ + dir = 6; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) +"V" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/plating{ + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) +"Z" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5; + pixel_x = -1 + }, +/turf/open/floor/plating{ + dir = 4; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) (1,1,1) = {" b @@ -144,10 +218,10 @@ b b "} (2,1,1) = {" -b -e -j -j +i +O +O +H q j u @@ -156,10 +230,10 @@ j b "} (3,1,1) = {" -b -f -j -j +i +K +D +V q j v @@ -168,10 +242,10 @@ y b "} (4,1,1) = {" -b -g -m -j +i +K +K +V q j j @@ -180,10 +254,10 @@ j b "} (5,1,1) = {" -b -h -m -j +i +S +Z +T q j j @@ -194,7 +268,7 @@ b (6,1,1) = {" b g -j +m j r j @@ -205,8 +279,8 @@ b "} (7,1,1) = {" b -g -j +h +m j q j @@ -217,7 +291,7 @@ b "} (8,1,1) = {" b -i +f j j q @@ -301,7 +375,7 @@ b "} (15,1,1) = {" b -j +e j j q diff --git a/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm b/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm deleted file mode 100644 index 69d091b39d02..000000000000 --- a/maps/map_files/BigRed/sprinkles/30.cave-north_lambdapath.dmm +++ /dev/null @@ -1,214 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, -/area/bigredv2/caves_north) -"b" = ( -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) -"c" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"d" = ( -/turf/open/mars_cave, -/area/bigredv2/caves_north) -"e" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) -"f" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_north) -"g" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"h" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_lambda) -"j" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) -"m" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_14" - }, -/area/bigredv2/caves_north) -"n" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/caves_north) -"o" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_17" - }, -/area/bigredv2/caves_north) -"s" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_north) -"C" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/caves_north) -"H" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_19" - }, -/area/bigredv2/caves_north) -"M" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/caves_north) -"S" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_lambda) -"Z" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/mars_cave{ - icon_state = "mars_cave_16" - }, -/area/bigredv2/caves_lambda) - -(1,1,1) = {" -a -d -e -m -C -n -H -e -e -s -"} -(2,1,1) = {" -b -f -s -n -j -n -o -e -e -m -"} -(3,1,1) = {" -b -b -s -M -n -H -d -b -b -b -"} -(4,1,1) = {" -b -b -g -Z -Z -b -b -b -b -b -"} -(5,1,1) = {" -b -c -c -c -c -c -b -b -b -b -"} -(6,1,1) = {" -b -c -c -c -h -c -c -b -b -b -"} -(7,1,1) = {" -S -c -c -c -c -c -c -b -c -c -"} -(8,1,1) = {" -c -c -c -c -c -c -c -g -c -c -"} -(9,1,1) = {" -c -h -c -c -c -h -c -g -c -c -"} -(10,1,1) = {" -c -c -c -c -c -c -c -g -c -h -"} diff --git a/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm b/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm deleted file mode 100644 index 96ed195a9bee..000000000000 --- a/maps/map_files/BigRed/sprinkles/5+gruesome_medicaleast.dmm +++ /dev/null @@ -1,53 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/obj/item/prop/helmetgarb/rosary{ - pixel_y = 6 - }, -/turf/template_noop, -/area/template_noop) -"d" = ( -/obj/item/clothing/head/soft/blue{ - pixel_x = 5 - }, -/turf/template_noop, -/area/template_noop) -"g" = ( -/obj/item/weapon/gun/pistol/holdout{ - pixel_x = -4 - }, -/turf/template_noop, -/area/template_noop) -"A" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/template_noop, -/area/template_noop) -"K" = ( -/obj/item/limb/arm/l_arm{ - dir = 8 - }, -/obj/item/limb/arm/r_arm, -/obj/item/limb/foot/l_foot{ - dir = 1; - pixel_y = 21 - }, -/obj/item/limb/head{ - dir = 4; - pixel_x = 6 - }, -/obj/effect/decal/cleanable/blood, -/turf/template_noop, -/area/template_noop) -"M" = ( -/turf/template_noop, -/area/template_noop) - -(1,1,1) = {" -d -A -a -"} -(2,1,1) = {" -K -g -M -"} diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index 40573911281f..9c09a95e9f94 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -10039,20 +10039,6 @@ icon_state = "bluegreycorner" }, /area/corsat/theta/airlock/east) -"aCR" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/sigma/southeast/generator) "aCS" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "Reception Desk"; @@ -10653,20 +10639,6 @@ icon_state = "retrosquares" }, /area/corsat/omega/airlocknorth) -"aEp" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/gamma/engineering/core) "aEq" = ( /obj/structure/window/framed/corsat, /turf/open/floor/plating, @@ -10675,22 +10647,6 @@ /obj/structure/window/framed/corsat, /turf/open/floor/plating, /area/corsat/gamma/cargo/lobby) -"aEs" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "0-8"; - layer = 2.1 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/gamma/engineering/core) "aEt" = ( /turf/open/floor/corsat{ icon_state = "arrow_west" @@ -10724,22 +10680,6 @@ icon_state = "darkgreen" }, /area/corsat/gamma/hangar/monorail) -"aEA" = ( -/obj/structure/machinery/power/geothermal{ - desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; - fail_rate = 4; - name = "\improper G-17 Thermoelectric Generator" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "0-8"; - layer = 2.1 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/sigma/southeast/generator) "aEC" = ( /turf/open/floor/corsat{ dir = 4; @@ -11295,6 +11235,9 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, /turf/open/floor/corsat{ dir = 1; icon_state = "yellow" @@ -15046,6 +14989,10 @@ /turf/open/floor/plating, /area/corsat/gamma/engineering/lobby) "aPX" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, /turf/open/floor/corsat{ dir = 1; icon_state = "yellow" @@ -18863,6 +18810,7 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -26593,15 +26541,6 @@ icon_state = "squares" }, /area/corsat/sigma/south/robotics) -"bwY" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/exosuit/main/max, -/obj/item/circuitboard/exosuit/peripherals/max/targeting, -/obj/item/circuitboard/exosuit/peripherals/max, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/corsat/sigma/south/robotics) "bwZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/screwdriver, @@ -26720,12 +26659,6 @@ icon_state = "yellow" }, /area/corsat/sigma/south/robotics) -"bxr" = ( -/obj/structure/prop/mech/parts/durand_head, -/turf/open/floor/corsat{ - icon_state = "arrow_north" - }, -/area/corsat/sigma/south/robotics) "bxs" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/ripley_build_and_repair, @@ -26742,18 +26675,6 @@ icon_state = "yellow" }, /area/corsat/sigma/south/robotics) -"bxu" = ( -/obj/structure/prop/mech/parts/durand_right_arm, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, -/area/corsat/sigma/south/robotics) -"bxv" = ( -/obj/structure/prop/mech/parts/durand_torso, -/turf/open/floor/corsat{ - icon_state = "cargo" - }, -/area/corsat/sigma/south/robotics) "bxw" = ( /turf/open/floor/corsat{ icon_state = "arrow_east" @@ -26778,12 +26699,6 @@ icon_state = "cargo" }, /area/corsat/sigma/south/robotics) -"bxA" = ( -/obj/structure/prop/mech/parts/durand_left_leg, -/turf/open/floor/corsat{ - icon_state = "arrow_east" - }, -/area/corsat/sigma/south/robotics) "bxB" = ( /obj/structure/girder/displaced, /turf/open/floor/corsat, @@ -36821,6 +36736,7 @@ /obj/structure/machinery/camera/autoname{ network = list("gamma") }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/corsat{ dir = 1; icon_state = "yellow" @@ -37457,6 +37373,19 @@ icon_state = "whitetancorner" }, /area/corsat/sigma/dorms) +"drE" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/gamma/engineering/core) "drW" = ( /turf/open/floor/corsat{ dir = 8; @@ -38180,6 +38109,17 @@ icon_state = "bluegreycorner" }, /area/corsat/gamma/hangar/flightcontrol) +"dSc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/corsat{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/gamma/engineering/core) "dSi" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 @@ -40881,6 +40821,12 @@ icon_state = "yellow" }, /area/corsat/gamma/engineering) +"fTK" = ( +/obj/structure/prop/mech/parts/durand_left_leg, +/turf/open/floor/corsat{ + icon_state = "arrow_east" + }, +/area/corsat/sigma/south/robotics) "fTT" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -43752,6 +43698,21 @@ }, /turf/open/gm/grass/grass1/weedable, /area/corsat/theta/biodome) +"hNL" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "0-8"; + layer = 2.1 + }, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/gamma/engineering/core) "hOb" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/r_wall/biodome, @@ -45471,6 +45432,15 @@ "jfP" = ( /turf/closed/wall/biodome, /area/corsat/gamma/rnr) +"jfW" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/exosuit/main/max, +/obj/item/circuitboard/exosuit/peripherals/max/targeting, +/obj/item/circuitboard/exosuit/peripherals/max, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/sigma/south/robotics) "jgb" = ( /obj/structure/surface/table/reinforced, /obj/item/tool/surgery/retractor, @@ -50626,6 +50596,12 @@ icon_state = "white" }, /area/corsat/gamma/residential/east) +"mZm" = ( +/obj/structure/prop/mech/parts/durand_head, +/turf/open/floor/corsat{ + icon_state = "arrow_north" + }, +/area/corsat/sigma/south/robotics) "naG" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ dir = 2; @@ -51771,6 +51747,15 @@ icon_state = "whitetan" }, /area/corsat/gamma/residential/west) +"nSp" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/exosuit/peripherals/alice, +/obj/item/circuitboard/exosuit/main/alice, +/turf/open/floor/corsat{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/sigma/south/robotics) "nSA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -52647,6 +52632,12 @@ icon_state = "plate" }, /area/corsat/gamma/biodome/complex) +"oCt" = ( +/obj/structure/prop/mech/parts/durand_torso, +/turf/open/floor/corsat{ + icon_state = "cargo" + }, +/area/corsat/sigma/south/robotics) "oCz" = ( /obj/structure/machinery/light{ dir = 4 @@ -52925,6 +52916,15 @@ icon_state = "squares" }, /area/corsat/omega/complex) +"oNi" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "oNI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -53474,6 +53474,18 @@ icon_state = "squares" }, /area/corsat/omega/security) +"phl" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/corsat{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/gamma/engineering/core) "phK" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/corsat{ @@ -54277,6 +54289,14 @@ icon_state = "bluegrey" }, /area/corsat/sigma/south/offices) +"pUy" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/exosuit/peripherals/work_loader, +/obj/item/circuitboard/exosuit/peripherals/work_loader, +/turf/open/floor/corsat{ + icon_state = "yellow" + }, +/area/corsat/sigma/south/robotics) "pUA" = ( /turf/open/floor/corsat{ dir = 8; @@ -56471,6 +56491,13 @@ icon_state = "squares" }, /area/corsat/sigma/hangar/security) +"ryn" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/corsat{ + dir = 1; + icon_state = "yellow" + }, +/area/corsat/gamma/engineering/core) "ryE" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/corsat{ @@ -57420,6 +57447,21 @@ icon_state = "red" }, /area/corsat/omega/hangar/security) +"sgN" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "0-8"; + layer = 2.1 + }, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "sgX" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -58828,14 +58870,6 @@ icon_state = "plate" }, /area/corsat/gamma/freezer) -"thp" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/exosuit/peripherals/work_loader, -/obj/item/circuitboard/exosuit/peripherals/work_loader, -/turf/open/floor/corsat{ - icon_state = "yellow" - }, -/area/corsat/sigma/south/robotics) "thv" = ( /obj/structure/machinery/power/apc/high{ dir = 1; @@ -59862,15 +59896,6 @@ }, /turf/open/ice, /area/corsat/gamma/biodome) -"tWD" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/exosuit/peripherals/alice, -/obj/item/circuitboard/exosuit/main/alice, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "yellow" - }, -/area/corsat/sigma/south/robotics) "tWM" = ( /obj/structure/machinery/vending/cigarette/colony, /turf/open/floor/corsat{ @@ -63615,6 +63640,12 @@ icon_state = "retrosquareslight" }, /area/corsat/gamma/sigmaremote) +"wKf" = ( +/obj/structure/prop/mech/parts/durand_right_arm, +/turf/open/floor/corsat{ + icon_state = "arrow_west" + }, +/area/corsat/sigma/south/robotics) "wKh" = ( /obj/structure/bed/chair{ dir = 8 @@ -65388,6 +65419,14 @@ icon_state = "squares" }, /area/corsat/sigma/cargo) +"yhI" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "yhK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -65428,6 +65467,19 @@ icon_state = "purplewhite" }, /area/corsat/gamma/sigmaremote) +"ykJ" = ( +/obj/structure/machinery/power/reactor/colony{ + desc = "A high-tech thermoelectric generator fueled by a superheated uranium rod."; + name = "\improper G-17 Thermoelectric Generator" + }, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/corsat/sigma/southeast/generator) "ykO" = ( /turf/open/floor/corsat{ icon_state = "red" @@ -93708,9 +93760,9 @@ apI aau axp aqa -aEp -aEp -aEp +drE +drE +drE axB apZ bnl @@ -94198,9 +94250,9 @@ apI aFY aqa aqa -aEp -aEp -aEp +drE +drE +drE sNG kRO ufN @@ -94930,7 +94982,7 @@ aEq aEq agK apI -aPX +ryn aqa aqa hKc @@ -95420,12 +95472,12 @@ ouk bqM buz apI -aFY +dSc aqa aqa -aEs -aEs -aEs +hNL +hNL +hNL sNG kRO ufN @@ -95665,7 +95717,7 @@ oUz boV bOc apI -aPX +phl aqa aqa aPS @@ -95913,9 +95965,9 @@ apI aau axp aqa -aEs -aEs -aEs +hNL +hNL +hNL orz iYR bnl @@ -109525,7 +109577,7 @@ pbS auJ bxm aCs -bxu +wKf bxy aMi fVm @@ -109769,8 +109821,8 @@ ahu vzc auJ bEg -bxr -bxv +mZm +oCt bxz pCi lLe @@ -110016,7 +110068,7 @@ auJ hqv aCs bxw -bxA +fTK fbs bxF auJ @@ -112231,7 +112283,7 @@ auJ bxT aMi aMi -thp +pUy auR ylo ylo @@ -112471,7 +112523,7 @@ aMi aMi aMi kjH -tWD +nSp auJ bvL bxW @@ -112716,7 +112768,7 @@ aMi uJq qAk kad -bwY +jfW aEx auR auR @@ -121738,11 +121790,11 @@ auO atl aCz unf -aCR +ykJ aCz -aCR +ykJ aCz -aCR +ykJ aEK sWd xoK @@ -122228,11 +122280,11 @@ aXX atl aZE unf -aEA +sgN aCz -aCR +ykJ aCz -aEA +sgN apE apN aqp @@ -122716,13 +122768,13 @@ alw alw alw atl -aCz +oNi unf -aEA +sgN aCz -aEA +sgN aCz -aEA +sgN aEK aEK aqU @@ -122961,7 +123013,7 @@ auU avf asX ati -aCz +yhI apz dFP dFP diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm index dd9f0c499d8c..a86fb326152d 100644 --- a/maps/map_files/DesertDam/Desert_Dam.dmm +++ b/maps/map_files/DesertDam/Desert_Dam.dmm @@ -11227,11 +11227,6 @@ /obj/structure/flora/grass/desert/heavygrass_3, /turf/open/desert/dirt, /area/desert_dam/interior/caves/central_caves) -"aHO" = ( -/turf/open/asphalt/cement_sunbleached{ - icon_state = "cement_sunbleached16" - }, -/area/desert_dam/exterior/valley/valley_wilderness) "aHP" = ( /obj/effect/decal/cleanable/dirt, /turf/open/asphalt{ @@ -15509,21 +15504,6 @@ "aVw" = ( /turf/closed/wall/r_wall/prison, /area/desert_dam/building/security/interrogation) -"aVz" = ( -/obj/structure/flora/pottedplant, -/obj/structure/machinery/power/apc{ - dir = 1; - pixel_y = 24; - start_charge = 0 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 5; - icon_state = "red" - }, -/area/desert_dam/building/security/lobby) "aVA" = ( /obj/structure/machinery/light{ dir = 4 @@ -16767,12 +16747,6 @@ icon_state = "red" }, /area/desert_dam/building/security/lobby) -"aZt" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/interior/wood, -/area/desert_dam/building/security/detective) "aZu" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -18103,12 +18077,6 @@ dir = 4 }, /area/desert_dam/exterior/river/riverside_central_north) -"bdL" = ( -/obj/item/reagent_container/food/drinks/flask/detflask, -/obj/item/clothing/head/det_hat, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/interior/wood, -/area/desert_dam/building/security/detective) "bdM" = ( /obj/item/ashtray/bronze, /obj/item/clothing/mask/cigarette/cigar, @@ -19719,22 +19687,6 @@ dir = 10 }, /area/desert_dam/interior/dam_interior/hanger) -"bja" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) -"bjb" = ( -/obj/structure/computerframe, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) -"bjc" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) "bjd" = ( /obj/structure/machinery/light{ dir = 4 @@ -19786,13 +19738,6 @@ icon_state = "swall3" }, /area/desert_dam/interior/dam_interior/hanger) -"bjl" = ( -/obj/structure/machinery/light, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) -"bjm" = ( -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) "bjn" = ( /obj/structure/machinery/light, /turf/open/floor/prison{ @@ -19871,10 +19816,6 @@ icon_state = "swall8" }, /area/desert_dam/interior/dam_interior/hanger) -"bjA" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) "bjB" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -20024,24 +19965,6 @@ icon_state = "cement3" }, /area/desert_dam/interior/dam_interior/central_tunnel) -"bkd" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) -"bke" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) "bkf" = ( /turf/open/desert/dirt{ dir = 5; @@ -20095,18 +20018,6 @@ icon_state = "swall0" }, /area/desert_dam/interior/dam_interior/hanger) -"bko" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) -"bkp" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) "bkt" = ( /turf/open/desert/dirt{ dir = 8; @@ -20943,18 +20854,6 @@ icon_state = "floor_plate" }, /area/desert_dam/interior/dam_interior/hanger) -"bnd" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) -"bne" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle/can_surgery/red, -/area/desert_dam/interior/dam_interior/hanger) "bnf" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -24146,18 +24045,10 @@ icon_state = "warning" }, /area/desert_dam/interior/dam_interior/engine_room) -"bxE" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/desert_dam/interior/dam_interior/engine_room) "bxF" = ( /obj/effect/landmark/good_item, /turf/open/floor/plating, /area/desert_dam/building/warehouse/breakroom) -"bxH" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/greengrid, -/area/desert_dam/interior/dam_interior/engine_room) "bxJ" = ( /turf/open/floor{ dir = 4; @@ -24450,20 +24341,6 @@ icon_state = "bright_clean2" }, /area/desert_dam/building/administration/hallway) -"byG" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/lattice{ - layer = 2.9 - }, -/turf/open/floor/plating, -/area/desert_dam/interior/dam_interior/engine_room) -"byJ" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/lattice{ - layer = 2.9 - }, -/turf/open/floor/greengrid, -/area/desert_dam/interior/dam_interior/engine_room) "byL" = ( /obj/structure/machinery/light{ dir = 4 @@ -25294,6 +25171,7 @@ }, /area/desert_dam/interior/dam_interior/engine_east_wing) "bBI" = ( +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/prison{ icon_state = "darkyellow2" }, @@ -27376,6 +27254,15 @@ }, /area/desert_dam/interior/dam_interior/atmos_storage) "bIz" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor/prison{ icon_state = "green" }, @@ -31710,6 +31597,12 @@ icon_state = "vault" }, /area/desert_dam/building/security/prison) +"bWO" = ( +/obj/item/reagent_container/food/drinks/flask/detflask, +/obj/item/clothing/head/det_hat, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/interior/wood, +/area/desert_dam/building/security/detective) "bWP" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/sand_overlay/sand2{ @@ -61065,6 +60958,13 @@ }, /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_hydro) +"gVo" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/lattice{ + layer = 2.9 + }, +/turf/open/floor/greengrid, +/area/desert_dam/interior/dam_interior/engine_room) "gWu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -61195,6 +61095,12 @@ icon_state = "cement_sunbleached1" }, /area/desert_dam/exterior/valley/south_valley_dam) +"hvD" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f10" + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "hvG" = ( /turf/open/desert/dirt{ dir = 4; @@ -61292,6 +61198,10 @@ icon_state = "cement_sunbleached13" }, /area/desert_dam/exterior/valley/valley_telecoms) +"hOt" = ( +/obj/structure/computerframe, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "hOv" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -61457,6 +61367,13 @@ icon_state = "whitegreen" }, /area/desert_dam/building/medical/emergency_room) +"iiY" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/lattice{ + layer = 2.9 + }, +/turf/open/floor/plating, +/area/desert_dam/interior/dam_interior/engine_room) "ijc" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/prison{ @@ -61722,6 +61639,10 @@ /obj/effect/decal/sand_overlay/sand1/corner1, /turf/open/asphalt/cement_sunbleached, /area/desert_dam/exterior/telecomm/lz2_storage) +"jdT" = ( +/obj/structure/machinery/light, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "jfA" = ( /obj/structure/flora/tree/joshua, /turf/open/desert/dirt, @@ -61845,6 +61766,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/desert_dam/building/hydroponics/hydroponics_storage) +"jIQ" = ( +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "jJa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -62097,6 +62021,10 @@ icon_state = "tile" }, /area/desert_dam/exterior/valley/valley_hydro) +"kOC" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/desert_dam/interior/dam_interior/engine_room) "kOR" = ( /obj/structure/surface/table/reinforced/prison{ color = "#6b675e" @@ -62257,7 +62185,7 @@ /area/desert_dam/exterior/valley/valley_telecoms) "lrn" = ( /obj/effect/landmark/nightmare{ - insert_tag = "damtemple" + insert_tag = "damtemple_intact" }, /turf/open/desert/dirt{ icon_state = "desert_transition_edge1" @@ -62696,6 +62624,21 @@ icon_state = "floor_plate" }, /area/desert_dam/interior/dam_interior/hanger) +"mKZ" = ( +/obj/structure/flora/pottedplant, +/obj/structure/machinery/power/apc{ + dir = 1; + pixel_y = 24; + start_charge = 0 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "red" + }, +/area/desert_dam/building/security/lobby) "mMm" = ( /turf/open/desert/dirt{ dir = 5; @@ -63147,6 +63090,10 @@ "ozu" = ( /turf/open/asphalt, /area/desert_dam/exterior/valley/south_valley_dam) +"ozQ" = ( +/obj/structure/machinery/door/unpowered/shuttle, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "oAM" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal2" @@ -63204,6 +63151,12 @@ icon_state = "desert_transition_edge1" }, /area/desert_dam/exterior/valley/valley_hydro) +"oJW" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/interior/wood, +/area/desert_dam/building/security/detective) "oKG" = ( /obj/structure/desertdam/decals/road_stop{ icon_state = "stop_decal5" @@ -63267,6 +63220,10 @@ icon_state = "wood" }, /area/desert_dam/building/dorms/hallway_northwing) +"oWx" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/greengrid, +/area/desert_dam/interior/dam_interior/engine_room) "oXx" = ( /obj/structure/machinery/colony_floodlight, /turf/open/asphalt{ @@ -63634,6 +63591,15 @@ icon_state = "desert_transition_edge1" }, /area/desert_dam/exterior/valley/bar_valley_dam) +"qmn" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "qmy" = ( /obj/structure/surface/rack, /turf/open/floor/sandstone/runed, @@ -64244,6 +64210,15 @@ icon_state = "desert_transition_corner1" }, /area/desert_dam/exterior/valley/bar_valley_dam) +"sjN" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "skB" = ( /turf/open/desert/rock, /area/desert_dam/exterior/valley/valley_hydro) @@ -64331,6 +64306,12 @@ icon_state = "bright_clean2" }, /area/desert_dam/interior/lab_northeast/east_lab_workshop) +"swK" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f6" + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "sye" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/asphalt/cement, @@ -64365,6 +64346,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_medical) +"sFQ" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f9" + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) +"sGP" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f5" + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "sHk" = ( /obj/structure/prop/dam/boulder/boulder3, /turf/open/desert/dirt, @@ -65104,7 +65097,7 @@ icon_state = "S" }, /obj/effect/landmark/nightmare{ - insert_tag = "shipgone" + insert_tag = "shipgone_northlz" }, /turf/open/floor/prison{ dir = 10; @@ -65457,7 +65450,7 @@ /area/desert_dam/interior/dam_interior/garage) "wrl" = ( /obj/effect/landmark/nightmare{ - insert_tag = "cavein" + insert_tag = "cavein_engineering" }, /turf/closed/wall/rock/orange, /area/desert_dam/exterior/rock) @@ -65469,6 +65462,12 @@ icon_state = "white" }, /area/desert_dam/interior/dam_interior/garage) +"wta" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "wud" = ( /obj/structure/disposalpipe/segment, /turf/open/floor{ @@ -65541,6 +65540,12 @@ icon_state = "tile" }, /area/desert_dam/exterior/valley/valley_crashsite) +"wLq" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/desert_dam/interior/dam_interior/hanger) "wLI" = ( /turf/open/asphalt/cement{ icon_state = "cement1" @@ -66037,7 +66042,7 @@ icon_state = "road_edge_decal3" }, /obj/effect/landmark/nightmare{ - insert_tag = "minievac" + insert_tag = "minievac_westresearch" }, /turf/open/asphalt, /area/desert_dam/exterior/valley/valley_wilderness) @@ -71580,7 +71585,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnc bhP @@ -71806,17 +71811,17 @@ bdD bhQ bhP asR -bja -bjl +sFQ +jdT bjz -bkd -bko -bko -bko -bkd -bjm -bko -bnd +qmn +wta +wta +wta +qmn +jIQ +wta +hvD bnc bjB bhP @@ -72040,17 +72045,17 @@ bdD bhP bhP vLw -bjb -bjm -bjA -bjm -bjm -bjm -bjm -bjm -bjm -bjm -bjm +hOt +jIQ +ozQ +jIQ +jIQ +jIQ +jIQ +jIQ +jIQ +jIQ +jIQ bnH boy bhP @@ -72274,17 +72279,17 @@ bdD bhR mKW biG -bjc -bjl +sGP +jdT bjB -bke -bkp -bkp -bkp -bke -bjm -bkp -bne +sjN +wLq +wLq +wLq +sjN +jIQ +wLq +swK bnf bjz bhP @@ -72516,7 +72521,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnf bhP @@ -74450,7 +74455,7 @@ aSI chG ceA act -aVz +mKZ aXD aXD aXD @@ -74921,9 +74926,9 @@ ceA aVB aXE aZJ -bdL +bWO bjI -aZt +oJW aVB boW bqy @@ -93120,9 +93125,9 @@ bQF bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -93588,9 +93593,9 @@ bSY bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -94524,9 +94529,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -94992,9 +94997,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -95928,9 +95933,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96351,7 +96356,7 @@ awC awC dTs dTs -aHO +aXv aPP aaC aXC @@ -96396,9 +96401,9 @@ bYF bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96597,7 +96602,7 @@ aVZ aHd dTs aOh -dTs +aWz dTs dTs dTs @@ -98703,8 +98708,8 @@ dTs dTs dTs dTs -aam -ayp +dTs +dTs aeE aeE ayD @@ -99875,7 +99880,7 @@ dTs dTs aam ayp -aeE +dTs aeE bgH dTs diff --git a/maps/map_files/DesertDam/purpleriver/newbridge.dmm b/maps/map_files/DesertDam/purpleriver/newbridge.dmm index 225fdabddc9f..d6de4499493d 100644 --- a/maps/map_files/DesertDam/purpleriver/newbridge.dmm +++ b/maps/map_files/DesertDam/purpleriver/newbridge.dmm @@ -536,11 +536,6 @@ icon_state = "tile" }, /area/desert_dam/exterior/valley/valley_cargo) -"bx" = ( -/turf/open/asphalt{ - icon_state = "tile" - }, -/area/desert_dam/exterior/valley/valley_cargo) "by" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/asphalt{ diff --git a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm index 4d9a42777155..497963d344e4 100644 --- a/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm +++ b/maps/map_files/DesertDam/sprinkles/15.shipgone_northlz.dmm @@ -81,12 +81,12 @@ }, /area/template_noop) "R" = ( -/obj/item/fuelCell{ +/obj/item/fuel_cell{ fuel_amount = 0; icon_state = "cell-empty"; pixel_x = 7 }, -/obj/item/fuelCell{ +/obj/item/fuel_cell{ fuel_amount = 0; icon_state = "cell-empty"; pixel_x = -7; 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 ba9986948eed..97f0248ff6e8 100644 --- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm +++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm @@ -31581,9 +31581,8 @@ /turf/open/floor/wood, /area/prison/library) "bOa" = ( -/obj/structure/machinery/power/geothermal{ +/obj/structure/machinery/power/reactor/colony{ desc = "A thermoelectric generator fueled by searing hot uranium!"; - fail_rate = 5; name = "thermoelectric generator" }, /turf/open/floor/plating, @@ -34129,6 +34128,7 @@ /obj/structure/machinery/light/small{ dir = 4 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/plating, /area/prison/engineering) "bVS" = ( @@ -36112,6 +36112,12 @@ /area/prison/engineering) "ccl" = ( /obj/structure/machinery/light, +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/prison/engineering) "ccm" = ( @@ -44544,6 +44550,12 @@ /obj/structure/largecrate/random/case, /turf/open/floor/plating, /area/prison/maintenance/residential/access/south) +"gXC" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/plating, +/area/prison/engineering) "gXQ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -86370,7 +86382,7 @@ bXd bYe bVP bVP -bVP +gXC bRC ceG cfr diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm index 2920895292ba..f81f67e45a80 100644 --- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm +++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm @@ -883,14 +883,10 @@ }, /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 = "yellow" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "ayX" = ( @@ -1922,11 +1918,6 @@ icon_state = "whitegreenfull" }, /area/fiorina/tumor/ice_lab) -"bhf" = ( -/obj/item/fuelCell, -/obj/structure/surface/rack, -/turf/open/floor/prison, -/area/fiorina/maintenance) "bht" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" @@ -1978,13 +1969,9 @@ /turf/open/floor/prison, /area/fiorina/station/security) "bjt" = ( -/obj/structure/bed{ - icon_state = "abed" - }, -/obj/item/bedsheet/green, +/obj/structure/girder, /turf/open/floor/prison{ - dir = 6; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) "bjR" = ( @@ -2004,14 +1991,9 @@ /turf/open/floor/prison, /area/fiorina/station/power_ring) "bki" = ( -/obj/structure/closet{ - density = 0; - pixel_y = 18 - }, -/obj/item/clothing/gloves/boxing/yellow, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ - dir = 5; - icon_state = "yellow" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "bkQ" = ( @@ -2034,6 +2016,13 @@ icon_state = "floor_plate" }, /area/fiorina/tumor/aux_engi) +"blf" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison{ + dir = 1; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "blA" = ( /obj/item/shard{ icon_state = "medium"; @@ -3702,13 +3691,6 @@ icon_state = "cell_stripe" }, /area/fiorina/station/medbay) -"ckx" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/item/fuelCell, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "ckA" = ( /obj/structure/platform, /turf/open/floor/prison, @@ -4693,12 +4675,14 @@ }, /area/fiorina/station/transit_hub) "cQf" = ( -/obj/structure/machinery/power/apc{ - dir = 1 +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/explosive/grenade/incendiary/molotov, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "cQv" = ( @@ -5705,20 +5689,11 @@ }, /area/fiorina/lz/near_lzI) "dxl" = ( -/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/barricade/metal/wired, +/turf/open/floor/prison{ + icon_state = "yellowfull" }, -/obj/structure/platform/kutjevo/smooth, -/turf/open/space, -/area/fiorina/oob) +/area/fiorina/station/lowsec) "dxv" = ( /turf/open/floor/prison{ dir = 10; @@ -7951,10 +7926,6 @@ }, /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; @@ -8237,6 +8208,13 @@ }, /turf/open/floor/plating/prison, /area/fiorina/station/botany) +"eXY" = ( +/obj/structure/platform, +/obj/structure/reagent_dispensers/fueltank/oxygentank{ + layer = 2.6 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzI) "eYr" = ( /obj/structure/inflatable, /obj/structure/barricade/handrail/type_b, @@ -9153,20 +9131,12 @@ }, /area/fiorina/tumor/civres) "fCJ" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/barricade/handrail{ +/obj/structure/girder, +/turf/open/floor/prison{ dir = 1; - icon_state = "hr_kutjevo"; - name = "solar lattice" - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 + icon_state = "yellow" }, -/turf/open/space, -/area/fiorina/oob) +/area/fiorina/station/lowsec) "fCW" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications, @@ -9209,9 +9179,26 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) +"fDW" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison, +/area/fiorina/station/power_ring) "fEn" = ( /turf/open/floor/prison, /area/fiorina/tumor/ice_lab) +"fEv" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "fEH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/station_alert, @@ -9393,7 +9380,7 @@ "fLb" = ( /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison{ - dir = 9; + dir = 1; icon_state = "yellow" }, /area/fiorina/station/lowsec) @@ -9508,11 +9495,12 @@ }, /area/fiorina/station/power_ring) "fPl" = ( -/obj/structure/barricade/metal/wired{ - dir = 8 +/obj/structure/machinery/power/apc{ + dir = 1 }, /turf/open/floor/prison{ - icon_state = "yellowfull" + dir = 1; + icon_state = "yellow" }, /area/fiorina/station/lowsec) "fPB" = ( @@ -10840,6 +10828,13 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"gFj" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/item/fuel_cell, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) "gFp" = ( /obj/structure/inflatable/door, /turf/open/floor/prison{ @@ -12901,6 +12896,19 @@ }, /turf/open/floor/plating/prison, /area/fiorina/oob) +"hQv" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/item/fuel_cell, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) "hQM" = ( /obj/structure/bed/chair{ dir = 4 @@ -13042,17 +13050,11 @@ /turf/open/floor/plating/prison, /area/fiorina/station/transit_hub) "hTN" = ( -/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" +/obj/structure/girder, +/turf/open/floor/prison{ + icon_state = "yellow" }, -/turf/open/space, -/area/fiorina/oob) +/area/fiorina/station/lowsec) "hUi" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/prison, @@ -14137,18 +14139,11 @@ }, /area/fiorina/oob) "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 - }, +/obj/structure/closet/wardrobe/orange, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing/blue, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) "iCE" = ( @@ -14885,6 +14880,11 @@ icon_state = "greenfull" }, /area/fiorina/tumor/civres) +"iYQ" = ( +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/prison, +/area/fiorina/maintenance) "iZm" = ( /obj/item/trash/chips, /obj/structure/machinery/light/double/blue{ @@ -16961,19 +16961,6 @@ /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/tumor/fiberbush) -"koy" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/item/fuelCell, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "koH" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -17213,16 +17200,6 @@ icon_state = "blue" }, /area/fiorina/station/chapel) -"kwL" = ( -/obj/item/fuelCell, -/obj/structure/platform, -/obj/structure/machinery/light/double/blue{ - dir = 8; - pixel_x = -10; - pixel_y = 13 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "kwT" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating/prison, @@ -17453,10 +17430,6 @@ }, /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; @@ -17639,16 +17612,6 @@ icon_state = "yellow" }, /area/fiorina/station/lowsec) -"kIe" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/prop/souto_land/pole{ - dir = 1 - }, -/obj/structure/prop/souto_land/streamer{ - dir = 9 - }, -/turf/open/floor/wood, -/area/fiorina/station/park) "kIg" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ @@ -18380,7 +18343,7 @@ }, /area/fiorina/station/lowsec) "ldF" = ( -/obj/structure/closet/emcloset, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/prison{ dir = 10; icon_state = "blue" @@ -18948,6 +18911,16 @@ }, /turf/open/floor/wood, /area/fiorina/station/security/wardens) +"lvt" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/prop/souto_land/pole{ + dir = 1 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor/wood, +/area/fiorina/station/park) "lvy" = ( /turf/closed/shuttle/ert{ icon_state = "stan_rightengine" @@ -19833,6 +19806,18 @@ icon_state = "kitchen" }, /area/fiorina/tumor/civres) +"lWy" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/power_ring) "lXs" = ( /obj/item/book/manual/marine_law, /obj/item/book/manual/marine_law{ @@ -19949,16 +19934,6 @@ /obj/item/clipboard, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) -"mbH" = ( -/obj/structure/platform, -/obj/item/fuelCell, -/obj/structure/machinery/light/double/blue{ - dir = 4; - pixel_x = 10; - pixel_y = 13 - }, -/turf/open/floor/plating/prison, -/area/fiorina/station/lowsec) "mcr" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stock_parts/matter_bin/super, @@ -20280,6 +20255,17 @@ icon_state = "floor_plate" }, /area/fiorina/station/chapel) +"mok" = ( +/obj/structure/closet/crate/bravo, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/fuel_cell, +/obj/item/stack/sheet/plasteel, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "mom" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/surgery/surgicaldrill, @@ -22446,6 +22432,13 @@ icon_state = "yellowcorner" }, /area/fiorina/station/lowsec) +"nAV" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison{ + dir = 8; + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "nBb" = ( /obj/structure/machinery/light/double/blue{ dir = 1; @@ -23435,10 +23428,6 @@ }, /turf/open/space, /area/fiorina/oob) -"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, @@ -23819,13 +23808,9 @@ }, /area/fiorina/station/chapel) "opj" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/prison{ - dir = 6; + dir = 4; icon_state = "yellow" }, /area/fiorina/station/lowsec) @@ -24252,17 +24237,6 @@ 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 @@ -24437,13 +24411,6 @@ /obj/structure/blocker/invisible_wall, /turf/open/ice/noweed, /area/fiorina/tumor/ice_lab) -"oIg" = ( -/obj/structure/platform, -/obj/structure/reagent_dispensers/fueltank/oxygentank{ - layer = 2.6 - }, -/turf/open/floor/prison, -/area/fiorina/lz/near_lzI) "oIq" = ( /obj/structure/ice/thin/indestructible{ dir = 1; @@ -25944,13 +25911,8 @@ dir = 4 }, /obj/item/device/flashlight/lamp/tripod, -/obj/structure/machinery/light/double/blue{ - dir = 1; - pixel_y = 21 - }, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "floor_plate" }, /area/fiorina/station/lowsec) "pIs" = ( @@ -26306,13 +26268,6 @@ 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" @@ -27297,13 +27252,6 @@ icon_state = "darkredfull2" }, /area/fiorina/station/research_cells) -"qBS" = ( -/obj/item/circuitboard/exosuit/peripherals/max/targeting, -/obj/structure/surface/rack, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/fiorina/tumor/civres) "qBT" = ( /obj/structure/sink{ dir = 4; @@ -27515,6 +27463,12 @@ /obj/effect/spawner/random/tool, /turf/open/floor/prison, /area/fiorina/station/civres_blue) +"qHi" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "riot_control" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) "qHG" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ pixel_y = 25 @@ -27952,10 +27906,10 @@ /turf/open/floor/prison, /area/fiorina/station/medbay) "qSz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/closet/wardrobe/orange, +/obj/item/clothing/gloves/boxing/yellow, /turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" + icon_state = "yellowfull" }, /area/fiorina/station/lowsec) "qSA" = ( @@ -28390,6 +28344,16 @@ /obj/structure/window/framed/prison/reinforced/hull, /turf/open/floor/plating/prison, /area/fiorina/tumor/servers) +"rmJ" = ( +/obj/structure/platform, +/obj/item/fuel_cell, +/obj/structure/machinery/light/double/blue{ + dir = 4; + pixel_x = 10; + pixel_y = 13 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) "rmX" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -29105,9 +29069,12 @@ }, /area/fiorina/station/research_cells) "rLJ" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk/prison, -/area/fiorina/station/chapel) +/obj/item/clothing/gloves/boxing, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/fiorina/station/lowsec) "rMo" = ( /obj/effect/landmark/objective_landmark/far, /obj/structure/closet/secure_closet/engineering_personal, @@ -29430,13 +29397,6 @@ icon_state = "darkbrown2" }, /area/fiorina/maintenance) -"rVL" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/prison{ - dir = 1; - icon_state = "yellow" - }, -/area/fiorina/station/lowsec) "rVM" = ( /obj/structure/closet/crate/miningcar, /obj/structure/barricade/wooden{ @@ -29539,6 +29499,13 @@ icon_state = "whitegreenfull" }, /area/fiorina/station/medbay) +"rZM" = ( +/obj/item/circuitboard/exosuit/peripherals/max/targeting, +/obj/structure/surface/rack, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/tumor/civres) "rZN" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -32882,16 +32849,6 @@ /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 = "bluefull" - }, -/area/fiorina/station/power_ring) "tVI" = ( /obj/structure/inflatable/popped/door, /turf/open/floor/prison{ @@ -33289,6 +33246,10 @@ }, /turf/open/space/basic, /area/fiorina/oob) +"ugI" = ( +/obj/item/fuel_cell, +/turf/open/floor/prison, +/area/fiorina/tumor/aux_engi) "ugP" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/trash/plate{ @@ -33640,17 +33601,6 @@ 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 = "yellow" - }, -/area/fiorina/station/lowsec) "utL" = ( /obj/structure/bed/chair, /turf/open/floor/prison{ @@ -34723,12 +34673,6 @@ icon_state = "darkbrownfull2" }, /area/fiorina/tumor/aux_engi) -"vbG" = ( -/obj/structure/prop/structure_lattice{ - dir = 4 - }, -/turf/open/floor/plating/prison, -/area/fiorina/maintenance) "vbV" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/prison, @@ -35984,6 +35928,16 @@ "vNq" = ( /turf/closed/wall/r_wall/prison, /area/fiorina/station/telecomm/lz1_cargo) +"vNQ" = ( +/obj/item/fuel_cell, +/obj/structure/platform, +/obj/structure/machinery/light/double/blue{ + dir = 8; + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/lowsec) "vOm" = ( /turf/open/floor/prison{ dir = 8; @@ -36292,6 +36246,12 @@ icon_state = "greenfull" }, /area/fiorina/station/transit_hub) +"vZe" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/prison{ + icon_state = "bluecorner" + }, +/area/fiorina/station/power_ring) "vZs" = ( /obj/item/device/flashlight/lamp/tripod, /turf/open/floor/prison{ @@ -36788,6 +36748,16 @@ icon_state = "floor_plate" }, /area/fiorina/station/medbay) +"woB" = ( +/obj/structure/closet/crate/bravo, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/stack/sheet/metal/medium_stack, +/obj/item/fuel_cell, +/obj/item/stack/sheet/plasteel, +/turf/open/floor/prison{ + icon_state = "bluefull" + }, +/area/fiorina/station/power_ring) "wps" = ( /obj/structure/bed/sofa/south/grey/left, /obj/structure/machinery/light/double/blue{ @@ -36889,13 +36859,6 @@ icon_state = "whitegreenfull" }, /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" @@ -39041,10 +39004,6 @@ }, /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, @@ -48787,7 +48746,7 @@ dXG swj xHV dIo -qBS +rZM sHL swj dIo @@ -50740,8 +50699,8 @@ nMm aHJ jlk jlk -xNw -xNw +ugI +ugI jlk jlk umy @@ -55642,7 +55601,7 @@ tkj oer ckZ kXD -kIe +lvt tas tas tTA @@ -62438,11 +62397,11 @@ lgS eLu eLu eLu -bhf -bhf +iYQ +iYQ eLu -bhf -bhf +iYQ +iYQ eLu eLu ppI @@ -63286,11 +63245,11 @@ lgS eLu eLu eLu -bhf -bhf +iYQ +iYQ eLu -bhf -bhf +iYQ +iYQ eLu eLu cME @@ -66401,9 +66360,9 @@ iKs nTv dtS fQA -bFr -bFr -bFr +bis +bis +bis oLV nxq dBy @@ -66612,10 +66571,10 @@ iKs nTv dtS fQA -bFr -bFr -bQM -bFr +bis +bis +cME +bis bis gXd dBy @@ -66823,12 +66782,12 @@ tyj tyj dtS fQA -bFr -bFr -bQM -bQM -bFr -rLJ +bis +bis +cME +cME +wpD +iKs oeY dBy nxq @@ -67034,12 +66993,12 @@ rJF fmb dBy dBy +dBy +bis +cME +cME +cME bis -bFr -bQM -bQM -bQM -bFr bis gXd qIT @@ -67246,12 +67205,12 @@ bFr twb eLu tLC +tLC +eLu +cME +cME +cME eLu -twb -twb -twb -twb -twb tIn dwP dBy @@ -67683,7 +67642,7 @@ twb eBO eBO eBO -twb +eLu eLu eLu eLu @@ -67887,7 +67846,7 @@ tIU gZc tIU cME -liA +cME cME qIq eLu @@ -67895,7 +67854,7 @@ uvF rzp vds elO -uvF +cME wQT eLu cME @@ -68095,11 +68054,11 @@ twb twb twb cME -eLu -eLu -eLu +cME +cME +cME bgy -eLu +cME cME cME cME @@ -68311,7 +68270,7 @@ cME cME cME cME -liA +cME cME cME cME @@ -68523,7 +68482,7 @@ twb twb cME cME -eLu +cME cME rJh eLu @@ -68531,7 +68490,7 @@ eLu dHD xbM fHo -vbG +cME vZD cME cME @@ -68575,7 +68534,7 @@ uGY ihB ihB ubP -ubP +qHi gag sbF sbF @@ -68739,8 +68698,8 @@ eLu mrk cME jkg -uvF -rVL +cME +dHD xbM fHo xno @@ -68947,15 +68906,15 @@ bQM twb nSU cME -eLu +cME cME cME eLu -uvF +jkg dHD xbM fHo -uvF +cME wQT eLu cYP @@ -69159,7 +69118,7 @@ bQM twb uts cME -liA +cME cME cME cME @@ -69371,17 +69330,17 @@ iYw twb eLu eLu -eLu +cME srI dTf +cME eLu -twb dHD xbM fHo -wzE -sfu -jyF +ioc +bjt +bjt kqC sfu jyF @@ -69586,13 +69545,13 @@ tmo gfo cME wQT -eLu +cME kqC dHD xbM fHo -kqC -wsX +ioc +ioc bjt kqC qNF @@ -69619,12 +69578,12 @@ ihB ceC obh obh -nqN +ceC bxc jbF bBK ceC -uGY +ceC uGY uGY uGY @@ -69791,21 +69750,21 @@ ssc aeI nQu suX -bLJ -twb -twb -tPN -tPN -tPN -twb +neY +liA +yfK +tmo +gfo +cME +cME eLu kqC -dHD +fCJ xbM fHo -kqC -ryJ -end +ioc +ioc +kgN kqC ryJ end @@ -70003,16 +69962,16 @@ aeI aeI aeI nQu -hCh -sKY -bQM -bQM -bQM -bQM -bQM +bLJ +iYw +wzE +hZR +hZR +hZR +wzE wzE kqC -dHD +fCJ bPn fHo ioc @@ -70043,7 +70002,7 @@ stw wQg qet mKp -nqN +ceC qJv bqF tNF @@ -70250,15 +70209,15 @@ kjX ueP gag hQj -nqN -nqN -nqN -nqN -nqN -nqN +uGY +uGY +uGY +uGY +uGY +ceC +ceC +ceC ceC -nqN -nqN ceC unz gag @@ -70650,7 +70609,7 @@ srp bqD cAJ xbM -fHo +hTN kqC rzp tKk @@ -70691,7 +70650,7 @@ uGY ppq ubP ihB -nqN +uGY lJx fAf fAf @@ -70862,7 +70821,7 @@ mGr upY dHD xbM -fHo +hTN kqC qLi dpe @@ -71074,7 +71033,7 @@ mGr upY dHD xbM -fHo +voO kqC kqC kqC @@ -71101,7 +71060,7 @@ qdE uGY ltQ ltQ -nqN +uGY ltQ ayo uGY @@ -71287,9 +71246,9 @@ upY dHD xbM fHo -kqC -sfu -jyF +ioc +ioc +ioc kqC sfu iEG @@ -71313,7 +71272,7 @@ uGY uGY fRq fRq -nqN +uGY fRq ygr xGt @@ -71499,9 +71458,9 @@ iox dHD xbM fHo -kqC -qNF -bjt +ioc +ioc +ioc kqC qNF mDO @@ -71710,10 +71669,10 @@ iYw izh dHD xbM -voO -kqC -ryJ -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -71751,7 +71710,7 @@ uGY ceC uGY uGY -nqN +uGY qQd jwK jwK @@ -71913,14 +71872,14 @@ aeI nQu hCh sKY -hTN -fyC -qOk -mKS -erT -wzE +cAW +cAW +cAW +cAW +cAW wzE -dHD +kqC +fPl xbM fHo ioc @@ -71944,8 +71903,8 @@ dCM dCM dCM nqN -nqN -nqN +uGY +uGY uxv ceC ceC @@ -72125,14 +72084,14 @@ aeI nQu hCh sKY -dxl -afk -afk -afk -ghg +cAW +cAW +cAW wzE wzE -dHD +wzE +kqC +nBb xbM fHo ioc @@ -72337,19 +72296,19 @@ nQu bVE iYw iYw -urJ -afk -hkh -afk -tCZ -pcu +cAW +cAW +wzE wzE +cQf +xbM +dxl dHD xbM -voO -kqC -ryJ -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -72548,20 +72507,20 @@ eMI nQu bVE iYw -jKI -mdJ -afk -afk -afk -xMW -jlH +cAW +cAW +cAW wzE +bki +xbM +xbM +dxl cPh xbM fHo -kqC -rzp -mwP +ioc +ioc +ioc kqC rzp ldz @@ -72762,18 +72721,18 @@ aPv iYw iYw iYw -fCJ -llQ -jKI -bUB -bQM +cAW wzE -nBb +xbM +xbM +xbM +ioc +dHD xbM fHo -kqC -qLi -dpe +ioc +ioc +ioc kqC qLi dpe @@ -72976,16 +72935,16 @@ vOZ iYw sKY wzE -wzE -wzE -wzE -wzE -cQf +xbM +xbM +xbM +ioc +dHD jpx fHo -kqC -kqC -kqC +ioc +ioc +ioc kqC kqC kqC @@ -73191,13 +73150,13 @@ oFI mCe xbM sJP -kqC +ioc dHD xbM fHo -kqC -sfu -jyF +ioc +ioc +ioc kqC sfu jyF @@ -73407,9 +73366,9 @@ ioc dHD xbM fHo -kqC -qNF -mDO +ioc +ioc +ioc kqC qNF eub @@ -73618,10 +73577,10 @@ xbM ioc nbP xbM -voO -kqC -cRB -end +fHo +ioc +ioc +kgN kqC ryJ end @@ -73826,7 +73785,7 @@ bce wzE kqC ioc -fPl +ioc kqC oFp xbM @@ -74262,7 +74221,7 @@ kqC ryJ end kqC -iCf +nBb xbM voO kqC @@ -75105,12 +75064,12 @@ xbM bkQ xbM qNF -qSz +dHD kqC rkp iKy kqC -utG +dHD xbM jbm xbM @@ -75322,7 +75281,7 @@ kqC qNF efW kqC -bki +qNF xRI iXq xRI @@ -75733,11 +75692,11 @@ ioc ioc ioc qNF -xRI -xRI -xRI nAK xbM +xbM +xbM +xbM jET xbM xbM @@ -75748,12 +75707,12 @@ elO hZR bQM hZR -jvi +iCf rzp vds vds vds -elO +rLJ jvi duF jTN @@ -75945,9 +75904,9 @@ kqC ecd kqC kqC -cRB -end -kqC +dHD +xbM +xbM pHx xbM eNa @@ -76159,8 +76118,8 @@ vRA kqC fLb ayW -kqC -dHD +xbM +xbM xbM rYK kqC @@ -76172,7 +76131,7 @@ end wzE bQM hZR -jvi +qSz dHD eNa rwK @@ -76371,8 +76330,8 @@ arl oFI kCT opj -kqC -dHD +xRI +nAK xbM fHo kqC @@ -77444,7 +77403,7 @@ end kqC wzE pah -kwL +vNQ xbM iCN qOq @@ -77655,14 +77614,14 @@ vds elO ioc duF -koy +hQv gsL mOI xbM qOq xbM xbM -ckx +gFj sNN goG tOM @@ -77875,7 +77834,7 @@ qOq huG xbM pah -mbH +rmJ goG tOM tOM @@ -80855,8 +80814,8 @@ jyo mxQ mxQ mxQ -tVf -oEn +woB +mok mxQ pRx tOM @@ -82119,8 +82078,8 @@ gbf pYB pYB gbf -pWl -ogs +blf +fDW mxQ jjg mxQ @@ -82546,7 +82505,7 @@ gbf iYe bnx siy -nBw +nAV mxQ mxQ vUZ @@ -82759,7 +82718,7 @@ doQ upM vjR nBw -ogs +fDW jjg cBn rxM @@ -82958,7 +82917,7 @@ tOM xpM mxQ mxQ -jzP +vZe ydK jzP tlj @@ -82971,7 +82930,7 @@ taS jEa hPu ydK -pWl +blf mxQ mxQ jLD @@ -84018,7 +83977,7 @@ tOM xpM mxQ mxQ -pYB +fEv uTw pYB pYB @@ -84230,7 +84189,7 @@ tOM rdt rsQ mxQ -gbf +lWy gbf gbf jMv @@ -92042,7 +92001,7 @@ xeO xfb yat xeO -oIg +eXY nGZ nGZ rJW diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm index d2ac75d644c7..6cda425f51b0 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/30.repairpanelslz.dmm @@ -62,7 +62,8 @@ /area/template_noop) "l" = ( /obj/item/limb/head/synth{ - pixel_x = -9 + pixel_x = -9; + icon_state = "scandinavian_head_m" }, /obj/structure/platform_decoration/kutjevo{ dir = 1 diff --git a/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm b/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm new file mode 100644 index 000000000000..721ebbc10aed --- /dev/null +++ b/maps/map_files/FOP_v3_Sciannex/standalone/riot_in_progress.dmm @@ -0,0 +1,2269 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"am" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/donut_box{ + pixel_y = 6 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"aE" = ( +/obj/item/device/flashlight/lamp/tripod, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"aK" = ( +/obj/item/clothing/under/marine/ua_riot, +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"aX" = ( +/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) +"bb" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"bl" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"bm" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"bC" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"bO" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"ce" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"ch" = ( +/obj/structure/barricade/deployable{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"cn" = ( +/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/station/security) +"co" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"cr" = ( +/obj/structure/sign/poster/clf, +/turf/closed/wall/prison, +/area/fiorina/station/security) +"cI" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"cZ" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"do" = ( +/obj/structure/coatrack, +/obj/item/clothing/suit/storage/CMB, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"dT" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"eK" = ( +/obj/structure/window/framed/prison/reinforced/hull, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"fd" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"fh" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"fs" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/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/security) +"fy" = ( +/obj/item/explosive/grenade/flashbang, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"fX" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"fZ" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison, +/area/fiorina/station/security) +"gk" = ( +/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) +"gl" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"gI" = ( +/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 = "redfull" + }, +/area/fiorina/station/security) +"gT" = ( +/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) +"gV" = ( +/obj/structure/window/framed/prison, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"hg" = ( +/obj/effect/landmark/corpsespawner/security/marshal, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"hI" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"hY" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"is" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"iK" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"jb" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"ji" = ( +/obj/item/device/flash, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"jI" = ( +/obj/item/tool/crowbar/red, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"jJ" = ( +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"jL" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzII) +"jW" = ( +/obj/item/frame/table/almayer, +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"ke" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"kX" = ( +/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 = "redfull" + }, +/area/fiorina/station/security) +"lv" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"lA" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzII) +"lE" = ( +/obj/structure/window/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"lF" = ( +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"lO" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzII) +"lP" = ( +/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) +"lR" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"lZ" = ( +/obj/item/clothing/under/marine/ua_riot, +/obj/item/weapon/gun/rifle/m16, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"ma" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"mf" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/turf/open/floor/prison, +/area/fiorina/station/security) +"mn" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"mt" = ( +/obj/effect/spawner/random/gun/shotgun/midchance, +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"mD" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"nf" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/box/nade_box/tear_gas, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"nl" = ( +/turf/template_noop, +/area/template_noop) +"np" = ( +/obj/structure/machinery/landinglight/ds2/delaythree{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"nD" = ( +/obj/structure/platform, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"nN" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"oi" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname{ + locked = 1 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"on" = ( +/obj/structure/closet/secure_closet/guncabinet{ + req_access = null + }, +/obj/item/weapon/gun/launcher/grenade/m81, +/obj/item/storage/pill_bottle/kelotane, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"oE" = ( +/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) +"oS" = ( +/obj/structure/barricade/wooden{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"pa" = ( +/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 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"pd" = ( +/obj/item/ammo_magazine/handful/shotgun/beanbag, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"pn" = ( +/obj/effect/acid_hole, +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/security) +"pp" = ( +/obj/item/ammo_casing, +/turf/open/floor/prison, +/area/fiorina/station/security) +"pE" = ( +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/prison, +/area/fiorina/station/security) +"pN" = ( +/obj/item/ammo_box/magazine/shotgun/beanbag, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"pR" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 10 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"pV" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/item/tool/kitchen/utensil/knife, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"qd" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"qw" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"qQ" = ( +/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) +"qX" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"qY" = ( +/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) +"rg" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"rl" = ( +/obj/item/tool/weldingtool, +/turf/open/floor/prison, +/area/fiorina/station/security) +"rP" = ( +/obj/item/reagent_container/spray/pepper, +/turf/open/floor/prison, +/area/fiorina/station/security) +"rR" = ( +/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{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"sj" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"sq" = ( +/turf/open/floor/prison, +/area/fiorina/station/security) +"sA" = ( +/obj/structure/machinery/computer/prisoner, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"tf" = ( +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison, +/area/fiorina/station/security) +"th" = ( +/obj/item/weapon/baton, +/turf/open/floor/prison, +/area/fiorina/station/security) +"tl" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + dir = 8; + icon_state = "red" + }, +/area/fiorina/station/security) +"tv" = ( +/obj/structure/machinery/photocopier{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"ty" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"tS" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/item/clothing/accessory/storage/holster, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"uh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flash, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"uQ" = ( +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"uX" = ( +/obj/item/ammo_magazine/shotgun/beanbag, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"vf" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/fiorina/lz/near_lzII) +"vq" = ( +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/security) +"vS" = ( +/obj/structure/filingcabinet, +/obj/structure/filingcabinet{ + pixel_x = 16 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"wi" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"wF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/flashlight/lamp{ + pixel_x = -6; + pixel_y = 16 + }, +/obj/structure/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"wH" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/item/circuitboard/airlock, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"wJ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"wW" = ( +/obj/effect/landmark/corpsespawner/ua_riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"xp" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_y = 6 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"xv" = ( +/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 = "darkredfull2" + }, +/area/fiorina/station/security) +"xI" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_cmb, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"xM" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/phone{ + pixel_x = 7; + pixel_y = -16 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"xW" = ( +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"yf" = ( +/obj/item/frame/table/reinforced, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"yn" = ( +/obj/item/weapon/classic_baton, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"yv" = ( +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzII) +"yP" = ( +/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 = "redfull" + }, +/area/fiorina/station/security) +"zb" = ( +/obj/structure/machinery/light/double/blue, +/obj/item/stack/sheet/metal, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"zx" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/ammo_magazine/shotgun/beanbag, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"zA" = ( +/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) +"zI" = ( +/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) +"Ac" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Ai" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"AD" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib3" + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"AM" = ( +/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) +"AY" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/phone{ + pixel_x = 9; + pixel_y = -10 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Bd" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/prison, +/area/fiorina/station/security) +"BJ" = ( +/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) +"Cb" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"CO" = ( +/obj/item/ammo_magazine/handful/shotgun/beanbag, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"De" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/phone{ + pixel_y = 7 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"DH" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/machinery/computer/cameras{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Ek" = ( +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/shard{ + icon_state = "large" + }, +/obj/item/stack/rods, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"ER" = ( +/obj/effect/landmark/survivor_spawner/fiorina_armory_riot_control, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"EV" = ( +/obj/item/frame/rack, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Fj" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Fr" = ( +/turf/open/floor/plating/plating_catwalk/prison, +/area/fiorina/lz/near_lzII) +"Fw" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/faxmachine, +/turf/open/floor/prison, +/area/fiorina/station/security) +"FH" = ( +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"FK" = ( +/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) +"FQ" = ( +/obj/effect/landmark/corpsespawner/ua_riot, +/obj/item/weapon/gun/energy/taser, +/turf/open/floor/prison, +/area/fiorina/station/security) +"FZ" = ( +/obj/item/weapon/shield/riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Gd" = ( +/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" + }, +/area/fiorina/station/security) +"Gl" = ( +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"GH" = ( +/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{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"GZ" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Ho" = ( +/obj/structure/window_frame/prison/reinforced, +/obj/item/shard, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"HF" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/spray/pepper, +/obj/item/clothing/glasses/sunglasses/sechud, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"HH" = ( +/obj/item/weapon/gun/launcher/grenade/m81/riot, +/turf/open/floor/prison, +/area/fiorina/station/security) +"HL" = ( +/obj/item/clothing/under/color/orange, +/obj/effect/spawner/gibspawner/human, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/fiorina/lz/near_lzII) +"HW" = ( +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/obj/item/tool/screwdriver{ + pixel_x = 5; + pixel_y = -4 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Ie" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Iz" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/storage/box/flashbangs, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"IG" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/prison, +/area/fiorina/station/security) +"IK" = ( +/obj/item/clothing/head/helmet/marine/veteran/ua_riot, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/lz/near_lzII) +"JR" = ( +/obj/item/ammo_casing, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Kb" = ( +/obj/item/weapon/baton, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"KU" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"Lj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"Mg" = ( +/obj/structure/sign/poster/clf, +/turf/closed/wall/prison, +/area/fiorina/lz/near_lzII) +"Mp" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/obj/item/explosive/grenade/custom/teargas, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"MX" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"Ne" = ( +/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 = "redfull" + }, +/area/fiorina/station/security) +"NL" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + dir = 8; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"NN" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Ox" = ( +/obj/structure/platform, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"OA" = ( +/obj/item/implanter/compressed, +/obj/structure/safe, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"OE" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"OV" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"Pt" = ( +/obj/item/prop/helmetgarb/riot_shield, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"PA" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"Qv" = ( +/obj/structure/machinery/door/airlock/prison_hatch/autoname, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"QC" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"QF" = ( +/obj/structure/machinery/landinglight/ds2/delaytwo{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"QJ" = ( +/turf/closed/wall/prison, +/area/fiorina/station/security) +"QV" = ( +/obj/item/frame/rack, +/obj/item/clothing/under/marine/ua_riot, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Re" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"RR" = ( +/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) +"Sd" = ( +/obj/item/poster, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Sl" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall/r_wall/prison, +/area/fiorina/station/security) +"Sm" = ( +/obj/structure/machinery/deployable/barrier, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Sn" = ( +/obj/structure/prop/almayer/computers/sensor_computer1{ + name = "computer" + }, +/turf/open/floor/prison{ + icon_state = "darkredfull2" + }, +/area/fiorina/station/security) +"Sp" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 13 + }, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"Su" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/stack/rods, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"SD" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"SE" = ( +/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/security) +"Tn" = ( +/obj/structure/machinery/power/apc{ + dir = 4 + }, +/turf/open/floor/prison, +/area/fiorina/station/security) +"Tp" = ( +/obj/item/paper/crumpled, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"TO" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"UE" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"UU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Va" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Vb" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Vd" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"Vs" = ( +/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) +"VF" = ( +/turf/closed/wall/prison, +/area/fiorina/lz/near_lzII) +"VG" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/spawner/random/goggles/lowchance, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Wc" = ( +/obj/structure/machinery/light/double/blue{ + dir = 1; + pixel_y = 21 + }, +/turf/open/floor/prison, +/area/fiorina/lz/near_lzII) +"Wp" = ( +/obj/structure/closet/secure_closet/security_empty, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/weapon/classic_baton, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Ws" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Wy" = ( +/obj/item/weapon/shield/riot, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"WB" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/fiorina/station/security) +"WG" = ( +/obj/item/stack/rods, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"WI" = ( +/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) +"WW" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"Xj" = ( +/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 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"XA" = ( +/obj/item/storage/belt/marine, +/turf/open/floor/prison, +/area/fiorina/station/security) +"XO" = ( +/obj/structure/machinery/landinglight/ds2/delayone{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/lz/near_lzII) +"XV" = ( +/turf/closed/wall/r_wall/prison_unmeltable, +/area/fiorina/station/security) +"Yt" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, +/area/fiorina/station/security) +"YH" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/item/weapon/gun/energy/taser, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/fiorina/station/security) +"YI" = ( +/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 + }, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"YL" = ( +/obj/structure/window/framed/prison/reinforced, +/turf/open/floor/plating/prison, +/area/fiorina/station/security) +"YS" = ( +/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/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"YZ" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/obj/item/shard/shrapnel, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) +"Zg" = ( +/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) +"Zi" = ( +/obj/structure/machinery/line_nexter, +/obj/item/stack/cable_coil, +/turf/open/floor/prison{ + dir = 8; + icon_state = "red" + }, +/area/fiorina/station/security) +"Zo" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/prison{ + icon_state = "redfull" + }, +/area/fiorina/station/security) + +(1,1,1) = {" +nl +nl +nl +nl +nl +Fj +xW +FH +FH +FH +xW +Ie +Tn +Zg +vq +vq +Sl +vq +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(2,1,1) = {" +nl +nl +nl +nl +nl +vq +Ac +is +is +is +Ac +vq +vq +vq +vq +on +yP +Vs +vq +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(3,1,1) = {" +nl +nl +nl +nl +nl +pn +yf +ch +ch +hI +do +vq +FH +jJ +FH +jJ +NN +lZ +EV +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(4,1,1) = {" +nl +nl +nl +nl +nl +vq +sA +sq +HH +sq +FH +PA +sq +tf +Gd +lP +Va +XA +FK +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(5,1,1) = {" +vq +vq +vq +vq +vq +vq +qQ +wW +sq +sq +FH +PA +sq +sq +wJ +mf +gk +fZ +QV +vq +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +nl +"} +(6,1,1) = {" +nl +nl +YL +lR +xW +lR +xW +FH +ER +pN +xW +vq +fd +fd +vq +lE +kX +aK +vq +vq +QJ +QJ +QJ +QJ +QJ +QJ +QJ +QJ +QJ +QJ +cr +"} +(7,1,1) = {" +nl +nl +YL +dT +GH +dT +xW +jI +FH +FH +bm +Su +YH +hg +PA +sq +sq +sq +PA +FH +sq +OA +QJ +YS +xW +ke +YL +FH +pV +Vb +QJ +"} +(8,1,1) = {" +nl +nl +YL +DH +xM +cn +HW +fy +Bd +tl +Zi +bO +WW +Pt +vq +BJ +rR +Ne +vq +tS +sq +Wp +QJ +Ai +sq +fh +PA +xW +hY +WG +wH +"} +(9,1,1) = {" +nl +vq +vq +qd +uX +sj +Tp +ER +mD +QJ +QJ +QJ +QJ +QJ +vq +vq +vq +vq +vq +Iz +FH +zx +QJ +Ws +sq +iK +YL +wF +jW +oE +QJ +"} +(10,1,1) = {" +nl +YL +lR +qw +lR +xW +pd +sq +sq +lF +Wy +Sd +FH +TO +Ox +vq +xW +xW +QJ +QJ +Qv +QJ +QJ +RR +sq +xW +QJ +YL +Ho +YL +cr +"} +(11,1,1) = {" +nl +YL +dT +WI +dT +xW +xI +rP +th +bC +FH +mt +rl +MX +Ox +QJ +Mp +xW +xW +xW +FH +xW +QJ +zA +sq +xW +QJ +pR +uQ +uQ +uQ +"} +(12,1,1) = {" +nl +YL +DH +AY +DH +xW +xW +FZ +sq +CO +hI +FH +FH +Sm +nD +IG +xW +wW +sq +sq +sq +xW +IG +xW +sq +xW +QJ +Mg +aE +nN +nN +"} +(13,1,1) = {" +vq +vq +qd +xW +xW +Kb +xW +ER +gI +QJ +Yt +Yt +XV +Yt +cI +QJ +Xj +sq +xW +xW +sq +QC +PA +FH +sq +xW +QJ +wi +nN +nN +nN +"} +(14,1,1) = {" +YL +Fw +ji +xW +pd +qw +JR +pp +QJ +QJ +lv +lv +XV +lv +NL +YL +Zo +sq +AM +YI +FQ +QC +PA +FH +sq +xW +QJ +SD +nN +nN +nN +"} +(15,1,1) = {" +YL +fs +xW +qw +xW +xW +xW +sq +IG +FH +FH +FH +vS +FH +Ox +YL +bl +sq +uh +am +sq +xW +QJ +xW +xW +xW +QJ +Mg +nN +nN +uQ +"} +(16,1,1) = {" +YL +zI +cZ +xW +UU +jb +YZ +pE +QJ +Cb +FH +fh +gl +FH +Ox +YL +nf +sq +HF +AD +sq +xW +QJ +vq +QJ +QJ +QJ +qY +Fr +Fr +uQ +"} +(17,1,1) = {" +vq +vq +XV +eK +eK +eK +XV +QJ +QJ +Qv +vq +vq +SE +ma +bb +QJ +qX +sq +sq +sq +sq +oS +oS +vq +VF +OE +Mg +uQ +Fr +Fr +uQ +"} +(18,1,1) = {" +nl +nl +nl +nl +nl +nl +eK +mn +Gl +Gl +fX +YL +jL +lA +jL +gV +VG +rg +xW +pa +GZ +lR +UE +vq +gT +aE +uQ +uQ +nN +nN +uQ +"} +(19,1,1) = {" +nl +nl +nl +nl +nl +nl +eK +Sn +Gl +WB +Re +YL +vf +HL +vf +gV +tv +zb +QJ +oi +QJ +aX +zA +vq +Wc +uQ +uQ +uQ +nN +nN +uQ +"} +(20,1,1) = {" +nl +nl +nl +nl +nl +nl +eK +co +De +Lj +xv +YL +IK +lO +yv +QJ +Sp +Ek +cr +OV +cr +gV +gV +vq +ty +uQ +uQ +uQ +nN +nN +uQ +"} +(21,1,1) = {" +nl +nl +nl +nl +nl +nl +XV +YL +YL +vq +YL +vq +nN +Vd +nN +xp +KU +uQ +xp +yn +xp +uQ +uQ +xp +nN +uQ +ce +uQ +XO +QF +np +"} 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 6d99a9dc0f70..74d5921e30de 100644 --- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm +++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm @@ -848,15 +848,6 @@ }, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) -"adm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - name = "Colony Requesitions Storage Pod" - }, -/turf/open/floor/plating/icefloor, -/area/ice_colony/surface/requesitions) "adn" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall0" @@ -1301,12 +1292,6 @@ icon_state = "darkyellow2" }, /area/ice_colony/surface/engineering/generator) -"aex" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor{ - icon_state = "platebot" - }, -/area/ice_colony/surface/engineering/generator) "aey" = ( /obj/item/lightstick/planted, /turf/open/auto_turf/snow/layer1, @@ -1329,17 +1314,6 @@ }, /turf/open/ice, /area/ice_colony/exterior/surface/valley/northeast) -"aeC" = ( -/obj/structure/machinery/door/airlock{ - id_tag = "st_5"; - name = "Storage Unit"; - req_one_access_txt = "100;101;102;103" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/plating/icefloor, -/area/ice_colony/surface/requesitions) "aeD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -2024,15 +1998,6 @@ icon_state = "darkyellow2" }, /area/ice_colony/surface/engineering/generator) -"ags" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "platebot" - }, -/area/ice_colony/surface/engineering/generator) "agt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -11956,16 +11921,6 @@ icon_state = "whitered" }, /area/ice_colony/surface/clinic/lobby) -"aHB" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - id = "st_17"; - name = "Power Storage Unit" - }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/ice_colony/surface/storage_unit/power) "aHD" = ( /obj/structure/closet/secure_closet/guncabinet, /obj/structure/machinery/firealarm{ @@ -12362,6 +12317,12 @@ /obj/effect/landmark/corpsespawner/doctor, /turf/open/floor/wood, /area/ice_colony/surface/command/crisis) +"aIW" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "aIX" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -12399,17 +12360,6 @@ "aJd" = ( /turf/closed/wall/r_wall, /area/ice_colony/surface/storage_unit/telecomms) -"aJe" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "st_18"; - name = "Disposals Storage Unit" - }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/ice_colony/surface/storage_unit/telecomms) "aJf" = ( /turf/closed/wall/r_wall, /area/ice_colony/exterior/surface/valley/southeast) @@ -13689,17 +13639,6 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating, /area/ice_colony/surface/research) -"aNV" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "st_19"; - name = "Research Storage Unit" - }, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/ice_colony/surface/storage_unit/research) "aNW" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -32 @@ -14537,21 +14476,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/research) -"aQm" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - id = "research_entrance"; - name = "Omicron Research Dome" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/surface/research) "aQt" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/generic{ @@ -14601,22 +14525,6 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/alpha) -"aQB" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aQC" = ( -/obj/structure/computerframe, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aQD" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) "aQE" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -14675,22 +14583,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/hangar/hallway) -"aQK" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aQL" = ( -/obj/structure/computerframe, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aQM" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) "aQN" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor{ @@ -14931,16 +14823,6 @@ icon_state = "swall3" }, /area/ice_colony/surface/hangar/alpha) -"aRz" = ( -/obj/structure/machinery/light, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aRA" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) "aRB" = ( /obj/structure/machinery/light{ dir = 4 @@ -14962,22 +14844,6 @@ icon_state = "swall3" }, /area/ice_colony/surface/hangar/beta) -"aRF" = ( -/obj/structure/machinery/light, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aRG" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/effect/landmark/survivor_spawner, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aRH" = ( -/obj/structure/machinery/light, -/obj/item/weapon/gun/pistol/holdout, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) "aRI" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, @@ -15211,10 +15077,6 @@ icon_state = "swall8" }, /area/ice_colony/surface/hangar/alpha) -"aSi" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) "aSj" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -15253,10 +15115,6 @@ icon_state = "swall8" }, /area/ice_colony/surface/hangar/beta) -"aSr" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) "aSs" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -15489,48 +15347,6 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/alpha) -"aSU" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aSV" = ( -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aSW" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aSY" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aSZ" = ( -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aTa" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) "aTb" = ( /turf/open/floor{ dir = 4; @@ -15701,30 +15517,6 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/alpha) -"aTz" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aTA" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aTD" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aTE" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) "aTH" = ( /obj/structure/machinery/power/apc{ dir = 8; @@ -16066,13 +15858,6 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/beta) -"aUM" = ( -/obj/item/ammo_magazine/pistol/holdout{ - pixel_x = 6; - pixel_y = -4 - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) "aUN" = ( /obj/structure/ice/thin/end{ dir = 8 @@ -16524,18 +16309,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/hangar/alpha) -"aWc" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) -"aWd" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/alpha) "aWe" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -16590,18 +16363,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/hangar/beta) -"aWl" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) -"aWm" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle/can_surgery/red, -/area/ice_colony/surface/hangar/beta) "aWn" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -19613,12 +19374,6 @@ }, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/north) -"bgR" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - name = "\improper Underground Maintenance" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/hangar) "bgS" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 @@ -20040,10 +19795,6 @@ icon_state = "bcircuit" }, /area/ice_colony/underground/hangar) -"biw" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating/icefloor, -/area/ice_colony/underground/hangar) "bix" = ( /obj/structure/closet/secure_closet/engineering_welding, /turf/open/floor/plating/icefloor, @@ -20336,14 +20087,6 @@ }, /turf/open/floor/plating, /area/ice_colony/underground/requesition/lobby) -"bjz" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - dir = 1; - name = "\improper Underground Maintenance"; - req_access_txt = "100" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/hangar) "bjA" = ( /turf/closed/wall/r_wall/unmeltable, /area/ice_colony/underground/maintenance/north) @@ -23662,17 +23405,6 @@ /obj/structure/sign/safety/high_voltage, /turf/closed/wall/r_wall, /area/ice_colony/underground/engineering/substation) -"btB" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "engine_electrical_maintenance"; - name = "Underground Power Substation" - }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/underground/engineering/substation) "btC" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{ dir = 1; @@ -23893,10 +23625,6 @@ "bug" = ( /turf/closed/wall/r_wall, /area/ice_colony/exterior/underground/caves) -"buh" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/ice_colony/exterior/underground/caves) "bui" = ( /turf/open/floor{ icon_state = "bcircuit" @@ -24400,13 +24128,6 @@ }, /turf/open/floor/wood, /area/ice_colony/underground/crew/bball) -"bvD" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ice_colony/exterior/underground/caves) "bvE" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -24435,6 +24156,13 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/ice_colony/underground/engineering/substation) "bvJ" = ( @@ -24772,15 +24500,6 @@ icon_state = "bcircuit" }, /area/ice_colony/underground/engineering/substation) -"bwA" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/ice_colony/underground/engineering/substation) -"bwB" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light/small, -/turf/open/floor/plating, -/area/ice_colony/underground/engineering/substation) "bwE" = ( /obj/structure/ice/thin/end, /turf/open/ice, @@ -24900,15 +24619,6 @@ icon_state = "darkgreen2" }, /area/ice_colony/underground/crew/bball) -"bwZ" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - id = "engine_electrical_maintenance"; - name = "Underground Power Substation" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/engineering/substation) "bxa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -25111,6 +24821,7 @@ dir = 1 }, /obj/structure/surface/rack, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/engineering) "bxJ" = ( @@ -28039,16 +27750,6 @@ icon_state = "darkpurple2" }, /area/ice_colony/underground/research) -"bGA" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - dir = 2; - name = "Underground Secure Technical Storage" - }, -/turf/open/floor{ - icon_state = "dark2" - }, -/area/ice_colony/underground/storage/highsec) "bGB" = ( /turf/closed/wall/r_wall, /area/ice_colony/underground/command/checkpoint) @@ -34418,6 +34119,23 @@ "cbk" = ( /turf/open/floor/plating/icefloor, /area/ice_colony/surface/tcomms) +"cbU" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f6" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"chE" = ( +/obj/structure/machinery/door/airlock{ + id_tag = "st_5"; + name = "Storage Unit"; + req_one_access_txt = "100;101;102;103" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor/plating/icefloor, +/area/ice_colony/surface/requesitions) "csl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34427,22 +34145,53 @@ icon_state = "dark2" }, /area/ice_colony/surface/research) +"cBQ" = ( +/obj/structure/machinery/door/unpowered/shuttle, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "cEG" = ( /obj/docking_port/stationary/marine_dropship/lz2, /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) +"cNY" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ice_colony/exterior/underground/caves) "cVM" = ( /obj/structure/machinery/light/small{ dir = 8 }, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) +"dfj" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f5" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "dgG" = ( /turf/open/floor{ dir = 5; icon_state = "darkyellow2" }, /area/ice_colony/surface/tcomms) +"doO" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor{ + icon_state = "platebot" + }, +/area/ice_colony/surface/engineering/generator) +"drG" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + dir = 1; + name = "\improper Underground Maintenance"; + req_access_txt = "100" + }, +/turf/open/floor/plating, +/area/ice_colony/underground/hangar) "dxl" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/green, @@ -34459,6 +34208,17 @@ icon_state = "darkyellow2" }, /area/ice_colony/surface/tcomms) +"dFm" = ( +/obj/structure/machinery/light, +/obj/item/weapon/gun/pistol/holdout, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"dRe" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "ecS" = ( /obj/structure/machinery/light{ dir = 4 @@ -34475,6 +34235,14 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/carpet, /area/ice_colony/underground/crew/leisure) +"etX" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) +"ezC" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) "ezT" = ( /obj/vehicle/train/cargo/trolley, /obj/structure/pipes/standard/simple/hidden/green, @@ -34497,6 +34265,28 @@ icon_state = "darkyellow2" }, /area/ice_colony/surface/research/tech_storage) +"faO" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) +"fgp" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + name = "Colony Requesitions Storage Pod" + }, +/turf/open/floor/plating/icefloor, +/area/ice_colony/surface/requesitions) +"fkY" = ( +/obj/structure/machinery/light, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "fqt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34546,6 +34336,15 @@ icon_state = "darkred2" }, /area/ice_colony/underground/reception/checkpoint_north) +"gHI" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "gXP" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -34562,9 +34361,35 @@ dir = 9 }, /area/ice_colony/exterior/surface/valley/south) +"hrs" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light/small, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) "hrN" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/clearing/north) +"hwC" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony{ + name = "\improper Underground Maintenance" + }, +/turf/open/floor/plating, +/area/ice_colony/underground/hangar) +"hxr" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + id = "research_entrance"; + name = "Omicron Research Dome" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark2" + }, +/area/ice_colony/surface/research) "hAX" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/plating, @@ -34584,6 +34409,17 @@ icon_state = "warnplate" }, /area/ice_colony/underground/hangar) +"ilp" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "st_19"; + name = "Research Storage Unit" + }, +/turf/open/floor{ + dir = 8; + icon_state = "vault" + }, +/area/ice_colony/surface/storage_unit/research) "iBu" = ( /obj/structure/surface/table/reinforced, /obj/item/paper/research_notes, @@ -34602,6 +34438,16 @@ /obj/item/packageWrap, /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) +"iUo" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + id = "st_17"; + name = "Power Storage Unit" + }, +/turf/open/floor{ + dir = 8; + icon_state = "vault" + }, +/area/ice_colony/surface/storage_unit/power) "iZc" = ( /obj/structure/lz_sign/ice_sign{ desc = "The only good bug is a dead bug."; @@ -34610,6 +34456,16 @@ }, /turf/open/auto_turf/snow/layer3, /area/ice_colony/exterior/surface/valley/south) +"iZF" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + name = "Underground Secure Technical Storage" + }, +/turf/open/floor{ + icon_state = "dark2" + }, +/area/ice_colony/underground/storage/highsec) "jtr" = ( /turf/closed/wall, /area/ice_colony/exterior/surface/cliff) @@ -34628,6 +34484,18 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/alpha) +"jFV" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) +"jPb" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "jZI" = ( /obj/structure/surface/table/reinforced, /obj/structure/machinery/computer/shuttle_control/dropship2, @@ -34645,6 +34513,17 @@ icon_state = "warnplate" }, /area/ice_colony/surface/tcomms) +"krs" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "engine_electrical_maintenance"; + name = "Underground Power Substation" + }, +/turf/open/floor{ + icon_state = "dark2" + }, +/area/ice_colony/underground/engineering/substation) "kKZ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/disposalpipe/segment, @@ -34660,6 +34539,19 @@ /obj/structure/window/framed/colony, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/tcomms) +"luM" = ( +/obj/item/ammo_magazine/pistol/holdout{ + pixel_x = 6; + pixel_y = -4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"lxu" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f6" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "lyD" = ( /obj/structure/machinery/alarm{ dir = 8; @@ -34679,9 +34571,21 @@ "lJQ" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/south) +"lSF" = ( +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "lXk" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/clearing/south) +"mec" = ( +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"mgy" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f9" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "mog" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34703,6 +34607,12 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/beta) +"mLJ" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f5" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "neZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ name = "\improper Colony Dormitories" @@ -34730,9 +34640,26 @@ /obj/effect/landmark/static_comms/net_one, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/tcomms) +"oIL" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"oNg" = ( +/obj/structure/machinery/door/unpowered/shuttle, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "oOd" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/clearing/pass) +"oQI" = ( +/obj/structure/machinery/light, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "oZq" = ( /obj/structure/machinery/alarm{ dir = 4; @@ -34754,9 +34681,19 @@ }, /turf/open/floor/carpet, /area/ice_colony/underground/crew/leisure) +"poh" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/icefloor, +/area/ice_colony/underground/hangar) "pyn" = ( /turf/closed/wall, /area/ice_colony/underground/hangar) +"qiR" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "qny" = ( /obj/structure/surface/table/woodentable, /turf/open/floor/wood, @@ -34777,6 +34714,26 @@ /obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/floor/plating/icefloor, /area/ice_colony/surface/requesitions) +"qJe" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) +"qKs" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/ice_colony/exterior/underground/caves) +"qPo" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/plating, +/area/ice_colony/underground/maintenance/engineering) "qRy" = ( /obj/structure/closet/toolcloset, /obj/structure/machinery/door_control{ @@ -34797,6 +34754,15 @@ /obj/structure/machinery/recharge_station, /turf/open/floor/plating/icefloor, /area/ice_colony/underground/hangar) +"rxJ" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "engine_electrical_maintenance"; + name = "Underground Power Substation" + }, +/turf/open/floor/plating, +/area/ice_colony/underground/engineering/substation) "rxQ" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/northwest) @@ -34853,6 +34819,12 @@ "sTg" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/northeast) +"sTG" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f10" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "sTY" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -34907,6 +34879,13 @@ "tZS" = ( /turf/open/auto_turf/snow/layer4, /area/ice_colony/exterior/surface/valley/west) +"ubd" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/landmark/survivor_spawner, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "ueV" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /turf/open/floor{ @@ -35002,6 +34981,10 @@ /obj/item/paper/research_notes, /turf/open/floor/wood, /area/ice_colony/surface/command/control/pv1) +"wxw" = ( +/obj/structure/computerframe, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "wDj" = ( /turf/open/floor/plating/icefloor{ dir = 1; @@ -35013,6 +34996,17 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor/wood, /area/ice_colony/surface/bar/bar) +"xfO" = ( +/obj/structure/machinery/door/airlock/almayer/secure/colony{ + dir = 2; + id = "st_18"; + name = "Disposals Storage Unit" + }, +/turf/open/floor{ + dir = 8; + icon_state = "vault" + }, +/area/ice_colony/surface/storage_unit/telecomms) "xkk" = ( /obj/effect/landmark/queen_spawn, /turf/open/floor/icefloor{ @@ -35027,11 +35021,36 @@ icon_state = "darkyellow2" }, /area/ice_colony/surface/tcomms) +"xyz" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "platebot" + }, +/area/ice_colony/surface/engineering/generator) +"xAI" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f10" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) +"xFB" = ( +/obj/structure/shuttle/diagonal{ + icon_state = "swall_f9" + }, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/alpha) "xWm" = ( /obj/effect/landmark/xeno_hive_spawn, /obj/effect/landmark/ert_spawns/groundside_xeno, /turf/open/ice, /area/ice_colony/exterior/surface/landing_pad_external) +"yfA" = ( +/obj/structure/computerframe, +/turf/open/shuttle/can_surgery/red, +/area/ice_colony/surface/hangar/beta) "ygw" = ( /obj/structure/surface/table, /obj/item/device/encryptionkey, @@ -39579,15 +39598,15 @@ aaI aaI aaI abD -adm +fgp abD adY abD -aeC +chE abD adY abD -adm +fgp abD adY abD @@ -43809,15 +43828,15 @@ abE abF abF abD -adm +fgp abD adY abD -adm +fgp abD adY abD -adm +fgp abD adY abD @@ -49922,7 +49941,7 @@ bDE bEz bFc bFc -bGA +iZF bHn bHn bIJ @@ -51277,11 +51296,11 @@ aZW aZW aZG aZG -bgR +hwC aZG aZG aZG -bgR +hwC aZG aZG aZG @@ -52134,7 +52153,7 @@ big aZW aZW aZW -bjz +drG bgH bgH bkE @@ -52977,9 +52996,9 @@ bht aZW aZW beB -biw -biw -biw +poh +poh +poh aZG bgH bgH @@ -55235,7 +55254,7 @@ aZW aZW bjf aZG -bgR +hwC aZG beB bkt @@ -55462,7 +55481,7 @@ aLN aLN aLN aLN -aQm +hxr aLN aLN aLN @@ -58843,7 +58862,7 @@ aKr aKr aKR aKR -aNV +ilp auw auw auw @@ -69639,11 +69658,11 @@ box box bqF bnk -buh -buh -bvD -buh -buh +qKs +qKs +cNY +qKs +qKs bqP brt bsf @@ -70203,11 +70222,11 @@ box box bqF btA -buj +ezC buj buj bui -bwA +etX btz brt bsf @@ -70484,12 +70503,12 @@ boQ boQ boQ boQ -btB +krs buk buk bvE bui -bwA +etX btz brt bsf @@ -70771,7 +70790,7 @@ bul buj bvF bui -bwB +hrs btz bxG bsf @@ -71054,7 +71073,7 @@ buj bvG buk buk -bwZ +rxJ bxH brZ brZ @@ -71338,7 +71357,7 @@ bwg bwg btz bxI -bse +qPo bsf brt byc @@ -77748,7 +77767,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWb aSf @@ -78022,17 +78041,17 @@ avs aOf aOK aPI -aQB -aRz +xFB +oQI aSh -aSU -aTz -aTz -aTz -aSU -aSV -aTz -aWc +faO +jPb +jPb +jPb +faO +lSF +jPb +xAI aWb aSj aPH @@ -78304,17 +78323,17 @@ avs aOf aOK aPJ -aQC -aRA -aSi -aSV -aSV -aSV -aSV -aSV -aSV -aSV -aSV +wxw +qiR +oNg +lSF +lSF +lSF +lSF +lSF +lSF +lSF +lSF aWJ aXm aPH @@ -78586,17 +78605,17 @@ avs aOf aOK aPK -aQD -aRz +dfj +oQI aSj -aSW -aTA -aTA -aTA -aSW -aSV -aTA -aWd +gHI +jFV +jFV +jFV +gHI +lSF +jFV +lxu aWe aSh aPH @@ -78876,7 +78895,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWe aPH @@ -81036,16 +81055,16 @@ acz acz acz aeh -aex +doO aeU afs -aex -aex -ags -aex +doO +doO +xyz +doO ahm aeU -aex +doO aeg ajA ajT @@ -81318,7 +81337,7 @@ adj adj adj aeh -aex +doO aeU afq aeU @@ -81327,7 +81346,7 @@ agt aeU afq aeU -aex +doO aeh aeI aeI @@ -81603,10 +81622,10 @@ aei agw aeW afs -aex -aex -ags -aex +doO +doO +xyz +doO ahm afu aix @@ -83106,7 +83125,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWk aPT @@ -83380,17 +83399,17 @@ aac aOj aOY aPU -aQK -aRF +mgy +fkY aSq -aSY -aTD -aTD -aTD -aSY -aSZ -aTD -aWl +oIL +aIW +aIW +aIW +oIL +mec +aIW +sTG aWk aSs aPT @@ -83662,17 +83681,17 @@ aac aOj aOZ aPV -aQL -aRG -aSr -aSZ -aSZ -aSZ -aSZ -aUM -aSZ -aSZ -aSZ +yfA +ubd +cBQ +mec +mec +mec +mec +luM +mec +mec +mec aWN aXu aPT @@ -83944,17 +83963,17 @@ aac aOj aOZ aPW -aQM -aRH +mLJ +dFm aSs -aTa -aTE -aTE -aTE -aTa -aSZ -aTE -aWm +qJe +dRe +dRe +dRe +qJe +mec +dRe +cbU aWn aSq aPT @@ -84234,7 +84253,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWn aPT @@ -87587,7 +87606,7 @@ amm aFE aFE aFE -aHB +iUo aFE aFE aky @@ -89284,7 +89303,7 @@ amm amm amm amm -aJe +xfO aJi aJi aJi diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm index 2ed8035a7972..7ff89252a916 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -7035,6 +7035,17 @@ }, /turf/open/floor/plating, /area/shiva/interior/aerodrome) +"bws" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/shiva{ + dir = 10; + icon_state = "yellow" + }, +/area/shiva/interior/garage) "bwJ" = ( /turf/open/floor/shiva{ dir = 4; @@ -10088,6 +10099,12 @@ icon_state = "yellow" }, /area/shiva/interior/colony/medseceng) +"ffg" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "panic_room" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) "ffj" = ( /turf/closed/shuttle/elevator{ dir = 10 @@ -10099,6 +10116,14 @@ icon_state = "yellow" }, /area/shiva/interior/lz2_habs) +"ffo" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/shiva{ + icon_state = "yellow" + }, +/area/shiva/interior/garage) "ffw" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/shiva{ @@ -11996,10 +12021,6 @@ icon_state = "wred" }, /area/shiva/interior/colony/medseceng) -"hgx" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating, -/area/shiva/interior/colony/medseceng) "hgI" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer2, @@ -15843,13 +15864,6 @@ icon_state = "yellowfull" }, /area/shiva/interior/colony/research_hab) -"kTN" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/shiva{ - dir = 8; - icon_state = "yellowfull" - }, -/area/shiva/interior/lz2_habs) "kTP" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/snow/layer1, @@ -18159,6 +18173,10 @@ }, /turf/open/auto_turf/snow/layer3, /area/shiva/interior/colony/medseceng) +"npM" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/shiva/interior/colony/medseceng) "npY" = ( /obj/structure/inflatable, /turf/open/auto_turf/snow/layer3, @@ -18414,6 +18432,13 @@ /obj/structure/machinery/space_heater, /turf/open/auto_turf/ice/layer1, /area/shiva/interior/warehouse/caves) +"nED" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "yellowfull" + }, +/area/shiva/interior/lz2_habs) "nEH" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/decal/warning_stripes{ @@ -18512,6 +18537,12 @@ }, /turf/open/floor/wood, /area/shiva/interior/bar) +"nJu" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/shiva{ + icon_state = "yellow" + }, +/area/shiva/interior/garage) "nKc" = ( /obj/structure/machinery/door/airlock/almayer/medical/colony{ dir = 1; @@ -19299,6 +19330,13 @@ }, /turf/open/auto_turf/snow/layer2, /area/shiva/exterior/cp_lz2) +"oDJ" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "yellow" + }, +/area/shiva/interior/garage) "oDM" = ( /turf/open/floor/shiva{ dir = 10; @@ -22109,12 +22147,6 @@ /obj/structure/largecrate/random, /turf/open/floor/plating, /area/shiva/interior/colony/research_hab) -"rHQ" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/shiva{ - dir = 1 - }, -/area/shiva/interior/garage) "rIj" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/shiva{ @@ -27253,6 +27285,12 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor/wood, /area/shiva/interior/colony/botany) +"xdk" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/garage) "xdT" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -37065,7 +37103,7 @@ puZ puZ puZ anc -kTN +nED mCn uRi xQJ @@ -37389,7 +37427,7 @@ puZ puZ puZ anc -kTN +nED mCn cce xQJ @@ -37713,7 +37751,7 @@ puZ puZ puZ anc -kTN +nED mCn cce xQJ @@ -43636,7 +43674,7 @@ tHd tHd jMf tHd -jMf +ffg tHd jMf ofw @@ -53180,7 +53218,7 @@ ver ver ver fEO -oDM +bws ktd bFg bIV @@ -53342,7 +53380,7 @@ ver ver ver ver -pSD +ffo ktd cZk bIV @@ -54152,7 +54190,7 @@ aAh ver ver ver -pSD +nJu ktd cZk bFg @@ -54314,7 +54352,7 @@ ver ver ver pNf -aCA +oDJ ktd gJo lTc @@ -54955,11 +54993,11 @@ oQl oQl oQl ktd -rHQ +xdk tXd aAh pSD -rHQ +xdk ktd oQl oQl @@ -55117,11 +55155,11 @@ oQl oQl oQl ktd -rHQ +xdk ush vUL aCA -rHQ +xdk ktd oQl oQl @@ -55280,9 +55318,9 @@ oQl oQl ktd ktd -rHQ -rHQ -rHQ +xdk +xdk +xdk ktd ktd oQl @@ -58299,16 +58337,16 @@ acT qDT eAZ acT -hgx +npM cso agh -hgx -hgx -hgx -hgx +npM +npM +npM +npM agh cso -hgx +npM acT aii agh @@ -58461,7 +58499,7 @@ aDn eAZ eAZ aDn -hgx +npM cso agh cso @@ -58470,7 +58508,7 @@ cso cso agh cso -hgx +npM acT acT aii @@ -58626,10 +58664,10 @@ aek eXL cso agh -hgx -hgx -hgx -hgx +npM +npM +npM +npM agh cso qdd diff --git a/maps/map_files/Ice_Colony_v3/sprinkles/30.labs-elevator_alternate.dmm b/maps/map_files/Ice_Colony_v3/sprinkles/unused/30.labs-elevator_alternate.dmm similarity index 100% rename from maps/map_files/Ice_Colony_v3/sprinkles/30.labs-elevator_alternate.dmm rename to maps/map_files/Ice_Colony_v3/sprinkles/unused/30.labs-elevator_alternate.dmm diff --git a/maps/map_files/Ice_Colony_v3/sprinkles/35.south-spidercave_cleared.dmm b/maps/map_files/Ice_Colony_v3/sprinkles/unused/35.south-spidercave_cleared.dmm similarity index 100% rename from maps/map_files/Ice_Colony_v3/sprinkles/35.south-spidercave_cleared.dmm rename to maps/map_files/Ice_Colony_v3/sprinkles/unused/35.south-spidercave_cleared.dmm diff --git a/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm b/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm new file mode 100644 index 000000000000..15ec0c4e099d --- /dev/null +++ b/maps/map_files/Ice_Colony_v3/standalone/panic_room_hold.dmm @@ -0,0 +1,2547 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ai" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"aq" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"aH" = ( +/obj/item/tool/pen/blue{ + pixel_x = 5 + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"ba" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"bi" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -5; + pixel_y = 12 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"bI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"ce" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/interior/colony/s_admin) +"ch" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = 11; + pixel_y = 20 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/bar) +"cv" = ( +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"cL" = ( +/obj/item/prop/colony/folded_bedroll, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"cO" = ( +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"cS" = ( +/turf/closed/wall/shiva/prefabricated/reinforced, +/area/shiva/interior/bar) +"cY" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/item/shard{ + icon_state = "large" + }, +/obj/item/frame/table/reinforced, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"dg" = ( +/obj/structure/barricade/metal{ + dir = 1; + health = 210 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"do" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"dv" = ( +/obj/item/ammo_magazine/rifle/m16, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"dF" = ( +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"eO" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"eZ" = ( +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"ff" = ( +/obj/structure/barricade/wooden{ + dir = 4; + pixel_y = 4 + }, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"fj" = ( +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"fx" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/obj/effect/landmark/corpsespawner/doctor, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"fM" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Panic Room Shutters"; + id = "south_panicroom" + }, +/turf/open/floor/shiva, +/area/shiva/interior/colony/s_admin) +"fR" = ( +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"fT" = ( +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"gf" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"gh" = ( +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/item/ammo_magazine/rifle/extended{ + current_rounds = 0 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"gk" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/shiva/interior/colony/s_admin) +"gn" = ( +/obj/structure/machinery/computer/cameras/wooden_tv{ + pixel_y = 7 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"gB" = ( +/obj/structure/surface/table, +/obj/item/weapon/gun/rifle/m16, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"gL" = ( +/obj/structure/bed/bedroll, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"gO" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/machinery/computer/communications{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"gR" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"hN" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"iF" = ( +/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"iS" = ( +/obj/structure/filingcabinet, +/obj/item/paper/research_notes, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"iZ" = ( +/obj/item/weapon/gun/rifle/m16, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"js" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva{ + dir = 10; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"jE" = ( +/obj/effect/acid_hole{ + dir = 4 + }, +/turf/closed/wall/shiva/prefabricated, +/area/shiva/interior/colony/s_admin) +"jK" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassall_1" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) +"jL" = ( +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"jP" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/head/soft/sec/corp{ + pixel_y = 10 + }, +/obj/item/tool/stamp/hos, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"ky" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 10; + pixel_y = 16 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"kB" = ( +/obj/structure/bed/bedroll, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"kP" = ( +/obj/structure/surface/table/woodentable{ + dir = 1; + flipped = 1 + }, +/obj/structure/machinery/computer/objective, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"kT" = ( +/obj/item/stack/folding_barricade, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"lb" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"lq" = ( +/obj/item/ammo_magazine/rifle{ + current_rounds = 0 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"lP" = ( +/obj/effect/landmark/corpsespawner/wygoon, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"lQ" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"mC" = ( +/obj/structure/machinery/power/apc{ + dir = 8; + start_charge = 0 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"mI" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"ne" = ( +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard/cp_bar) +"ng" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno/limb, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"nh" = ( +/obj/structure/window/framed/shiva, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"ns" = ( +/obj/structure/surface/table, +/obj/item/weapon/gun/rifle/ar10, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"ob" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/drinks/cans/ale{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/item/reagent_container/food/drinks/cans/ale{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/drinks/cans/ale{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/reagent_container/food/drinks/cans/ale, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"of" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Panic Room Shutters"; + id = "north_panicroom" + }, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"ov" = ( +/obj/item/trash/buritto, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"oH" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"oT" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"oY" = ( +/obj/structure/closet/crate/secure/weyland, +/obj/effect/landmark/objective_landmark/science, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"pz" = ( +/obj/item/weapon/gun/boltaction, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"pC" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"pG" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"pQ" = ( +/turf/open/auto_turf/snow/layer1, +/area/shiva/exterior/junkyard) +"pS" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"pV" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/shiva/interior/colony/s_admin) +"qT" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"qU" = ( +/obj/effect/landmark/corpsespawner/scientist, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"rB" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"rM" = ( +/obj/structure/barricade/wooden{ + dir = 1 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"rQ" = ( +/obj/item/ammo_magazine/rifle/boltaction, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"sq" = ( +/obj/structure/machinery/faxmachine, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"sy" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "xgibdown1" + }, +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"sZ" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"ti" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/shiva/interior/colony/s_admin) +"tk" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"tl" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"tu" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"tD" = ( +/obj/effect/decal/cleanable/vomit{ + icon_state = "vomit_2" + }, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 9; + pixel_y = 17 + }, +/obj/effect/landmark/corpsespawner/chef, +/obj/structure/bed/bedroll, +/obj/item/bedsheet/ce, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"tG" = ( +/obj/structure/janitorialcart, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"tW" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"tY" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"ug" = ( +/obj/effect/decal/cleanable/blood/drip{ + icon_state = "3" + }, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"uh" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"ul" = ( +/obj/item/ammo_magazine/rifle/boltaction, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"uA" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/item/ammo_magazine/pistol/holdout{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"uE" = ( +/obj/structure/machinery/door_control{ + id = "north_panicroom"; + pixel_y = 30 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"uJ" = ( +/obj/item/stack/rods, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"uM" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/obj/effect/landmark/objective_landmark/far, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"uP" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/obj/structure/machinery/vending/coffee, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"uR" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"vn" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"vq" = ( +/obj/structure/filingcabinet, +/obj/item/paper/research_notes, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"vs" = ( +/turf/open/floor/shiva{ + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"vL" = ( +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"wH" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/shiva/interior/colony/s_admin) +"wM" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_y = 5 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"wO" = ( +/obj/item/clipboard, +/obj/item/tool/pen/blue, +/obj/item/stack/sheet/metal, +/obj/item/shard{ + icon_state = "large" + }, +/obj/item/shard{ + icon_state = "large" + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"wW" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/shiva{ + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"wX" = ( +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"wY" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"xa" = ( +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"xg" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"xD" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/structure/machinery/light/double, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"xZ" = ( +/obj/item/storage/belt/marine, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"yd" = ( +/obj/item/weapon/gun/rifle/ar10, +/obj/item/ammo_magazine/rifle/ar10, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"ye" = ( +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_cl, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"yi" = ( +/obj/item/trash/wy_chips_pepper, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"yo" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"yq" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"yz" = ( +/obj/structure/flora/bush/snow{ + icon_state = "snowgrassall_3" + }, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) +"yQ" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"yS" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/obj/item/weapon/gun/boltaction, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"zc" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"zi" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"zp" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"zu" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"zw" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"zA" = ( +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"Ad" = ( +/obj/structure/bed/chair/office/light{ + dir = 4 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Av" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"AC" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"AY" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"AZ" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/shiva/interior/colony/s_admin) +"Bg" = ( +/obj/structure/machinery/light_construct{ + dir = 1 + }, +/obj/item/light_bulb/tube/prison, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Bq" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Bv" = ( +/obj/structure/machinery/door_control{ + id = "south_panicroom"; + pixel_x = 30 + }, +/obj/structure/surface/table, +/obj/item/ammo_magazine/shotgun/slugs, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"BD" = ( +/obj/item/lightstick/red/spoke/planted{ + pixel_x = -11; + pixel_y = 20 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/bar) +"BQ" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"BU" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_civ, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Cc" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/shiva/interior/colony/s_admin) +"Cd" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/good_item, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Cu" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Cx" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"CZ" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Dg" = ( +/obj/effect/decal/cleanable/vomit, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Dl" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Dx" = ( +/obj/structure/machinery/light/double, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"DB" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"DU" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"DW" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"DY" = ( +/obj/item/trash/burger, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"EX" = ( +/obj/structure/machinery/light/double{ + dir = 1; + pixel_y = 9 + }, +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Fa" = ( +/obj/effect/spawner/gibspawner/human, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/shiva/interior/colony/s_admin) +"Fc" = ( +/obj/structure/surface/table, +/obj/item/ammo_magazine/rifle/ar10, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Ff" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/shiva/interior/colony/s_admin) +"Fg" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"Fn" = ( +/turf/open/floor/shiva{ + icon_state = "radiator_tile" + }, +/area/shiva/interior/bar) +"Fp" = ( +/obj/structure/bed/chair/office/dark, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Fx" = ( +/obj/structure/surface/table, +/obj/structure/prop/ice_colony/hula_girl, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"FH" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/item/stack/rods, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"FK" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"FY" = ( +/turf/template_noop, +/area/template_noop) +"GC" = ( +/turf/closed/wall/shiva/prefabricated, +/area/shiva/interior/colony/s_admin) +"GJ" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"GQ" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgibhead" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"He" = ( +/obj/item/stool, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Hf" = ( +/obj/structure/closet/secure_closet/security, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Hp" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"Hx" = ( +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"HA" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/machinery/computer/station_alert{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Ik" = ( +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard) +"Iy" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/obj/effect/landmark/corpsespawner/wysec, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"IB" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"IQ" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Jp" = ( +/obj/item/ammo_magazine/rifle/extended{ + current_rounds = 0 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Jv" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Jx" = ( +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/botany) +"JF" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"JQ" = ( +/obj/item/ammo_magazine/rifle/boltaction, +/obj/structure/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/closet/secure_closet/guncabinet/wy, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"Kb" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/botany) +"Ko" = ( +/obj/structure/bed/chair, +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Kp" = ( +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/shard{ + icon_state = "large" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"KO" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"KR" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Ld" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"Lh" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Lk" = ( +/obj/structure/largecrate/random/case, +/turf/open/auto_turf/snow/layer3, +/area/shiva/exterior/junkyard/cp_bar) +"Lr" = ( +/obj/structure/prop/ice_colony/tiger_rug{ + icon_state = "White" + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Lu" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"LE" = ( +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"LF" = ( +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"LU" = ( +/turf/open/floor/shiva{ + icon_state = "snow_mat" + }, +/area/shiva/interior/colony/botany) +"Mi" = ( +/obj/structure/surface/table, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"MG" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Panic Room Shutters"; + id = "south_panicroom" + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"ML" = ( +/obj/item/stack/sheet/wood, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/shiva/interior/colony/s_admin) +"MR" = ( +/obj/structure/safe, +/obj/item/spacecash/c1000{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c500, +/obj/effect/landmark/good_item, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"Nq" = ( +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"Nt" = ( +/obj/effect/decal/cleanable/blood/xeno{ + icon_state = "xgib6" + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"Nu" = ( +/obj/effect/landmark/survivor_spawner/shivas_panic_room_doc, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"NC" = ( +/obj/item/lightstick/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard) +"On" = ( +/obj/item/stack/rods, +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"ON" = ( +/obj/item/lightstick/red/variant/planted, +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"OV" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"Pb" = ( +/obj/structure/filingcabinet, +/obj/item/paper/research_notes, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Py" = ( +/obj/item/trash/kepler, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"PG" = ( +/turf/open/floor/shiva{ + dir = 4; + icon_state = "snow_mat" + }, +/area/shiva/interior/colony/botany) +"PI" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/clipboard, +/obj/item/tool/stamp, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"PV" = ( +/obj/structure/bed/bedroll, +/obj/effect/landmark/survivor_spawner/shivas_panic_room_sci, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Qh" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"QS" = ( +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard) +"Rs" = ( +/obj/structure/surface/table, +/obj/item/tool/pen/blue{ + pixel_x = -6 + }, +/obj/item/paper_bin{ + pixel_y = 7 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Ru" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Ry" = ( +/obj/item/tool/mop{ + pixel_x = -10 + }, +/turf/open/floor/shiva{ + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"RD" = ( +/obj/structure/bed/chair/wood/normal, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"RH" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"RP" = ( +/turf/open/floor/shiva{ + dir = 10; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"RQ" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"RS" = ( +/obj/structure/bed/chair/office/light{ + dir = 8 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Se" = ( +/obj/effect/decal/cleanable/vomit{ + icon_state = "vomit_4" + }, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Sl" = ( +/obj/structure/machinery/disposal/broken, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"Sq" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"SB" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"SU" = ( +/obj/item/device/flashlight/lamp{ + pixel_y = 7 + }, +/obj/item/frame/table/wood, +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"Tc" = ( +/obj/item/frame/table/reinforced, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Td" = ( +/obj/item/reagent_container/food/drinks/cans/waterbottle, +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Tj" = ( +/obj/structure/machinery/disposal/broken, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Tr" = ( +/obj/structure/machinery/computer/station_alert{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"TG" = ( +/obj/item/prop/colony/folded_bedroll, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "redfull" + }, +/area/shiva/interior/colony/s_admin) +"TI" = ( +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 8; + icon_state = "multi_tiles" + }, +/area/shiva/interior/colony/s_admin) +"TL" = ( +/obj/item/weapon/gun/energy/taser, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/shiva/interior/colony/s_admin) +"Ub" = ( +/obj/item/trash/kepler/flamehot, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Ue" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/item/ammo_casing, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"UD" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ + name = "\improper Colony Administration"; + locked = 1 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"UW" = ( +/obj/structure/machinery/light/double, +/turf/open/floor/shiva{ + dir = 10; + icon_state = "green" + }, +/area/shiva/interior/colony/botany) +"Vb" = ( +/obj/item/bodybag, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Vi" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating, +/area/shiva/interior/colony/s_admin) +"Vl" = ( +/obj/effect/acid_hole, +/turf/closed/wall/shiva/prefabricated, +/area/shiva/interior/colony/s_admin) +"Vy" = ( +/obj/structure/surface/table, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"VC" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/crap_item, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"VE" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + name = "\improper Colony Security Checkpoint" + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"VX" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/landmark/objective_landmark/medium, +/obj/effect/landmark/good_item, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"Wj" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Wm" = ( +/turf/open/auto_turf/snow/layer2, +/area/shiva/exterior/junkyard/cp_bar) +"WA" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"WT" = ( +/obj/item/frame/table/wood, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/shiva/interior/colony/s_admin) +"Xt" = ( +/obj/structure/flora/pottedplant, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) +"Xu" = ( +/obj/effect/spawner/gibspawner/xeno, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/shiva/interior/colony/s_admin) +"XP" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin, +/obj/item/tool/pen/blue, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"YD" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/cameras{ + dir = 1 + }, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"YS" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/shiva{ + icon_state = "floor3" + }, +/area/shiva/interior/colony/s_admin) +"YT" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/shiva{ + dir = 1 + }, +/area/shiva/interior/colony/s_admin) +"Zi" = ( +/obj/item/weapon/gun/pistol/holdout, +/obj/item/ammo_magazine/pistol/holdout, +/turf/open/floor/shiva{ + dir = 6; + icon_state = "multi_tiles" + }, +/area/shiva/interior/bar) +"Zl" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/shiva/interior/colony/s_admin) +"ZD" = ( +/obj/item/ammo_magazine/rifle/m16, +/turf/open/floor/shiva{ + icon_state = "bluefull" + }, +/area/shiva/interior/colony/s_admin) + +(1,1,1) = {" +PG +ce +FY +FY +FY +FY +FY +FY +FY +FY +FY +FY +ce +ce +ce +ce +ce +ce +pQ +pQ +Ik +FY +FY +"} +(2,1,1) = {" +PG +ce +FY +FY +FY +FY +FY +FY +FY +FY +FY +ce +ce +JQ +yS +Av +yd +ce +QS +NC +QS +FY +FY +"} +(3,1,1) = {" +Kb +ce +FY +FY +FY +FY +FY +FY +FY +FY +FY +ce +MR +wM +fj +rQ +iZ +ce +Ik +jK +pQ +FY +FY +"} +(4,1,1) = {" +RP +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +fj +xZ +fj +dv +ce +yz +Ik +Ik +FY +FY +"} +(5,1,1) = {" +RP +GC +iS +pG +tu +ba +Cd +mC +dF +dF +qT +JF +ce +pz +TG +eZ +ce +ce +ce +ce +Ik +FY +FY +"} +(6,1,1) = {" +RP +Vl +dF +Hx +Ad +Hx +dF +CZ +Hx +Ad +zw +dF +ce +Nu +Ub +xZ +Pb +vq +pS +ce +QS +FY +FY +"} +(7,1,1) = {" +Ld +nh +rM +tk +YT +zi +xa +dF +tk +Kp +rB +qU +ce +ul +dF +dF +ov +yQ +kB +ce +Ik +FY +FY +"} +(8,1,1) = {" +RP +Vi +CZ +lQ +gO +uM +dF +dF +RH +Tr +PI +Dx +ce +uE +CZ +tl +Dl +dF +iF +ce +NC +FY +FY +"} +(9,1,1) = {" +UW +GC +mI +Hx +RS +Hx +CZ +dF +Hx +RS +Jp +dF +of +Td +RD +Rs +sq +ye +fj +ce +QS +FY +FY +"} +(10,1,1) = {" +js +zA +do +Hx +Hx +lP +dF +Lr +Hx +Hx +Hx +yq +of +Vy +Fp +Tj +Fx +tY +oY +ce +QS +FY +FY +"} +(11,1,1) = {" +Nq +tW +dg +uh +lq +Hx +dF +dF +Hx +Hx +Hx +CZ +of +ns +PV +He +Wj +dF +gf +ce +QS +FY +FY +"} +(12,1,1) = {" +oH +GC +Bg +oT +Cx +Hx +dF +CZ +LF +Ad +Hx +dF +of +Fc +CZ +DY +dF +BU +ce +ce +cS +ch +Fn +"} +(13,1,1) = {" +Nq +aq +rM +tk +Bq +XP +dF +dF +tk +Bq +XP +sy +ce +YS +dF +dF +cL +bi +Mi +MG +Qh +LE +LE +"} +(14,1,1) = {" +Nq +SB +FK +RH +HA +Cu +dF +dF +cY +HA +Cu +dF +ce +yi +BU +dF +dF +Ko +gB +fM +Ue +Zi +LE +"} +(15,1,1) = {" +Sq +GC +dF +Hx +RS +Hx +CZ +dF +zw +RS +Hx +dF +ce +fj +Vb +ky +CZ +ZD +GJ +fM +fx +BQ +BQ +"} +(16,1,1) = {" +vL +GC +dF +Tc +VC +dF +Lh +dF +gR +dF +vn +Xt +ce +Se +Dg +dF +yQ +CZ +Py +fM +uA +LE +LE +"} +(17,1,1) = {" +fT +ce +GC +GC +GC +jE +GC +ce +oT +cO +cO +uh +ce +tD +RQ +uP +IQ +gL +Bv +MG +WA +LE +LE +"} +(18,1,1) = {" +Ry +GC +DU +jL +TL +fR +ob +GC +AY +vs +vs +AY +ce +GC +GC +GC +GC +ce +ce +ce +cS +BD +Fn +"} +(19,1,1) = {" +tG +GC +gn +fR +fR +Iy +jP +GC +Ru +Hp +cO +Hx +GC +VX +cv +kP +lb +GC +ai +Wm +FY +FY +FY +"} +(20,1,1) = {" +Sq +GC +Hf +ff +OV +xg +YD +GC +gh +cO +cO +Hx +FH +IB +aH +SU +xD +GC +ne +Wm +FY +FY +FY +"} +(21,1,1) = {" +zu +ce +ce +VE +ce +wO +bI +ce +EX +cO +hN +Hx +GC +pC +fj +kT +fj +GC +KO +ON +FY +FY +FY +"} +(22,1,1) = {" +Jx +On +KR +GQ +uR +Hx +Hx +On +Cx +Nt +cO +AC +ce +GC +GC +AZ +GC +ce +Fg +Wm +FY +FY +FY +"} +(23,1,1) = {" +PG +UD +Lu +wX +TI +wX +ug +UD +eO +wW +vs +Hx +GC +Ff +wH +AZ +WT +GC +Lk +Wm +FY +FY +FY +"} +(24,1,1) = {" +LU +Hx +eO +wX +DB +wX +wX +Hx +sZ +vs +vs +zw +Zl +ML +AZ +ti +wH +pV +ne +Wm +FY +FY +FY +"} +(25,1,1) = {" +PG +nh +zc +zw +Hx +Hx +Hx +nh +DW +Hx +Hx +uJ +gk +ng +wH +Cc +Fa +GC +ne +ON +FY +FY +FY +"} +(26,1,1) = {" +PG +GC +Hx +Hx +Jv +Hx +AY +GC +yo +Hx +Jv +zp +GC +Sl +Xu +wH +AZ +GC +wY +Wm +FY +FY +FY +"} +(27,1,1) = {" +PG +GC +GC +GC +GC +GC +GC +GC +GC +GC +GC +ce +ce +ce +ce +GC +GC +ce +ne +Wm +FY +FY +FY +"} diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index 653416320eac..b63b0895a23b 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -417,20 +417,6 @@ dir = 4 }, /area/kutjevo/interior/complex/med) -"azI" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/obj/structure/barricade/handrail/kutjevo{ - dir = 4 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, -/area/kutjevo/interior/colony_South/power2) "azO" = ( /turf/open/desert/desert_shore/desert_shore1{ dir = 8 @@ -606,15 +592,6 @@ }, /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/construction) -"aNj" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/colony_South/power2) "aNn" = ( /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/power/comms) @@ -651,6 +628,16 @@ dir = 1 }, /area/kutjevo/exterior/lz_dunes) +"aRB" = ( +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/turf/open/floor/kutjevo/multi_tiles{ + dir = 8 + }, +/area/kutjevo/interior/colony_South/power2) "aRS" = ( /obj/structure/bed{ can_buckle = 0; @@ -874,6 +861,10 @@ }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/complex_border/botany_medical_cave) +"bkn" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/colors/orange, +/area/kutjevo/interior/power) "bkR" = ( /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_north) @@ -1985,8 +1976,8 @@ "cKY" = ( /obj/structure/prop/brazier/frame/full/campfire, /obj/item/tool/match/paper{ - pixel_y = -2; - pixel_x = -11 + pixel_x = -11; + pixel_y = -2 }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/spring) @@ -2594,12 +2585,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_South/power2) -"dux" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 1 - }, -/area/kutjevo/interior/power/comms) "duP" = ( /obj/structure/girder, /turf/open/floor/plating/kutjevo, @@ -3310,6 +3295,13 @@ }, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) +"ekV" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/kutjevo/multi_tiles{ + dir = 10 + }, +/area/kutjevo/interior/colony_South/power2) "ele" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/kutjevo/tan/multi_tiles, @@ -3628,12 +3620,12 @@ /area/kutjevo/interior/construction) "eCE" = ( /obj/item/clipboard{ - pixel_y = 4; - pixel_x = -4 + pixel_x = -4; + pixel_y = 4 }, /obj/item/tool/pen{ - name = "stained pen"; desc = "It's a seemingly normal pen... aside from the faint red fingerprints on the side..."; + name = "stained pen"; pixel_x = 2; pixel_y = 10 }, @@ -4512,12 +4504,6 @@ /obj/effect/landmark/corpsespawner/security/marshal, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/construction) -"fMi" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/colony_South/power2) "fMB" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 5 @@ -4534,7 +4520,7 @@ /area/kutjevo/exterior/runoff_river) "fNe" = ( /obj/effect/landmark/nightmare{ - insert_tag = "cleaningprog" + insert_tag = "cleaningprog_botany" }, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) @@ -4680,14 +4666,6 @@ /obj/structure/largecrate/random/secure, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/construction) -"fVA" = ( -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, -/area/kutjevo/interior/colony_South/power2) "fWl" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/kutjevo/grey/plate, @@ -5609,6 +5587,9 @@ /obj/structure/machinery/bioprinter{ stored_metal = 1000 }, +/obj/item/clothing/glasses/thermal/syndi{ + icon_state = "kutjevo_goggles" + }, /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/operating) "hnZ" = ( @@ -5905,9 +5886,6 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/colony_South) -"hGM" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/exterior/runoff_bridge) "hGP" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor/kutjevo/plate, @@ -6150,9 +6128,6 @@ /area/kutjevo/exterior/lz_dunes) "idX" = ( /obj/structure/closet/firecloset/full, -/obj/item/clothing/glasses/thermal/syndi{ - icon_state = "kutjevo_goggles" - }, /obj/effect/landmark/objective_landmark/close, /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/interior/complex/med/locks) @@ -6726,8 +6701,8 @@ /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." + desc = "A regular shortwave radio, this one has experienced minor water damage but is still functional."; + name = "damp shortwave radio" }, /turf/open/desert/desert_shore/shore_corner2, /area/kutjevo/exterior/spring) @@ -6881,6 +6856,10 @@ /obj/item/device/flashlight/lamp/tripod/grey, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/runoff_river) +"jmP" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/colors/orange, +/area/kutjevo/interior/power_pt2_electric_boogaloo) "jng" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -7116,10 +7095,6 @@ dir = 10 }, /area/kutjevo/interior/colony_South/power2) -"jxR" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/power_pt2_electric_boogaloo) "jxS" = ( /obj/structure/bed/chair{ dir = 8 @@ -7218,6 +7193,20 @@ /obj/item/stack/sheet/wood, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/power/comms) +"jGo" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/kutjevo/multi_tiles{ + dir = 6 + }, +/area/kutjevo/interior/power) "jGX" = ( /obj/effect/landmark/survivor_spawner, /turf/open/floor/kutjevo/colors, @@ -7656,6 +7645,16 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany) +"ksb" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/colors/orange, +/area/kutjevo/interior/power) "ksl" = ( /obj/effect/landmark/railgun_camera_pos, /turf/open/auto_turf/sand/layer1, @@ -8022,7 +8021,7 @@ /area/kutjevo/interior/colony_central/mine_elevator) "kPw" = ( /obj/effect/landmark/nightmare{ - insert_tag = "trappedmonke" + insert_tag = "trappedmonke_andclown" }, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/oob) @@ -8549,12 +8548,6 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) -"lBu" = ( -/obj/structure/machinery/power/terminal{ - dir = 4 - }, -/turf/open/floor/kutjevo/multi_tiles, -/area/kutjevo/interior/power) "lBP" = ( /obj/structure/window/framed/kutjevo/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -8922,6 +8915,12 @@ /obj/structure/blocker/invisible_wall, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/oob) +"mcA" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/kutjevo/multi_tiles{ + dir = 6 + }, +/area/kutjevo/interior/power) "mcZ" = ( /obj/structure/bed/chair{ pixel_y = 8 @@ -9465,7 +9464,7 @@ /area/kutjevo/interior/complex/med) "mIg" = ( /obj/effect/landmark/nightmare{ - insert_tag = "plinkingspot" + insert_tag = "plinkingspot_northlz" }, /turf/closed/wall/kutjevo/rock/border, /area/kutjevo/exterior/scrubland) @@ -10133,16 +10132,6 @@ }, /turf/open/asphalt/cement_sunbleached, /area/kutjevo/exterior/scrubland) -"nEE" = ( -/obj/item/fuelCell, -/obj/structure/surface/rack, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 8 - }, -/area/kutjevo/interior/colony_South/power2) "nFM" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -11119,14 +11108,6 @@ dir = 8 }, /area/kutjevo/interior/complex/med/auto_doc) -"oSx" = ( -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, -/area/kutjevo/interior/colony_South/power2) "oSK" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/tan/grey_edge, @@ -12057,10 +12038,6 @@ }, /turf/open/floor/kutjevo/colors/green, /area/kutjevo/interior/complex/botany) -"qdj" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/power) "qev" = ( /obj/item/trash/chunk, /turf/open/auto_turf/sand/layer2, @@ -12704,6 +12681,13 @@ "raN" = ( /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/exterior/runoff_bridge) +"raV" = ( +/obj/structure/machinery/light, +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/almayer/research/containment/floor1, +/area/kutjevo/interior/power) "rbu" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/colors/cyan/edge, @@ -12736,15 +12720,6 @@ /obj/structure/platform/kutjevo/rock, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/scrubland) -"rgh" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/colony_South/power2) "rgv" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/auto_turf/sand/layer0, @@ -13915,16 +13890,6 @@ /obj/structure/barricade/wooden, /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/complex/med/locks) -"sID" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/machinery/power/geothermal, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/power) "sJj" = ( /obj/structure/bed/chair/office/light{ dir = 1 @@ -14355,6 +14320,12 @@ }, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/colony_central/mine_elevator) +"tlK" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/kutjevo/multi_tiles{ + dir = 1 + }, +/area/kutjevo/interior/power/comms) "tlN" = ( /turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/power/comms) @@ -14592,6 +14563,21 @@ }, /turf/open/floor/kutjevo/colors/green/tile, /area/kutjevo/interior/complex/botany) +"tEj" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/kutjevo/multi_tiles{ + dir = 6 + }, +/area/kutjevo/interior/power) "tEK" = ( /obj/structure/bed/sofa/vert/grey/bot{ pixel_y = 4 @@ -14603,13 +14589,6 @@ /obj/structure/platform_decoration/kutjevo, /turf/open/floor/mech_bay_recharge_floor, /area/kutjevo/interior/power) -"tEV" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/objective_landmark/medium, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, -/area/kutjevo/interior/colony_South/power2) "tFe" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/colors/orange/edge, @@ -15226,20 +15205,6 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/oob) -"uxb" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, -/obj/structure/barricade/handrail/kutjevo{ - dir = 8 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, -/area/kutjevo/interior/colony_South/power2) "uxA" = ( /obj/structure/prop/dam/truck, /turf/open/asphalt/cement_sunbleached, @@ -15392,12 +15357,6 @@ /obj/structure/flora/grass/desert/lightgrass_3, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/construction) -"uHJ" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/colony_South/power2) "uHP" = ( /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/auto_doc) @@ -15951,19 +15910,6 @@ dir = 4 }, /area/kutjevo/interior/complex/med) -"vnL" = ( -/obj/item/fuelCell, -/obj/structure/surface/rack, -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 4 - }, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 10 - }, -/area/kutjevo/interior/colony_South/power2) "vnO" = ( /obj/structure/bed/chair{ dir = 8 @@ -16040,13 +15986,6 @@ /obj/structure/flora/grass/tallgrass/desert/corner, /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/scrubland) -"vwB" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 4; - icon_state = "p_stair_sn_full_cap" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/colony_South/power2) "vxe" = ( /turf/open/floor/kutjevo/tan/alt_edge{ dir = 8 @@ -16987,6 +16926,19 @@ /obj/effect/landmark/corpsespawner/colonist/kutjevo, /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/construction) +"wLB" = ( +/obj/item/fuel_cell, +/obj/structure/surface/rack, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/floor/kutjevo/multi_tiles{ + dir = 10 + }, +/area/kutjevo/interior/colony_South/power2) "wMw" = ( /obj/structure/blocker/invisible_wall, /turf/open/floor/kutjevo/multi_tiles, @@ -17533,6 +17485,12 @@ }, /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/colony_South/power2) +"xGI" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/kutjevo/multi_tiles, +/area/kutjevo/interior/power) "xHm" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_29"; @@ -23933,13 +23891,13 @@ tWM cRo tlN kfe -dux +tlK boR tXm tWM tXm boR -dux +tlK tlN iaj iaj @@ -24100,13 +24058,13 @@ tWM xZr tlN kfe -dux +tlK vXq kKb tWM tXm boR -dux +tlK tlN iaj iaj @@ -24267,13 +24225,13 @@ tWM wtZ tlN kfe -dux +tlK boR tXm jFB kKb vXq -dux +tlK tlN iaj iaj @@ -25478,7 +25436,7 @@ cvm hQj hQj hQj -cvm +mcA rwj uZT uZT @@ -25645,7 +25603,7 @@ cvm hQj hQj hQj -cvm +mcA aHW aHW aHW @@ -25812,7 +25770,7 @@ cvm kdY kdY kdY -cvm +tEj rwj muG muG @@ -25973,13 +25931,13 @@ uGd fkP vin pBV -lBu +xGI uBz cvm hQj hQj hQj -cvm +jGo rwj wMw wMw @@ -26146,7 +26104,7 @@ xjY xjY bbL xjY -voy +raV rwj uZT uZT @@ -26475,7 +26433,7 @@ xpk tQB ePx pBV -sID +ksb vdl xzY xzY @@ -26642,7 +26600,7 @@ nah xXI cTz pBV -qdj +bkn xzY oum hQj @@ -26809,7 +26767,7 @@ qjz niT cTz pBV -qdj +bkn xzY hQj hQj @@ -26976,7 +26934,7 @@ soe gCb cTz pBV -qdj +bkn oKA hQj hQj @@ -33419,9 +33377,9 @@ dxF dxF dxF dxF -mxB -mxB -mxB +dxF +dxF +dxF dxF dxF hkO @@ -33586,8 +33544,8 @@ jPt pKP dxF dxF -mxB -mxB +dxF +dxF mhj dxF dxF @@ -33753,7 +33711,7 @@ bjj fpO orL dxF -mxB +dxF mhj fjF gBl @@ -33959,7 +33917,7 @@ kDS wGD mNM xvn -hGM +mNM xms dRj dRj @@ -36464,8 +36422,8 @@ vDS mNM xvn dJT -hGM -hGM +mNM +mNM oeb fyD oeb @@ -36631,7 +36589,7 @@ gqQ vys dRj lok -hGM +mNM qrl nOH fyD @@ -37466,7 +37424,7 @@ kDS nOH xuY xyY -hGM +mNM juH dRj dRj @@ -37633,7 +37591,7 @@ vfd mNM xvn dJT -hGM +mNM wuy mSd dTM @@ -38465,10 +38423,10 @@ tIz tIz wtH wtH -nie -jhS -jhS -jhS +wtH +rzh +rzh +rzh jhS tGi tGi @@ -38632,10 +38590,10 @@ vHh tIz wtH wtH -nie -jhS -jhS -jhS +wtH +rzh +rzh +rzh jhS kVJ kVJ @@ -38799,9 +38757,9 @@ sAe hMu wCU wCU -btI -btI -btI +wCU +wCU +wCU btI jhS mjP @@ -38966,8 +38924,8 @@ hMu hMu wCU wCU -btI -btI +wCU +wCU btI btI sfz @@ -39783,9 +39741,9 @@ szC szC sOT dip -jxR -jxR -jxR +jmP +jmP +jmP dip gQr hMu @@ -39954,15 +39912,15 @@ dip dip dip dip -mMf -mMf -gQr -gQr -gQr gQr gQr gQr rIL +rIL +rIL +rIL +rIL +rIL cyM rIL fWl @@ -40115,14 +40073,14 @@ szC lNG szC lNG -szC dip -gQr -gQr +dip rIL mMf -rIL -rIL +mMf +gQr +gQr +gQr rIL dnF rIL @@ -40283,11 +40241,11 @@ dip dip dip dip -dip rIL rIL -mMf rIL +mMf +mMf rIL rIL rIL @@ -40298,7 +40256,7 @@ gQr gQr iGz dnF -gQr +rIL rMp kGM nbu @@ -40448,8 +40406,14 @@ oNG rIL rIL rIL -mMf -mMf +rIL +rIL +rIL +rIL +rIL +rIL +rIL +rIL rIL rIL rIL @@ -40458,14 +40422,8 @@ gQr gQr gQr gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr +mMf +rIL hMu nbu kAW @@ -40614,11 +40572,11 @@ rIL mMf rIL mMf -jhS -kVJ -kVJ -kVJ -jhS +rIL +rIL +rIL +rIL +rIL jhS jhS jhS @@ -40777,15 +40735,15 @@ fyF sTU bDX qaI -oNG -oNG +rIL +rIL fAT dnF -jhS -gtL -rzb -vGx -jhS +rIL +rIL +rIL +rIL +mMf jhS gtL rzb @@ -40946,13 +40904,13 @@ fyF qaI oNG oNG -oNG -oNG -jhS -hws -qwg -vcY -jhS +mMf +rIL +mMf +rIL +rIL +rIL +mMf jhS hws qwg @@ -41114,12 +41072,12 @@ qaI oNG oNG oNG -oNG -jhS -cTG -fRZ -cQt -jhS +hMu +hMu +rIL +rIL +mMf +hMu jhS cTG fRZ @@ -41282,11 +41240,11 @@ rfE rdm rdm rdm -jhS -kVJ -kVJ -kVJ -jhS +hMu +rIL +rIL +mMf +hMu jhS kVJ kVJ @@ -41801,8 +41759,8 @@ vXK evr fTk fTk -oSx -eaB +fTk +qGx qGx qGx qGx @@ -41968,8 +41926,8 @@ klE klE ngK klE -azI -rgh +ngK +qGx qGx qGx qGx @@ -42135,8 +42093,8 @@ klE qGx qGx qGx -uHJ -uHJ +qGx +qGx qGx qGx eQW @@ -42302,8 +42260,8 @@ qGx duw mLw xVZ -fMi -fMi +xVZ +mLw mLw cpg fqm @@ -42469,8 +42427,8 @@ xVZ xVZ mLw qGx -vwB -vwB +qGx +qGx qGx qGx gNx @@ -42636,8 +42594,8 @@ qGx mEe slx qGx -uxb -aNj +klE +qGx qGx rHE qGx @@ -42803,8 +42761,8 @@ mBG qGx efr qGx -fVA -eaB +shX +qGx acD vSE acD @@ -42965,7 +42923,7 @@ mcv mcv mcv grR -nEE +aRB shX qGx slx @@ -43132,7 +43090,7 @@ ouR ouR byw mcv -vnL +wLB fdr eFf slx @@ -43304,7 +43262,7 @@ grR jeO slx qGx -tEV +ekV rdm rdm rdm 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 7364b1609c3e..6bc30f573dd2 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -577,6 +577,10 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) +"aom" = ( +/obj/structure/barricade/deployable, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "aox" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat{ @@ -685,12 +689,13 @@ }, /area/lv522/outdoors/colony_streets/windbreaker/observation) "arP" = ( -/obj/item/lightstick/red/spoke/planted{ - pixel_x = -9; - pixel_y = 25 +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/central_streets) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/indoors/lone_buildings/storage_blocks) "arV" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility, @@ -1809,6 +1814,12 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/mining) +"aXR" = ( +/obj/item/ammo_magazine/rifle/heap{ + current_rounds = 0 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "aYd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -1947,6 +1958,10 @@ /obj/item/tool/shovel, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"bbi" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating, +/area/lv522/indoors/lone_buildings/engineering) "bbk" = ( /obj/structure/prop/ice_colony/dense/planter_box{ dir = 9 @@ -2418,6 +2433,9 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) +"bmR" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "bnf" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/prison{ @@ -3413,10 +3431,8 @@ }, /area/lv522/indoors/b_block/bar) "bOX" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/shiva/prefabricated/reinforced, /area/lv522/indoors/lone_buildings/storage_blocks) "bPH" = ( /obj/structure/prop/invuln/ice_prefab/trim{ @@ -3823,6 +3839,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"bYC" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, +/area/lv522/landing_zone_forecon/UD6_Tornado) "bYS" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 4; @@ -4109,7 +4128,14 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "cfd" = ( -/obj/structure/closet/wardrobe/engineering_yellow, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" @@ -4774,6 +4800,23 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor) +"cxn" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 8; + name = "\improper Marshal Head Office" + }, +/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) "cxo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -4991,6 +5034,14 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/kitchen) +"cBU" = ( +/obj/structure/prop/vehicles/crawler{ + icon_state = "crawler_covered_bed" + }, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/lv522/atmos/reactor_garage) "cBV" = ( /obj/effect/decal/cleanable/cobweb2, /turf/open/floor/prison{ @@ -6309,20 +6360,8 @@ }, /area/lv522/oob) "dbc" = ( -/obj/structure/fence{ - layer = 2.9 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/outdoors/colony_streets/central_streets) +/turf/closed/wall/solaris/reinforced/hull/lv522, +/area/lv522/indoors/lone_buildings/storage_blocks) "dbi" = ( /obj/item/clothing/suit/storage/marine/medium/leader, /obj/item/clothing/head/helmet/marine/leader{ @@ -6765,15 +6804,6 @@ /obj/item/stack/cable_coil/cut, /turf/open/floor/plating, /area/lv522/atmos/east_reactor) -"dic" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "dio" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -7176,14 +7206,11 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) -"dqn" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 8 +"dpS" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 }, -/turf/open/shuttle/dropship/can_surgery/light_grey_middle, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/lv522/landing_zone_forecon/UD6_Tornado) "dqr" = ( /obj/item/weapon/gun/rifle/m41a{ @@ -7204,6 +7231,26 @@ /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"drg" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Marshal Office Interrogation"; + req_access = null + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/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) "drz" = ( /obj/effect/decal/cleanable/blood, /obj/item/tool/hatchet, @@ -8224,6 +8271,9 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) +"dNx" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "dNK" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Workshop Storage"; @@ -9124,10 +9174,7 @@ /area/lv522/atmos/east_reactor) "egj" = ( /obj/structure/machinery/floodlight, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" - }, +/turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) "egt" = ( /obj/structure/powerloader_wreckage, @@ -9432,10 +9479,13 @@ }, /area/lv522/atmos/east_reactor) "emt" = ( -/obj/structure/cargo_container/grant/rightmid, +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" + dir = 8; + icon_state = "cell_stripe" }, /area/lv522/indoors/lone_buildings/storage_blocks) "emz" = ( @@ -10153,9 +10203,6 @@ icon_state = "marked" }, /area/lv522/atmos/east_reactor) -"eAa" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "eAg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -10572,10 +10619,6 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor) -"eJQ" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "eJR" = ( /turf/open/floor/prison, /area/lv522/outdoors/colony_streets/windbreaker/observation) @@ -11271,11 +11314,10 @@ /turf/closed/wall/strata_outpost/reinforced, /area/lv522/landing_zone_1/tunnel) "eYT" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 8 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/central_streets) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spider/spiderling/nogrow, +/turf/open/floor/prison, +/area/lv522/indoors/lone_buildings/storage_blocks) "eZb" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -12303,6 +12345,10 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/executive) +"fwh" = ( +/obj/structure/barricade/deployable, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "fwj" = ( /obj/effect/landmark/monkey_spawn, /turf/open/floor/corsat{ @@ -13461,12 +13507,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/nw_rockies) -"fTm" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/shuttle/dropship/can_surgery/light_grey_middle, -/area/lv522/landing_zone_forecon/UD6_Tornado) "fTs" = ( /turf/open/floor/corsat{ dir = 8; @@ -13963,6 +14003,16 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) +"gdr" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "gdt" = ( /obj/item/tool/kitchen/knife, /obj/effect/decal/cleanable/dirt, @@ -14245,6 +14295,12 @@ icon_state = "squares" }, /area/lv522/atmos/east_reactor/east) +"ghY" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, +/area/lv522/outdoors/w_rockies) "gib" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/stairs/perspective{ @@ -14529,6 +14585,12 @@ icon_state = "darkpurple2" }, /area/lv522/indoors/a_block/dorms) +"goC" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "goK" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -14604,16 +14666,6 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/cargo) -"gpu" = ( -/obj/item/fuelCell{ - pixel_x = -8; - pixel_y = -2 - }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) "gpB" = ( /obj/structure/machinery/power/port_gen/pacman/super, /turf/open/asphalt/cement{ @@ -14802,6 +14854,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"guj" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Dormitories" + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/dorm_north) "gul" = ( /obj/structure/tunnel/maint_tunnel{ pixel_y = 6 @@ -15358,7 +15420,16 @@ /area/lv522/indoors/c_block/casino) "gFy" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/obj/structure/machinery/camera/autoname{ + dir = 8 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, /area/lv522/indoors/lone_buildings/storage_blocks) "gFD" = ( /obj/structure/surface/table/almayer, @@ -15611,16 +15682,6 @@ icon_state = "marked" }, /area/lv522/landing_zone_1) -"gKD" = ( -/obj/item/fuelCell{ - pixel_x = 6; - pixel_y = 4 - }, -/turf/open/floor/corsat{ - dir = 4; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) "gKM" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/structure/machinery/light{ @@ -17065,7 +17126,7 @@ "hjE" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison, +/turf/closed/wall/shiva/prefabricated/reinforced, /area/lv522/indoors/lone_buildings/storage_blocks) "hjW" = ( /obj/structure/surface/table/almayer, @@ -17656,23 +17717,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/nw_rockies) -"hvZ" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - dir = 8; - name = "\improper Marshal Head Office" - }, -/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) "hwa" = ( /obj/structure/platform/stair_cut{ icon_state = "platform_stair_alt" @@ -18168,9 +18212,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/c_block/mining) -"hFm" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, -/area/lv522/landing_zone_forecon/UD6_Tornado) "hFu" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -18506,6 +18547,9 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/kitchen/glass) +"hLR" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, +/area/lv522/landing_zone_forecon/UD6_Tornado) "hLT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat{ @@ -20173,12 +20217,6 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) -"isG" = ( -/obj/structure/largecrate/random/barrel, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "isL" = ( /obj/structure/surface/table/almayer, /obj/item/spacecash/c1000, @@ -20819,6 +20857,9 @@ icon_state = "squares" }, /area/lv522/atmos/cargo_intake) +"iGk" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "iGl" = ( /obj/structure/machinery/door/airlock/almayer/engineering, /turf/open/floor/corsat{ @@ -21457,13 +21498,6 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/colony_streets/north_west_street) -"iSu" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, -/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, @@ -23167,6 +23201,28 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) +"jvF" = ( +/obj/structure/machinery/computer/cameras{ + desc = "The flight controls for a UD6 Dropship. these controls look pretty banged up, and there's some blood covering the screen.."; + name = "\improper 'Typhoon' flight controls"; + network = null; + pixel_y = 21 + }, +/obj/structure/bed/chair/dropship/pilot{ + dir = 1 + }, +/obj/structure/machinery/light/double{ + dir = 1; + layer = 2.9; + pixel_y = 9 + }, +/obj/item/prop/almayer/flight_recorder{ + layer = 2.9; + pixel_x = -9; + pixel_y = 4 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "jvG" = ( /obj/structure/machinery/vending/cola, /turf/open/floor/prison{ @@ -23425,6 +23481,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorm_north) +"jAX" = ( +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "jBm" = ( /obj/structure/machinery/vending/hydronutrients, /turf/open/floor/prison{ @@ -23821,6 +23887,18 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) +"jHm" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/clothing/suit/storage/jacket/marine/corporate, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/lv522/indoors/a_block/corpo/glass) "jHy" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -24860,6 +24938,16 @@ /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) +"kbq" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "kbu" = ( /obj/vehicle/train/cargo/trolley, /turf/open/floor/corsat{ @@ -26995,9 +27083,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) -"kMT" = ( -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "kNe" = ( /obj/item/shard{ icon_state = "medium" @@ -27029,16 +27114,6 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/outdoor_bot) -"kNM" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Dormitories" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/dorm_north) "kNR" = ( /obj/structure/closet/crate/explosives, /obj/item/storage/box/explosive_mines, @@ -27630,10 +27705,7 @@ }, /area/lv522/atmos/east_reactor/south) "kXc" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 8 - }, -/turf/open/auto_turf/shale/layer1, +/turf/closed/wall/solaris/reinforced/hull/lv522, /area/lv522/outdoors/colony_streets/central_streets) "kXe" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -28290,6 +28362,16 @@ /obj/item/stack/sheet/metal, /turf/open/floor/corsat, /area/lv522/atmos/cargo_intake) +"lkx" = ( +/obj/item/fuel_cell{ + pixel_x = -8; + pixel_y = -2 + }, +/turf/open/floor/corsat{ + dir = 4; + icon_state = "brown" + }, +/area/lv522/atmos/east_reactor) "lkH" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -28981,26 +29063,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/dorms) -"lzn" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Marshal Office Interrogation"; - req_access = null - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/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) "lzw" = ( /obj/structure/prop/ice_colony/ground_wire, /turf/open/auto_turf/shale/layer1, @@ -29112,21 +29174,6 @@ icon_state = "plate" }, /area/lv522/atmos/east_reactor/south) -"lAM" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Marshal Office Armory" - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "Sec-Armoury-Lockdown" - }, -/turf/open/floor/corsat{ - icon_state = "marked" - }, -/area/lv522/indoors/a_block/security) "lAS" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -30537,6 +30584,14 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/bridge) +"meM" = ( +/obj/item/clothing/accessory/red, +/obj/item/clothing/under/liaison_suit/field{ + pixel_x = -4; + pixel_y = 9 + }, +/turf/open/floor/carpet, +/area/lv522/indoors/a_block/executive) "mfh" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -31822,16 +31877,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/n_rockies) -"mFe" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/cargo_container/grant/left, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "mFg" = ( /obj/structure/surface/table/almayer, /obj/item/co2_cartridge{ @@ -32269,6 +32314,11 @@ icon_state = "white_cyan2" }, /area/lv522/indoors/a_block/medical/glass) +"mNz" = ( +/obj/structure/barricade/deployable, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "mNI" = ( /turf/open/floor/almayer{ dir = 1; @@ -33328,6 +33378,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) +"ngy" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "ngK" = ( /obj/structure/platform{ dir = 4 @@ -34226,9 +34282,6 @@ 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, @@ -34363,6 +34416,18 @@ "nBe" = ( /turf/open/floor/plating, /area/lv522/indoors/a_block/kitchen/damage) +"nBh" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ + pixel_x = 30 + }, +/obj/effect/decal/cleanable/blood/splatter, +/obj/item/ammo_box/rounds/smg{ + layer = 3; + pixel_x = 1; + pixel_y = 4 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "nBo" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -34631,6 +34696,16 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) +"nHF" = ( +/obj/item/clothing/mask/facehugger{ + desc = "It has some sort of a tube at the end of its tail. What the hell is this thing?"; + icon_state = "facehugger_impregnated"; + layer = 3; + name = "????"; + stat = 2 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "nHT" = ( /obj/structure/bed/chair, /obj/structure/machinery/light{ @@ -34723,10 +34798,7 @@ "nKj" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, +/turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) "nKk" = ( /obj/structure/machinery/camera/autoname{ @@ -35980,6 +36052,9 @@ }, /turf/open/floor/prison, /area/lv522/atmos/way_in_command_centre) +"oeV" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, +/area/lv522/landing_zone_forecon/UD6_Tornado) "oeX" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/sand_white/layer0, @@ -36597,6 +36672,12 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) +"ori" = ( +/obj/structure/barricade/deployable{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "orm" = ( /obj/structure/platform/strata{ dir = 4 @@ -36905,6 +36986,12 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen) +"oxd" = ( +/obj/item/clothing/suit/storage/RO{ + name = "\improper UA jacket" + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "oxq" = ( /obj/item/paper{ pixel_x = 10; @@ -38331,13 +38418,6 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_2) -"pck" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "pco" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/green, /turf/open/floor/prison, @@ -38960,19 +39040,6 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_1) -"pnu" = ( -/obj/item/fuelCell{ - layer = 3.1; - pixel_x = 3; - pixel_y = 15 - }, -/obj/item/fuelCell{ - layer = 3.1; - pixel_x = -10; - pixel_y = 18 - }, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "pnx" = ( /turf/open/floor/corsat{ icon_state = "marked" @@ -39590,6 +39657,10 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/mining) +"pBz" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit/two, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "pBF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/space_heater/radiator/red{ @@ -39997,28 +40068,6 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/mining) -"pIO" = ( -/obj/structure/machinery/computer/cameras{ - desc = "The flight controls for a UD6 Dropship. these controls look pretty banged up, and there's some blood covering the screen.."; - name = "\improper 'Typhoon' flight controls"; - network = null; - pixel_y = 21 - }, -/obj/structure/bed/chair/dropship/pilot{ - dir = 1 - }, -/obj/structure/machinery/light/double{ - dir = 1; - layer = 2.9; - pixel_y = 9 - }, -/obj/item/prop/almayer/flight_recorder{ - layer = 2.9; - pixel_x = -9; - pixel_y = 4 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "pJb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Fitness Centre Airlock" @@ -40597,10 +40646,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"pTH" = ( -/obj/structure/machinery/door/airlock/hatch/cockpit/two, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "pTO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed{ @@ -41079,6 +41124,16 @@ /obj/structure/sign/safety/high_voltage, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) +"qbP" = ( +/obj/structure/machinery/light/double{ + dir = 8; + pixel_y = -5 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "qbW" = ( /obj/structure/prop/invuln/ice_prefab/trim{ dir = 8 @@ -41430,16 +41485,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) -"qjX" = ( -/obj/item/clothing/mask/facehugger{ - desc = "It has some sort of a tube at the end of its tail. What the hell is this thing?"; - icon_state = "facehugger_impregnated"; - layer = 3; - name = "????"; - stat = 2 - }, -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Tornado) "qkw" = ( /obj/structure/prop/invuln/remote_console_pod, /obj/structure/machinery/computer/shuttle/dropship/flight/lz1{ @@ -41647,13 +41692,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/hallway) -"qnV" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qnY" = ( /obj/structure/surface/table/almayer, /obj/item/prop/alien/hugger, @@ -41691,9 +41729,6 @@ icon_state = "cell_stripe" }, /area/lv522/atmos/sewer) -"qpg" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qpq" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -41847,12 +41882,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/c_block/garage) -"qqS" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, -/area/lv522/outdoors/w_rockies) "qqW" = ( /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, @@ -42096,13 +42125,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) -"qvK" = ( -/obj/structure/cargo_container/grant/right, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "qvM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy{ @@ -42312,8 +42334,8 @@ /area/lv522/indoors/a_block/fitness/glass) "qzp" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ - id = "sh_dropship2"; dir = 2; + id = "sh_dropship2"; name = "\improper Typhoon crew hatch" }, /turf/open/shuttle/dropship{ @@ -42904,12 +42926,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/b_block/bridge) -"qJw" = ( -/obj/item/clothing/suit/storage/RO{ - name = "\improper UA jacket" - }, -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qJy" = ( /obj/structure/largecrate/random, /turf/open/auto_turf/shale/layer1, @@ -43613,20 +43629,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_east_street) -"qTO" = ( -/obj/structure/largecrate/supply/ammo/m41a/half{ - pixel_x = 5 - }, -/obj/item/storage/box/guncase/m41a{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/ammo_box/rounds/empty{ - layer = 3.1; - pixel_y = -15 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qUf" = ( /obj/item/ammo_magazine/rifle/m4ra/ext{ current_rounds = 0 @@ -43678,18 +43680,6 @@ icon_state = "plate" }, /area/lv522/atmos/reactor_garage) -"qUD" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ - pixel_x = 30 - }, -/obj/effect/decal/cleanable/blood/splatter, -/obj/item/ammo_box/rounds/smg{ - layer = 3; - pixel_x = 1; - pixel_y = 4 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qUL" = ( /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/north_east_street) @@ -43762,6 +43752,20 @@ }, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/engineering) +"qWk" = ( +/obj/structure/largecrate/supply/ammo/m41a/half{ + pixel_x = 5 + }, +/obj/item/storage/box/guncase/m41a{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/ammo_box/rounds/empty{ + layer = 3.1; + pixel_y = -15 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "qWt" = ( /obj/structure/window/framed/strata/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -44438,6 +44442,9 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/cargo) +"rgn" = ( +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "rgA" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "101" @@ -44506,12 +44513,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/bridges/op_centre) -"rig" = ( -/obj/item/ammo_magazine/rifle/heap{ - current_rounds = 0 - }, -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rii" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "102" @@ -44611,12 +44612,6 @@ icon_state = "kitchen" }, /area/lv522/indoors/a_block/kitchen) -"rkR" = ( -/obj/structure/barricade/deployable{ - dir = 4 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rkV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -44941,10 +44936,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) -"rrB" = ( -/obj/vehicle/powerloader, -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Tornado) "rrI" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -45067,6 +45058,15 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/c_block/cargo) +"rtA" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, +/area/lv522/landing_zone_forecon/UD6_Tornado) "rtI" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/prison, @@ -45498,11 +45498,6 @@ 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" @@ -45520,12 +45515,6 @@ icon_state = "99" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"rCp" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rCu" = ( /turf/open/floor/prison{ dir = 4; @@ -45571,10 +45560,6 @@ /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/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rDu" = ( /obj/structure/machinery/door_control{ id = "UD6"; @@ -45584,12 +45569,6 @@ icon_state = "53" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"rDz" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rDM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -46445,6 +46424,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) +"rUS" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "rUX" = ( /obj/structure/shuttle/engine/heater{ dir = 4; @@ -46802,6 +46790,10 @@ }, /turf/open/asphalt/cement, /area/lv522/landing_zone_2/ceiling) +"sbj" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "sbm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -46864,16 +46856,6 @@ icon_state = "40" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"scv" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "scw" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -46882,16 +46864,6 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"scy" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "scM" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/cheeseburger, @@ -47096,7 +47068,10 @@ "she" = ( /obj/structure/machinery/floodlight, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/turf/open/floor/prison{ + dir = 4; + icon_state = "cell_stripe" + }, /area/lv522/indoors/lone_buildings/storage_blocks) "shh" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ @@ -47437,6 +47412,11 @@ }, /area/lv522/oob) "smR" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "West LZ Storage"; + name = "Emergency Lockdown" + }, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -48305,6 +48285,19 @@ icon_state = "floor_plate" }, /area/lv522/indoors/lone_buildings/storage_blocks) +"sES" = ( +/obj/item/fuel_cell{ + layer = 3.1; + pixel_x = 3; + pixel_y = 15 + }, +/obj/item/fuel_cell{ + layer = 3.1; + pixel_x = -10; + pixel_y = 18 + }, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "sFb" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -48408,15 +48401,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/landing_zone_2/ceiling) -"sGT" = ( -/obj/structure/barricade/deployable, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, -/area/lv522/landing_zone_forecon/UD6_Typhoon) -"sGY" = ( -/obj/structure/barricade/deployable, -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "sHb" = ( /obj/structure/platform_decoration{ dir = 4 @@ -48436,10 +48420,6 @@ }, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) -"sHg" = ( -/obj/structure/barricade/deployable, -/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "sHk" = ( /obj/structure/curtain/red, /turf/open/floor/corsat{ @@ -49336,10 +49316,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/hallway) -"sVX" = ( -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "sWn" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/strata_outpost/reinforced, @@ -49546,6 +49522,15 @@ icon_state = "16" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"tbt" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tby" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -50068,6 +50053,12 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) +"tkN" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tkW" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, @@ -50184,6 +50175,15 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/corpo/glass) +"tna" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ + pixel_x = 30 + }, +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "tne" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -50372,14 +50372,6 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/south) -"tqT" = ( -/obj/item/clothing/accessory/red, -/obj/item/clothing/under/liaison_suit/field{ - pixel_y = 9; - pixel_x = -4 - }, -/turf/open/floor/carpet, -/area/lv522/indoors/a_block/executive) "tqU" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/decal/cleanable/dirt, @@ -50519,12 +50511,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) -"tth" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tti" = ( /obj/structure/platform_decoration{ dir = 4 @@ -50648,6 +50634,13 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) +"tvL" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "tvO" = ( /turf/open/asphalt/cement{ icon_state = "cement12" @@ -50810,16 +50803,6 @@ dir = 4 }, /area/lv522/indoors/c_block/mining) -"tzm" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tzz" = ( /obj/structure/largecrate/random/secure, /obj/structure/largecrate/random/mini{ @@ -50925,9 +50908,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) -"tBM" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tBQ" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 @@ -50993,9 +50973,6 @@ "tCN" = ( /turf/closed/wall/strata_ice/dirty, /area/lv522/outdoors/colony_streets/south_east_street) -"tCR" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tCX" = ( /turf/open/floor/corsat{ dir = 6; @@ -51008,9 +50985,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"tDm" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tDu" = ( /obj/structure/machinery/computer/operating, /obj/structure/surface/table/reinforced/prison, @@ -51298,12 +51272,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) -"tIF" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tIM" = ( /obj/structure/prop/vehicles/crawler{ dir = 8; @@ -51617,16 +51585,8 @@ /area/lv522/outdoors/colony_streets/north_east_street) "tNS" = ( /obj/item/stack/sheet/metal, -/turf/open/floor/plating, +/turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) -"tNT" = ( -/obj/structure/prop/vehicles/crawler{ - icon_state = "crawler_covered_bed" - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/reactor_garage) "tOe" = ( /obj/structure/platform{ dir = 8 @@ -51870,6 +51830,10 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) +"tTb" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "tTl" = ( /obj/structure/prop/almayer/computers/sensor_computer3{ layer = 2.9 @@ -52339,6 +52303,16 @@ icon_state = "kitchen" }, /area/lv522/indoors/a_block/fitness) +"ucs" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "ucx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -53736,16 +53710,6 @@ }, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/east) -"uDM" = ( -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uDP" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -54138,6 +54102,12 @@ }, /turf/open/floor/plating, /area/lv522/indoors/c_block/casino) +"uJf" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "uJl" = ( /obj/structure/filingcabinet{ density = 0; @@ -54210,9 +54180,6 @@ /mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"uKQ" = ( -/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uKR" = ( /obj/structure/barricade/wooden{ dir = 1 @@ -54940,9 +54907,6 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_2/ceiling) -"uXj" = ( -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uXp" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/warning_stripes{ @@ -55081,15 +55045,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"vbk" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/shuttle/dropship/can_surgery/light_grey_middle, -/area/lv522/landing_zone_forecon/UD6_Tornado) "vbm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -55474,10 +55429,10 @@ }, /area/lv522/landing_zone_forecon/UD6_Typhoon) "vir" = ( -/obj/structure/closet/wardrobe/engineering_yellow, /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/prison{ dir = 4; icon_state = "darkyellowfull2" @@ -55564,16 +55519,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) -"vjs" = ( -/obj/structure/machinery/light/double{ - dir = 4; - pixel_y = -5 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "vju" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -56372,12 +56317,6 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/medical) -"vzc" = ( -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/engineering) "vzd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -56483,6 +56422,16 @@ /obj/item/prop/alien/hugger, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) +"vAu" = ( +/obj/item/fuel_cell{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/corsat{ + dir = 4; + icon_state = "brown" + }, +/area/lv522/atmos/east_reactor) "vAW" = ( /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/prison{ @@ -56972,18 +56921,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/dorms) -"vIt" = ( -/obj/structure/machinery/camera/autoname{ - dir = 8 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_marked" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "vIy" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, @@ -57104,6 +57041,21 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) +"vKJ" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Marshal Office Armory" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Sec-Armoury-Lockdown" + }, +/turf/open/floor/corsat{ + icon_state = "marked" + }, +/area/lv522/indoors/a_block/security) "vKO" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -57568,12 +57520,6 @@ 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" @@ -57917,12 +57863,6 @@ 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{ @@ -57973,6 +57913,11 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "West LZ Storage"; + name = "Emergency Lockdown" + }, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -59324,15 +59269,6 @@ icon_state = "marked" }, /area/lv522/indoors/a_block/executive) -"wBr" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ - pixel_x = 30 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "wBx" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 @@ -59608,6 +59544,10 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/admin) +"wGc" = ( +/obj/item/device/m56d_post, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "wGh" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/prison, @@ -59696,6 +59636,9 @@ icon_state = "greenfull" }, /area/lv522/landing_zone_1/ceiling) +"wHw" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, +/area/lv522/landing_zone_forecon/UD6_Tornado) "wHz" = ( /obj/item/clothing/shoes/veteran/pmc{ name = "steel toe boots" @@ -59821,6 +59764,15 @@ icon_state = "darkbrownfull2" }, /area/lv522/indoors/c_block/casino) +"wKH" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, +/area/lv522/landing_zone_forecon/UD6_Tornado) "wKR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -60976,16 +60928,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) -"xkk" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/obj/structure/machinery/light/double{ - dir = 8; - pixel_y = -5 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "xkr" = ( /obj/effect/landmark/objective_landmark/medium, /obj/effect/decal/cleanable/dirt, @@ -61221,11 +61163,8 @@ }, /area/lv522/atmos/sewer) "xoj" = ( -/obj/structure/largecrate/random/barrel/red, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/closed/wall/solaris/reinforced/hull/lv522, /area/lv522/indoors/lone_buildings/storage_blocks) "xoC" = ( /obj/structure/machinery/door/airlock/almayer/generic{ @@ -61286,6 +61225,16 @@ "xqp" = ( /turf/open/auto_turf/shale/layer2, /area/lv522/landing_zone_1) +"xqN" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 8 + }, +/obj/structure/machinery/light/double{ + dir = 4; + pixel_y = -5 + }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Typhoon) "xqV" = ( /obj/structure/cargo_container/kelland/right, /turf/open/floor/prison{ @@ -61481,18 +61430,6 @@ /obj/effect/spider/spiderling/nogrow, /turf/open/floor/prison, /area/lv522/indoors/c_block/t_comm) -"xvy" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/cigarettes/wypacket{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/clothing/suit/storage/jacket/marine/corporate, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/indoors/a_block/corpo/glass) "xvB" = ( /obj/structure/window/framed/strata/reinforced, /turf/open/floor/corsat{ @@ -61636,6 +61573,9 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/outdoor_bot) +"xyu" = ( +/turf/open/shuttle/dropship/can_surgery/dark_grey, +/area/lv522/landing_zone_forecon/UD6_Tornado) "xyC" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /obj/effect/decal/cleanable/dirt, @@ -62368,15 +62308,6 @@ icon_state = "brown" }, /area/lv522/atmos/east_reactor/south) -"xNu" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship/can_surgery/dark_grey, -/area/lv522/landing_zone_forecon/UD6_Tornado) "xNG" = ( /obj/structure/machinery/computer/crew/colony{ density = 0; @@ -62559,11 +62490,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/a_block/hallway) -"xQR" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/lv522/indoors/lone_buildings/storage_blocks) "xRg" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -62740,6 +62666,10 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) +"xTb" = ( +/obj/vehicle/powerloader, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/lv522/landing_zone_forecon/UD6_Tornado) "xTj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname, @@ -63704,6 +63634,9 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) +"ykj" = ( +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, +/area/lv522/landing_zone_forecon/UD6_Tornado) "ykn" = ( /obj/structure/surface/table/almayer, /obj/structure/window/reinforced{ @@ -66619,12 +66552,12 @@ obe pRM qnk qHA -qTO -kMT -eJQ -rCp -scv -rCp +qWk +rgn +sbj +uJf +kbq +uJf tdH nfq fDg @@ -66844,14 +66777,14 @@ pps pxY pIu nbO -qnV -eAa -eAa -rig -eAa -rDb -eAa -sGT +tvL +bmR +bmR +aXR +bmR +wGc +bmR +mNz tdS tzA tSJ @@ -67069,16 +67002,16 @@ cpy cpy ppF pys -pIO -pTH -qpg +jvF +pBz +iGk qJl qUf riE ruj rDu xKc -sGY +fwh pBQ rjP rus @@ -67298,14 +67231,14 @@ pqZ pyO qst gTM -qqS -qJw -eAa -eAa -sVX -eAa -rig -sHg +ghY +oxd +bmR +bmR +tTb +bmR +aXR +aom teL tzF tSU @@ -67527,12 +67460,12 @@ rWS pUc qrj qLd -qUD -rkR -rkR -rDz -scy -rDz +nBh +ori +ori +ngy +xqN +ngy tfV rFp sdE @@ -67589,7 +67522,7 @@ ien ien ien ien -ien +spo umf vXc vXc @@ -67808,15 +67741,15 @@ ylo ylo ylo ylo +dbc ylo ylo ylo ylo ylo ylo -ylo -ien -ien +rMF +spo vXc vXc vXc @@ -68033,18 +67966,18 @@ udK wHi nly miW -hYf -mFe -hYf -wHi +ylo +ylo +dbc +bOX jZe wky wPV tyl ylo -ien -ien -ien +rMF +spo +vXc vXc vXc vXc @@ -68260,17 +68193,17 @@ hYf wHi jUk ouI -hYf -emt -pck -hYf +arP +ylo +xoj +ylo erS abe ukT ofS ylo -ien -ien +rMF +spo vXc vXc vXc @@ -68488,16 +68421,16 @@ hYf xhW hYf hYf -qvK +ylo xoj -hYf +ylo lpt gJL wHi cAW ylo ylo -ien +spo vXc vXc vXc @@ -68715,17 +68648,17 @@ hYf hLl wHi hYf -vBM -hYf -isG -vBM +ylo +dbc +ylo +emt hYf wHi tIS -xQR -waj -ien -ien +yfu +ylo +spo +vXc vXc vXc umf @@ -68942,16 +68875,16 @@ yfu yfu bZd yfu -bZd -bZd +bOX +xoj +ylo yfu +bZd yfu bZd -xQR -vTH -gFy -nxu -ien +bZd +iPD +spo vXc vXc vXc @@ -68968,9 +68901,9 @@ nJv rCa rCa nJv -vzc -vzc -vzc +bbi +bbi +bbi xVd nJv hpq @@ -69169,16 +69102,16 @@ qJK qJK cQB bZd +ylo +xoj +bOX yfu +tNS bZd bZd yfu -tNS -gFy -gFy -rBV -iSx -ien +iPD +spo vXc vXc cpy @@ -69198,7 +69131,7 @@ nJv bzL qmA qmA -vzc +bbi nJv hpq ofi @@ -69396,17 +69329,17 @@ yfu yfu bDr bZd -yfu -yfu -bZd +ylo +dbc +bOX +eYT bZd +yfu bZd -bOX -gFy -tNS -xQR -ien -ien +yfu +iPD +spo +vXc vXc cpy vXc @@ -69425,7 +69358,7 @@ nJv cNO qmA mdp -vzc +bbi nJv gpB ofi @@ -69624,15 +69557,15 @@ yfu bDr yfu hjE -yfu -qpc +dbc +ylo nKj dGK qpc she egj ylo -ien +spo vXc vXc vXc @@ -69652,7 +69585,7 @@ nJv rZg mwC kIs -vzc +bbi nJv gpB ofi @@ -69850,16 +69783,16 @@ jUk hYf sIS yfu -bZd -gJL -vIt -cOA -xhW +bOX +xoj +ylo +ylo +gFy hsz jnr ylo ylo -ien +spo vXc vXc vXc @@ -70077,17 +70010,17 @@ ylo smR wbi smR -smR -smR ylo +dbc ylo ylo ylo ylo ylo -ien -ien -ien +ylo +rMF +sql +vXc vXc yiM yiM @@ -70305,15 +70238,15 @@ xyN cnN xyN xyN -xyN +kXc lwv xyN xyN -dbc +xyN xyN xyN sql -ien +vXc yiM yiM yiM @@ -70531,16 +70464,16 @@ rwE rwE hWI yiM +kXc +kXc +kXc vXc vXc vXc -vXc -vXc -dbc umf umf vXc -ien +yiM yiM yiM yiM @@ -70757,18 +70690,18 @@ yiM yiM yiM yiM -eYT -eYT +yiM +yiM kXc vXc vXc vXc -dbc vXc vXc -ien -ien -ien +vXc +vXc +yiM +yiM yiM yiM yiM @@ -70984,17 +70917,17 @@ yiM yiM yiM yiM -arP yiM yiM -puY +kXc +vXc +vXc vXc vXc -dbc vXc vXc yiM -ien +yiM yiM yiM yiM @@ -71212,16 +71145,16 @@ yiM yiM yiM yiM -yiM -yiM -yiM +kXc +kXc +kXc +vXc vXc vXc -dbc vXc yiM yiM -ien +yiM yiM yiM yiM @@ -71440,16 +71373,16 @@ yiM yiM yiM wdy +kXc iPR iPR iPR iPR -dbc jPv vXc -ien -ien -ien +vXc +yiM +yiM yiM yiM pWR @@ -71675,7 +71608,7 @@ nLm rMF jPv vXc -ien +vXc yiM yiM yiM @@ -71902,7 +71835,7 @@ nLm nLm rVa jPv -ien +vXc vXc vXc yiM @@ -72128,9 +72061,9 @@ wan wEQ nLm nLm -ien -ien -ien +rMF +jPv +vXc vXc umf xTV @@ -72356,7 +72289,7 @@ uDP kDH nLm nLm -ien +spo vXc vXc vXc @@ -72583,7 +72516,7 @@ fjP vJT pfV nLm -ien +spo vXc vXc vXc @@ -72809,9 +72742,9 @@ tUM uOs uOs vJT -nLm -ien -ien +pMd +spo +vXc vXc jue wYa @@ -73036,8 +72969,8 @@ uOs uOs lsD wyE -nLm -ien +pMd +spo vXc vXc upz @@ -73263,8 +73196,8 @@ lBj vJT whn tek -nLm -ien +pMd +spo vXc vXc vXc @@ -73491,8 +73424,8 @@ oDu nLm nLm nLm -ien -ien +spo +vXc umf vXc vaZ @@ -73718,7 +73651,7 @@ fVB cxC rzG nLm -ien +spo vXc umf vXc @@ -73945,7 +73878,7 @@ bGL koj aMI nLm -ien +spo vXc vXc vXc @@ -74172,8 +74105,8 @@ sKH weR nLm nLm -ien -ien +spo +vXc vXc vXc wYa @@ -81794,7 +81727,7 @@ mKN lko lLA jqL -tNT +cBU mvI pZy wAB @@ -83215,7 +83148,7 @@ xlU sjy sjy sjy -lzn +drg sjy tpa tpa @@ -83678,7 +83611,7 @@ sjy sjy uqx sjy -lAM +vKJ sjy uqx sjy @@ -85304,7 +85237,7 @@ jmG oQN vBd wtT -pnu +sES vBd eVc vVS @@ -86158,7 +86091,7 @@ wcp wwM jYZ hlH -xvy +jHm jtZ lvX lvX @@ -88674,7 +88607,7 @@ gwR sjy sjy sjy -hvZ +cxn sjy sjy cBs @@ -88808,8 +88741,8 @@ hwt jcl eHp dHk -gKD -gpu +vAu +lkx tra saC saC @@ -90243,7 +90176,7 @@ xjF vSc xjF gCO -tqT +meM wgW wgW jRT @@ -97721,7 +97654,7 @@ dVo ipf qxX qUq -kNM +guj nLW oBx nTg @@ -103408,14 +103341,14 @@ nSF qUL sct sIA -tth -uDM -tth -uXj -uXj -tth -xkk -tth +dpS +qbP +dpS +xyu +xyu +dpS +gdr +dpS fLa bpZ wRL @@ -103635,18 +103568,18 @@ rfi rAc shq sKi -tBM -uKQ -uKQ -uKQ -uKQ -qjX -uKQ -hFm -dqn -dic -uDM -tth +hLR +dNx +dNx +dNx +dNx +nHF +dNx +oeV +rtA +tbt +qbP +dpS nPn lVs bUy @@ -103862,18 +103795,18 @@ rgA rBZ slK sYh -tCR +wHw sjS wAf skE skE nQY kNR -tCR -fTm -uKQ -uKQ -rrB +wHw +tkN +dNx +dNx +xTb srE qUL iQt @@ -104089,18 +104022,18 @@ rii rCi ssU sKi -tDm -uKQ -uKQ -uKQ -uKQ -uKQ -uKQ -iSu -vbk -xNu -vjs -tIF +bYC +dNx +dNx +dNx +dNx +dNx +dNx +ykj +wKH +rUS +jAX +goC ifg gOZ hZc @@ -104316,14 +104249,14 @@ qUL pTW swr sIA -tIF -vjs -wBr -uXj -uXj -tIF -tzm -tIF +goC +jAX +tna +xyu +xyu +goC +ucs +goC twB fXn uSB diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm index 5a0bb9dfc88d..ffe928acf3ae 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -1126,9 +1126,7 @@ /area/lv624/ground/barrens/containers) "afu" = ( /obj/item/ammo_casing, -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 9; icon_state = "warnplate" @@ -1162,9 +1160,7 @@ }, /area/lv624/ground/barrens/central_barrens) "afy" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 5; icon_state = "warnplate" @@ -1409,9 +1405,7 @@ /area/lv624/ground/barrens/central_barrens) "agF" = ( /obj/item/ammo_casing, -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) "agG" = ( @@ -1588,9 +1582,7 @@ }, /area/lv624/ground/barrens/west_barrens/ceiling) "ahM" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 10; icon_state = "warnplate" @@ -1630,9 +1622,7 @@ }, /area/lv624/ground/barrens/central_barrens) "ahT" = ( -/obj/structure/machinery/floodlight/landing{ - name = "bolted floodlight" - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/plating{ dir = 6; icon_state = "warnplate" @@ -6359,8 +6349,9 @@ }, /area/lv624/lazarus/sleep_male) "aCV" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass1, -/area/lv624/lazarus/sleep_male) +/area/lv624/ground/jungle/central_jungle) "aCX" = ( /turf/open/floor/grass, /area/lv624/lazarus/main_hall) @@ -7934,11 +7925,11 @@ "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 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -9548,6 +9539,7 @@ /area/lv624/ground/caves/north_east_caves) "aPN" = ( /obj/structure/window_frame/colony/reinforced, +/obj/item/stack/rods, /turf/open/floor/plating, /area/lv624/lazarus/comms) "aPO" = ( @@ -9558,8 +9550,7 @@ req_one_access = null }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "delivery" }, /area/lv624/lazarus/comms) "aPR" = ( @@ -9845,38 +9836,28 @@ "aRd" = ( /obj/structure/surface/table, /obj/item/device/mmi/radio_enabled, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) -"aRe" = ( -/obj/structure/surface/table, -/obj/item/device/flashlight, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) -"aRf" = ( -/obj/structure/surface/table, -/obj/item/device/radio/headset{ - frequency = 1469; - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/device/radio/headset{ - frequency = 1469 - }, -/obj/structure/machinery/light{ - dir = 1 +"aRe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/monitor, +/obj/item/ashtray/glass{ + pixel_x = 3; + pixel_y = 15 }, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) +"aRf" = ( +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/gm/grass/grass1, +/area/lv624/ground/jungle/west_central_jungle) "aRg" = ( /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz2) @@ -9888,10 +9869,11 @@ }, /area/lv624/lazarus/chapel) "aRi" = ( -/obj/structure/surface/table, -/obj/item/ashtray/glass, -/obj/item/tool/crowbar, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -10120,8 +10102,14 @@ /turf/open/floor/plating, /area/lv624/lazarus/landing_zones/lz1) "aSd" = ( -/obj/structure/bed/chair/office/light{ - dir = 1 +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, /turf/open/floor{ dir = 9; @@ -10129,8 +10117,12 @@ }, /area/lv624/lazarus/comms) "aSe" = ( -/obj/structure/surface/table, -/obj/item/device/multitool, +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -10270,30 +10262,24 @@ }, /area/lv624/lazarus/canteen) "aSI" = ( -/obj/structure/machinery/computer/telecomms/server, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) "aSJ" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - frequency = 1469; - name = "General Listening Channel"; - pixel_x = -30 - }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "podhatchfloor" }, /area/lv624/lazarus/comms) "aSK" = ( -/obj/structure/machinery/computer/telecomms/traffic, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating, /area/lv624/lazarus/comms) "aSL" = ( /turf/closed/wall/r_wall, @@ -10382,25 +10368,25 @@ "aTg" = ( /turf/closed/wall, /area/lv624/lazarus/comms) -"aTh" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) "aTi" = ( -/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) "aTj" = ( -/obj/structure/machinery/blackbox_recorder, -/obj/item/prop/almayer/flight_recorder/colony{ - pixel_x = -6; - pixel_y = 10 +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/machinery/computer/telecomms/traffic{ + layer = 3.1; + pixel_y = 16 + }, +/obj/structure/bed/chair/office/light{ + dir = 1; + layer = 3.2 }, /turf/open/floor{ dir = 9; @@ -10410,19 +10396,9 @@ "aTk" = ( /obj/effect/landmark/static_comms/net_one, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "podhatchfloor" }, /area/lv624/lazarus/comms) -"aTo" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/lattice{ - layer = 2.9 - }, -/turf/open/floor/plating{ - icon_state = "warnplate" - }, -/area/lv624/lazarus/engineering) "aTq" = ( /obj/structure/foamed_metal, /turf/open/floor{ @@ -10446,6 +10422,11 @@ /obj/structure/machinery/colony_floodlight_switch{ pixel_y = 30 }, +/obj/item/device/assembly/voice, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, /turf/open/floor{ icon_state = "dark" }, @@ -10537,7 +10518,6 @@ /obj/structure/machinery/power/apc{ dir = 1; name = "Telecomms APC"; - pixel_y = 30; start_charge = 15 }, /turf/open/floor{ @@ -10545,7 +10525,12 @@ }, /area/lv624/lazarus/comms) "aTK" = ( -/turf/open/gm/dirt, +/obj/structure/surface/rack, +/obj/item/device/multitool, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, /area/lv624/lazarus/comms) "aTM" = ( /turf/open/floor{ @@ -10553,6 +10538,10 @@ }, /area/lv624/lazarus/engineering) "aTN" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/plating{ icon_state = "warnplate" }, @@ -10679,22 +10668,21 @@ req_one_access = null }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "delivery" }, /area/lv624/lazarus/comms) "aUl" = ( -/obj/item/device/multitool, -/obj/structure/surface/rack, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) +/turf/open/gm/dirtgrassborder/south, +/area/lv624/ground/colony/north_tcomms_road) "aUo" = ( /obj/effect/spawner/random/toolbox, /obj/structure/surface/table/reinforced/prison, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal{ + layer = 3.01 + }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor{ icon_state = "dark" }, @@ -10711,17 +10699,18 @@ }, /area/lv624/lazarus/engineering) "aUt" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/assembly/timer, -/obj/item/device/assembly/voice, -/obj/item/tool/crowbar, -/turf/open/floor{ - icon_state = "dark" - }, -/area/lv624/lazarus/engineering) +/obj/structure/flora/jungle/vines/heavy, +/obj/structure/window_frame/colony, +/obj/item/shard, +/turf/open/floor/plating, +/area/lv624/lazarus/yggdrasil) "aUu" = ( /obj/structure/machinery/light, /obj/structure/bed/stool, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, /turf/open/floor{ icon_state = "dark" }, @@ -10887,6 +10876,7 @@ /area/lv624/ground/jungle/south_west_jungle) "aVb" = ( /obj/structure/machinery/light, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -10896,9 +10886,8 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/platform, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 6; icon_state = "warnplate" @@ -10914,9 +10903,11 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 +/obj/item/clothing/head/hardhat/orange{ + pixel_x = -7; + pixel_y = 13 }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 8; icon_state = "warnplate" @@ -10926,15 +10917,16 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 4; icon_state = "warnplate" }, /area/lv624/lazarus/engineering) "aVj" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; locked = 1; @@ -10943,7 +10935,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aVk" = ( @@ -11044,11 +11036,12 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "aVF" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - name = "Geothermal APC"; - pixel_y = 30; - start_charge = 0 +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, /turf/open/floor{ icon_state = "dark" @@ -11061,22 +11054,28 @@ name = "General Listening Channel"; pixel_y = 30 }, +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform/stair_cut, +/obj/item/clothing/head/hardhat/orange, /turf/open/floor{ icon_state = "dark" }, /area/lv624/lazarus/engineering) "aVH" = ( -/obj/item/clothing/head/hardhat/orange, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/foamed_metal, /turf/open/floor{ icon_state = "dark" }, /area/lv624/lazarus/engineering) "aVI" = ( -/obj/structure/foamed_metal, /obj/structure/machinery/vending/coffee, +/obj/structure/foamed_metal, /turf/open/floor{ icon_state = "dark" }, @@ -11175,20 +11174,21 @@ /obj/structure/computerframe{ anchored = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "aWd" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/obj/item/shard, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "podhatchfloor" }, /area/lv624/lazarus/comms) "aWe" = ( -/obj/structure/machinery/computer/telecomms/monitor, +/obj/structure/machinery/computer/telecomms/monitor{ + pixel_y = 16 + }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "dark" }, /area/lv624/lazarus/comms) "aWf" = ( @@ -11197,16 +11197,16 @@ req_access_txt = "100"; req_one_access = null }, -/obj/structure/foamed_metal, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aWg" = ( -/obj/structure/machinery/power/geothermal, /obj/structure/lattice{ layer = 2.9 }, +/obj/structure/platform, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 10; icon_state = "warnplate" @@ -11302,28 +11302,38 @@ /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, /area/lv624/ground/colony/south_medbay_road) -"aWx" = ( -/obj/structure/bed/chair/office/light, +"aWy" = ( +/obj/structure/surface/table, +/obj/item/device/radio/headset{ + frequency = 1469; + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/device/radio/headset{ + frequency = 1469 + }, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) -"aWy" = ( -/obj/structure/foamed_metal, -/turf/open/gm/dirt, -/area/lv624/lazarus/comms) "aWz" = ( /obj/structure/window_frame/colony/reinforced, /turf/open/floor/plating, /area/lv624/lazarus/engineering) "aWA" = ( -/obj/structure/foamed_metal, -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/obj/structure/machinery/computer/telecomms/server{ + pixel_y = 16 + }, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aWC" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -11335,31 +11345,35 @@ }, /area/lv624/lazarus/engineering) "aWE" = ( -/obj/structure/sign/safety/high_voltage{ - pixel_x = 7; - pixel_y = -32 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/surface/table/reinforced/prison, -/obj/item/tool/extinguisher, -/obj/effect/spawner/random/powercell, +/obj/item/prop/alien/hugger, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aWF" = ( +/obj/effect/spawner/random/toolbox, +/obj/structure/surface/table/reinforced/prison, +/obj/item/device/radio, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /obj/structure/machinery/light, -/obj/structure/machinery/power/monitor{ - name = "Main Power Grid Monitoring" - }, /turf/open/floor{ icon_state = "dark" }, /area/lv624/lazarus/engineering) "aWG" = ( -/obj/effect/spawner/random/toolbox, -/obj/structure/surface/table/reinforced/prison, -/obj/item/device/radio, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + layer = 3.1 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11368,6 +11382,10 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/folder, /obj/item/device/assembly/signaller, +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11377,6 +11395,7 @@ /obj/item/device/flashlight, /obj/effect/spawner/random/tool, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11446,56 +11465,45 @@ /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aWV" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/greengrid, +/obj/item/stack/rods/plasteel, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, /area/lv624/lazarus/secure_storage) "aWW" = ( /obj/structure/surface/rack, -/obj/item/ammo_magazine/rifle/extended, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aWX" = ( -/obj/structure/surface/table, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 }, -/area/lv624/lazarus/comms) -"aWY" = ( -/obj/structure/surface/table, -/obj/item/device/radio/off{ - frequency = 1469 +/obj/structure/machinery/light{ + dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) +"aWY" = ( +/turf/closed/wall, +/area/lv624/lazarus/yggdrasil) "aWZ" = ( -/obj/structure/surface/table, -/obj/item/clothing/head/soft/blue, -/obj/structure/machinery/light, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) +/obj/structure/flora/bush/ausbushes/lavendergrass, +/turf/open/gm/grass/grass1, +/area/lv624/ground/colony/west_tcomms_road) "aXa" = ( -/obj/structure/surface/table, -/obj/item/device/radio/off{ - frequency = 1469 - }, -/obj/item/tool/crowbar, /obj/structure/machinery/light, -/obj/item/tool/hatchet{ - pixel_x = 6; - pixel_y = 4 +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, +/obj/structure/platform, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -11508,11 +11516,24 @@ }, /area/lv624/lazarus/sleep_male) "aXd" = ( -/turf/open/gm/dirtgrassborder/south, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, /area/lv624/lazarus/comms) "aXe" = ( -/obj/structure/foamed_metal, -/turf/open/gm/dirtgrassborder/south, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/item/tool/crowbar, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, /area/lv624/lazarus/comms) "aXf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -11523,7 +11544,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXg" = ( @@ -11534,7 +11555,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXh" = ( @@ -11559,19 +11580,29 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) "aXn" = ( -/obj/structure/fence, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/south_central_jungle) +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "aXo" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_central_jungle) "aXs" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 30 +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/apc{ + dir = 1; + name = "Geothermal APC"; + start_charge = 0 }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXt" = ( @@ -11592,6 +11623,7 @@ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, +/obj/effect/spawner/random/tool, /turf/open/floor{ icon_state = "dark" }, @@ -11655,11 +11687,13 @@ "aXF" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/buckshot, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aXG" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/shotgun/slugs, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aXH" = ( @@ -11684,6 +11718,7 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11698,6 +11733,7 @@ /area/lv624/lazarus/security) "aXN" = ( /obj/effect/spawner/random/powercell, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11744,7 +11780,14 @@ /area/lv624/lazarus/landing_zones/lz2) "aXZ" = ( /obj/structure/surface/rack, -/obj/effect/spawner/random/tool, +/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{ icon_state = "dark" }, @@ -11773,19 +11816,13 @@ /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aYh" = ( -/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, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aYj" = ( /obj/effect/landmark/lv624/xeno_tunnel, /obj/structure/flora/jungle/vines/light_3, @@ -11982,15 +12019,6 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirt, /area/lv624/ground/river/west_river) -"aZc" = ( -/obj/structure/surface/table, -/obj/item/weapon/twohanded/fireaxe, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor{ - dir = 9; - icon_state = "brown" - }, -/area/lv624/lazarus/comms) "aZd" = ( /obj/structure/closet/radiation, /obj/item/device/radio/intercom{ @@ -11999,6 +12027,7 @@ name = "General Listening Channel"; pixel_x = -30 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12009,6 +12038,7 @@ /obj/item/book/manual/engineering_guide, /obj/item/book/manual/engineering_hacking, /obj/item/book/manual/atmospipes, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12019,6 +12049,10 @@ /obj/item/device/analyzer, /obj/item/device/multitool, /obj/item/device/assembly/prox_sensor, +/obj/effect/decal/cleanable/dirt, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor{ icon_state = "dark" }, @@ -12036,9 +12070,11 @@ "aZh" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, +/obj/item/tool/crowbar, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "dark" }, /area/lv624/lazarus/comms) "aZi" = ( @@ -12112,6 +12148,7 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12119,6 +12156,7 @@ "aZy" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12191,14 +12229,28 @@ }, /area/lv624/lazarus/hop) "aZG" = ( -/obj/structure/filingcabinet, -/obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, /turf/open/floor{ - icon_state = "dark" + dir = 9; + icon_state = "brown" }, -/area/lv624/lazarus/engineering) +/area/lv624/lazarus/comms) "aZI" = ( -/obj/structure/filingcabinet/chestdrawer, +/obj/structure/filingcabinet/chestdrawer{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 7; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/close, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12212,16 +12264,18 @@ }, /area/lv624/lazarus/engineering) "aZK" = ( -/obj/structure/surface/rack, -/obj/item/clothing/mask/gas, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, /turf/open/floor{ dir = 9; icon_state = "brown" }, /area/lv624/lazarus/comms) "aZL" = ( -/obj/structure/surface/rack, -/obj/structure/prop/mech/drill, +/obj/item/stack/sheet/metal, /turf/open/floor/greengrid, /area/lv624/lazarus/secure_storage) "aZM" = ( @@ -12347,11 +12401,11 @@ /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 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) @@ -12741,6 +12795,13 @@ }, /turf/open/gm/coast/beachcorner/north_east, /area/lv624/ground/caves/sand_temple) +"bJe" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "bJz" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, @@ -12760,6 +12821,18 @@ "bLE" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/caves/sand_temple) +"bLH" = ( +/obj/structure/machinery/power/monitor{ + name = "Main Power Grid Monitoring" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "bMu" = ( /turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/east_jungle) @@ -12790,10 +12863,10 @@ /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 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/barrens/north_east_barrens) @@ -12815,6 +12888,13 @@ /obj/structure/flora/bush/ausbushes/pointybush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) +"bQf" = ( +/obj/structure/machinery/power/port_gen/pacman/super, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "bQz" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/grass_overlay/grass1{ @@ -12851,10 +12931,17 @@ /area/lv624/ground/colony/west_tcomms_road) "bTw" = ( /obj/effect/landmark/nightmare{ - insert_tag = "cargospecial" + insert_tag = "cargospecial1" }, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"bUc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "bUs" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/ammo_magazine/shotgun/buckshot, @@ -12949,6 +13036,12 @@ icon_state = "whiteyellow" }, /area/lv624/lazarus/corporate_dome) +"cfA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/secure_storage) "cfD" = ( /turf/closed/wall/r_wall/unmeltable, /area/lv624/lazarus/quartstorage/outdoors) @@ -13001,14 +13094,18 @@ /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 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) +"chy" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "cij" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, @@ -13137,9 +13234,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/gm/dirt, /area/lv624/ground/barrens/central_barrens) +"ctS" = ( +/obj/structure/fence, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "cvk" = ( /obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/west_central_jungle) "cwv" = ( @@ -13164,6 +13264,18 @@ /obj/structure/foamed_metal, /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/east_central_jungle) +"cyP" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/stair_cut/alt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "czq" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/auto_turf/strata_grass/layer1, @@ -13323,6 +13435,17 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/north_west_caves) +"cNE" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "cNH" = ( /obj/structure/surface/rack, /obj/item/storage/box/beakers, @@ -13356,6 +13479,14 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"cQU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/device/multitool, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "cQX" = ( /obj/structure/stairs/perspective{ color = "#b29082"; @@ -13587,6 +13718,15 @@ icon_state = "dark" }, /area/lv624/ground/barrens/north_east_barrens/ceiling) +"drX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "dsi" = ( /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirt, @@ -13680,10 +13820,10 @@ /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 + light_system = 1; + pixel_x = -10 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) @@ -13761,6 +13901,13 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/jungle/north_jungle) +"dHr" = ( +/obj/item/weapon/twohanded/fireaxe, +/obj/effect/decal/cleanable/blood, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "dId" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor{ @@ -14137,6 +14284,16 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/east_caves) +"elO" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "enn" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/grass_overlay/grass1{ @@ -14223,6 +14380,16 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) +"euU" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "euW" = ( /obj/structure/surface/table/woodentable/poor, /obj/item/tool/candle, @@ -14245,10 +14412,18 @@ /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/jungle/south_west_jungle) "eyb" = ( -/obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/gm/dirtgrassborder/west, -/area/lv624/ground/colony/west_tcomms_road) +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/shard, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "eyn" = ( /obj/structure/flora/jungle/vines/light_3, /turf/closed/wall/strata_ice/jungle, @@ -14437,6 +14612,10 @@ "eTQ" = ( /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/jungle/south_east_jungle) +"eUI" = ( +/obj/item/storage/toolbox, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "eVH" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/floor{ @@ -14497,11 +14676,11 @@ /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 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -14561,6 +14740,13 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_east_jungle) +"fij" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/office/light, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "fio" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ dir = 9 @@ -14725,6 +14911,12 @@ icon_state = "squareswood" }, /area/lv624/ground/caves/sand_temple) +"fAs" = ( +/obj/item/tool/crowbar, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "fAz" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor{ @@ -14858,10 +15050,26 @@ /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) +"fLf" = ( +/obj/effect/landmark/survivor_spawner, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "fLh" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/angel, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) +"fMa" = ( +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "fMl" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -14872,6 +15080,12 @@ icon_state = "white" }, /area/lv624/lazarus/corporate_dome) +"fMv" = ( +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "fNA" = ( /obj/structure/barricade/wooden, /turf/open/shuttle{ @@ -14884,6 +15098,16 @@ "fPH" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_central_jungle) +"fQx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "fQL" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/west_river) @@ -14974,11 +15198,11 @@ /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 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -15069,11 +15293,11 @@ /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 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) @@ -15096,10 +15320,15 @@ /turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/west_central_jungle) "gqG" = ( -/obj/item/device/assembly/infra, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 7; + pixel_y = -32 + }, /obj/structure/surface/table/reinforced/prison, +/obj/item/tool/extinguisher, +/obj/effect/spawner/random/powercell, +/obj/item/device/assembly/infra, /obj/effect/spawner/random/powercell, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ icon_state = "dark" }, @@ -15269,12 +15498,20 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/south_central_caves) "gKg" = ( -/obj/item/clothing/head/hardhat/orange, /turf/open/floor/plating{ dir = 5; icon_state = "warnplate" }, /area/lv624/lazarus/engineering) +"gKN" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "gMe" = ( /obj/effect/landmark/nightmare{ insert_tag = "lv-rightsidepass" @@ -15310,6 +15547,11 @@ "gRx" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/colony/south_medbay_road) +"gSb" = ( +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "gTj" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 8 @@ -15416,6 +15658,11 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) +"haE" = ( +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_west_jungle) "haN" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -15467,13 +15714,18 @@ icon_state = "asteroidwarning" }, /area/lv624/lazarus/landing_zones/lz2) +"hen" = ( +/obj/item/tool/weldingtool, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_central_jungle) "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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -15580,11 +15832,11 @@ /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 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) @@ -15625,10 +15877,10 @@ /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 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -15689,6 +15941,13 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_membrane, /turf/open/gm/dirt, /area/lv624/ground/caves/central_caves) +"hDe" = ( +/obj/structure/bed/stool, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "hDX" = ( /obj/effect/decal/remains/xeno, /turf/open/gm/dirt, @@ -15748,6 +16007,20 @@ /obj/effect/landmark/objective_landmark/far, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"hJh" = ( +/obj/structure/coatrack{ + pixel_x = 11; + pixel_y = 14 + }, +/obj/item/clothing/head/soft/blue{ + pixel_x = 7; + pixel_y = 28 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "hJn" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass2, @@ -15806,6 +16079,18 @@ /obj/item/reagent_container/food/snacks/grown/mushroom/plumphelmet, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) +"hOo" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/rods, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "hPV" = ( /obj/effect/decal/remains/xeno{ pixel_x = 31 @@ -15851,6 +16136,15 @@ "hSn" = ( /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_nexus_road) +"hSp" = ( +/obj/structure/flora/grass/tallgrass/jungle/corner{ + dir = 9 + }, +/obj/effect/landmark/nightmare{ + insert_tag = "corporatedome" + }, +/turf/open/gm/grass/grass1, +/area/lv624/ground/colony/west_tcomms_road) "hSz" = ( /obj/effect/landmark/hunter_secondary, /turf/open/gm/grass/grass1, @@ -15859,6 +16153,12 @@ /obj/effect/landmark/monkey_spawn, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_central_jungle) +"hTp" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/secure_storage) "hTR" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/auto_turf/strata_grass/layer1, @@ -15974,11 +16274,11 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -16021,6 +16321,16 @@ /obj/effect/landmark/queen_spawn, /turf/open/gm/dirt, /area/lv624/ground/caves/east_caves) +"iiO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "ikA" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/chanterelle, /turf/open/auto_turf/strata_grass/layer1, @@ -16076,8 +16386,11 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/north_east_caves) "isR" = ( -/obj/effect/landmark/objective_landmark/medium, -/obj/structure/largecrate/random, +/obj/structure/surface/table, +/obj/item/device/flashlight, +/obj/item/device/radio/off{ + frequency = 1469 + }, /turf/open/floor{ dir = 9; icon_state = "brown" @@ -16348,6 +16661,19 @@ /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"iYL" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + frequency = 1469; + name = "General Listening Channel"; + pixel_y = 26 + }, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "iZG" = ( /obj/effect/landmark/crap_item, /turf/open/gm/dirt, @@ -16366,6 +16692,10 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, /area/lv624/ground/caves/sand_temple) +"jaw" = ( +/obj/item/stack/sheet/metal, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "jbd" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/grass/grass1, @@ -16388,9 +16718,25 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"jdL" = ( +/obj/structure/foamed_metal, +/obj/structure/flora/jungle/vines/light_2, +/turf/open/floor/plating{ + icon_state = "warnplate" + }, +/area/lv624/lazarus/engineering) "jeL" = ( /turf/closed/wall/r_wall, /area/lv624/ground/caves/north_central_caves) +"jfN" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "jga" = ( /turf/open/gm/river, /area/lv624/ground/jungle/west_jungle) @@ -16516,6 +16862,11 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "jwW" = ( +/obj/structure/platform_decoration, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/plating{ dir = 6; icon_state = "warnplate" @@ -16717,9 +17068,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 8; icon_state = "warnplate" @@ -16807,11 +17156,11 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -17054,6 +17403,11 @@ "kvo" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/east_central_jungle) +"kvv" = ( +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "kvE" = ( /obj/structure/machinery/landinglight/ds2/delaythree, /turf/open/floor/plating, @@ -17086,6 +17440,16 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_west_caves) +"kyz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "kyN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass1, @@ -17113,6 +17477,13 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/north_west_caves) +"kzp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "kzu" = ( /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, @@ -17208,6 +17579,20 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/north_west_caves) +"kKL" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "kLl" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 8 @@ -17284,6 +17669,12 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"kSN" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/secure_storage) "kSR" = ( /obj/structure/fence, /turf/open/gm/dirtgrassborder/grassdirt_corner/north_west, @@ -17302,6 +17693,10 @@ /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"kVS" = ( +/obj/item/weapon/gun/rifle/m41a, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "kWH" = ( /turf/open/floor{ icon_state = "dark" @@ -17318,11 +17713,13 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "kWX" = ( +/obj/effect/landmark/objective_landmark/medium, +/obj/structure/largecrate/random, /turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" + dir = 9; + icon_state = "brown" }, -/area/lv624/ground/colony/telecomm/sw_lz2) +/area/lv624/lazarus/comms) "kXE" = ( /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/dirtgrassborder/north, @@ -17517,10 +17914,12 @@ /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) "lud" = ( -/obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, -/turf/open/gm/dirtgrassborder/west, -/area/lv624/ground/colony/north_tcomms_road) +/obj/structure/foamed_metal, +/obj/structure/flora/jungle/vines/heavy, +/turf/open/floor/plating{ + icon_state = "warnplate" + }, +/area/lv624/lazarus/engineering) "lxr" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/dirtgrassborder/south, @@ -17561,6 +17960,16 @@ icon_state = "desert0" }, /area/lv624/ground/barrens/west_barrens) +"lzW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "lAX" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/grass/grass1, @@ -17629,9 +18038,7 @@ /obj/structure/lattice{ layer = 2.9 }, -/obj/structure/machinery/power/geothermal{ - fail_rate = 5 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ icon_state = "warnplate" }, @@ -17701,11 +18108,11 @@ /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 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -17742,11 +18149,11 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) @@ -17758,6 +18165,11 @@ "lQC" = ( /turf/open/gm/dirt, /area/lv624/ground/barrens/east_barrens) +"lQP" = ( +/obj/structure/window_frame/colony, +/obj/item/shard, +/turf/open/floor/plating, +/area/lv624/lazarus/comms) "lRd" = ( /obj/item/stack/sheet/wood{ amount = 2 @@ -17911,14 +18323,18 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) +"mdw" = ( +/obj/structure/prop/mech/drill, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "mdQ" = ( /turf/closed/wall/rock/brown, /area/lv624/ground/caves/west_caves) @@ -17928,11 +18344,11 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -17998,6 +18414,7 @@ }, /area/lv624/ground/barrens/south_eastern_barrens) "mkn" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "mko" = ( @@ -18018,7 +18435,9 @@ "mkU" = ( /obj/structure/foamed_metal, /obj/structure/flora/jungle/vines/light_2, -/turf/open/floor/plating, +/turf/open/floor{ + icon_state = "delivery" + }, /area/lv624/lazarus/engineering) "mkW" = ( /obj/structure/flora/grass/tallgrass/jungle/corner{ @@ -18026,6 +18445,15 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"mkZ" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/obj/structure/foamed_metal, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "mmu" = ( /obj/structure/flora/jungle/plantbot1, /turf/open/gm/grass/grass1, @@ -18060,6 +18488,10 @@ icon_state = "whitebluefull" }, /area/lv624/lazarus/medbay) +"mqf" = ( +/obj/item/tool/wrench, +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "mqw" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor{ @@ -18145,6 +18577,15 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_west_jungle) +"mBH" = ( +/obj/structure/foamed_metal{ + layer = 3.1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "mBL" = ( /turf/open/floor{ dir = 1; @@ -18523,6 +18964,17 @@ icon_state = "desert3" }, /area/lv624/ground/barrens/west_barrens) +"nrK" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "nrP" = ( /obj/structure/transmitter/colony_net{ phone_category = "Lazarus Landing"; @@ -18533,10 +18985,10 @@ /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 + light_system = 1; + pixel_x = -10 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) @@ -18615,6 +19067,13 @@ /turf/open/gm/dirt, /area/lv624/lazarus/landing_zones/lz2) "nwR" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/plating{ dir = 10; icon_state = "warnplate" @@ -18828,11 +19287,11 @@ /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 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/barrens/north_east_barrens) @@ -18869,11 +19328,11 @@ /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 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -19011,6 +19470,11 @@ /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/grass/grass2, /area/lv624/ground/barrens/south_eastern_jungle_barrens) +"oas" = ( +/turf/open/floor{ + icon_state = "delivery" + }, +/area/lv624/lazarus/engineering) "oaL" = ( /obj/structure/flora/bush/ausbushes/ausbush, /turf/open/gm/grass/grass1, @@ -19097,6 +19561,7 @@ /turf/open/gm/dirt, /area/lv624/ground/river/east_river) "ogR" = ( +/obj/item/prop/alien/hugger, /turf/open/floor/plating{ dir = 9; icon_state = "warnplate" @@ -19137,6 +19602,16 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/plating, /area/lv624/ground/barrens/central_barrens) +"oiR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "omu" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirt, @@ -19184,13 +19659,17 @@ icon_state = "asteroidwarning" }, /area/lv624/ground/colony/telecomm/cargo) +"ose" = ( +/obj/structure/girder/displaced, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_central_jungle) "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 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -19384,6 +19863,16 @@ icon_state = "asteroidplating" }, /area/lv624/ground/caves/north_central_caves) +"oIO" = ( +/obj/structure/surface/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/device/radio/off{ + frequency = 1469 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "oJL" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -19455,6 +19944,15 @@ "oRH" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/north_east_jungle) +"oRY" = ( +/obj/structure/surface/rack, +/obj/item/clothing/mask/gas, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "oSh" = ( /obj/item/stack/sheet/wood{ amount = 2 @@ -19593,7 +20091,7 @@ /area/lv624/ground/caves/sand_temple) "pca" = ( /obj/effect/landmark/nightmare{ - insert_tag = "nexuscenter" + insert_tag = "nexuscenter_barricaded" }, /turf/open/floor{ dir = 9; @@ -19656,6 +20154,11 @@ icon_state = "whiteblue" }, /area/lv624/lazarus/corporate_dome) +"phk" = ( +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "phU" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, @@ -19689,6 +20192,9 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"plC" = ( +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "pmt" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/gm/dirt, @@ -19825,6 +20331,12 @@ icon_state = "white" }, /area/lv624/lazarus/medbay) +"pzP" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "pAE" = ( /obj/structure/flora/bush/ausbushes/var3/leafybush, /turf/open/auto_turf/strata_grass/layer1, @@ -19955,8 +20467,8 @@ /area/lv624/lazarus/quartstorage/outdoors) "pKm" = ( /turf/open/floor{ - icon_state = "asteroidwarning"; - dir = 8 + dir = 8; + icon_state = "asteroidwarning" }, /area/lv624/ground/colony/telecomm/sw_lz2) "pKp" = ( @@ -19976,10 +20488,10 @@ /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 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) @@ -20110,10 +20622,10 @@ /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 + light_system = 1; + pixel_x = -10 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -20143,6 +20655,18 @@ /obj/item/clothing/mask/gas, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) +"qap" = ( +/obj/structure/machinery/light, +/obj/structure/stairs/perspective{ + dir = 9; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "qaE" = ( /obj/effect/landmark/hunter_primary, /obj/effect/landmark/queen_spawn, @@ -20176,6 +20700,13 @@ icon_state = "white" }, /area/lv624/lazarus/corporate_dome) +"qez" = ( +/obj/effect/landmark/good_item, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "qeW" = ( /turf/open/gm/coast/beachcorner2/north_west, /area/lv624/ground/caves/sand_temple) @@ -20210,6 +20741,21 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) +"qit" = ( +/obj/item/prop/alien/hugger{ + pixel_x = -20; + pixel_y = 8 + }, +/obj/item/tool/hatchet{ + pixel_x = -14; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "qiL" = ( /obj/item/reagent_container/food/snacks/grown/mushroom/amanita, /turf/open/auto_turf/strata_grass/layer1, @@ -20407,6 +20953,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/west_tcomms_road) +"qEz" = ( +/obj/item/ammo_magazine/rifle/extended, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "qGH" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/gm/grass/grass2, @@ -20418,7 +20968,9 @@ "qGR" = ( /obj/structure/foamed_metal, /obj/structure/flora/jungle/vines/heavy, -/turf/open/floor/plating, +/turf/open/floor{ + icon_state = "delivery" + }, /area/lv624/lazarus/engineering) "qHC" = ( /obj/structure/largecrate/random/barrel/red, @@ -20475,6 +21027,24 @@ /obj/structure/flora/jungle/alienplant1, /turf/open/gm/river, /area/lv624/ground/jungle/west_jungle) +"qNl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) +"qNz" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "qNQ" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 4 @@ -20556,11 +21126,11 @@ /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 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_east_caves) @@ -20584,6 +21154,12 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"qXt" = ( +/obj/item/stack/rods, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "qYF" = ( /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/gm/dirt, @@ -20697,10 +21273,10 @@ /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 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -20714,32 +21290,40 @@ icon_state = "green" }, /area/lv624/lazarus/hydroponics) +"rkZ" = ( +/obj/item/shard, +/obj/item/stack/rods, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "rmg" = ( -/obj/structure/machinery/power/monitor, -/obj/structure/foamed_metal, /obj/structure/machinery/light{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/foamed_metal, /turf/open/floor{ 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 + light_system = 1; + pixel_x = 4 }, /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 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -20821,6 +21405,11 @@ }, /turf/open/gm/dirt, /area/lv624/ground/caves/sand_temple) +"rwK" = ( +/obj/effect/decal/remains/xeno, +/obj/item/stack/sheet/metal, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "rxV" = ( /turf/open/gm/dirtgrassborder{ icon_state = "desert_dug" @@ -20875,11 +21464,11 @@ /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 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) @@ -20901,6 +21490,12 @@ "rCV" = ( /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_central_jungle) +"rDK" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/secure_storage) "rER" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 6 @@ -20928,11 +21523,11 @@ /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 + light_system = 1; + pixel_x = 6; + pixel_y = -8 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) @@ -21166,6 +21761,9 @@ icon_state = "vault" }, /area/lv624/lazarus/quartstorage) +"sfg" = ( +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, +/area/lv624/ground/jungle/south_central_jungle) "sfH" = ( /obj/structure/inflatable, /turf/open/gm/dirt, @@ -21221,10 +21819,10 @@ /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 + light_system = 1; + pixel_x = 4 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -21324,6 +21922,15 @@ /obj/structure/flora/bush/ausbushes/grassybush, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) +"svv" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "swR" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/flora/jungle/vines/heavy, @@ -21410,6 +22017,11 @@ icon_state = "whiteyellowfull" }, /area/lv624/ground/barrens/south_eastern_barrens) +"sCx" = ( +/obj/item/clothing/head/welding, +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/south_west_jungle) "sCJ" = ( /obj/structure/flora/jungle/vines/heavy, /turf/open/floor{ @@ -21638,11 +22250,11 @@ /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 + light_system = 1; + pixel_x = -10; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/west_caves) @@ -21666,8 +22278,6 @@ }, /area/lv624/lazarus/landing_zones/lz1) "taK" = ( -/obj/structure/fence, -/obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/lv624/ground/colony/north_tcomms_road) "tbV" = ( @@ -21691,13 +22301,13 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/north_central_caves) "tem" = ( -/obj/structure/machinery/power/geothermal, /obj/structure/lattice{ layer = 2.9 }, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/plating{ dir = 4; icon_state = "warnplate" @@ -21722,7 +22332,7 @@ /area/lv624/lazarus/quartstorage) "tgi" = ( /obj/effect/landmark/nightmare{ - insert_tag = "lz-containers" + insert_tag = "lz-containers_swapped" }, /turf/open/floor{ icon_state = "warning" @@ -21739,11 +22349,11 @@ /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 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) @@ -21912,11 +22522,11 @@ /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 + light_system = 1; + pixel_x = -5; + pixel_y = -5 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_east_caves) @@ -21976,6 +22586,16 @@ /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/south_central_jungle) +"tzP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "tBB" = ( /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, @@ -22102,6 +22722,10 @@ icon_state = "whiteyellowfull" }, /area/lv624/ground/barrens/south_eastern_barrens) +"tMP" = ( +/obj/structure/window_frame/colony, +/turf/open/floor/plating, +/area/lv624/lazarus/comms) "tMQ" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 9 @@ -22126,11 +22750,11 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -22222,6 +22846,16 @@ "tZD" = ( /turf/closed/wall/r_wall, /area/lv624/lazarus/landing_zones/lz2) +"uaz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/office/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "uaL" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/auto_turf/strata_grass/layer1, @@ -22350,6 +22984,16 @@ icon_state = "desert1" }, /area/lv624/ground/barrens/south_eastern_barrens) +"ukS" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/item/device/flashlight{ + pixel_y = 5 + }, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "ukY" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -22381,7 +23025,8 @@ phone_id = "Secure Storage"; pixel_y = 24 }, -/turf/open/floor/greengrid, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, /area/lv624/lazarus/secure_storage) "umb" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_membrane, @@ -22403,6 +23048,13 @@ /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) +"upp" = ( +/obj/structure/platform_decoration, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "upM" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -22415,8 +23067,8 @@ /area/lv624/ground/caves/east_caves) "upV" = ( /obj/item/stack/cable_coil/random{ - pixel_y = 9; - pixel_x = 7 + pixel_x = 7; + pixel_y = 9 }, /turf/open/gm/dirt, /area/lv624/ground/jungle/east_jungle) @@ -22471,11 +23123,11 @@ /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 + light_system = 1; + pixel_x = 11; + pixel_y = -2 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_central_caves) @@ -22719,6 +23371,12 @@ "uWJ" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/caves/south_west_caves) +"uXT" = ( +/obj/item/device/assembly/timer, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "uXV" = ( /obj/structure/flora/bush/ausbushes/lavendergrass, /turf/open/gm/dirt, @@ -22789,6 +23447,15 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/lazarus/landing_zones/lz2) +"vdl" = ( +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "vdt" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -22897,11 +23564,11 @@ 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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/gm/dirt, /area/lv624/ground/caves/south_east_caves) @@ -23119,6 +23786,12 @@ /obj/item/bananapeel, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) +"vJM" = ( +/obj/item/shard, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/comms) "vKc" = ( /obj/effect/landmark/crap_item, /turf/open/gm/grass/grass1, @@ -23130,6 +23803,16 @@ "vLO" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/lazarus/quartstorage/outdoors) +"vMC" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "vMV" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/structure/blocker/forcefield/multitile_vehicles, @@ -23183,10 +23866,25 @@ /obj/structure/flora/bush/ausbushes/var3/sunnybush, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_east_caves) +"vRe" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/obj/item/tool/wrench, +/obj/item/tool/weldingtool, +/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "vSG" = ( /obj/structure/flora/jungle/vines/light_1, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_east_jungle) +"vTT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "vUj" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirtgrassborder/south, @@ -23242,6 +23940,12 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/north_west_jungle) +"vYL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/engineering) "vZT" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/gm/dirt, @@ -23302,10 +24006,20 @@ }, /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/caves/sand_temple) +"weB" = ( +/obj/item/stack/rods/plasteel, +/turf/open/floor/greengrid, +/area/lv624/lazarus/secure_storage) "weH" = ( /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/north_jungle) +"weR" = ( +/obj/item/stack/rods, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/secure_storage) "wgk" = ( /obj/structure/flora/bush/ausbushes/ppflowers, /obj/structure/platform_decoration/mineral/sandstone/runed{ @@ -23315,11 +24029,11 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_west_caves) @@ -23398,6 +24112,10 @@ }, /turf/open/floor/sandstone/runed, /area/lv624/ground/caves/sand_temple) +"wol" = ( +/obj/item/ammo_magazine/rifle/extended, +/turf/open/floor/plating, +/area/lv624/lazarus/secure_storage) "woF" = ( /obj/structure/flora/jungle/vines/light_3, /obj/structure/barricade/metal/wired{ @@ -23563,11 +24281,11 @@ /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 + light_system = 1; + pixel_x = -1; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) @@ -23615,11 +24333,11 @@ /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 + light_system = 1; + pixel_x = 2; + pixel_y = 7 }, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/north_east_caves) @@ -23886,6 +24604,14 @@ /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/south_west_jungle) +"xfa" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "xfP" = ( /obj/item/stack/rods, /obj/item/shard, @@ -23970,6 +24696,17 @@ /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/dirt, /area/lv624/ground/river/west_river) +"xvj" = ( +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) +"xvz" = ( +/obj/structure/platform_decoration, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 9; + icon_state = "brown" + }, +/area/lv624/lazarus/comms) "xvN" = ( /obj/structure/barricade/handrail/strata{ dir = 1 @@ -24144,6 +24881,10 @@ /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/dirtgrassborder/east, /area/lv624/ground/jungle/south_central_jungle) +"xOL" = ( +/obj/item/stack/rods, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) "xPk" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/north_west, /area/lv624/ground/colony/south_medbay_road) @@ -24172,6 +24913,10 @@ }, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/east_jungle) +"xRc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/dirt, +/area/lv624/lazarus/secure_storage) "xRe" = ( /obj/effect/decal/grass_overlay/grass1/inner{ dir = 10 @@ -24274,6 +25019,16 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/central_caves) +"ydX" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/glass/colony{ + name = "\improper Communications Dome"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/lv624/lazarus/engineering) "yfe" = ( /obj/effect/decal/grass_overlay/grass1{ dir = 8 @@ -31164,7 +31919,7 @@ uiW sqs oTJ qKC -kWX +pKm hdh oKP aAp @@ -32125,7 +32880,7 @@ aWT aUQ aZL aUQ -aUQ +mdw aTf aTf aTf @@ -32347,7 +33102,7 @@ aTf aUj aUQ aUQ -ygp +aZL aUQ gte aUQ @@ -32804,11 +33559,11 @@ aUj aUQ aUQ aVZ -aUQ -aWV +qEz +ygp aUQ aXE -aUQ +vTT aUQ aYu aTf @@ -33030,13 +33785,13 @@ aTf aTf aTf ulp -aUQ +aZL aWa -aUQ +xRc aWW aUQ aXF -aUQ +weB aUQ aTf aTf @@ -33258,13 +34013,13 @@ vxU aTf aTf aUS -aUQ +xLT iml -aUQ -aWW -aUQ +vTT +fMv +plC aXG -aUQ +aZL aYf aTf aTf @@ -33486,13 +34241,13 @@ aXh aTf aTf aTf +aWV aUQ +plC +vTT +weR aUQ -aUQ -aUQ -sWk -aUQ -aUQ +cfA aTf aTf aTf @@ -33718,9 +34473,9 @@ aTf aTf mkn xLT -mkn -xLT -sWk +xvj +cfA +kSN aTf aTf aXh @@ -33944,12 +34699,12 @@ efp aTf aTf aWc -mkn -mkn +phk +wol sWk -mkn -mkn -xLT +mqf +gSb +hTp kBq aXh aXh @@ -34171,13 +34926,13 @@ bSm efp efp aTf -aTf -xLT -aWv +chy +rDK aWv +kVS xLT -xTT -xTT +sCx +haE vUj qGH aLj @@ -34400,12 +35155,12 @@ buw efp efp uSq +eUI qIO qIO -qIO -qIO +jaw uXV -qtj +hen dMc knp iIU @@ -34624,7 +35379,7 @@ aXh wTC kjp kjp -ply +hSp efp efp uSq @@ -34632,7 +35387,7 @@ njC qIO qIO qIO -qtj +ose qtj ksM rox @@ -34856,7 +35611,7 @@ efp efp gDu uSq -hDX +rwK qIO qIO aXH @@ -35084,9 +35839,9 @@ efp efp efp uSq +xOL qIO -qIO -qIO +jaw ntL kxI kxI @@ -35989,7 +36744,7 @@ rAo fkJ fau xgE -efp +aWZ efp efp efp @@ -36218,7 +36973,7 @@ xgE sFY xgE xgE -eyb +bgL bgL bgL bgL @@ -37585,7 +38340,7 @@ xgE sxY sxY xgE -cPV +aRf cPV uSq qIO @@ -38959,8 +39714,8 @@ uSq qIO qIO qIO -qIO -qIO +ctS +ctS ntL kxI kxI @@ -39187,9 +39942,9 @@ uSq njC qIO qIO -qIO -qIO -ntL +ctS +sfg +vVe kxI jxG qZv @@ -39415,9 +40170,9 @@ uSq qIO qIO qIO -qIO -qIO -ntL +ctS +hLu +kxI kxI oAJ qZv @@ -39644,8 +40399,8 @@ aPT aUk aPT aPt -qIO -ntL +hLu +kxI kxI gzd eqs @@ -39868,9 +40623,9 @@ aPT aPT aPT aPt -aTG -aQn +vMC aQn +qNl aPt aPT aPT @@ -40092,17 +40847,17 @@ bwR cPV bCH aPT +aWy +aXd aQn -aON -aQn -aQn -aQn -aQn +aTi +aTi aQn aQn +aTi aQn isR -aSg +vRe aPT ooM nuU @@ -40325,12 +41080,12 @@ aQn aQn aQn aTH -aUl aQn aQn aQn aQn -aWX +aQn +uaz aPT kxI kxI @@ -40546,19 +41301,19 @@ byY fTf nhi cPV -cPV +aRf aPT -aRe -aSd -aSI -aTg +aWA aQn +aON +aTg +iYL aQn aQn aTg -aWd -aSd -aWY +hJh +aQn +aTi aPT kxI kxI @@ -40773,10 +41528,10 @@ ylL byY mun oGs -lud +oGs aPt aPt -aRf +euU aQn aTg aTg @@ -40785,8 +41540,8 @@ aQn aVb aTg aTg +aTG aQn -aWZ aPt aPt kxI @@ -41003,19 +41758,19 @@ byY byY byY aPN +cNE +aTi aQn aQn aQn -aSJ -aTh -aQn -aQn aQn -aTh aQn aQn +cQU +aTi aQn aQn +xfa aPT kxI lAX @@ -41233,9 +41988,9 @@ byY aPO aQn aQn +rkZ aQn -aQn -aQn +aTi vEj aTg rVH @@ -41458,20 +42213,20 @@ byY byY byY byY -aPN -aQn -aQn +aSK +aSI +aYh aQn aQn aTi -aQn -aQn -aQn aTi -aQn -aQn -aQn -aQn +qit +upp +jfN +jfN +gKN +xvz +elO aPT kxI lIU @@ -41688,16 +42443,16 @@ byY taK aPt aPt -aTI +aQn aQn aTg aTg -aTI -aQn -aVb +kKL +aXn +qap aTg aTg -aTG +cyP aXa aPt aPt @@ -41913,20 +42668,20 @@ uiN byY byY byY -fTf +aUl aPT aRi +aTi aQn aQn -aSK aTg aTJ -aQn -aQn +aZG +qNz aTg aWe -aWx -aZc +kvv +kvv aPT kxI kxI @@ -42141,19 +42896,19 @@ uiN byY byY byY -fTf +aUl aPT aSe +aWE +aXn aQn aQn -aQn -aQn -aQn +oiR aZK -aQn -aQn -aQn -aQn +qNz +kvv +kvv +kvv aZh aPT kxI @@ -42369,20 +43124,20 @@ uiN byY byY byY -fTf +aUl aPT -aQn +aSJ aTk +aXe aQn aQn -aTj -aQn -aQn -aQn -aTH -aQn aQn aQn +qNz +qez +kvv +fij +oIO aPT sBJ kxI @@ -42592,25 +43347,25 @@ aLv aJr iSg aJr -aJr +aCV aIO aMN aNA aMN aIO aPt -aTI -aQn -aQn +aWd +aSJ +aZG aQn -aPt aQn aQn aQn +qNz +kvv +dHr +bUc aPt -aPT -aPT -aPN aPt tzK kxI @@ -42826,20 +43581,20 @@ aMO aKB aMP aIO -aSg +aSd +aTj +aWX +eyb aQn aQn aQn aQn -aPt -aPT -aUk -aPT -aPt -aTK -aTK -aXd -aXn +nrK +kvv +kvv +qXt +tMP +kxI kxI tsa kxI @@ -43054,20 +43809,20 @@ aMP aNB aNJ aIO +aUt aIL -aIL -aIO +aWY aRe -aQn -aPT -aTK -aTK -aTK -aTK -aTK -aWy -aXe -aXn +tzP +bJe +ukS +aTi +hOo +vJM +kvv +pzP +lQP +kxI kxI kxI kxI @@ -43287,15 +44042,15 @@ aQo aJz aIO aSg -aPT -aTK +aPt aTK +oRY aSL +aWf aVB aWf -fFN aSL -aXn +sBJ kxI kxI lUc @@ -43514,14 +44269,14 @@ aEt aQp aRo aIO -aSg +kWX aSL aSL aSL aSL rmg aTq -aWA +aTq aSL aSL aVB @@ -43747,9 +44502,9 @@ aSL aVg tem aVd -aTM +kzp +aTq aTq -aZG aSX aZI aXJ @@ -43971,17 +44726,17 @@ aQr aQo aSi aSL -aTo +lHc ogR aUs nwR aTM -aTM -aTM +aTq +kzp aXf aTM aTM -aXW +mBH aVB kxI kxI @@ -44199,12 +44954,12 @@ aQs aQo aSi mkU -qGR +lud aWD aUq aTN aTM -aTM +fMa aUo aSX aZJ @@ -44427,13 +45182,13 @@ aQt aQo aSj qGR -mkU +jdL aWD aUq aTN udM aTM -aWE +aUx aSX aSX aSX @@ -44666,7 +45421,7 @@ aSX aZd aZx aXZ -aYh +vYL aVB kxI kxI @@ -44887,14 +45642,14 @@ aSL aVf jMk aWg -aTM -aTM +lzW +kyz aWF aSX -aXs +svv aTM aZM -aTM +vYL aXg kyN kxI @@ -45116,9 +45871,9 @@ aSX aSX aSX aXs +drX aTM -aTM -aXg +ydX aTM aVC aTM @@ -45341,12 +46096,12 @@ aJz aSL aTs aTP -aUt +bLH aSX aVF -aTM -aTM -aXg +iiO +uXT +oas aTM aTM aZf @@ -45572,12 +46327,12 @@ aTR aUu aSX aVG -aTM +vdl aWG aSX aXt aWi -aYc +bQf aVB dEp kxI @@ -45796,11 +46551,11 @@ xuk oUy aSL aTu -aZM -aTM +fLf +fQx aVj -aTM -aWi +mkZ +hDe aWH aSX aXu @@ -46025,7 +46780,7 @@ mNO fFN aTM aTM -aUx +fAs aSX aVH aTq @@ -46483,7 +47238,7 @@ aSm aSm oUy aSL -hHc +aVB aWf aVB aSL @@ -47594,7 +48349,7 @@ oUy aMD bbJ bbO -aCV +oUy aDS aDS aFh diff --git a/maps/map_files/LV624/hydro/30.destroyed.dmm b/maps/map_files/LV624/hydro/30.destroyed.dmm index 09eb12287a58..c3b3ddce6c63 100644 --- a/maps/map_files/LV624/hydro/30.destroyed.dmm +++ b/maps/map_files/LV624/hydro/30.destroyed.dmm @@ -174,7 +174,8 @@ desc = "This appears to be the head of a synthetic, though it it is so destroyed there is no way in hell anyone is going to bring it back to even basic functionality."; name = "shattered synthetic head"; pixel_x = 9; - pixel_y = 3 + pixel_y = 3; + icon_state = "scandinavian_head_m" }, /obj/item/robot_parts/arm/l_arm, /turf/open/floor{ diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm index 10a6618c681d..c24a511cfc29 100644 --- a/maps/map_files/LV624/standalone/clfship.dmm +++ b/maps/map_files/LV624/standalone/clfship.dmm @@ -183,7 +183,7 @@ /area/lv624/lazarus/crashed_ship) "fX" = ( /obj/item/stool, -/obj/effect/landmark/survivor_spawner/lv624_crashed_clf, +/obj/effect/landmark/survivor_spawner/lv624_crashed_clf_leader, /turf/open/floor{ icon_state = "platingdmg1" }, diff --git a/maps/map_files/LV624/standalone/corporatedome.dmm b/maps/map_files/LV624/standalone/corporatedome.dmm new file mode 100644 index 000000000000..0778d0c61564 --- /dev/null +++ b/maps/map_files/LV624/standalone/corporatedome.dmm @@ -0,0 +1,1787 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aQ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Corporation Dome"; + req_access_txt = "100" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"bm" = ( +/obj/structure/surface/rack, +/obj/item/spacecash/c1000/counterfeit, +/obj/item/spacecash/c1000/counterfeit, +/obj/item/spacecash/c1000/counterfeit, +/turf/open/floor{ + dir = 8; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"bA" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"bD" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"bE" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/shard, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"cm" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/barricade/sandbags{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"cn" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"cA" = ( +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"cB" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"cR" = ( +/obj/structure/flora/jungle/vines/light_2, +/obj/structure/flora/jungle/vines/heavy, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"da" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 20 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/lv624/lazarus/landing_zones/lz2) +"dq" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/folder/white{ + pixel_y = 8 + }, +/obj/item/folder/yellow{ + pixel_y = 4 + }, +/obj/item/folder/red, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"dH" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"dI" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "gib6" + }, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"dO" = ( +/obj/item/weapon/pole/fancy_cane, +/obj/item/shard, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"dY" = ( +/turf/open/floor/plating{ + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"ev" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"eF" = ( +/obj/structure/barricade/deployable{ + damage_state = 1; + health = 245; + icon_state = "folding_1" + }, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"fm" = ( +/obj/effect/vehicle_spawner/van/decrepit, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"fq" = ( +/obj/effect/acid_hole, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"ft" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"fF" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_9_1" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"fH" = ( +/turf/open/floor{ + dir = 4; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"gx" = ( +/obj/structure/window/framed/colony/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"gz" = ( +/obj/item/shard, +/turf/open/gm/grass/grass1, +/area/lv624/ground/jungle/west_central_jungle) +"gX" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + name = "\improper Garage"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"ha" = ( +/turf/open/floor{ + dir = 10; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"hc" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/machinery/light{ + dir = 4 + }, +/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/item/clothing/under/marine/veteran/pmc/corporate{ + pixel_y = -2 + }, +/turf/open/floor{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"he" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"hf" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"is" = ( +/obj/item/stack/sheet/wood, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"iF" = ( +/obj/structure/closet/crate/secure/weyland, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burger, +/obj/item/reagent_container/food/snacks/packaged_burger, +/turf/open/floor{ + dir = 8; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"iT" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 10; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"jH" = ( +/obj/structure/bookcase/manuals/medical, +/obj/item/book/manual/security_space_law, +/obj/item/book/manual/medical_diagnostics_manual, +/obj/item/book/manual/research_and_development, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"jJ" = ( +/obj/item/shard, +/turf/open/floor{ + dir = 8; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"kl" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"kU" = ( +/obj/structure/machinery/door_control{ + id = "garage_lv"; + name = "Garage Shutters"; + pixel_y = -28 + }, +/obj/effect/landmark/corpsespawner/colonist, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating{ + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"ln" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"lG" = ( +/obj/item/storage/firstaid/adv/empty, +/obj/structure/transmitter/colony_net{ + phone_category = "Lazarus Landing"; + phone_color = "blue"; + phone_id = "Corporate Office"; + pixel_y = 24 + }, +/turf/open/floor{ + dir = 5; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"lX" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"mg" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"mi" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"mp" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/item/stack/rods, +/obj/structure/machinery/vending/coffee, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"ms" = ( +/turf/open/floor{ + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"mw" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon, +/obj/item/ammo_casing/bullet, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"mK" = ( +/obj/effect/spawner/gibspawner/human, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"ny" = ( +/obj/effect/landmark/corpsespawner/prisoner, +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"oj" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Corporation Office"; + req_access_txt = "100" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"oq" = ( +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"pg" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/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/item/clothing/under/liaison_suit/blazer, +/obj/item/clothing/head/manager{ + pixel_y = 13 + }, +/turf/open/floor{ + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"pR" = ( +/obj/structure/filingcabinet, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 6; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"qn" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/bodybag, +/obj/effect/landmark/corpsespawner/clf, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"qH" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + dir = 1; + name = "\improper Workshop Storage"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"qI" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/paper_bin/wy{ + pixel_y = 8 + }, +/obj/item/tool/pen/clicky, +/obj/item/device/flashlight/lamp{ + pixel_x = -7; + pixel_y = 15 + }, +/turf/open/floor{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"qJ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Storage Room" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"qM" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/machinery/door_control{ + id = "garage_lv"; + name = "Garage Shutters"; + pixel_x = -28 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"sc" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/bed/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl, +/turf/open/floor{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"sm" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"sH" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/stack/rods, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"sX" = ( +/obj/structure/window/framed/colony/reinforced, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/lv624/lazarus/corporate_dome) +"vf" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Corporate Liaison"; + locked = 1 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"vC" = ( +/obj/structure/prop/server_equipment/yutani_server/off, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"vW" = ( +/obj/structure/barricade/wooden, +/turf/open/floor{ + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"wy" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/colony{ + name = "\improper Workshop Storage"; + req_access_txt = "100"; + req_one_access = null + }, +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/lv624/lazarus/corporate_dome) +"wW" = ( +/obj/structure/closet/bodybag, +/obj/effect/landmark/corpsespawner/security/marshal, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"xk" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/science, +/turf/open/floor{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"xG" = ( +/obj/structure/machinery/photocopier, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"yc" = ( +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"yJ" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/lv624/lazarus/corporate_dome) +"zm" = ( +/obj/structure/safe{ + spawnkey = 0 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 5; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"zs" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"zw" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/folder/black{ + name = "Weyland-Yutani Classified folder"; + desc = "A black folder which has the Weyland-Yutani symbol inside it, along with CLASSIFIED in giant red letters." + }, +/obj/effect/landmark/objective_landmark/close, +/obj/item/reagent_container/food/drinks/coffeecup/wy{ + pixel_x = -9; + pixel_y = 7 + }, +/turf/open/floor{ + dir = 6; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"zx" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"zz" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/tool/pen/red/clicky, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"Aj" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/prop/invuln/pipe_water{ + dir = 8; + pixel_y = -12; + pixel_x = 6 + }, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"AG" = ( +/obj/structure/barricade/wooden, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"AT" = ( +/obj/item/shard, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Bh" = ( +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"BL" = ( +/obj/structure/machinery/door/poddoor/almayer{ + dir = 8; + id = "garage_lv"; + name = "\improper Garage" + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"BZ" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_6_1" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Ct" = ( +/obj/structure/window_frame/colony/reinforced, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"CF" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + locked = 1; + name = "\improper Corporate Liaison" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Df" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + dir = 8; + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"Dn" = ( +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/item/ammo_magazine/smg/mp5, +/obj/structure/closet/crate/secure/weyland, +/obj/item/weapon/gun/smg/mp5, +/obj/item/weapon/gun/smg/mp5, +/turf/open/floor{ + dir = 4; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"Dp" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/bed/roller, +/obj/effect/landmark/corpsespawner/wysec, +/obj/item/prop/colony/usedbandage{ + dir = 9; + pixel_x = 5; + pixel_y = 15 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"DU" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 6 + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor{ + dir = 6; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Ez" = ( +/obj/structure/machinery/light_construct{ + dir = 4 + }, +/obj/item/stack/cable_coil, +/turf/open/floor{ + dir = 6; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"EM" = ( +/obj/structure/flora/jungle/vines/light_3, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Fh" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/emeraldgreen, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor{ + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"Fk" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/lv624/lazarus/landing_zones/lz2) +"Fl" = ( +/turf/open/floor{ + dir = 1; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"Fu" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/firstaid/adv, +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"FP" = ( +/obj/item/shard, +/obj/item/stack/sheet/wood, +/turf/open/floor{ + dir = 6; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"FZ" = ( +/obj/structure/machinery/faxmachine/corporate/liaison, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Gi" = ( +/obj/structure/prop/server_equipment/yutani_server/broken, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"Go" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_10_1" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Gt" = ( +/obj/structure/machinery/light_construct/small{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/lv624/lazarus/corporate_dome) +"GM" = ( +/turf/open/floor{ + dir = 1; + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"GV" = ( +/turf/open/floor{ + dir = 8; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Hn" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_9_1" + }, +/obj/effect/decal/cleanable/blood/gibs/xeno, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Ho" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor{ + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"Hv" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigar, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 9; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"HK" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/obj/effect/spawner/random/powercell, +/obj/item/tool/crowbar/red{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/tool/screwdriver, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Ii" = ( +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"IM" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/blood/oil, +/obj/item/stack/rods{ + amount = 15 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Jg" = ( +/obj/structure/machinery/light, +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"Jq" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + locked = 1; + name = "\improper Corporation Dome"; + req_access_txt = "100" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"JL" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/prop/colony/usedbandage{ + dir = 10 + }, +/turf/open/floor{ + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"Kv" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/gm/dirt, +/area/lv624/ground/colony/west_tcomms_road) +"KC" = ( +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"KG" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Le" = ( +/obj/effect/acid_hole{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Lh" = ( +/obj/item/stack/cable_coil, +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/item/shard, +/obj/structure/machinery/vending/cola, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Li" = ( +/obj/structure/window_frame/colony/reinforced, +/obj/item/shard, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"Ln" = ( +/obj/structure/barricade/plasteel/metal{ + health = 250 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"LZ" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/corporate_dome) +"Me" = ( +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/lv624/lazarus/landing_zones/lz2) +"Ml" = ( +/obj/structure/machinery/atm{ + name = "Weyland-Yutani Automatic Teller Machine"; + pixel_y = 30 + }, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"OH" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/limited{ + pixel_x = 29 + }, +/obj/structure/closet/crate/secure/weyland, +/obj/item/stack/sheet/metal/med_small_stack, +/obj/item/stack/sheet/plasteel/med_small_stack, +/obj/item/stack/sandbags/small_stack, +/obj/item/device/motiondetector/hacked/pmc, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"Pa" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"Pr" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_9_1" + }, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"Qi" = ( +/obj/structure/flora/jungle/vines/light_1, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Rn" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/machinery/light{ + dir = 8 + }, +/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/item/clothing/head/helmet/marine/veteran/pmc{ + pixel_y = 11; + pixel_x = -1 + }, +/obj/item/clothing/under/marine/veteran/pmc{ + pixel_y = -2 + }, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"RD" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "casing_1_1" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"RF" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/surface/table/reinforced/prison, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"RN" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/reinforced/prison, +/obj/structure/prop/server_equipment/laptop/on, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Sb" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_goon, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"SO" = ( +/obj/structure/flora/jungle/vines/heavy, +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"SV" = ( +/turf/open/floor/greengrid, +/area/lv624/lazarus/corporate_dome) +"Tc" = ( +/obj/item/paper_bin/wy{ + pixel_y = 8 + }, +/obj/item/frame/table/wood/fancy, +/turf/open/floor{ + dir = 5; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) +"TF" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/supply/medicine, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Uo" = ( +/obj/item/shard, +/turf/open/floor/plating{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/lv624/lazarus/corporate_dome) +"Uz" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"UF" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 6; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Vj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/ashtray/glass, +/obj/item/trash/cigbutt/cigarbutt{ + pixel_y = 12 + }, +/obj/item/trash/cigbutt, +/turf/open/floor{ + dir = 4; + icon_state = "whitebluecorner" + }, +/area/lv624/lazarus/corporate_dome) +"Wx" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor{ + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"Xc" = ( +/obj/structure/barricade/metal{ + dir = 4; + health = 200 + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"Xf" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/lv624/lazarus/corporate_dome) +"Xp" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/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/item/clothing/under/colonist{ + pixel_y = -2 + }, +/turf/open/floor{ + dir = 10; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Xt" = ( +/turf/template_noop, +/area/template_noop) +"Xz" = ( +/obj/item/ammo_casing/bullet{ + icon_state = "cartridge_3_1" + }, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"XC" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor{ + dir = 8; + icon_state = "whiteyellowcorner" + }, +/area/lv624/lazarus/corporate_dome) +"XG" = ( +/turf/closed/wall/r_wall, +/area/lv624/lazarus/corporate_dome) +"Ye" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor{ + dir = 5; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Yg" = ( +/obj/item/moneybag, +/obj/structure/surface/rack, +/obj/item/coin/diamond, +/turf/open/floor{ + dir = 9; + icon_state = "whiteblue" + }, +/area/lv624/lazarus/corporate_dome) +"Yv" = ( +/obj/item/frame/table/reinforced, +/turf/open/floor/plating, +/area/lv624/lazarus/corporate_dome) +"YN" = ( +/turf/open/gm/dirt, +/area/lv624/lazarus/landing_zones/lz2) +"ZG" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/landmark/corpsespawner/scientist, +/obj/item/handcuffs, +/turf/open/floor{ + icon_state = "dark" + }, +/area/lv624/lazarus/corporate_dome) +"ZO" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/stack/sheet/wood, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) +"ZT" = ( +/obj/effect/landmark/survivor_spawner/lv624_corporate_dome_cl, +/turf/open/floor{ + icon_state = "white" + }, +/area/lv624/lazarus/corporate_dome) + +(1,1,1) = {" +Xt +Xt +Xt +Fk +Me +dY +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(2,1,1) = {" +Xt +Xt +Xt +yc +da +dY +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(3,1,1) = {" +Xt +Xt +Xt +yc +Me +kU +XG +XG +XG +XG +XG +XG +XG +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(4,1,1) = {" +Xt +Xt +XG +BL +BL +BL +XG +he +Bh +fm +he +XG +XG +XG +LZ +yJ +Xt +Xt +Xt +Xt +"} +(5,1,1) = {" +Xt +Xt +XG +Bh +Bh +Bh +qM +Uz +ft +Bh +Bh +XG +Pa +Gt +LZ +LZ +Xt +Xt +Xt +Xt +"} +(6,1,1) = {" +Xt +Xt +XG +ny +Bh +mw +Bh +Bh +Bh +Bh +Bh +qH +Uo +yJ +LZ +mi +Xt +Xt +Xt +Xt +"} +(7,1,1) = {" +Xt +Xt +XG +ZG +cB +mw +wW +qn +OH +Bh +Bh +XG +Yv +Aj +mi +XG +Xt +Xt +Xt +Xt +"} +(8,1,1) = {" +Xt +XG +XG +XG +XG +XG +XG +XG +XG +gX +XG +XG +XG +XG +wy +XG +XG +Xt +Xt +Xt +"} +(9,1,1) = {" +YN +XG +ln +GV +GV +TF +XG +Rn +Fl +cA +iF +Xp +XG +Ml +GV +eF +fq +Ii +Ii +Ii +"} +(10,1,1) = {" +YN +Lh +hf +ev +cA +cA +Jq +cA +cA +Go +cA +cA +aQ +cA +Hn +Ln +aQ +Kv +Ii +Ii +"} +(11,1,1) = {" +YN +mp +sm +RF +fF +KG +cA +cA +cA +Sb +cA +cA +cA +RD +Sb +AG +cA +Ii +dI +mK +"} +(12,1,1) = {" +YN +XG +xk +fH +fH +UF +XG +hc +Dn +cA +cA +pg +XG +Ye +kl +DU +XG +Ii +Ii +bD +"} +(13,1,1) = {" +Xt +XG +XG +XG +XG +XG +XG +XG +XG +cA +oj +XG +XG +XG +XG +XG +XG +Xt +Xt +Xt +"} +(14,1,1) = {" +Xt +Xt +Xt +XG +XG +Yg +bm +FZ +gx +cA +cA +cn +XG +Gi +vC +XG +Xt +Xt +Xt +Xt +"} +(15,1,1) = {" +Xt +Xt +XG +XG +HK +Fl +ZT +ms +IM +cA +BZ +cA +qJ +SV +Jg +XG +Xt +Xt +Xt +Xt +"} +(16,1,1) = {" +Xt +Xt +XG +RN +sc +bA +cA +ms +gx +cm +Sb +UF +XG +Fu +dH +EM +Xt +Xt +Xt +Xt +"} +(17,1,1) = {" +Xt +Xt +XG +qI +Vj +xG +Fh +zw +XG +cA +oj +XG +XG +XG +XG +Qi +Xt +Xt +Xt +Xt +"} +(18,1,1) = {" +Xt +Xt +XG +XG +XG +CF +XG +XG +XG +KG +bA +XC +jJ +iT +Xf +Xt +Xt +Xt +Xt +Xt +"} +(19,1,1) = {" +Xt +Xt +XG +Hv +GM +bA +Df +ha +zz +AT +mg +cA +bA +vW +zs +Xt +Xt +Xt +Xt +Xt +"} +(20,1,1) = {" +Xt +Xt +XG +zm +KC +zx +Dp +JL +oq +cA +Xz +cA +Ho +FP +sH +Xt +Xt +Xt +Xt +Xt +"} +(21,1,1) = {" +Xt +Xt +XG +XG +lG +Pr +cA +ZO +vf +bE +Xc +Wx +Ez +SO +cR +Xt +Xt +Xt +Xt +Xt +"} +(22,1,1) = {" +Xt +Xt +Xt +XG +XG +Tc +dq +dO +Xf +jH +is +pR +SO +SO +Xt +Xt +Xt +Xt +Xt +Xt +"} +(23,1,1) = {" +Xt +Xt +Xt +Xt +XG +Li +sX +Ct +Le +sX +lX +sX +SO +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(24,1,1) = {" +Xt +Xt +Xt +Xt +Xt +Xt +gz +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} +(25,1,1) = {" +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +Xt +"} diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm index ca983240307f..fbcba0174790 100644 --- a/maps/map_files/New_Varadero/New_Varadero.dmm +++ b/maps/map_files/New_Varadero/New_Varadero.dmm @@ -4392,13 +4392,6 @@ }, /turf/open/floor/plating, /area/varadero/interior/administration) -"cNC" = ( -/obj/item/fuelCell{ - pixel_x = 4; - pixel_y = 22 - }, -/turf/open/auto_turf/sand_white/layer1, -/area/varadero/interior_protected/maintenance/south) "cNF" = ( /obj/structure/machinery/light{ dir = 4 @@ -5636,6 +5629,16 @@ icon_state = "asteroidplating" }, /area/varadero/interior_protected/maintenance/south) +"dJI" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/plating/icefloor{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/maintenance/security) "dJX" = ( /obj/effect/decal/cleanable/blood/drip, /obj/effect/decal/cleanable/blood, @@ -6068,24 +6071,6 @@ icon_state = "yellow" }, /area/varadero/interior/cargo) -"dZZ" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/clothing/mask/cigarette/cigar/tarbacks{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/item/tool/lighter/zippo/black{ - pixel_x = -5; - pixel_y = 7 - }, -/obj/item/ashtray/plastic{ - pixel_x = 6; - pixel_y = -4 - }, -/turf/open/floor/shiva{ - icon_state = "blue" - }, -/area/varadero/interior/technical_storage) "eat" = ( /obj/structure/platform_decoration/kutjevo{ dir = 4 @@ -7100,6 +7085,15 @@ icon_state = "asteroidplating" }, /area/varadero/interior/maintenance/security) +"eGd" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/icefloor{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/electrical) "eGq" = ( /obj/item/reagent_container/food/snacks/eat_bar, /obj/item/reagent_container/food/snacks/eat_bar{ @@ -14289,6 +14283,24 @@ icon_state = "asteroidplating" }, /area/varadero/exterior/lz1_near) +"jkq" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/clothing/mask/cigarette/cigar/tarbacks{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/tool/lighter/zippo/black{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/ashtray/plastic{ + pixel_x = 6; + pixel_y = -4 + }, +/turf/open/floor/shiva{ + icon_state = "blue" + }, +/area/varadero/interior/technical_storage) "jks" = ( /turf/open/floor/plating/icefloor{ icon_state = "asteroidplating" @@ -28758,6 +28770,13 @@ default_name = "shallow ocean" }, /area/varadero/exterior/eastocean) +"spN" = ( +/obj/item/fuel_cell{ + pixel_x = 4; + pixel_y = 22 + }, +/turf/open/auto_turf/sand_white/layer1, +/area/varadero/interior_protected/maintenance/south) "spP" = ( /obj/structure/bed/chair, /obj/structure/pipes/standard/simple/hidden/green, @@ -28985,6 +29004,13 @@ icon_state = "asteroidplating" }, /area/varadero/interior_protected/maintenance/south) +"swM" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light/small, +/turf/open/floor/plating/icefloor{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/electrical) "swV" = ( /obj/structure/closet/crate/construction, /turf/open/auto_turf/sand_white/layer1, @@ -29519,15 +29545,6 @@ }, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior/maintenance) -"sLi" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, -/area/varadero/interior/electrical) "sLO" = ( /obj/item/device/flashlight/slime{ mouse_opacity = 0; @@ -30123,6 +30140,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/shiva, /area/varadero/interior/technical_storage) +"thp" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/plating/icefloor{ + icon_state = "asteroidplating" + }, +/area/varadero/interior/electrical) "thS" = ( /obj/structure/window/framed/colony, /turf/open/floor/plating, @@ -31416,12 +31439,6 @@ /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/auto_turf/sand_white/layer1, /area/varadero/interior_protected/maintenance/south) -"ubK" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, -/area/varadero/interior/electrical) "ubT" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -32750,6 +32767,7 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/plating/icefloor{ icon_state = "asteroidplating" }, @@ -36394,13 +36412,6 @@ icon_state = "floor3" }, /area/varadero/interior/cargo) -"xjp" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light/small, -/turf/open/floor/plating/icefloor{ - icon_state = "asteroidplating" - }, -/area/varadero/interior/electrical) "xka" = ( /obj/structure/window/framed/colony/reinforced{ color = "#aba9a9" @@ -48027,7 +48038,7 @@ ibP haT teu haT -dZZ +jkq ykw cIB waB @@ -54234,7 +54245,7 @@ bkM pKs pKs bkM -cNC +spN etv cto xxk @@ -60381,9 +60392,9 @@ mSf kCA rsB wOO -ubK -ubK -sLi +thp +thp +eGd pkT pAZ wOO @@ -60749,7 +60760,7 @@ lur lur lur fEu -ubK +thp oSX viK xJZ @@ -60931,7 +60942,7 @@ aDZ aDZ rTv fEu -ubK +thp oSX mZk xJZ @@ -61113,7 +61124,7 @@ rKl lur cbg fEu -xjp +swM wOO viK xJZ @@ -61661,7 +61672,7 @@ uZa mEB mEB oSX -xJZ +dJI xJZ xJZ viK diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm index 1f81d5d13e61..c781fdff23cc 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -264,10 +264,6 @@ /obj/effect/blocker/sorokyne_cold_water, /turf/open/gm/river, /area/strata/ag/exterior/paths/cabin_area) -"aaV" = ( -/obj/item/fuelCell, -/turf/open/auto_turf/ice/layer1, -/area/strata/ag/interior/outpost/gen/bball/nest) "aaW" = ( /obj/structure/machinery/light/small{ dir = 1; @@ -460,10 +456,6 @@ icon_state = "multi_tiles" }, /area/strata/ug/interior/jungle/deep/structures/res) -"abG" = ( -/obj/item/fuelCell, -/turf/open/auto_turf/snow/brown_base/layer1, -/area/strata/ag/interior/outpost/gen/bball/nest) "abH" = ( /obj/structure/surface/rack, /obj/item/storage/box/explosive_mines, @@ -668,18 +660,6 @@ }, /turf/open/asphalt/cement, /area/strata/ug/interior/jungle/platform/east/scrub) -"acf" = ( -/obj/structure/barricade/handrail/strata{ - dir = 4 - }, -/obj/structure/platform_decoration/strata/metal{ - dir = 4 - }, -/obj/item/fuelCell, -/turf/open/floor/strata{ - icon_state = "red2" - }, -/area/strata/ag/interior/outpost/engi) "acg" = ( /obj/effect/blocker/sorokyne_cold_water, /obj/structure/platform/strata/metal{ @@ -856,15 +836,6 @@ icon_state = "floor2" }, /area/strata/ug/interior/jungle/deep/structures/res) -"acC" = ( -/obj/structure/barricade/handrail/strata{ - dir = 4 - }, -/obj/item/fuelCell, -/turf/open/floor/strata{ - icon_state = "red2" - }, -/area/strata/ag/interior/outpost/engi) "acE" = ( /obj/structure/window/framed/strata, /turf/open/floor/strata{ @@ -1466,6 +1437,14 @@ icon_state = "red1" }, /area/strata/ug/interior/jungle/deep/structures/res) +"aem" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/barricade/handrail/strata, +/turf/open/floor/strata{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "aen" = ( /obj/effect/landmark/monkey_spawn, /turf/open/auto_turf/snow/brown_base/layer0, @@ -1898,26 +1877,6 @@ icon_state = "blue1" }, /area/strata/ug/interior/jungle/deep/structures/res) -"afB" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) -"afC" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/barricade/handrail/strata, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) "afD" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 @@ -3361,19 +3320,6 @@ icon_state = "purp2" }, /area/strata/ug/interior/jungle/deep/structures/engi) -"ajP" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/barricade/handrail/strata{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) "ajQ" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/strata{ @@ -5685,12 +5631,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/auto_turf/snow/brown_base/layer3, /area/strata/ag/exterior/paths/cabin_area) -"arg" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/strata/ag/interior/dorms) "arh" = ( /turf/open/floor/prison{ icon_state = "floor_plate" @@ -6114,15 +6054,6 @@ icon_state = "darkyellowfull2" }, /area/strata/ag/interior/outpost/engi) -"asr" = ( -/obj/item/fuelCell, -/obj/structure/barricade/handrail/strata{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, -/area/strata/ag/interior/outpost/engi) "ass" = ( /obj/structure/surface/rack, /obj/item/storage/box/donkpockets, @@ -6524,15 +6455,6 @@ icon_state = "fake_wood" }, /area/strata/ag/interior/dorms) -"ats" = ( -/obj/item/fuelCell, -/obj/structure/barricade/handrail/strata{ - dir = 1 - }, -/turf/open/floor/strata{ - icon_state = "floor3" - }, -/area/strata/ag/interior/dorms) "att" = ( /obj/structure/machinery/camera/autoname{ dir = 4 @@ -8291,6 +8213,12 @@ dir = 1; pixel_y = 20 }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/rack, /turf/open/floor/strata{ icon_state = "floor3" }, @@ -8328,18 +8256,6 @@ }, /turf/open/auto_turf/snow/brown_base/layer1, /area/strata/ag/exterior/paths/north_outpost) -"ayP" = ( -/obj/item/fuelCell, -/obj/structure/barricade/handrail/strata{ - dir = 4 - }, -/obj/structure/platform/strata/metal{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "red2" - }, -/area/strata/ag/interior/outpost/engi) "ayS" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony, /turf/open/floor/strata{ @@ -11120,10 +11036,6 @@ "aHv" = ( /turf/closed/wall/strata_outpost/reinforced, /area/strata/ag/interior/outpost/engi) -"aHw" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata, -/area/strata/ag/interior/outpost/engi) "aHy" = ( /obj/item/lightstick/red/planted, /obj/structure/platform/strata/metal{ @@ -15779,29 +15691,12 @@ icon_state = "cyan2" }, /area/strata/ag/interior/outpost/canteen/bar) -"aXj" = ( -/obj/structure/surface/rack, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, -/area/strata/ag/interior/outpost/maint/canteen_e_1) "aXk" = ( /obj/effect/decal/cleanable/blood{ layer = 3 }, /turf/open/floor/strata, /area/strata/ag/interior/outpost/maint/canteen_e_1) -"aXl" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/orbital_cannon_manual, -/obj/item/book/manual/research_and_development, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, -/area/strata/ag/interior/outpost/maint/canteen_e_1) "aXn" = ( /obj/structure/sink{ dir = 1; @@ -16968,13 +16863,6 @@ icon_state = "cyan2" }, /area/strata/ag/interior/outpost/canteen/bar) -"bbE" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/engineering_guide, -/turf/open/floor/strata{ - icon_state = "orange_cover" - }, -/area/strata/ag/interior/outpost/maint/canteen_e_1) "bbF" = ( /obj/structure/machinery/power/apc{ pixel_y = -24; @@ -18156,12 +18044,6 @@ /obj/structure/sign/safety/fire_haz, /turf/closed/wall/strata_outpost, /area/strata/ag/interior/outpost/admin) -"bfZ" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - icon_state = "floor3" - }, -/area/strata/ag/interior/outpost/admin) "bga" = ( /obj/structure/platform/strata/metal{ dir = 1 @@ -19265,11 +19147,6 @@ }, /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/vanyard) -"bjT" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/fuelCell, -/turf/open/auto_turf/ice/layer1, -/area/strata/ag/interior/outpost/gen/bball/nest) "bjU" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 8 @@ -28576,16 +28453,6 @@ icon_state = "red1" }, /area/strata/ag/interior/dorms/flight_control) -"coc" = ( -/obj/item/fuelCell, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/barricade/handrail/strata{ - dir = 8 - }, -/turf/open/floor/strata{ - icon_state = "multi_tiles" - }, -/area/strata/ag/interior/dorms/hive) "cof" = ( /obj/effect/decal/strata_decals/catwalk/prison, /turf/open/floor/greengrid, @@ -29287,14 +29154,6 @@ icon_state = "red1" }, /area/strata/ag/interior/dorms) -"ctE" = ( -/obj/structure/surface/rack, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/item/book/manual/detective, -/turf/open/floor/strata, -/area/strata/ag/interior/dorms) "ctF" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/strata{ @@ -29752,13 +29611,6 @@ icon_state = "multi_tiles" }, /area/strata/ug/interior/outpost/jung/dorms/admin1) -"cIQ" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/interior/tcomms) "cJf" = ( /obj/item/lightstick/red/planted, /turf/open/auto_turf/ice/layer1, @@ -29938,6 +29790,10 @@ icon_state = "cement3" }, /area/strata/ag/interior/landingzone_1) +"cZZ" = ( +/obj/item/fuel_cell, +/turf/open/auto_turf/snow/brown_base/layer1, +/area/strata/ag/interior/outpost/gen/bball/nest) "daq" = ( /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/east_carp) @@ -30221,6 +30077,10 @@ icon_state = "orange_cover" }, /area/strata/ag/interior/outpost/engi/drome) +"dCb" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata, +/area/strata/ag/interior/outpost/engi) "dCu" = ( /obj/structure/flora/grass/tallgrass/ice/corner{ dir = 9 @@ -30607,14 +30467,6 @@ }, /turf/open/auto_turf/ice/layer0, /area/strata/ag/exterior/marsh) -"elE" = ( -/obj/structure/machinery/power/geothermal, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/exterior/shed_five_caves) "emg" = ( /obj/structure/pipes/standard/simple/hidden/cyan{ dir = 6 @@ -30739,6 +30591,11 @@ icon_state = "orange_cover" }, /area/strata/ag/exterior/tcomms/tcomms_deck) +"ezK" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/fuel_cell, +/turf/open/auto_turf/ice/layer1, +/area/strata/ag/interior/outpost/gen/bball/nest) "eBo" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, /turf/open/asphalt/cement{ @@ -31031,13 +30888,6 @@ icon_state = "red1" }, /area/strata/ag/interior/landingzone_checkpoint) -"eUe" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/exterior/vanyard) "eUW" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -31309,6 +31159,12 @@ /obj/structure/dropship_equipment/mg_holder, /turf/open/floor/strata, /area/strata/ug/interior/outpost/jung/dorms/sec1) +"fwi" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/strata/ag/interior/dorms) "fwV" = ( /obj/structure/flora/grass/ice/brown/snowgrassbb_1, /turf/open/auto_turf/snow/brown_base/layer3, @@ -31335,6 +31191,18 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/strata_outpost, /area/strata/ug/interior/jungle/deep/east_dorms) +"fyU" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/obj/structure/platform_decoration/strata/metal{ + dir = 4 + }, +/obj/item/fuel_cell, +/turf/open/floor/strata{ + icon_state = "red2" + }, +/area/strata/ag/interior/outpost/engi) "fzn" = ( /obj/structure/closet/secure_closet/freezer/fridge, /turf/open/floor/strata{ @@ -32156,6 +32024,13 @@ icon_state = "red3" }, /area/strata/ag/interior/outpost/med) +"gOC" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/exterior/shed_five_caves) "gOL" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/asphalt/cement, @@ -33516,6 +33391,15 @@ icon_state = "multi_tiles" }, /area/strata/ug/interior/jungle/deep/structures/res) +"jfh" = ( +/obj/item/fuel_cell, +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/dorms) "jgX" = ( /obj/effect/decal/strata_decals/catwalk/prison, /obj/structure/barricade/handrail/strata{ @@ -33614,6 +33498,14 @@ /obj/structure/prop/dam/drill, /turf/open/floor/plating, /area/strata/ag/exterior/marsh/crash) +"jqg" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/item/book/manual/detective, +/turf/open/floor/strata, +/area/strata/ag/interior/dorms) "jrs" = ( /obj/structure/machinery/door/airlock/prison{ name = "Reinforced Airlock" @@ -33746,6 +33638,12 @@ icon_state = "white_cyan3" }, /area/strata/ag/interior/outpost/med) +"jBp" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/outpost/admin) "jBO" = ( /obj/structure/machinery/light/small, /turf/open/floor/strata{ @@ -33810,6 +33708,18 @@ /obj/effect/landmark/static_comms/net_two, /turf/open/auto_turf/snow/brown_base/layer0, /area/strata/ag/exterior/marsh/center) +"jIv" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 + }, +/obj/structure/barricade/handrail/strata, +/turf/open/floor/strata{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "jIz" = ( /obj/structure/machinery/weather_siren{ dir = 1; @@ -33914,6 +33824,16 @@ icon_state = "cement1" }, /area/strata/ag/exterior/landingzone_2) +"jPT" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/strata{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "jPV" = ( /obj/structure/flora/grass/tallgrass/jungle/corner, /turf/open/auto_turf/strata_grass/layer1, @@ -34334,6 +34254,13 @@ /obj/structure/flora/grass/ice/brown/snowgrassbb_1, /turf/open/auto_turf/snow/brown_base/layer2, /area/strata/ag/exterior/nearlz2) +"kCa" = ( +/obj/structure/surface/rack, +/obj/item/book/manual/engineering_guide, +/turf/open/floor/strata{ + icon_state = "orange_cover" + }, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "kCf" = ( /obj/structure/window/framed/strata, /turf/open/floor/strata{ @@ -36006,6 +35933,19 @@ "noq" = ( /turf/open/gm/coast/beachcorner/south_east, /area/strata/ug/interior/jungle/deep/east_dorms) +"npf" = ( +/obj/item/fuel_cell, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/strata{ + icon_state = "multi_tiles" + }, +/area/strata/ag/interior/dorms/hive) "npy" = ( /obj/structure/closet/secure_closet/medical3{ req_access = null @@ -36209,6 +36149,14 @@ }, /turf/open/auto_turf/strata_grass/layer1, /area/strata/ug/interior/jungle/deep/east_dorms) +"nNR" = ( +/obj/structure/surface/rack, +/obj/item/book/manual/orbital_cannon_manual, +/obj/item/book/manual/research_and_development, +/turf/open/floor/strata{ + icon_state = "orange_cover" + }, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "nOE" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/landmark/objective_landmark/far, @@ -36606,6 +36554,18 @@ icon_state = "floor3" }, /area/strata/ag/interior/outpost/engi/drome) +"oCc" = ( +/obj/item/fuel_cell, +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/floor/strata{ + icon_state = "red2" + }, +/area/strata/ag/interior/outpost/engi) "oDw" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/auto_turf/strata_grass/layer1, @@ -36936,6 +36896,15 @@ icon_state = "floor3" }, /area/strata/ag/interior/dorms) +"piu" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/strata{ + icon_state = "orange_cover" + }, +/area/strata/ag/interior/outpost/maint/canteen_e_1) "piD" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/food/snacks/cheesecakeslice, @@ -37906,6 +37875,13 @@ /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/auto_turf/strata_grass/layer0, /area/strata/ug/interior/jungle/platform/east/scrub) +"qDI" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/interior/tcomms) "qFH" = ( /obj/structure/filingcabinet, /turf/open/floor/strata{ @@ -38263,6 +38239,14 @@ icon_state = "floor3" }, /area/strata/ag/exterior/research_decks) +"rfB" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/exterior/shed_five_caves) "rgt" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; @@ -38351,6 +38335,13 @@ }, /turf/open/floor/strata, /area/strata/ug/interior/outpost/jung/dorms/admin2) +"rjn" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/strata{ + dir = 4; + icon_state = "floor3" + }, +/area/strata/ag/exterior/vanyard) "rjG" = ( /obj/structure/pipes/standard/simple/hidden/cyan, /turf/open/asphalt/cement, @@ -38739,6 +38730,10 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/strata, /area/strata/ag/interior/tcomms) +"rXZ" = ( +/obj/item/fuel_cell, +/turf/open/auto_turf/ice/layer1, +/area/strata/ag/interior/outpost/gen/bball/nest) "sah" = ( /obj/item/weapon/gun/pistol/t73, /turf/open/auto_turf/strata_grass/layer1, @@ -38773,6 +38768,15 @@ icon_state = "purp2" }, /area/strata/ug/interior/jungle/deep/structures/engi) +"scp" = ( +/obj/structure/barricade/handrail/strata{ + dir = 4 + }, +/obj/item/fuel_cell, +/turf/open/floor/strata{ + icon_state = "red2" + }, +/area/strata/ag/interior/outpost/engi) "seb" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/auto_turf/snow/brown_base/layer0, @@ -38910,6 +38914,15 @@ icon_state = "cement9" }, /area/strata/ug/interior/jungle/platform/east/scrub) +"soD" = ( +/obj/item/fuel_cell, +/obj/structure/barricade/handrail/strata{ + dir = 8 + }, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/outpost/engi) "spp" = ( /obj/item/weapon/gun/pistol/t73, /obj/effect/decal/cleanable/blood/gibs/core, @@ -39538,6 +39551,12 @@ }, /turf/open/auto_turf/ice/layer1, /area/strata/ag/exterior/paths/north_outpost) +"tuV" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/strata{ + icon_state = "floor3" + }, +/area/strata/ag/interior/outpost/engi) "tvk" = ( /obj/structure/platform/strata/metal{ dir = 1 @@ -41643,13 +41662,6 @@ icon_state = "fake_wood" }, /area/strata/ag/interior/landingzone_checkpoint) -"wVU" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/strata{ - dir = 4; - icon_state = "floor3" - }, -/area/strata/ag/exterior/shed_five_caves) "wWK" = ( /obj/structure/stairs/perspective{ color = "#6e6e6e"; @@ -47803,7 +47815,7 @@ aac aac aac crA -afB +jIv cEu agD aiE @@ -47998,14 +48010,14 @@ aac aac aac crA -afC +aem aiE agE aiE cnO -coc +jPT ajl -ajP +npf cnO ddp alG @@ -48407,7 +48419,7 @@ apZ ctC ctC ctC -ctE +jqg avr bWy bPs @@ -49771,7 +49783,7 @@ afW afW afW asb -ats +jfh bYE cbj bZV @@ -51134,7 +51146,7 @@ anq auC crY crY -arg +fwi ase att crY @@ -55319,7 +55331,7 @@ qfC aac aac sgG -cIQ +qDI gpr tRC sgG @@ -56067,7 +56079,7 @@ aac aac aac rOB -eUe +rjn khh vtl dOO @@ -57815,7 +57827,7 @@ aac bfg bgJ xdr -wVU +gOC jVg sXu okE @@ -58010,7 +58022,7 @@ aac bfg bgI xdr -wVU +gOC fEW sau okE @@ -58205,7 +58217,7 @@ bfe bfc bgI xdr -elE +rfB hPK hYl okE @@ -62847,7 +62859,7 @@ bXq ajW aUV aGr -aHw +dCb oKo aKx dgB @@ -63042,7 +63054,7 @@ bXq dgB aUV uWG -aHw +dCb oKo oKo aLP @@ -63237,7 +63249,7 @@ aCV bXq aUV vBs -aHw +dCb oKo oKo aLQ @@ -63425,7 +63437,7 @@ oBn oBn avP oKo -aIV +tuV aAn aBR aCW @@ -63627,7 +63639,7 @@ dgB aIV aUV aGr -aHw +dCb oKo aKy aLR @@ -63822,7 +63834,7 @@ dgB aIV aUV uWG -aHw +dCb oKo dgB dgB @@ -64017,7 +64029,7 @@ dgB aIV aUV vBs -aHw +dCb oKo aKA dgB @@ -64395,7 +64407,7 @@ ayw awJ aAR arr -asr +soD atF auA avS @@ -64940,7 +64952,7 @@ aam cdo pIa aax -abG +cZZ cdo cdo cjq @@ -65960,10 +65972,10 @@ ijo auF ijo aHv -ayP -ayP -acf -acC +oCc +oCc +fyU +scp oKo aMX dgB @@ -67089,7 +67101,7 @@ pIa pIa cpV cpV -bjT +ezK aam cdo ahn @@ -67284,7 +67296,7 @@ aag pIa aao pIa -bjT +ezK aam cdo ahn @@ -67870,7 +67882,7 @@ aac aac pIa pIa -aaV +rXZ cdo aam adC @@ -68517,7 +68529,7 @@ bWH bll bll bdI -bfZ +jBp bjf bjc cik @@ -73193,9 +73205,9 @@ chd chd cpU aVE -aXj +piu aZw -bbE +kCa cpU crI aHP @@ -73583,7 +73595,7 @@ cdn aSs cpU aVF -aXl +nNR aZy bbG cpU diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 3cd01dcd50f2..0d15799978a9 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -72,14 +72,6 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) -"aan" = ( -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "aaq" = ( /obj/item/bedsheet/purple{ layer = 3.2 @@ -120,75 +112,13 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"aas" = ( -/obj/vehicle/powerloader, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/repair_bay) "aau" = ( /turf/closed/wall/almayer/reinforced/temphull, /area/almayer/living/pilotbunks) -"aav" = ( -/obj/vehicle/powerloader, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/repair_bay) -"aax" = ( -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"aay" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "aaC" = ( /obj/structure/lattice, /turf/open/space/basic, /area/space) -"aaD" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"aaE" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aaF" = ( /obj/structure/stairs{ dir = 1; @@ -214,46 +144,24 @@ icon_state = "plate" }, /area/almayer/stair_clone/upper) -"aaK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/recharge_station{ - layer = 2.9 - }, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" +"aaP" = ( +/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" }, -/area/almayer/hallways/repair_bay) -"aaL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) -"aaO" = ( /turf/open/floor/almayer{ - dir = 6; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "aaY" = ( /obj/structure/lattice, /turf/open/space, @@ -268,35 +176,10 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"abd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/closet/secure_closet/engineering_welding{ - req_one_access_txt = "7;23;27" - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/sign/safety/terminal{ - pixel_y = 32 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "abf" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"abg" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "abh" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/north2) @@ -325,9 +208,6 @@ /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/lifeboat_pumps/north1) -"abx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "abB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -622,20 +502,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) -"acC" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"acF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "acI" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = -12 @@ -656,9 +522,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "acK" = ( /obj/structure/desertdam/decals/road_edge{ @@ -703,6 +567,9 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) +"acQ" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "acS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -723,17 +590,6 @@ icon_state = "plate" }, /area/almayer/living/basketball) -"acV" = ( -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "acW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -773,34 +629,15 @@ icon_state = "plate" }, /area/almayer/living/offices/flight) -"adb" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) -"adc" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "add" = ( /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"adg" = ( +"ade" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) +/area/almayer/hallways/lower/starboard_aft_hallway) "adj" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -812,18 +649,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/stair_clone/upper) -"adk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "ado" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -887,16 +712,6 @@ "adG" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/starboard_missiles) -"adH" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "adO" = ( /turf/closed/wall/almayer, /area/almayer/engineering/starboard_atmos) @@ -929,16 +744,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"aeb" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "northcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/starboard_hallway) "aec" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -988,11 +793,6 @@ "ael" = ( /turf/closed/wall/almayer, /area/almayer/living/cafeteria_officer) -"aem" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "aep" = ( /turf/closed/wall/almayer, /area/almayer/engineering/airmix) @@ -1163,16 +963,6 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) -"aeU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aeW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, @@ -1225,32 +1015,6 @@ icon_state = "redfull" }, /area/almayer/shipboard/starboard_missiles) -"afe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"aff" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "afj" = ( /obj/structure/machinery/portable_atmospherics/canister/empty, /turf/open/floor/engine, @@ -1276,53 +1040,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/basketball) -"afu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"afv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) -"afx" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Workshop Vendors" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/repair_bay) "afy" = ( /obj/structure/machinery/light{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"afz" = ( -/turf/open/floor/almayer/empty, -/area/almayer/hallways/vehiclehangar) "afB" = ( /obj/structure/machinery/light{ dir = 1 @@ -1332,16 +1055,6 @@ icon_state = "red" }, /area/almayer/living/starboard_garden) -"afC" = ( -/obj/docking_port/stationary/vehicle_elevator/almayer, -/turf/open/floor/almayer/empty, -/area/almayer/hallways/vehiclehangar) -"afD" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "afE" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/machinery/firealarm{ @@ -1474,17 +1187,6 @@ icon_state = "plate" }, /area/almayer/command/cichallway) -"aga" = ( -/obj/item/tool/wirecutters{ - pixel_y = -7 - }, -/obj/structure/sign/poster{ - desc = "You are becoming hysterical."; - icon_state = "poster11"; - pixel_y = 30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "agb" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/snacks/bloodsoup{ @@ -1510,18 +1212,6 @@ "agj" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/commandbunks) -"agn" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"ago" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "agq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -1571,19 +1261,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"agw" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"agy" = ( -/obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "agA" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -1597,15 +1274,6 @@ icon_state = "red" }, /area/almayer/living/starboard_garden) -"agG" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "agH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/disposalpipe/segment{ @@ -1629,12 +1297,6 @@ icon_state = "silver" }, /area/almayer/living/officer_study) -"agJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "agK" = ( /obj/structure/bed/chair{ dir = 1 @@ -1684,13 +1346,6 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_officer) -"agX" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "agY" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -1733,12 +1388,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"ahj" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "ahl" = ( /turf/open/floor/almayer{ dir = 9; @@ -1749,24 +1398,6 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/offices/flight) -"ahq" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"ahr" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "ahy" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -1787,12 +1418,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) -"ahB" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "ahG" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -1818,13 +1443,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_s) -"ahM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) "ahN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/floor/grass, @@ -1857,17 +1475,6 @@ icon_state = "silver" }, /area/almayer/living/officer_study) -"aib" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - req_one_access = null; - req_one_access_txt = "7;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/vehiclehangar) "aic" = ( /turf/open/floor/almayer{ dir = 1; @@ -1911,15 +1518,6 @@ icon_state = "test_floor4" }, /area/almayer/living/cafeteria_officer) -"aii" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "aij" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -1933,18 +1531,6 @@ icon_state = "silver" }, /area/almayer/living/cafeteria_officer) -"aik" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"aim" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "ain" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -1953,18 +1539,6 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_officer) -"aio" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "aiq" = ( /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) @@ -1980,31 +1554,9 @@ icon_state = "bluecorner" }, /area/almayer/living/offices/flight) -"ait" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) "aiw" = ( /turf/open/floor/almayer, /area/almayer/engineering/starboard_atmos) -"aiy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aiB" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aiC" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "aiH" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -2061,16 +1613,6 @@ "aiX" = ( /turf/closed/wall/almayer, /area/almayer/living/pilotbunks) -"ajd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "aje" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -2099,32 +1641,6 @@ icon_state = "redfull" }, /area/almayer/command/cic) -"ajp" = ( -/obj/structure/surface/table/almayer, -/obj/structure/dropship_equipment/fuel/cooling_system{ - layer = 3.5 - }, -/obj/item/clothing/glasses/welding{ - layer = 3.6; - pixel_x = 2; - pixel_y = 7 - }, -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajr" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "ajs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -2133,15 +1649,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) -"ajt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "aju" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -2154,53 +1661,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"ajx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajy" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajz" = ( -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "ajA" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/offices/flight) -"ajB" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ - req_access = null; - req_one_access = null; - req_one_access_txt = "7;23;27;102" - }, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = -3; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"ajC" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "ajD" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -2215,24 +1681,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"ajF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"ajG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "ajH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -2251,21 +1699,6 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/cafeteria_officer) -"ajL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/structure/machinery/light, -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ - req_access = null; - req_one_access = null; - req_one_access_txt = "7;23;27;102" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "ajM" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -2274,36 +1707,6 @@ }, /turf/open/floor/plating, /area/almayer/living/offices/flight) -"ajN" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"ajO" = ( -/obj/structure/stairs, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) -"ajP" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"ajR" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "ajT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -2316,19 +1719,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) -"ajW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"ajX" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "ajY" = ( /turf/open/floor/almayer_hull{ dir = 10; @@ -2365,6 +1755,18 @@ icon_state = "redcorner" }, /area/almayer/shipboard/weapon_room) +"akn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/vehicle/powerloader{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "cargo" + }, +/area/almayer/hallways/lower/vehiclehangar) "ako" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2423,20 +1825,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"aky" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ - req_one_access = null; - req_one_access_txt = "7;23;27;102" - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "akz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -2466,52 +1854,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_two) -"akH" = ( -/obj/structure/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"akI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"akJ" = ( -/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/hallways/stern_hallway) -"akK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "akL" = ( /obj/structure/machinery/light{ dir = 1 @@ -2528,17 +1870,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"akO" = ( -/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/hallways/starboard_hallway) "akQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2558,37 +1889,6 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) -"akT" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"akU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"akV" = ( -/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/hallways/aft_hallway) "akW" = ( /turf/open/floor/almayer{ dir = 8; @@ -2637,12 +1937,6 @@ /obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_m_s) -"ali" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "alk" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -2655,31 +1949,17 @@ }, /turf/closed/wall/almayer/research/containment/wall/purple, /area/almayer/medical/containment/cell) -"all" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "alp" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" +/obj/structure/machinery/firealarm{ + pixel_y = -28 }, -/area/almayer/hallways/aft_hallway) -"alq" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/simple/hidden/supply{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"als" = ( -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "alw" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -2689,22 +1969,6 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"alx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "northcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/starboard_hallway) "aly" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/starboard_missiles) @@ -2740,60 +2004,12 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/perma) -"alG" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"alI" = ( -/obj/item/stack/cable_coil{ - pixel_x = 1; - pixel_y = 10 - }, -/obj/item/trash/pistachios, -/obj/item/tool/screwdriver, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/repair_bay) -"alJ" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"alK" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "alL" = ( /turf/closed/wall/almayer, /area/almayer/command/telecomms) "alO" = ( /turf/closed/wall/almayer, /area/almayer/engineering/upper_engineering) -"alP" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) -"alQ" = ( -/obj/item/tool/wrench{ - pixel_x = -8; - pixel_y = 10 - }, -/obj/effect/decal/cleanable/blood/oil, -/obj/structure/prop/mech/hydralic_clamp, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "alR" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -2837,6 +2053,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) +"amc" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "amd" = ( /obj/structure/machinery/vending/cola{ density = 0; @@ -2854,12 +2078,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"amj" = ( -/obj/item/reagent_container/food/drinks/cans/souto, -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/repair_bay) "amk" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -2884,12 +2102,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"amp" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "ams" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/atmos_alert{ @@ -2926,17 +2138,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"amC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"amD" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "amE" = ( /obj/item/clothing/suit/storage/marine/light/vest, /obj/item/clothing/suit/storage/marine/light/vest, @@ -2965,63 +2166,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"amK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"amO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"amR" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/item/storage/belt/utility, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"amS" = ( -/obj/structure/stairs{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) -"amT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"amU" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) "amX" = ( /turf/open/floor/almayer{ dir = 1; @@ -3051,12 +2195,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"anc" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "and" = ( /obj/structure/window/reinforced{ dir = 4; @@ -3071,11 +2209,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) -"anf" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "ang" = ( /obj/item/clothing/head/welding{ pixel_y = 6 @@ -3089,19 +2222,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) -"anh" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"ani" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "anm" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -3190,73 +2310,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) -"anB" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"anC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"anD" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"anG" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"anH" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"anJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"anK" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"anL" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "anM" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -3276,18 +2329,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"anR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"anT" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, -/area/almayer/hallways/repair_bay) "anU" = ( /obj/structure/machinery/door/airlock/almayer/security{ dir = 2; @@ -3318,26 +2359,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) -"aoc" = ( -/obj/structure/stairs{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) -"aod" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "aoe" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/morgue) @@ -3401,11 +2422,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"aow" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "aoy" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -3425,68 +2441,12 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"aoB" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aoC" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"aoD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"aoE" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aoF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) -"aoG" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aoH" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "aoI" = ( /turf/open/floor/almayer{ dir = 6; @@ -3559,59 +2519,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"aoQ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aoR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/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/hallways/stern_hallway) -"aoS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aoT" = ( /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"aoU" = ( -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "aoV" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/effect/decal/cleanable/dirt, @@ -3650,20 +2562,6 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"apc" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"apd" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "ape" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -3673,12 +2571,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"apf" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "apg" = ( /turf/open/floor/almayer{ dir = 10; @@ -3691,12 +2583,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"apj" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "apk" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -3705,20 +2591,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/stair_clone/upper) -"apl" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"apm" = ( -/obj/structure/machinery/line_nexter{ - dir = 1; - id = "MTline"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "apo" = ( /obj/structure/disposalpipe/trunk, /obj/structure/machinery/disposal, @@ -3726,13 +2598,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"app" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "apq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -3773,16 +2638,6 @@ icon_state = "red" }, /area/almayer/living/starboard_garden) -"apv" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "apz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -3807,28 +2662,12 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/starboard) -"apC" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "apE" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "orange" }, /area/almayer/hallways/hangar) -"apJ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"apK" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "apL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/cell_charger, @@ -4053,19 +2892,6 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) -"aqx" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "aqy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -4129,17 +2955,19 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"aqM" = ( +"aqL" = ( +/obj/structure/stairs{ + dir = 1 + }, /obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, -/obj/structure/machinery/light{ - dir = 8 +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "aqN" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -4199,15 +3027,6 @@ "arb" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"arf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "arg" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -4273,17 +3092,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"arn" = ( -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "arp" = ( /obj/structure/bed/chair{ dir = 4 @@ -4379,16 +3187,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"arO" = ( -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "arP" = ( /obj/structure/sign/safety/hazard{ pixel_y = 32 @@ -4451,34 +3249,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/pilotbunks) -"asj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) -"asl" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "asm" = ( /obj/structure/stairs{ dir = 4 @@ -4500,15 +3270,6 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"asp" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "asr" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 8 @@ -4541,6 +3302,18 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) +"asC" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "\improper Brig Lobby"; + closeOtherId = "brignorth" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "asD" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door_control{ @@ -4550,10 +3323,14 @@ pixel_y = 24; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"asE" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "asF" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ access_modified = 1; @@ -4562,7 +3339,7 @@ req_one_access_txt = "91;92" }, /turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" + icon_state = "test_floor4" }, /area/almayer/command/airoom) "asG" = ( @@ -4572,9 +3349,7 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "asH" = ( /obj/structure/machinery/telecomms/bus/preset_three, @@ -4624,33 +3399,6 @@ icon_state = "silver" }, /area/almayer/command/cic) -"asO" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"asP" = ( -/obj/structure/machinery/door_control{ - id = "laddernorthwest"; - name = "North West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) "asQ" = ( /obj/structure/surface/rack, /obj/item/device/radio/marine, @@ -4681,18 +3429,6 @@ icon_state = "plate" }, /area/almayer/medical/morgue) -"asW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "asX" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /turf/open/floor/almayer{ @@ -4755,16 +3491,6 @@ /obj/structure/bed/sofa/vert/grey/top, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"atj" = ( -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "atk" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -4779,17 +3505,6 @@ icon_state = "test_floor4" }, /area/almayer/command/telecomms) -"atl" = ( -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "atm" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) @@ -4867,40 +3582,17 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"atC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, +"atH" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"atI" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_midship_hallway) "atK" = ( /turf/open/floor/almayer{ dir = 10; icon_state = "red" }, /area/almayer/command/lifeboat) -"atL" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "atM" = ( /turf/open/floor/almayer{ dir = 9; @@ -4963,26 +3655,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) -"atU" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"atV" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aub" = ( /obj/structure/machinery/light{ dir = 1 @@ -5008,27 +3680,15 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"aue" = ( -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "auf" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/closed/wall/almayer/white/hull, +/turf/closed/wall/almayer/aicore/hull, /area/almayer/command/airoom) "aug" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "aui" = ( /obj/structure/machinery/telecomms/hub/preset, @@ -5043,30 +3703,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"auk" = ( -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"aul" = ( -/obj/structure/stairs{ - dir = 4 - }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "aum" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -5077,22 +3713,6 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"aun" = ( -/obj/structure/stairs{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "auu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -5100,17 +3720,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"auv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "auy" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -5130,16 +3739,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) -"auG" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "auH" = ( /obj/structure/machinery/door_control{ id = "tcomms_apc"; @@ -5264,26 +3863,20 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"avj" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"avm" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"avn" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "avo" = ( /turf/closed/wall/almayer/outer, /area/almayer/powered/agent) +"avp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/almayer{ + id = "s_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "avs" = ( /turf/closed/wall/biodome, /area/almayer/powered/agent) @@ -5325,10 +3918,6 @@ icon_state = "test_floor4" }, /area/almayer/powered/agent) -"avD" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "avF" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -5369,11 +3958,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"avK" = ( -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "avL" = ( /obj/structure/machinery/door_control{ id = "ARES StairsUpper"; @@ -5407,9 +3991,7 @@ pixel_y = -24; req_one_access_txt = "91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "avM" = ( /obj/structure/machinery/computer/cameras/almayer/ares{ @@ -5427,9 +4009,7 @@ pixel_y = 6 }, /obj/item/tool/pen, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "avN" = ( /obj/structure/machinery/telecomms/processor/preset_two, @@ -5504,15 +4084,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"avX" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "avY" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cic) @@ -5528,15 +4099,6 @@ icon_state = "rasputin15" }, /area/almayer/powered/agent) -"awb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "awd" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/pilotbunks) @@ -5620,9 +4182,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "awv" = ( /obj/structure/machinery/computer/telecomms/monitor, @@ -5630,16 +4190,6 @@ icon_state = "plate" }, /area/almayer/command/telecomms) -"aww" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "awx" = ( /turf/open/floor/almayer{ dir = 4; @@ -5690,6 +4240,9 @@ icon_state = "plate" }, /area/almayer/command/cic) +"awE" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "awF" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/numbertwobunks) @@ -5862,19 +4415,6 @@ icon_state = "blue" }, /area/almayer/command/cic) -"axs" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "axu" = ( /obj/structure/machinery/computer/telecomms/server, /turf/open/floor/almayer{ @@ -6032,6 +4572,17 @@ icon_state = "tcomms" }, /area/almayer/command/telecomms) +"axY" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "aya" = ( /turf/open/floor/almayer{ dir = 4; @@ -6212,21 +4763,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"ayE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "ayI" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical{ @@ -6288,21 +4824,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) -"ayT" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"ayU" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "ayV" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -6347,16 +4868,19 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"azb" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"aza" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" + }, +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "azc" = ( /obj/structure/machinery/computer/telecomms/traffic, /turf/open/floor/almayer{ @@ -6504,19 +5028,6 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"azB" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "azC" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp/green, @@ -6538,36 +5049,6 @@ allow_construction = 0 }, /area/almayer/stair_clone) -"azE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"azG" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"azI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) "azJ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -6583,23 +5064,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"azS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"azT" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "azU" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -6643,28 +5107,11 @@ icon_state = "plate" }, /area/almayer/command/cic) -"azY" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "azZ" = ( /obj/structure/machinery/keycard_auth, /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/almayer/command/cic) -"aAa" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "aAd" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -6746,17 +5193,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"aAv" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "aAy" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -6873,22 +5309,15 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) -"aAW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"aAU" = ( +/obj/structure/machinery/light{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" + dir = 4; + icon_state = "orange" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_midship_hallway) "aAZ" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -7039,11 +5468,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) -"aBq" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "aBr" = ( /obj/structure/ladder{ height = 2; @@ -7105,14 +5529,6 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"aBC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) "aBD" = ( /obj/structure/closet/basketball, /obj/structure/sign/safety/maint{ @@ -7250,9 +5666,7 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "aCf" = ( /obj/structure/window/framed/almayer/hull/hijack_bustable, @@ -7281,18 +5695,6 @@ icon_state = "silvercorner" }, /area/almayer/command/cic) -"aCl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "aCo" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -7320,6 +5722,17 @@ icon_state = "sterile_green" }, /area/almayer/medical/medical_science) +"aCu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "aCw" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -7365,6 +5778,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) +"aCX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "aCZ" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -7427,15 +5848,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"aDk" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "aDm" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -7463,16 +5875,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"aDp" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "aDr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7500,6 +5902,10 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"aDt" = ( +/obj/structure/machinery/cm_vending/clothing/military_police_warden, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) "aDv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -7508,15 +5914,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"aDx" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7596,16 +5993,6 @@ 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; @@ -7661,12 +6048,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"aDZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "aEe" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -7676,14 +6057,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) -"aEf" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "aEg" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -7719,12 +6092,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"aEp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) "aEr" = ( /obj/structure/largecrate/random/barrel/yellow, /obj/effect/decal/warning_stripes{ @@ -7776,24 +6143,6 @@ icon_state = "silver" }, /area/almayer/command/cic) -"aEI" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"aEK" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aEM" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/emails, @@ -7833,21 +6182,9 @@ "aET" = ( /turf/closed/wall/almayer, /area/almayer/living/captain_mess) -"aEV" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aEW" = ( /turf/closed/wall/almayer, /area/almayer/living/numbertwobunks) -"aEX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "aEZ" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/gloves{ @@ -8035,15 +6372,15 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"aFF" = ( -/obj/structure/machinery/light{ - dir = 4 +"aFG" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "vehicle1door"; + name = "Vehicle Bay One" }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/vehiclehangar) "aFI" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -8066,23 +6403,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"aFV" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) -"aFW" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) "aGa" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -8103,22 +6423,6 @@ icon_state = "plate" }, /area/almayer/command/cichallway) -"aGc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) -"aGd" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) "aGg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8213,19 +6517,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/starboard) -"aGC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"aGD" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aGH" = ( /obj/structure/machinery/computer/ordercomp, /turf/open/floor/almayer{ @@ -8235,12 +6526,6 @@ "aGN" = ( /turf/open/floor/almayer, /area/almayer/command/computerlab) -"aGO" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aGP" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -8434,12 +6719,6 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"aHQ" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aHR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -8498,12 +6777,6 @@ "aId" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"aIe" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aIf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -8585,6 +6858,13 @@ /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/floor/grass, /area/almayer/living/starboard_garden) +"aIy" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_umbilical) "aIB" = ( /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/floor/grass, @@ -8645,20 +6925,6 @@ icon_state = "test_floor4" }, /area/almayer/living/numbertwobunks) -"aIS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "aIT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -8696,6 +6962,22 @@ icon_state = "plate" }, /area/almayer/living/tankerbunks) +"aIY" = ( +/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/medical) "aJc" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Commanding Officer's Mess" @@ -8816,12 +7098,6 @@ icon_state = "kitchen" }, /area/almayer/engineering/upper_engineering) -"aJs" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "aJw" = ( /obj/structure/machinery/light{ dir = 4 @@ -8975,9 +7251,7 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "aKu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9127,18 +7401,42 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) -"aLB" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_hallway) +"aLx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/machinery/door_control{ + id = "DeployWorkR"; + name = "Workshop Shutters"; + pixel_x = -7; + pixel_y = -26; + req_one_access_txt = "3;22;2;19;7" + }, +/obj/structure/surface/rack, +/obj/item/rappel_harness{ + pixel_y = 8 + }, +/obj/item/rappel_harness, +/obj/item/rappel_harness{ + pixel_y = -6 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "silverfull" + }, +/area/almayer/hallways/lower/repair_bay) "aLE" = ( /obj/docking_port/stationary/emergency_response/external/hangar_starboard{ dwidth = 8 }, /turf/open/space, /area/space) -"aLG" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "aLJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -9183,6 +7481,9 @@ pixel_y = 16 }, /obj/item/clothing/accessory/stethoscope, +/obj/structure/closet/secure_closet/professor_dummy{ + pixel_x = -32 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -9233,15 +7534,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"aMl" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "aMm" = ( /obj/structure/surface/table/almayer, /obj/item/tool/crowbar, @@ -9358,12 +7650,6 @@ /obj/item/ammo_casing/bullet, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_p) -"aMM" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "aMO" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -9395,12 +7681,6 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"aMV" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "aMY" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/almayer{ @@ -9428,14 +7708,6 @@ "aNm" = ( /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"aNn" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "aNr" = ( /obj/effect/landmark/start/chef, /turf/open/floor/plating/plating_catwalk, @@ -9462,21 +7734,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"aNG" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/hallways/starboard_hallway) "aNI" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/tl, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/squads/alpha) -"aNO" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "aNQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -9500,6 +7763,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) +"aNW" = ( +/turf/open/floor/almayer{ + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/starboard_hallway) "aNY" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -9564,6 +7832,18 @@ icon_state = "cargo" }, /area/almayer/command/telecomms) +"aOw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "aOy" = ( /obj/structure/machinery/light{ dir = 1 @@ -9670,15 +7950,6 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) -"aOP" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aOQ" = ( /obj/structure/closet/crate, /obj/item/storage/briefcase/inflatable, @@ -9693,12 +7964,6 @@ "aOR" = ( /turf/open/floor/almayer, /area/almayer/living/chapel) -"aOS" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "aOU" = ( /obj/structure/platform{ dir = 4 @@ -9738,15 +8003,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"aPb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aPe" = ( /obj/structure/largecrate/random/case/double, /obj/structure/sign/safety/bulkhead_door{ @@ -9783,12 +8039,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"aPm" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/aft_hallway) "aPn" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; @@ -9827,9 +8077,6 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) -"aPy" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hallways/starboard_umbilical) "aPz" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -9840,6 +8087,15 @@ icon_state = "emerald" }, /area/almayer/command/cic) +"aPC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "aPD" = ( /obj/structure/machinery/photocopier, /turf/open/floor/almayer{ @@ -9920,17 +8176,6 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"aPY" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_umbilical) -"aPZ" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_umbilical) "aQb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9950,15 +8195,6 @@ icon_state = "emerald" }, /area/almayer/command/cic) -"aQo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "aQp" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -9990,13 +8226,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"aQt" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aQv" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_umbilical) "aQy" = ( /obj/structure/transmitter{ dir = 8; @@ -10135,6 +8364,14 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) +"aRl" = ( +/obj/structure/machinery/door_control/cl/office/door{ + pixel_y = -20 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/aft_hallway) "aRo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -10159,6 +8396,15 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"aRr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "aRt" = ( /turf/open/floor/almayer{ dir = 8; @@ -10265,6 +8511,22 @@ }, /turf/open/floor/plating/almayer, /area/almayer/medical/upper_medical) +"aRL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "southcheckpoint"; + name = "\improper Checkpoint Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/lower/port_midship_hallway) "aRP" = ( /turf/open/floor/almayer{ dir = 1; @@ -10401,24 +8663,6 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) -"aSr" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/one{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "aSt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda/beer, @@ -10426,18 +8670,6 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) -"aSv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "aSx" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/sign/safety/maint{ @@ -10447,18 +8679,6 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) -"aSy" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aSz" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "aSA" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -10469,20 +8689,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"aSB" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"aSC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aSE" = ( /obj/structure/bed/chair{ dir = 4 @@ -10591,16 +8797,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"aTq" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "aTr" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -10694,35 +8890,6 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) -"aTL" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"aTQ" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"aTS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) "aTT" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -10976,6 +9143,12 @@ icon_state = "bluefull" }, /area/almayer/living/captain_mess) +"aVm" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/shipboard/brig/starboard_hallway) "aVo" = ( /obj/structure/machinery/light{ dir = 1 @@ -11042,6 +9215,13 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"aVM" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "aVR" = ( /obj/structure/ladder{ height = 2; @@ -11095,12 +9275,6 @@ icon_state = "test_floor4" }, /area/almayer/living/bridgebunks) -"aVY" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aWb" = ( /obj/structure/machinery/computer/working_joe{ dir = 4; @@ -11127,23 +9301,6 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"aWd" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) -"aWf" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "aWg" = ( /obj/structure/machinery/door_control{ id = "CMP Office Shutters"; @@ -11170,15 +9327,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"aWl" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "aWm" = ( /obj/structure/machinery/light{ dir = 1 @@ -11280,23 +9428,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices) -"aWH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"aWM" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aWR" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "aWT" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -11390,47 +9521,12 @@ /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) -"aXS" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aXT" = ( -/obj/structure/pipes/standard/cap/hidden{ - dir = 4 - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = -25 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) "aYd" = ( /obj/structure/dropship_equipment/medevac_system, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/hallways/hangar) -"aYj" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) -"aYn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "aYq" = ( /turf/open/floor/almayer{ dir = 6; @@ -11473,15 +9569,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) -"aYD" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "aYE" = ( /obj/structure/platform, /obj/structure/platform{ @@ -11500,23 +9587,6 @@ /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{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aYO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "aYQ" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 @@ -11534,65 +9604,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_two) -"aYT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "aYU" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) -"aYV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/vents/pump/on, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYY" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"aYZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "aZe" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -11612,34 +9629,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"aZg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aZi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aZl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "aZr" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -11670,10 +9659,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"aZB" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "aZC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -11681,10 +9666,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"aZE" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "aZF" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down4"; @@ -11695,14 +9676,6 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) -"aZH" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "aZI" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/almayer{ @@ -11787,10 +9760,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) -"bad" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "baf" = ( /obj/structure/barricade/handrail/medical, /turf/open/floor/almayer{ @@ -11804,38 +9773,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_one) -"bai" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bal" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"baq" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bar" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bat" = ( /obj/structure/machinery/door_control{ id = "ARES Mainframe Right"; @@ -11844,31 +9781,11 @@ pixel_y = -24; req_one_access_txt = "200;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "baw" = ( /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"bax" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"baB" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "baG" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer, @@ -11916,6 +9833,14 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"baW" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "baX" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 @@ -11961,83 +9886,18 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"bbg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bbh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bbi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"bbj" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"bbk" = ( -/obj/structure/barricade/handrail{ - dir = 8 - }, -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) -"bbl" = ( -/obj/structure/barricade/handrail{ +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ dir = 1; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) -"bbm" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/starboard_hallway) -"bbn" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 + name = "\improper Brig" }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/shipboard/brig/medical) "bbr" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -12075,43 +9935,6 @@ icon_state = "plating" }, /area/almayer/shipboard/starboard_point_defense) -"bbB" = ( -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) -"bbC" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"bbL" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"bbO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "bbS" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/starboard_point_defense) @@ -12641,11 +10464,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_one) -"beB" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "beE" = ( /obj/structure/platform{ dir = 1 @@ -12731,6 +10549,31 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"bfb" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) +"bfd" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"bff" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "bfl" = ( /turf/open/floor/almayer{ dir = 5; @@ -12868,6 +10711,10 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bfO" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "bfV" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 @@ -12889,11 +10736,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bga" = ( +"bgh" = ( /turf/open/floor/almayer{ - icon_state = "redcorner" + dir = 9; + icon_state = "silver" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/aft_hallway) "bgj" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 @@ -13129,23 +10977,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bhh" = ( -/obj/structure/machinery/door/poddoor/almayer{ - id = "n_umbilical"; - name = "\improper Umbillical Airlock"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) -"bhn" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "bho" = ( /obj/structure/machinery/computer/med_data, /turf/open/floor/almayer{ @@ -13240,6 +11071,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) +"bij" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "biq" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -13256,12 +11096,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"bit" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "biu" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ access_modified = 1; @@ -13293,6 +11127,15 @@ "biA" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_three) +"biB" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "biC" = ( /obj/structure/largecrate/random/case, /obj/structure/machinery/access_button/airlock_exterior, @@ -13415,58 +11258,6 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) -"bjJ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"bjL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) -"bjM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_umbilical) -"bjN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) -"bjO" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "bjQ" = ( /obj/structure/machinery/shower{ dir = 8 @@ -13486,6 +11277,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bkb" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "bkd" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 @@ -13552,16 +11349,6 @@ "bkA" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/chemistry) -"bkD" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 2; - id = "vehicle_elevator_railing" - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/vehiclehangar) "bkE" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -13600,18 +11387,17 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) -"bkQ" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"bkS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "bkT" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -13635,24 +11421,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bkY" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"blb" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) "blf" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -13898,12 +11666,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"bmu" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "bmv" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 2; @@ -13918,21 +11680,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"bmw" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) -"bmx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) -"bmy" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) "bmz" = ( /obj/structure/surface/table/almayer, /obj/item/tool/kitchen/utensil/spoon{ @@ -14124,15 +11871,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/bravo) -"bnD" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "bnF" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -14234,6 +11972,22 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) +"bom" = ( +/obj/structure/sign/safety/south{ + pixel_x = -17; + pixel_y = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"bop" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "cargo" + }, +/area/almayer/engineering/upper_engineering/port) "boq" = ( /obj/structure/bed/chair/comfy/alpha, /turf/open/floor/almayer{ @@ -14243,26 +11997,6 @@ "bos" = ( /turf/closed/wall/almayer, /area/almayer/maint/lower/s_bow) -"bot" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) -"bou" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/item/tank/emergency_oxygen/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "boy" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -14471,7 +12205,7 @@ /turf/open/floor/almayer, /area/almayer/squads/req) "bpR" = ( -/turf/open/floor/almayer/empty, +/turf/open/floor/almayer/empty/requisitions, /area/supply/station) "bpS" = ( /obj/structure/machinery/door/poddoor/railing{ @@ -14487,26 +12221,30 @@ icon_state = "green" }, /area/almayer/squads/req) -"bpU" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/o2, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "bpV" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"bpW" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/technology_scanner, +"bqc" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"bqg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/hallways/lower/starboard_fore_hallway) "bqm" = ( /obj/structure/closet/boxinggloves, /turf/open/floor/almayer{ @@ -14556,14 +12294,6 @@ 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; @@ -14655,6 +12385,12 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) +"brm" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "brn" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/smart, /turf/open/floor/almayer{ @@ -14665,6 +12401,11 @@ /obj/structure/supply_drop/bravo, /turf/open/floor/plating, /area/almayer/squads/req) +"brq" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "brr" = ( /obj/structure/machinery/cm_vending/clothing/medic/bravo, /turf/open/floor/almayer{ @@ -14721,31 +12462,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"brO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) -"brP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_umbilical) -"brQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_umbilical) "brS" = ( /obj/structure/bed, /obj/item/bedsheet/brown, @@ -14772,18 +12488,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"bsk" = ( -/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 = "plate" - }, -/area/almayer/hallways/starboard_hallway) "bsp" = ( /obj/structure/sink{ dir = 4; @@ -14836,6 +12540,15 @@ icon_state = "plate" }, /area/almayer/living/gym) +"bsF" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "bsG" = ( /obj/structure/machinery/disposal{ density = 0; @@ -14862,7 +12575,7 @@ /area/almayer/squads/req) "bsK" = ( /obj/effect/landmark/supply_elevator, -/turf/open/floor/almayer/empty, +/turf/open/floor/almayer/empty/requisitions, /area/supply/station) "bsL" = ( /obj/structure/machinery/door/poddoor/railing{ @@ -14919,15 +12632,6 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"bsT" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bsU" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -14938,24 +12642,12 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"bsV" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bsW" = ( /obj/structure/machinery/cm_vending/clothing/leader/bravo, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/squads/bravo) -"bsX" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) "btc" = ( /obj/structure/bed/chair{ dir = 8; @@ -14979,28 +12671,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"btn" = ( -/obj/item/device/camera{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/structure/surface/table/almayer, -/obj/item/device/camera_film{ - pixel_x = 4; - pixel_y = -2 - }, -/obj/item/device/camera_film, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"btp" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "btr" = ( /obj/structure/closet/boxinggloves, /obj/structure/machinery/light, @@ -15097,11 +12767,6 @@ icon_state = "red" }, /area/almayer/living/briefing) -"bua" = ( -/turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "buc" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -15177,17 +12842,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"buH" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"buI" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"buJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "buM" = ( /obj/structure/machinery/cm_vending/clothing/smartgun/bravo, /turf/open/floor/almayer{ @@ -15219,6 +12873,22 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"buY" = ( +/obj/structure/stairs{ + dir = 1 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_midship_hallway) "bvb" = ( /obj/structure/machinery/light{ dir = 8 @@ -15264,6 +12934,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) +"bvD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "bvF" = ( /turf/open/floor/almayer{ dir = 8; @@ -15281,23 +12964,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) -"bvT" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_umbilical) -"bvV" = ( -/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/hallways/starboard_umbilical) "bvX" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -15317,11 +12983,6 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) -"bwd" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "bwe" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -15402,6 +13063,29 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"bwv" = ( +/obj/structure/disposalpipe/segment, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_x = -28 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"bww" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "bwG" = ( /turf/closed/wall/almayer, /area/almayer/maint/hull/lower/l_m_s) @@ -15415,6 +13099,21 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) +"bwN" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) +"bwP" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "bwR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/med_data/laptop{ @@ -15440,18 +13139,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"bxd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "bxf" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out" @@ -15488,13 +13175,6 @@ icon_state = "mono" }, /area/almayer/squads/req) -"bxk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "bxm" = ( /turf/open/floor/almayer{ dir = 4; @@ -15507,12 +13187,14 @@ icon_state = "redfull" }, /area/almayer/living/cryo_cells) -"bxx" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"bxt" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "bxA" = ( /obj/structure/machinery/power/apc/almayer/hardened, /obj/effect/decal/warning_stripes{ @@ -15551,20 +13233,32 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"bxD" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +"bxE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "bxN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/workshop) +"bxV" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "bxY" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -15645,15 +13339,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bys" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "byt" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, @@ -15690,22 +13375,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"byC" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"byF" = ( -/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/starboard_hallway) "byH" = ( /obj/structure/bed/sofa/south/white/right{ pixel_y = 16 @@ -15715,17 +13384,6 @@ icon_state = "silver" }, /area/almayer/maint/hull/upper/u_m_p) -"byI" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "bzg" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -15741,9 +13399,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"bzy" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/vehiclehangar) "bzz" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -15751,11 +13406,6 @@ /obj/structure/machinery/disposal, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"bzA" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bzD" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "tcomms" @@ -15764,13 +13414,6 @@ icon_state = "test_floor4" }, /area/almayer/command/telecomms) -"bzH" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bzI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -15782,10 +13425,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bzK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bzQ" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating/plating_catwalk, @@ -15804,34 +13443,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"bzV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"bzW" = ( -/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/hallways/starboard_hallway) -"bzY" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"bAa" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) "bAd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -15849,12 +13460,6 @@ dir = 1 }, /area/almayer/command/lifeboat) -"bAg" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bAh" = ( /obj/structure/disposalpipe/segment, /obj/structure/cargo_container/wy/mid, @@ -15864,12 +13469,6 @@ /obj/structure/cargo_container/wy/right, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"bAr" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bAs" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/weapon_room) @@ -15968,17 +13567,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"bAV" = ( -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) -"bAX" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/starboard_hallway) "bAY" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out" @@ -15997,21 +13585,6 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) -"bBa" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_hallway) -"bBb" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) "bBc" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -16044,14 +13617,6 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) -"bBh" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "bBl" = ( /obj/structure/machinery/light{ dir = 4 @@ -16105,9 +13670,6 @@ "bBA" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/weapon_room) -"bBB" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) "bBC" = ( /obj/structure/bed/chair{ dir = 4 @@ -16155,6 +13717,12 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"bBR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "bBU" = ( /obj/structure/sign/safety/security{ pixel_x = 32 @@ -16198,21 +13766,6 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/briefing) -"bCi" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"bCj" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "southcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/port_hallway) "bCk" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/plating/plating_catwalk, @@ -16240,17 +13793,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_three) -"bCo" = ( -/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/hallways/port_hallway) "bCu" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 4 @@ -16315,16 +13857,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bCE" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/junction{ - dir = 2; - icon_state = "pipe-j2" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bCG" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -16367,15 +13899,6 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"bCW" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) "bCY" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -16392,6 +13915,11 @@ icon_state = "plate" }, /area/almayer/shipboard/weapon_room) +"bDi" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "bDn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/closed/wall/almayer, @@ -16407,22 +13935,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) -"bDx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "southcheckpoint"; - name = "\improper Checkpoint Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/port_hallway) "bDD" = ( /obj/structure/bed/chair{ dir = 8 @@ -16453,7 +13965,7 @@ access_modified = 1; dir = 1; name = "\improper Auxiliary Combat Support Secondary Preparations"; - req_one_access = "19;27;22" + req_one_access_txt = "19;27;22" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -16618,6 +14130,16 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) +"bEk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "bEl" = ( /obj/structure/machinery/computer/supply_drop_console/limited, /turf/closed/wall/almayer, @@ -16674,14 +14196,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/weapon_room) -"bEz" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bEA" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -16740,16 +14254,6 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"bEH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) "bEK" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -16938,10 +14442,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"bFu" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bFA" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -16951,6 +14451,15 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"bFB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "bFC" = ( /obj/structure/machinery/light{ dir = 1 @@ -16973,6 +14482,14 @@ /obj/docking_port/stationary/marine_dropship/almayer_hangar_1, /turf/open/floor/plating, /area/almayer/hallways/hangar) +"bFX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "bGa" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -16986,9 +14503,6 @@ icon_state = "mono" }, /area/almayer/hallways/upper/starboard) -"bGb" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/port_hallway) "bGc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -16998,60 +14512,6 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"bGe" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bGg" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bGh" = ( -/obj/structure/barricade/handrail{ - dir = 8 - }, -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/port_hallway) -"bGi" = ( -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/port_hallway) -"bGj" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/port_hallway) -"bGk" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/barricade/handrail, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/port_hallway) -"bGl" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/port_hallway) "bGn" = ( /obj/structure/barricade/plasteel/metal, /turf/open/floor/almayer{ @@ -17068,17 +14528,6 @@ /obj/structure/window/framed/almayer/hull/hijack_bustable, /turf/open/floor/plating, /area/almayer/squads/req) -"bGp" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) "bGq" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -17233,37 +14682,10 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bGT" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancesouth"; - name = "\improper South Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "bGU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"bHa" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bHb" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bHd" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bHg" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -17309,16 +14731,13 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/navigation) -"bHt" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"bHu" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) "bHB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -17339,20 +14758,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"bHH" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancesouth"; - name = "\improper South Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "bHI" = ( /obj/structure/anti_air_cannon, /obj/structure/surface/table/almayer, @@ -17360,73 +14765,9 @@ /obj/item/tool/pen, /turf/open/floor/plating/almayer, /area/almayer/shipboard/weapon_room) -"bHL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bHP" = ( /turf/open/floor/plating/almayer, /area/almayer/shipboard/weapon_room) -"bHT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHV" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHX" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bHY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bIb" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bId" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -17445,16 +14786,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"bIl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +"bIj" = ( +/turf/open/floor/almayer{ + icon_state = "emeraldcorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "bIn" = ( /obj/structure/machinery/computer/cameras/almayer_network, /obj/structure/surface/table/almayer, @@ -17483,7 +14819,7 @@ name = "\improper ARES Mainframe Shutters"; plane = -7 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -17535,16 +14871,6 @@ }, /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/navigation) -"bII" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "bIJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -17568,23 +14894,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) -"bIR" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bIS" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" +"bIO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bIT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_fore_hallway) "bIU" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes{ @@ -17601,11 +14923,13 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"bJb" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +"bIW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "bJe" = ( /obj/structure/surface/table/reinforced/black, /obj/item/explosive/grenade/high_explosive/training, @@ -17630,21 +14954,6 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"bJh" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/port_umbilical) -"bJi" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/starboard_hallway) "bJl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ access_modified = 1; @@ -17664,9 +14973,6 @@ icon_state = "test_floor4" }, /area/almayer/living/auxiliary_officer_office) -"bJo" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/repair_bay) "bJt" = ( /turf/closed/wall/almayer, /area/almayer/living/grunt_rnr) @@ -17683,11 +14989,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"bJz" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "bJC" = ( /turf/closed/wall/almayer, /area/almayer/squads/charlie) @@ -17710,19 +15011,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"bJO" = ( -/obj/structure/machinery/light/small, -/obj/structure/sign/safety/nonpress_0g{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/press_area_ag{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) "bJS" = ( /obj/structure/surface/rack, /obj/item/tool/wrench, @@ -17759,12 +15047,6 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"bKa" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bKb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -17781,12 +15063,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/weapon_room) -"bKc" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bKd" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, @@ -17796,36 +15072,21 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"bKe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "bKf" = ( /turf/open/floor/almayer{ dir = 5; icon_state = "red" }, /area/almayer/shipboard/navigation) -"bKh" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bKj" = ( -/obj/structure/machinery/gear{ - id = "vehicle_elevator_gears" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "mono" +"bKk" = ( +/obj/item/tool/wrench{ + pixel_x = -8; + pixel_y = 10 }, -/area/almayer/hallways/vehiclehangar) +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/prop/mech/hydralic_clamp, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "bKm" = ( /obj/structure/closet/crate/freezer{ desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." @@ -17910,12 +15171,15 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"bKE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +"bKI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/starboard_hallway) "bKJ" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -17927,6 +15191,25 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) +"bKN" = ( +/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/starboard_hallway) "bKP" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -17968,6 +15251,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) +"bLg" = ( +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "bLh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -18081,24 +15376,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"bLt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bLu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) "bLv" = ( /obj/structure/machinery/door_control{ id = "ARES StairsLower"; @@ -18111,9 +15388,9 @@ dir = 8; pixel_y = 2 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 4 }, /area/almayer/command/airoom) "bLw" = ( @@ -18192,25 +15469,6 @@ /obj/item/tool/pen, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"bLT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancesouth"; - name = "South Hangar Shutters"; - pixel_y = 30; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "bLX" = ( /obj/vehicle/powerloader, /turf/open/floor/almayer{ @@ -18227,6 +15485,20 @@ icon_state = "green" }, /area/almayer/squads/req) +"bMf" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"bMi" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/upper/aft_hallway) "bMq" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /obj/structure/machinery/light{ @@ -18236,12 +15508,6 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"bMt" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) "bMu" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ req_access = null; @@ -18382,6 +15648,22 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"bMV" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_x = -8; + pixel_y = 28 + }, +/obj/structure/sign/safety/intercom{ + pixel_x = 14; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "bNa" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black, @@ -18483,15 +15765,6 @@ /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"bNp" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "vehicle1door"; - name = "Vehicle Bay One" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bNq" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wirecutters, @@ -18501,6 +15774,14 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"bNr" = ( +/obj/structure/sign/safety/storage{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "bNs" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -18584,6 +15865,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) +"bNI" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "bNL" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -18626,32 +15917,15 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"bNW" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) -"bOe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/machinery/door_control/railings{ - pixel_y = 24 +"bNT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "bOq" = ( /obj/structure/prop/almayer/cannon_cables, /turf/open/floor/almayer{ @@ -18667,12 +15941,15 @@ icon_state = "redcorner" }, /area/almayer/shipboard/weapon_room) -"bOv" = ( +"bOw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "emeraldcorner" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/vehiclehangar) "bOx" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/tl, /turf/open/floor/almayer{ @@ -18800,11 +16077,6 @@ icon_state = "plating" }, /area/almayer/shipboard/sea_office) -"bOX" = ( -/turf/open/floor/almayer{ - icon_state = "emeraldcorner" - }, -/area/almayer/hallways/port_hallway) "bOZ" = ( /obj/structure/machinery/light{ dir = 1 @@ -18848,15 +16120,6 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"bPj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bPk" = ( /obj/item/roller, /obj/item/roller, @@ -19183,56 +16446,20 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"bRs" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/bridge{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/west{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"bRx" = ( -/obj/structure/machinery/door/poddoor/railing{ - id = "vehicle_elevator_railing_aux" - }, -/obj/structure/machinery/light, +"bRo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"bRz" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"bRA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"bRD" = ( -/obj/structure/largecrate/random/barrel/red, +/area/almayer/hallways/lower/port_midship_hallway) +"bRt" = ( /obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 + icon_state = "N"; + pixel_y = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orangecorner" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/lower/starboard_umbilical) "bRP" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -19246,15 +16473,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"bRQ" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "bRR" = ( /obj/structure/machinery/door/window/eastleft{ req_one_access_txt = "2;21" @@ -19271,14 +16489,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"bRU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/vehiclehangar) "bRV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -19311,13 +16521,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bSd" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bSe" = ( /turf/open/floor/almayer{ dir = 6; @@ -19327,22 +16530,6 @@ "bSf" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/port_point_defense) -"bSg" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hallways/port_umbilical) -"bSj" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bSn" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -19429,15 +16616,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"bSY" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "bSZ" = ( /obj/structure/machinery/vending/coffee{ density = 0; @@ -19522,6 +16700,14 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) +"bTz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "bTA" = ( /turf/open/floor/almayer, /area/almayer/squads/delta) @@ -19534,6 +16720,12 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"bTD" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/upper/aft_hallway) "bTE" = ( /turf/open/floor/almayer{ dir = 4; @@ -19666,28 +16858,6 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"bUd" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "bluecorner" - }, -/area/almayer/hallways/port_hallway) -"bUe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancesouth"; - name = "South Hangar Shutters"; - pixel_y = 30; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "bUf" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ @@ -19783,24 +16953,6 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) -"bUz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bUE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"bUF" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" - }, -/area/almayer/hallways/port_hallway) "bUH" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -19813,12 +16965,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_p) -"bUM" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "bUN" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -20057,18 +17203,10 @@ icon_state = "plate" }, /area/almayer/squads/req) -"bWP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) +"bWQ" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) "bWT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20082,18 +17220,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"bWV" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/sign/safety/rewire{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_hallway) "bXe" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) @@ -20126,12 +17252,6 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) -"bXs" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bXw" = ( /obj/structure/machinery/bioprinter{ stored_metal = 125 @@ -20140,6 +17260,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_two) +"bXy" = ( +/obj/structure/machinery/cm_vending/clothing/maintenance_technician, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/upper_engineering/port) "bXz" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, @@ -20153,12 +17282,6 @@ icon_state = "plate" }, /area/almayer/squads/req) -"bXX" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bXY" = ( /obj/structure/ladder{ height = 1; @@ -20172,10 +17295,6 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) -"bXZ" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bYa" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, /turf/open/floor/almayer{ @@ -20183,22 +17302,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"bYc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"bYe" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) -"bYh" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "bYn" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/port) @@ -20248,16 +17351,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"bYE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_hallway) "bYF" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -20341,6 +17434,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"bZo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"bZq" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "bZr" = ( /turf/open/floor/almayer{ dir = 1; @@ -20350,39 +17453,12 @@ "bZw" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/command/combat_correspondent) -"bZz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "bZJ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/landmark/map_item, /obj/item/device/binoculars, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cic) -"bZK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"bZL" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "bZO" = ( /obj/structure/machinery/light{ dir = 8 @@ -20404,6 +17480,13 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"bZS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "bZU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -20484,12 +17567,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"can" = ( -/obj/structure/machinery/conveyor{ - id = "req_belt" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "cap" = ( /obj/structure/surface/rack, /obj/item/tool/wirecutters, @@ -20515,14 +17592,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"cat" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) "cau" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/airlock/almayer/security/glass{ @@ -20539,54 +17608,6 @@ icon_state = "test_floor4" }, /area/almayer/living/cryo_cells) -"cav" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_hallway) -"cax" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"caC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"caD" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "caM" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -20689,12 +17710,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"cbr" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "cbu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ layer = 1.9 @@ -20709,122 +17724,25 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) -"cbv" = ( +"cbK" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" + icon_state = "red" }, -/area/almayer/hallways/port_hallway) -"cbw" = ( -/turf/open/floor/almayer{ +/area/almayer/hallways/upper/aft_hallway) +"cbL" = ( +/obj/structure/machinery/camera/autoname/almayer{ dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) -"cbz" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"cbD" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) -"cbE" = ( -/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" + name = "ship-grade camera" }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "cbM" = ( /obj/structure/closet/crate, /obj/item/clothing/glasses/welding, /obj/item/circuitboard, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) -"cbQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"cbR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"cbS" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"cbU" = ( -/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/hallways/port_hallway) -"cbV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/storage{ - pixel_y = 32 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"cbW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"cbX" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "ccb" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ @@ -20885,31 +17803,8 @@ icon_state = "S"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"ccq" = ( -/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 = "plate" - }, -/area/almayer/hallways/port_hallway) -"ccr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "ccs" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -20918,22 +17813,6 @@ icon_state = "plate" }, /area/almayer/medical/morgue) -"ccu" = ( -/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) -"ccv" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "ccG" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/warning_stripes{ @@ -20943,64 +17822,23 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"ccJ" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" +"ccL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/area/almayer/hallways/repair_bay) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) "ccN" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "redcorner" }, /area/almayer/living/cryo_cells) -"ccO" = ( -/obj/structure/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "ccQ" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) -"ccU" = ( -/obj/structure/pipes/vents/pump{ - dir = 8; - id_tag = "mining_outpost_pump" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"cdb" = ( -/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/port_umbilical) -"cdc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cdd" = ( -/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/hallways/port_umbilical) "cdf" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -21041,27 +17879,6 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"cdw" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"cdx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"cdy" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"cdz" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "cdA" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -21073,37 +17890,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"cdE" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/prop/helmetgarb/flair_io{ - pixel_x = -10; - pixel_y = 6 - }, -/obj/item/prop/magazine/boots/n160{ - pixel_x = -6; - pixel_y = -5 - }, -/obj/structure/transmitter/rotary{ - name = "Flight Deck Telephone"; - phone_category = "Almayer"; - phone_id = "Flight Deck"; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) -"cdF" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "cdI" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -21160,50 +17946,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) -"ces" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cet" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "ceu" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "green" }, /area/almayer/living/starboard_garden) -"cev" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_umbilical) -"cew" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) -"cex" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "ceC" = ( /obj/structure/prop/almayer/ship_memorial, /turf/open/floor/plating/almayer, @@ -21226,28 +17974,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"ceQ" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/machinery/part_fabricator/dropship, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) -"ceR" = ( -/obj/structure/machinery/prop/almayer/computer{ - pixel_y = 20 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) -"ceU" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/repair_bay) "ceY" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -21317,71 +18043,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"cfx" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cfy" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) -"cfz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) -"cfA" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "cfE" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"cfM" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "DeployWorkR"; - name = "\improper Workshop Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/repair_bay) -"cfN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "cfT" = ( /turf/open/floor/almayer{ dir = 10; @@ -21455,29 +18122,6 @@ "cgE" = ( /turf/open/floor/almayer, /area/almayer/living/cryo_cells) -"cgG" = ( -/obj/structure/surface/table/almayer, -/obj/item/tank/emergency_oxygen/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cgH" = ( -/obj/structure/surface/table/almayer, -/obj/item/tank/oxygen/red, -/obj/item/tool/screwdriver, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cgJ" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "cgO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -21571,29 +18215,19 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"chu" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - 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) -"chE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddersouthwest"; - name = "\improper South West Ladders Shutters" +"chC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "orange" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/stern_hallway) "chL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -21716,6 +18350,16 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) +"cif" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/item/tank/emergency_oxygen/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "cil" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ @@ -21726,31 +18370,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"cim" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) -"cin" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_umbilical) -"cio" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/port_umbilical) "cir" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -21815,6 +18434,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) +"ciI" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "ciN" = ( /turf/open/floor/almayer{ dir = 6; @@ -21828,31 +18456,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"ciT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"ciU" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/four{ - pixel_x = 31; - pixel_y = -8 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "cjc" = ( /obj/effect/landmark/start/marine/alpha, /obj/effect/landmark/late_join/alpha, @@ -21900,59 +18503,11 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) -"cjl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/poddoor/almayer{ - id = "s_umbilical"; - name = "\improper Umbillical Airlock"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cjm" = ( -/obj/structure/machinery/door/poddoor/almayer{ - id = "s_umbilical"; - name = "\improper Umbillical Airlock"; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) -"cjo" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32; - pixel_y = 6 - }, -/obj/structure/sign/safety/reduction{ - pixel_x = 32; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 8; - 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{ - dir = 8 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) "cjA" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -21992,41 +18547,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"cjK" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) -"cjS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) -"cjT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, -/obj/structure/sign/safety/escapepod{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) "cjW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22078,6 +18598,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"ckh" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "ckj" = ( /obj/structure/surface/table/almayer, /obj/item/stack/nanopaste{ @@ -22088,29 +18617,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_stern) -"ckl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) -"ckm" = ( -/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/port_hallway) "ckr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -22118,18 +18624,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"ckI" = ( -/obj/structure/disposalpipe/segment, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_x = -28 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "ckK" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -22162,22 +18656,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"ckS" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "Interrogation Shutters"; - name = "\improper Privacy Shutters" - }, -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Interrogation" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "ckW" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -22188,29 +18666,15 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"cla" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/port_hallway) -"clb" = ( +"ckZ" = ( /obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + dir = 8 }, +/obj/structure/machinery/power/reactor, /turf/open/floor/almayer{ - dir = 10; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) +/area/almayer/engineering/lower/engine_core) "cle" = ( /turf/open/floor/almayer{ dir = 4; @@ -22338,55 +18802,10 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/port_point_defense) "clw" = ( -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) -"cly" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/maint{ - pixel_x = -17; - pixel_y = -8 - }, -/obj/structure/sign/safety/storage{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/hallways/port_hallway) -"clz" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/hallways/port_hallway) -"clC" = ( -/obj/structure/stairs, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "clE" = ( /obj/structure/machinery/door/airlock/almayer/marine/delta/medic, /turf/open/floor/almayer{ @@ -22446,12 +18865,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"clR" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "clS" = ( /obj/structure/machinery/cm_vending/gear/spec, /obj/structure/sign/safety/hazard{ @@ -22509,16 +18922,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"cmd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "cme" = ( /obj/structure/largecrate/random/barrel/red, /obj/structure/prop/invuln/overhead_pipe{ @@ -22530,30 +18933,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) -"cmg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"cmh" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/disposalpipe/up/almayer{ - dir = 8; - id = "almayerlink" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "cml" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -22634,18 +19013,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) -"cmH" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) "cmI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22685,6 +19052,20 @@ icon_state = "silver" }, /area/almayer/command/securestorage) +"cmL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"cmM" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/medical) "cmN" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ @@ -22732,25 +19113,11 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"cno" = ( -/obj/structure/stairs, -/obj/effect/projector{ - name = "Almayer_Up1"; - vector_x = -19; - vector_y = 98 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "cnp" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "cnq" = ( /obj/structure/machinery/line_nexter{ @@ -22783,12 +19150,6 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"cnv" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "cnE" = ( /obj/structure/machinery/prop/almayer/computer{ dir = 4; @@ -22814,6 +19175,15 @@ icon_state = "test_floor4" }, /area/almayer/command/computerlab) +"cnI" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_umbilical) "cnM" = ( /obj/structure/window/reinforced{ dir = 4; @@ -22909,9 +19279,9 @@ }, /area/almayer/medical/morgue) "cnZ" = ( -/obj/item/tool/surgery/hemostat, -/obj/item/tool/surgery/scalpel, /obj/structure/surface/table/reinforced/prison, +/obj/item/tool/surgery/scalpel, +/obj/item/tool/surgery/hemostat, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -23059,12 +19429,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/offices) -"cpw" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) "cpz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -23099,12 +19463,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_m_p) -"cqa" = ( +"cqd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "green" + dir = 1; + icon_state = "orangecorner" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/starboard_umbilical) "cqm" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/white{ @@ -23114,9 +19481,7 @@ pixel_x = 5; pixel_y = 6 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "cqp" = ( /obj/structure/largecrate/random/barrel/white, @@ -23166,15 +19531,19 @@ /obj/item/storage/fancy/cigar/tarbacktube, /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"cre" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 +"crc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "crh" = ( /obj/structure/machinery/light{ dir = 1 @@ -23193,40 +19562,22 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_f_s) -"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" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "greencorner" }, /area/almayer/squads/req) -"crW" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "csd" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/stern) -"csl" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" +"csy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "csI" = ( /turf/open/floor/almayer{ dir = 8; @@ -23275,6 +19626,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"ctw" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "ctx" = ( /obj/structure/bed{ icon_state = "abed" @@ -23304,15 +19661,11 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"ctC" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"ctQ" = ( /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "silver" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/lower/repair_bay) "ctT" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -23325,6 +19678,15 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cryo) +"cui" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "cuq" = ( /obj/structure/machinery/computer/arcade, /turf/open/floor/wood/ship, @@ -23350,6 +19712,19 @@ "cuC" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/starboard) +"cuI" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/sign/safety/stairs{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "cuN" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -23388,6 +19763,12 @@ icon_state = "plate" }, /area/almayer/squads/req) +"cvg" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "cvi" = ( /obj/structure/machinery/vending/hydroseeds, /turf/open/floor/almayer{ @@ -23409,6 +19790,10 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"cvI" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "cvZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -23418,6 +19803,16 @@ icon_state = "silver" }, /area/almayer/command/cic) +"cwi" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "cwo" = ( /obj/structure/largecrate/random/mini/chest{ pixel_x = 4 @@ -23428,31 +19823,23 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) -"cwJ" = ( +"cwC" = ( /turf/open/floor/almayer{ - dir = 10; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"cwQ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 + dir = 4; + icon_state = "red" }, -/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" +/area/almayer/shipboard/brig/starboard_hallway) +"cwL" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "orange" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/stern_hallway) "cwS" = ( /obj/structure/blocker/invisible_wall, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "cwX" = ( /obj/structure/ladder{ @@ -23466,23 +19853,31 @@ icon_state = "S"; layer = 3.3 }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "cxk" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"cxA" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +"cxF" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/structure/barricade/handrail, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "test_floor5" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_midship_hallway) +"cyc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "cyo" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -23508,13 +19903,6 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/upper/u_f_p) -"cyG" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "cyL" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/toolbox, @@ -23544,13 +19932,38 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"czM" = ( +"czJ" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 15; + pixel_y = 32 + }, /obj/structure/sign/safety/intercom{ - pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) +"czN" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"czR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "cAm" = ( /obj/structure/bed/chair/office/light{ dir = 8 @@ -23589,6 +20002,9 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"cAR" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/mp_bunks) "cBb" = ( /obj/structure/machinery/light{ dir = 1 @@ -23621,14 +20037,6 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) -"cBl" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "cBm" = ( /obj/effect/projector{ name = "Almayer_AresUp"; @@ -23642,10 +20050,7 @@ dir = 1; icon_state = "ramptop" }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "cBs" = ( /obj/structure/bed/chair, @@ -23663,73 +20068,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) -"cBA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"cBI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancenorth"; - name = "North Hangar Podlocks"; - pixel_y = -26; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, +"cBC" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; - pixel_x = 1 + pixel_x = 2 }, /turf/open/floor/almayer{ - 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" + dir = 5; + icon_state = "green" }, -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/hallways/lower/port_aft_hallway) +"cBV" = ( +/obj/structure/closet/firecloset, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + dir = 4; + icon_state = "greencorner" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/hallways/lower/port_fore_hallway) "cCa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -23895,12 +20254,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie) -"cES" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "cFh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -23929,6 +20282,18 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"cFH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "cFP" = ( /obj/structure/sign/safety/outpatient{ pixel_x = -17; @@ -23941,27 +20306,6 @@ "cGd" = ( /turf/closed/wall/almayer, /area/almayer/maint/hull/upper/u_m_s) -"cGe" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/lower/engine_core) -"cGp" = ( -/obj/structure/machinery/cm_vending/clothing/senior_officer{ - pixel_y = 0 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) -"cGr" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/aft_hallway) "cGA" = ( /obj/structure/sign/poster{ pixel_y = -32 @@ -23997,6 +20341,9 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"cHk" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/warden_office) "cHl" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -24023,6 +20370,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"cHC" = ( +/obj/structure/machinery/cm_vending/clothing/combat_correspondent, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "cHE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -24045,6 +20398,14 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"cIm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "cIr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24066,6 +20427,11 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"cIO" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "cIW" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Engineering Engine Monitoring" @@ -24094,6 +20460,9 @@ icon_state = "plate" }, /area/almayer/shipboard/panic) +"cJs" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "cJu" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -24110,6 +20479,15 @@ /obj/structure/sign/prop2, /turf/closed/wall/almayer, /area/almayer/shipboard/sea_office) +"cJK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "cJM" = ( /obj/structure/machinery/door_display/research_cell{ dir = 8; @@ -24152,6 +20530,16 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"cJV" = ( +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/aft_hallway) "cKm" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/bucket/mopbucket{ @@ -24170,18 +20558,27 @@ }, /turf/open/floor/plating, /area/almayer/maint/lower/constr) +"cKJ" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) "cKL" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/port) -"cKY" = ( -/obj/structure/machinery/light, +"cKW" = ( /turf/open/floor/almayer{ - icon_state = "silver" + dir = 5; + icon_state = "blue" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/aft_hallway) "cLl" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -24196,8 +20593,8 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "cargo_arrow" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_arrow" }, /area/almayer/command/airoom) "cLq" = ( @@ -24236,17 +20633,6 @@ icon_state = "cargo" }, /area/almayer/living/bridgebunks) -"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 @@ -24292,6 +20678,12 @@ icon_state = "orange" }, /area/almayer/living/briefing) +"cNm" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_aft_hallway) "cNH" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/containment{ id = "Containment Cell 4"; @@ -24307,6 +20699,17 @@ icon_state = "test_floor4" }, /area/almayer/medical/containment/cell/cl) +"cNI" = ( +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) +"cNJ" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "cNK" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -24372,13 +20775,6 @@ icon_state = "outerhull_dir" }, /area/almayer/engineering/upper_engineering/starboard) -"cOM" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "cOY" = ( /obj/item/clothing/under/blackskirt{ desc = "A stylish skirt, in a business-black and red colour scheme."; @@ -24508,6 +20904,9 @@ "cQv" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/general_equipment) +"cQG" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "cQL" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -24599,6 +20998,30 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) +"cSH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"cSM" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) +"cSP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "cSQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24625,6 +21048,12 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"cTy" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "cTC" = ( /obj/structure/machinery/vending/walkman, /turf/open/floor/almayer{ @@ -24661,12 +21090,30 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) +"cVf" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "cVq" = ( /obj/structure/machinery/power/apc/almayer/hardened{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) +"cVt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "cVw" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -24687,6 +21134,16 @@ icon_state = "plate" }, /area/almayer/living/gym) +"cVT" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) +"cVZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "cWb" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -24756,20 +21213,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"cWs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "cWv" = ( /turf/open/floor/almayer{ dir = 8; @@ -24836,6 +21279,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) +"cXD" = ( +/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_storage) "cXF" = ( /obj/structure/machinery/flasher{ alpha = 1; @@ -24854,6 +21310,12 @@ icon_state = "greencorner" }, /area/almayer/squads/req) +"cXV" = ( +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) "cXW" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -24930,33 +21392,18 @@ }, /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) "cZp" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"cZB" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) "cZI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -25009,22 +21456,8 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"dac" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/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) "daz" = ( -/turf/closed/wall/almayer/white/hull, +/turf/closed/wall/almayer/aicore/hull, /area/almayer/command/airoom) "daF" = ( /obj/structure/machinery/power/apc/almayer{ @@ -25133,20 +21566,16 @@ 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) +"dcx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "dcy" = ( /turf/open/floor/almayer{ dir = 1; @@ -25169,12 +21598,25 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) +"ddj" = ( +/obj/structure/bed/chair/bolted, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) "ddk" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/living/briefing) +"ddp" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "ddw" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/sign/safety/terminal{ @@ -25184,6 +21626,15 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop/hangar) +"ddx" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "ddz" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 @@ -25200,6 +21651,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_p) +"ddL" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "ddM" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/almayer, @@ -25241,13 +21696,8 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) "deH" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "deT" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -25264,19 +21714,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"dfc" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/structure/sign/safety/airlock{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_umbilical) "dfg" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -25306,14 +21743,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"dfO" = ( -/obj/structure/machinery/medical_pod/bodyscanner{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "dgg" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -25348,6 +21777,12 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) +"dgP" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "dha" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -25387,6 +21822,10 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"dhQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "dhR" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; @@ -25397,27 +21836,19 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"dhU" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/port_hallway) -"dhZ" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 +"div" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/sign/safety/airlock{ - pixel_x = 15; - pixel_y = 32 +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/hallways/lower/starboard_midship_hallway) "diz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat1-D4"; @@ -25441,18 +21872,13 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"diP" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - name = "\improper Brig Lobby"; - closeOtherId = "brignorth" - }, +"djd" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 6; + icon_state = "blue" }, -/area/almayer/shipboard/brig/lobby) +/area/almayer/hallways/upper/aft_hallway) "djQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -25550,6 +21976,12 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) +"dkP" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "dkX" = ( /obj/structure/bed/chair/comfy/delta, /obj/effect/decal/cleanable/dirt, @@ -25563,6 +21995,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"dlT" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "dmg" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ @@ -25574,6 +22012,18 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"dmr" = ( +/obj/structure/transmitter{ + name = "Brig Offices Telephone"; + phone_category = "MP Dept."; + phone_id = "Brig Main Offices"; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "dmv" = ( /turf/open/floor/almayer{ dir = 8; @@ -25639,6 +22089,13 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) +"dni" = ( +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "dnm" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/intelligence_officer, /obj/structure/machinery/light{ @@ -25672,6 +22129,13 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) +"dnP" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "dnS" = ( /obj/structure/safe, /turf/open/floor/almayer{ @@ -25692,10 +22156,6 @@ icon_state = "plating_striped" }, /area/almayer/maint/hull/lower/l_a_p) -"dod" = ( -/obj/structure/closet/crate/trashcart, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) "dof" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ name = "\improper Upper Engineering" @@ -25707,14 +22167,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) -"doj" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "doJ" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -25761,6 +22213,27 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"dpA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) +"dpN" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "dpO" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; @@ -25771,6 +22244,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/delta) +"dpS" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "dqb" = ( /obj/structure/sign/safety/security{ pixel_x = -16 @@ -25815,16 +22294,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices) -"dqN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"dqZ" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) "drj" = ( /obj/structure/window/reinforced{ dir = 4; @@ -25875,18 +22344,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) -"dsk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "dsA" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/almayer{ @@ -25894,18 +22351,17 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/execution) +"dsY" = ( +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "dtH" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"dtM" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "dtZ" = ( /obj/structure/platform_decoration{ dir = 4 @@ -25988,6 +22444,14 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"duR" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "duT" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -26051,6 +22515,13 @@ icon_state = "test_floor4" }, /area/almayer/maint/upper/mess) +"dwj" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "dwl" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -26082,6 +22553,15 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) +"dwJ" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "dxu" = ( /obj/structure/sink{ dir = 1; @@ -26107,6 +22587,17 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) +"dxJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "dxK" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -26175,6 +22666,15 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) +"dyq" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "dyx" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; @@ -26192,6 +22692,11 @@ icon_state = "plating" }, /area/almayer/squads/req) +"dyJ" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/aft_hallway) "dyK" = ( /obj/structure/machinery/light{ dir = 8 @@ -26204,17 +22709,6 @@ "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 @@ -26227,6 +22721,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"dAm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "dAq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -26239,6 +22741,18 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"dAr" = ( +/obj/structure/pipes/standard/cap/hidden{ + dir = 4 + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 14; + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/stern_hallway) "dAA" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -26267,6 +22781,20 @@ icon_state = "plate" }, /area/almayer/command/cic) +"dBg" = ( +/obj/structure/stairs{ + dir = 1 + }, +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_midship_hallway) "dBj" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -26331,13 +22859,21 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_one) -"dBQ" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"dBR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +/obj/structure/machinery/light, +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ + req_access = null; + req_one_access = null; + req_one_access_txt = "7;23;27;102" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "dBS" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -26348,6 +22884,25 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/execution) +"dCb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "dCe" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -26409,14 +22964,35 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) +"dCM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) +"dDc" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "dDp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "dDt" = ( /obj/structure/toilet{ @@ -26491,6 +23067,13 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"dEo" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "dEp" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/lower/cryo_cells) @@ -26504,16 +23087,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) -"dEC" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/starboard_hallway) "dEG" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -26530,6 +23103,23 @@ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/north2) +"dEK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"dEL" = ( +/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/hallways/lower/port_aft_hallway) "dEQ" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco, @@ -26547,12 +23137,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) +"dFd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "dFk" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "redcorner" }, /area/almayer/command/lifeboat) +"dFl" = ( +/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/starboard_hallway) "dFF" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" @@ -26568,18 +23176,20 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_p) +"dFM" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "dFR" = ( /turf/open/floor/almayer{ dir = 9; 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) "dFW" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/cell_charger, @@ -26608,10 +23218,7 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "dGr" = ( /obj/structure/pipes/vents/scrubber{ @@ -26646,6 +23253,17 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/lower/l_f_s) +"dGT" = ( +/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/mp_bunks) "dGU" = ( /obj/structure/sign/poster/propaganda{ pixel_x = -27 @@ -26709,17 +23327,13 @@ /area/almayer/living/bridgebunks) "dIi" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/plating/plating_catwalk{ - allow_construction = 0 - }, +/turf/open/floor/plating/plating_catwalk/aicore, /area/almayer/command/airoom) "dIn" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 5 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "dID" = ( /obj/effect/decal/warning_stripes{ @@ -26770,58 +23384,50 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_bow) -"dJI" = ( -/obj/structure/bed/chair/comfy/bravo{ +"dJF" = ( +/obj/structure/pipes/standard/cap/hidden{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/arcturianstopsign{ +/obj/structure/sign/safety/hvac_old{ + pixel_x = 15; pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) -"dKc" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 9" + icon_state = "mono" }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/area/almayer/hallways/upper/stern_hallway) +"dJG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/area/almayer/engineering/lower/engine_core) -"dKm" = ( -/obj/structure/machinery/power/apc/almayer{ +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"dJI" = ( +/obj/structure/bed/chair/comfy/bravo{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - layer = 3.33; - pixel_x = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - layer = 3.33; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 3.3 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/arcturianstopsign{ + pixel_y = 32 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/living/briefing) +"dJJ" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/execution_storage) "dKp" = ( /turf/open/floor/almayer/research/containment/corner{ dir = 4 }, /area/almayer/medical/containment/cell/cl) +"dKD" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/aft_hallway) "dKK" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -26873,14 +23479,6 @@ 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; @@ -26900,25 +23498,6 @@ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/south1) -"dLE" = ( -/turf/open/floor/almayer{ - 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; @@ -26962,6 +23541,13 @@ icon_state = "redfull" }, /area/almayer/living/briefing) +"dNW" = ( +/obj/structure/machinery/firealarm{ + dir = 1; + pixel_y = -28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "dNZ" = ( /obj/structure/machinery/light{ dir = 1 @@ -26993,6 +23579,27 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"dOG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"dON" = ( +/obj/item/stack/cable_coil{ + pixel_x = 1; + pixel_y = 10 + }, +/obj/item/trash/pistachios, +/obj/item/tool/screwdriver, +/turf/open/floor/almayer{ + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/lower/repair_bay) +"dOW" = ( +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "dPd" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp{ @@ -27003,6 +23610,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_f_p) +"dPk" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "dPl" = ( /turf/open/floor/almayer{ dir = 4; @@ -27075,10 +23692,7 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "dQp" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -27099,23 +23713,6 @@ 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 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "dQA" = ( /obj/structure/pipes/standard/simple/visible{ dir = 4 @@ -27125,6 +23722,12 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower) +"dQV" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "dRh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -27135,6 +23738,34 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) +"dRj" = ( +/obj/structure/toilet{ + pixel_y = 13 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/mp_bunks) +"dRo" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/bridge{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/west{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "dRs" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -27150,18 +23781,20 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"dRw" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17 +"dRA" = ( +/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 = "plate" + icon_state = "red" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/shipboard/brig/starboard_hallway) "dRD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/security{ @@ -27174,15 +23807,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices/flight) -"dRG" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "dRP" = ( /obj/structure/bed/chair/comfy/orange, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -27244,6 +23868,16 @@ icon_state = "rasputin3" }, /area/almayer/powered/agent) +"dTd" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddernortheast"; + name = "\improper North East Ladders Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "dTn" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -27501,6 +24135,13 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) +"dYb" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "dYc" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -27567,12 +24208,6 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"dZd" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "dZr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -27591,6 +24226,20 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"dZP" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) +"dZR" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "dZZ" = ( /obj/structure/surface/rack, /obj/item/tool/weldpack, @@ -27696,41 +24345,19 @@ 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) "ebI" = ( /obj/item/clothing/shoes/red, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_m_p) "ebN" = ( -/turf/closed/wall/almayer/white/reinforced, +/turf/closed/wall/almayer/aicore/reinforced, /area/almayer/command/airoom) +"ebV" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "ecb" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -27760,19 +24387,15 @@ "ecr" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/captain_mess) -"ecR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/vents/pump{ - dir = 1 +"ecz" = ( +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + dir = 8; + icon_state = "silver" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/upper/aft_hallway) "ecS" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -27791,6 +24414,12 @@ icon_state = "plate" }, /area/almayer/shipboard/navigation) +"edn" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "edo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -27902,6 +24531,16 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"efk" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "s_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "efC" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -27974,12 +24613,6 @@ /obj/structure/platform_decoration, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"egq" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = -16 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "egt" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Chapel" @@ -27994,6 +24627,13 @@ icon_state = "test_floor4" }, /area/almayer/living/chapel) +"egD" = ( +/obj/structure/bed/stool, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "egQ" = ( /obj/structure/prop/invuln/overhead_pipe{ dir = 4; @@ -28042,19 +24682,14 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"ehl" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/interrogation) "ehx" = ( /obj/effect/landmark/start/marine/tl/alpha, /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"ehH" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 3 - }, -/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{ @@ -28204,12 +24839,6 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"ejp" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/aft_hallway) "ejt" = ( /turf/open/floor/almayer/uscm/directional{ dir = 4 @@ -28245,15 +24874,22 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) -"ekF" = ( +"ekM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) +"ekR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + dir = 4; + icon_state = "orangecorner" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/starboard_umbilical) "ekY" = ( /obj/structure/machinery/door/airlock/almayer/generic/glass{ name = "\improper Memorial Room" @@ -28265,6 +24901,16 @@ icon_state = "test_floor4" }, /area/almayer/living/starboard_garden) +"ekZ" = ( +/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/warden_office) "elf" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -28285,12 +24931,6 @@ "elx" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower) -"elA" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "elE" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -28308,6 +24948,36 @@ dir = 1 }, /area/almayer/medical/containment/cell) +"elV" = ( +/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_storage) +"elY" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) "eme" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -28316,6 +24986,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/upper_medical) +"eml" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) "emn" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -28335,6 +25013,13 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) +"emw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "emA" = ( /turf/closed/wall/almayer/outer, /area/almayer/maint/hull/lower/l_a_s) @@ -28362,16 +25047,32 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"enx" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/machinery/status_display{ - pixel_y = 30 +"enz" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/sign/safety/bridge{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/west{ + pixel_y = -32 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) +"enF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"enK" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "enQ" = ( /obj/structure/surface/rack, /obj/item/frame/table, @@ -28398,6 +25099,14 @@ /obj/structure/machinery/light/small, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/s_bow) +"eoy" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "eoE" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ @@ -28417,6 +25126,13 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_stern) +"epk" = ( +/obj/structure/surface/table/almayer, +/obj/item/tank/emergency_oxygen/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "epu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -28627,39 +25343,21 @@ }, /area/almayer/maint/hull/lower/l_m_s) "erN" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/pipes/vents/pump/no_boom{ - dir = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_plates" }, /area/almayer/command/airoom) -"erS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) -"esi" = ( -/obj/structure/sign/safety/stairs{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/west{ - pixel_y = 32 +"esd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/machinery/door_control{ - id = "laddernorthwest"; - name = "North West Ladders Shutters"; - pixel_y = 24; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "esm" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -28813,9 +25511,7 @@ pixel_y = 24; req_one_access_txt = "200;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "euO" = ( /obj/structure/machinery/light{ @@ -28887,16 +25583,13 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north1) -"ewo" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" +"ewc" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/light{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "ewr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -28944,10 +25637,23 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"exc" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "exi" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"exl" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "exy" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -28959,6 +25665,14 @@ icon_state = "tcomms" }, /area/almayer/engineering/upper_engineering/starboard) +"exQ" = ( +/turf/open/floor/almayer{ + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"eyD" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/starboard_hallway) "eyG" = ( /obj/structure/platform, /turf/open/floor/almayer{ @@ -29044,6 +25758,12 @@ icon_state = "red" }, /area/almayer/squads/alpha) +"eAm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) "eAC" = ( /obj/structure/machinery/light{ dir = 4 @@ -29086,14 +25806,6 @@ "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 @@ -29127,21 +25839,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eBj" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, +"eBx" = ( +/obj/structure/closet/emcloset/legacy, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) -"eBC" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 + icon_state = "cargo" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/shipboard/brig/starboard_hallway) "eBE" = ( /obj/structure/machinery/photocopier{ anchored = 0 @@ -29283,20 +25986,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"eDG" = ( -/obj/structure/barricade/handrail{ - dir = 1; - pixel_y = 2 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "eEc" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -29327,6 +26016,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"eEF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) +"eFa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "eFj" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -29355,6 +26059,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) +"eFI" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "eFK" = ( /obj/structure/bed{ icon_state = "abed" @@ -29439,13 +26154,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) -"eGg" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 8; - id = "vehicle_elevator_railing_aux" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "eGh" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/surgery/scalpel{ @@ -29455,34 +26163,13 @@ /obj/item/stack/cable_coil, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"eGl" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_x = -8; - pixel_y = 28 - }, -/obj/structure/sign/safety/intercom{ - pixel_x = 14; - pixel_y = 32 - }, +"eGq" = ( +/obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ dir = 4; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) -"eGr" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "green" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/hallways/lower/port_midship_hallway) "eGB" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer, @@ -29545,6 +26232,31 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_stern) +"eIO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/machinery/door_control{ + id = "hangarentrancenorth"; + name = "North Hangar Podlocks"; + pixel_y = -26; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) +"eJg" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "eJj" = ( /obj/structure/closet/crate, /obj/item/ammo_box/magazine/l42a, @@ -29615,14 +26327,8 @@ /obj/structure/machinery/status_display{ pixel_y = 30 }, -/obj/structure/machinery/light{ - dir = 4; - invisibility = 101; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "eKQ" = ( @@ -29648,14 +26354,30 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/upper/u_f_p) -"eLz" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"eLp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, +/obj/structure/machinery/computer/supplycomp/vehicle, /turf/open/floor/almayer{ - icon_state = "silver" + icon_state = "plate" }, -/area/almayer/hallways/repair_bay) +/area/almayer/hallways/lower/vehiclehangar) +"eLu" = ( +/obj/structure/sign/safety/three{ + pixel_x = 31; + pixel_y = -8 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) "eLC" = ( /obj/structure/surface/table/almayer, /obj/item/tool/kitchen/tray, @@ -29684,6 +26406,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"eLX" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "eMh" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Laundry Room" @@ -29698,6 +26429,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"eMI" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "eMJ" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -29724,13 +26461,16 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"eMZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "eNi" = ( /turf/closed/wall/almayer, /area/almayer/engineering/ce_room) -"eNv" = ( -/obj/structure/largecrate/random, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) "eNI" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -29741,6 +26481,12 @@ icon_state = "test_floor4" }, /area/almayer/medical/containment) +"eNL" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "eNR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -29748,6 +26494,14 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) +"eOx" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "eOM" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -29768,14 +26522,15 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"ePA" = ( -/obj/structure/machinery/light{ - dir = 1 +"ePq" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 8; + icon_state = "orange" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/starboard_umbilical) "ePM" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 @@ -29829,6 +26584,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) +"eQh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/aft_hallway) "eQm" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -29837,6 +26601,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_bow) +"eQz" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "eQJ" = ( /obj/structure/bed/chair{ dir = 1 @@ -29899,9 +26669,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) -"eRL" = ( -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "eRR" = ( /obj/item/clothing/head/helmet/marine{ pixel_x = 16; @@ -29942,6 +26709,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"eSp" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = -16 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "eSU" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer1" @@ -29963,6 +26736,15 @@ /obj/effect/landmark/crap_item, /turf/open/floor/almayer, /area/almayer/living/briefing) +"eTx" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_aft_hallway) "eTD" = ( /obj/structure/bed/chair{ dir = 4 @@ -29971,15 +26753,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) -"eTO" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "eUe" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -29987,6 +26760,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/stern) +"eUf" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "eUh" = ( /obj/structure/window/reinforced{ dir = 8 @@ -30115,6 +26894,17 @@ "eWs" = ( /turf/closed/wall/almayer, /area/almayer/maint/hull/lower/l_f_s) +"eWv" = ( +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"eWx" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "eWF" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -30123,6 +26913,12 @@ icon_state = "test_floor4" }, /area/almayer/living/basketball) +"eWN" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "eXb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -30139,10 +26935,11 @@ "eXk" = ( /obj/effect/landmark/late_join/working_joe, /obj/effect/landmark/start/working_joe, -/obj/structure/machinery/light{ - dir = 8 +/obj/structure/machinery/light/small{ + dir = 8; + light_color = "#d69c46" }, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/plating/plating_catwalk/aicore, /area/almayer/command/airoom) "eXq" = ( /turf/closed/wall/almayer, @@ -30221,9 +27018,7 @@ dir = 8; pixel_x = 29 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "eYD" = ( /obj/effect/decal/warning_stripes{ @@ -30270,16 +27065,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/port) -"eZi" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "eZm" = ( /turf/closed/wall/almayer, /area/almayer/maint/hull/upper/p_stern) @@ -30310,18 +27095,26 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"eZC" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "eZH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"fad" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "green" +"eZR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "fag" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -30329,14 +27122,16 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/execution) -"fau" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/junction{ +"far" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ dir = 4; - icon_state = "pipe-j2" + icon_state = "orangecorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "faE" = ( /obj/structure/bookcase{ icon_state = "book-5"; @@ -30459,15 +27254,6 @@ icon_state = "orange" }, /area/almayer/maint/hull/lower/l_m_s) -"fbH" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/lower/engine_core) "fbR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -30481,6 +27267,17 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"fbU" = ( +/obj/item/stool, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "fca" = ( /obj/structure/disposalpipe/segment{ layer = 5.1; @@ -30551,17 +27348,20 @@ /area/almayer/engineering/lower) "fcX" = ( /obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ - dir = 8 - }, /obj/structure/platform_decoration{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 8 }, /area/almayer/command/airoom) +"fdf" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "fdx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -30609,6 +27409,14 @@ "feb" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/brig/execution) +"feo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "feq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -30734,6 +27542,15 @@ icon_state = "green" }, /area/almayer/squads/req) +"fgt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "fgE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -30791,6 +27608,12 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) +"fic" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "fie" = ( /turf/open/floor/almayer{ dir = 1; @@ -30814,6 +27637,11 @@ /obj/item/device/camera_film, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) +"fiH" = ( +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/stern_hallway) "fiN" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, @@ -30843,13 +27671,6 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/upper/u_m_s) -"fkO" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "fkX" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 8 @@ -30874,6 +27695,18 @@ icon_state = "silver" }, /area/almayer/living/briefing) +"fml" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "fmv" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -30883,9 +27716,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "fmB" = ( /obj/structure/bed/chair/comfy{ @@ -30895,6 +27726,20 @@ icon_state = "bluecorner" }, /area/almayer/living/pilotbunks) +"fmZ" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_umbilical) +"fnc" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "fnv" = ( /obj/structure/machinery/light{ dir = 4 @@ -30928,15 +27773,6 @@ icon_state = "redfull" }, /area/almayer/medical/upper_medical) -"fnC" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "fnH" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -31026,10 +27862,21 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"fpO" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +"fpI" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) +"fpM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "fpR" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, @@ -31079,6 +27926,20 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"fqw" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"fqA" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_midship_hallway) "fqC" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -31104,6 +27965,26 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) +"fqQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"fqU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "fqW" = ( /obj/structure/machinery/recharge_station, /turf/open/floor/almayer{ @@ -31144,6 +28025,42 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"frt" = ( +/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/warden_office) "frz" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ name = "\improper Exterior Airlock"; @@ -31161,6 +28078,13 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) +"frI" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "frM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -31170,9 +28094,7 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "frV" = ( /obj/structure/toilet{ @@ -31180,26 +28102,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_s) -"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) -"fsd" = ( +"fsf" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "N"; + pixel_y = 1 }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "orangecorner" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/lower/port_umbilical) "fsp" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -31210,15 +28122,18 @@ icon_state = "plate" }, /area/almayer/living/gym) -"fsH" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 +"fsu" = ( +/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{ - dir = 1; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_hallway) "fsR" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -31241,23 +28156,15 @@ icon_state = "plating_striped" }, /area/almayer/living/cryo_cells) -"fti" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 2; - id = "vehicle_elevator_railing" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"ftb" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "mono" + dir = 5; + icon_state = "blue" }, -/area/almayer/hallways/vehiclehangar) -"ftx" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_hallway) "ftG" = ( /obj/structure/sign/safety/life_support{ pixel_x = 8; @@ -31267,16 +28174,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) -"fut" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"ftZ" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + dir = 4; + icon_state = "green" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/upper/aft_hallway) "fuz" = ( /obj/structure/machinery/cm_vending/clothing/pilot_officer, /turf/open/floor/almayer{ @@ -31303,6 +28209,22 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"fuU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_umbilical) +"fuY" = ( +/obj/structure/bed/chair/bolted{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) "fva" = ( /obj/structure/machinery/light{ dir = 1 @@ -31331,6 +28253,19 @@ icon_state = "silver" }, /area/almayer/living/briefing) +"fvj" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "fvo" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clothing/glasses/welding{ @@ -31358,6 +28293,12 @@ icon_state = "redfull" }, /area/almayer/command/cic) +"fvE" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "fvJ" = ( /obj/structure/machinery/cm_vending/sorted/medical/bolted, /turf/open/floor/almayer{ @@ -31365,13 +28306,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) -"fvK" = ( -/obj/structure/sign/safety/galley{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "fvN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -31382,6 +28316,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/port_point_defense) +"fvV" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "fwD" = ( /obj/item/reagent_container/food/snacks/grown/poppy{ pixel_x = 4; @@ -31392,6 +28339,9 @@ icon_state = "plate" }, /area/almayer/living/starboard_garden) +"fwK" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/hallways/lower/starboard_umbilical) "fwM" = ( /obj/structure/surface/table/almayer, /obj/item/paper, @@ -31458,14 +28408,6 @@ 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; @@ -31483,6 +28425,12 @@ }, /turf/open/floor/plating/almayer, /area/almayer/living/briefing) +"fyI" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "fyT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -31501,6 +28449,17 @@ icon_state = "test_floor4" }, /area/almayer/maint/upper/mess) +"fzc" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) +"fzm" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "fzq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -31569,12 +28528,21 @@ /obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"fAE" = ( -/obj/structure/closet/firecloset/full, +"fAW" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"fBi" = ( /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4; + icon_state = "redcorner" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/starboard_midship_hallway) "fBo" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -31583,26 +28551,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) -"fBD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"fBA" = ( +/obj/structure/sign/safety/high_voltage{ + pixel_y = -32 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"fBL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" + icon_state = "blue" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/aft_hallway) "fBO" = ( /obj/structure/machinery/chem_master{ vial_maker = 1 @@ -31615,6 +28575,14 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"fCg" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "fCi" = ( /obj/structure/surface/table/almayer, /obj/item/organ/lungs/prosthetic, @@ -31628,12 +28596,33 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) +"fCG" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "fCL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"fCP" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) +"fCT" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "fDh" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -31656,6 +28645,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) +"fDk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "fDG" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ @@ -31721,13 +28718,17 @@ icon_state = "plate" }, /area/almayer/medical/morgue) +"fEF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "fEN" = ( /obj/structure/machinery/camera/autoname/almayer/containment/ares{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "fER" = ( /obj/structure/machinery/autolathe, @@ -31812,6 +28813,16 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) +"fGd" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/lower/vehiclehangar) "fGg" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/almayer, @@ -31854,6 +28865,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) +"fGD" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "fHb" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk, @@ -31893,7 +28913,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/almayer{ access_modified = 1; name = "\improper Requisitions Auxiliary Storage Room"; - req_one_access = "19;21" + req_one_access_txt = "19;21" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -31927,6 +28947,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"fJt" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "fJu" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/plating_catwalk, @@ -31969,18 +28998,16 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "cargo_arrow" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_arrow"; + dir = 8 }, /area/almayer/command/airoom) "fKe" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "fKh" = ( /obj/structure/window/framed/almayer, @@ -32060,6 +29087,13 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"fLf" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "fLg" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/snacks/wrapped/barcardine{ @@ -32141,9 +29175,9 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 4 }, /area/almayer/command/airoom) "fMt" = ( @@ -32153,7 +29187,7 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -32174,19 +29208,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"fMA" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "fMU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -32200,6 +29221,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_p) +"fNd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/vents/pump/on, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "fNi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -32215,13 +29245,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"fNC" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/junction{ - dir = 8 +"fNH" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_midship_hallway) "fOk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -32386,6 +29415,15 @@ }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) +"fQU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "fRg" = ( /obj/structure/closet/emcloset, /obj/structure/machinery/camera/autoname/almayer{ @@ -32411,6 +29449,13 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"fRL" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "fRS" = ( /obj/effect/landmark/start/warden, /obj/effect/decal/warning_stripes{ @@ -32445,13 +29490,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"fSK" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "fTj" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -32486,19 +29524,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/laundry) -"fTU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "fUz" = ( /obj/structure/surface/rack, /obj/item/storage/box/cups{ @@ -32600,6 +29625,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"fXf" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "fXg" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -32622,11 +29656,6 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) -"fXB" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "fXE" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -32715,18 +29744,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"fZx" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "fZy" = ( /obj/structure/sign/poster{ pixel_y = -32 @@ -32749,6 +29766,9 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower) +"fZE" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "fZG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -32796,15 +29816,12 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"gax" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"gar" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "gaJ" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/cryo) @@ -32836,9 +29853,7 @@ pixel_x = 8; pixel_y = -8 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "gbg" = ( /obj/structure/sign/safety/terminal{ @@ -32862,8 +29877,8 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "gbs" = ( @@ -32884,6 +29899,16 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"gbR" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "gcm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -32918,12 +29943,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/sea_office) -"gcT" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "gde" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -32943,15 +29962,16 @@ icon_state = "red" }, /area/almayer/hallways/hangar) -"gds" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"gdG" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" + dir = 5; + icon_state = "red" }, -/area/almayer/hallways/repair_bay) +/area/almayer/shipboard/brig/mp_bunks) "gdJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -33021,15 +30041,30 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"geH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" +"geu" = ( +/obj/structure/machinery/light, +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"gfd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" + icon_state = "red" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "gfo" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -33043,6 +30078,15 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"gft" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "gfu" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -33052,10 +30096,11 @@ icon_state = "S"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) +"gfv" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "gfE" = ( /obj/structure/machinery/recharge_station, /turf/open/floor/plating, @@ -33095,6 +30140,14 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"ggo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "ggt" = ( /turf/open/floor/almayer{ dir = 5; @@ -33152,21 +30205,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_s) -"ghD" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, +"ghF" = ( /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"ghX" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 14" +/area/almayer/hallways/lower/vehiclehangar) +"gii" = ( +/obj/structure/bed/chair/bolted{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "red" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/shipboard/brig/interrogation) "gio" = ( /obj/structure/closet/emcloset, /obj/structure/sign/safety/restrictedarea{ @@ -33188,15 +30238,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"giB" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "giR" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -33210,6 +30251,20 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"gjg" = ( +/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 = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "gjm" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -33222,10 +30277,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"gjn" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "gjq" = ( /obj/structure/platform{ dir = 8 @@ -33265,9 +30316,7 @@ /obj/item/storage/box/ids{ pixel_x = -4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "gjB" = ( /obj/structure/machinery/light{ @@ -33310,6 +30359,15 @@ icon_state = "plate" }, /area/almayer/command/cic) +"glc" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "gll" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -33338,6 +30396,17 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"glG" = ( +/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/medical) "glH" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -33351,6 +30420,13 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop) +"glP" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution_storage) "gmb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -33378,6 +30454,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"gmZ" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "gnu" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/green, @@ -33389,6 +30471,12 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"gnB" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "gnM" = ( /obj/structure/surface/rack, /obj/item/frame/table, @@ -33398,15 +30486,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_p) -"gob" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "gof" = ( /obj/structure/platform_decoration{ dir = 1 @@ -33434,6 +30513,19 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/weapon_room) +"goo" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 8; + id = "laddersoutheast"; + name = "\improper South East Ladders Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_midship_hallway) "goy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -33499,12 +30591,22 @@ "gpY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/lifeboat_pumps/north1) +"gqf" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "gqt" = ( /obj/structure/sign/safety/storage{ pixel_x = -17 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_s) +"gqv" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "gqP" = ( /obj/structure/largecrate/random/case, /obj/structure/machinery/camera/autoname/almayer{ @@ -33543,10 +30645,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/s_bow) -"grF" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "grG" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 @@ -33692,6 +30790,18 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"gtD" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"gtH" = ( +/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/hallways/lower/starboard_aft_hallway) "gtQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -33712,14 +30822,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"guc" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "guo" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -33739,6 +30841,14 @@ icon_state = "plate" }, /area/almayer/maint/upper/u_m_s) +"guK" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "guS" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -33773,6 +30883,10 @@ icon_state = "silver" }, /area/almayer/command/cic) +"gvK" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "gvU" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -33868,6 +30982,17 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"gxt" = ( +/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/warden_office) "gxI" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/maint/hull/upper/s_bow) @@ -33886,6 +31011,12 @@ dir = 8 }, /area/almayer/medical/containment/cell) +"gxR" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "gxU" = ( /obj/structure/surface/table/almayer, /obj/item/toy/deck, @@ -33894,39 +31025,41 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"gyb" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) +"gym" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/mp_bunks) +"gyn" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "gyv" = ( /obj/structure/platform_decoration{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"gyy" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, +"gyw" = ( /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"gyC" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/two{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 + icon_state = "plate" }, +/area/almayer/hallways/lower/port_aft_hallway) +"gyE" = ( /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + dir = 1; + icon_state = "green" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "gyH" = ( /obj/item/tool/warning_cone{ pixel_x = -12; @@ -34013,6 +31146,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) +"gzM" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_midship_hallway) "gzN" = ( /obj/structure/sign/safety/maint{ pixel_x = 8; @@ -34037,9 +31180,7 @@ pixel_y = 8; req_one_access_txt = "91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "gAj" = ( /obj/structure/bed/chair/comfy/charlie{ @@ -34101,6 +31242,12 @@ }, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_p) +"gBg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "gBo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -34131,21 +31278,18 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"gBZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/upper/stern_hallway) "gCf" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"gCl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "gCu" = ( /obj/structure/prop/invuln/lattice_prop{ icon_state = "lattice12"; @@ -34217,6 +31361,11 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) +"gDQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "gDW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34280,6 +31429,24 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"gFL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"gFN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "gFP" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/stern_point_defense) @@ -34306,22 +31473,6 @@ 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{ @@ -34351,6 +31502,14 @@ }, /turf/open/floor/plating, /area/almayer/hallways/hangar) +"gGw" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/vehiclehangar) "gGx" = ( /obj/structure/filingcabinet/chestdrawer{ density = 0; @@ -34420,6 +31579,17 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"gHX" = ( +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 + }, +/turf/open/floor/almayer{ + allow_construction = 0; + icon_state = "plate" + }, +/area/almayer/hallways/upper/aft_hallway) "gHZ" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -34443,6 +31613,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"gIz" = ( +/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/starboard_hallway) "gII" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -34454,6 +31639,19 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) +"gIN" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"gIO" = ( +/obj/structure/bed/chair/bolted{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/interrogation) "gIU" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/tapes{ @@ -34478,6 +31676,32 @@ }, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_s) +"gJp" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/repair_bay) +"gJE" = ( +/obj/structure/machinery/door_control{ + id = "Interrogation Shutters"; + name = "\improper Shutters"; + pixel_x = 24; + pixel_y = 12; + req_access_txt = "3" + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) "gJF" = ( /turf/closed/wall/almayer/outer, /area/almayer/maint/hull/upper/s_stern) @@ -34524,12 +31748,25 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"gKo" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "gKv" = ( /obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_bow) +"gKw" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "gKB" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/firealarm{ @@ -34549,6 +31786,11 @@ icon_state = "redfull" }, /area/almayer/shipboard/port_missiles) +"gKK" = ( +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/almayer/hallways/lower/repair_bay) "gKR" = ( /obj/structure/closet/emcloset, /obj/structure/machinery/light{ @@ -34653,18 +31895,6 @@ icon_state = "test_floor4" }, /area/almayer/living/port_emb) -"gMa" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = -32 - }, -/obj/structure/sign/safety/east{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "gMd" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -34674,6 +31904,13 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"gMk" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "gMJ" = ( /obj/structure/largecrate/supply/weapons/pistols, /turf/open/floor/plating/plating_catwalk, @@ -34707,10 +31944,20 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"gMS" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "gMU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -34748,19 +31995,18 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"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" +"gNy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 5; + icon_state = "plating" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/lower/vehiclehangar) "gNN" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/plating/plating_catwalk, @@ -34812,9 +32058,9 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 4 }, /area/almayer/command/airoom) "gOC" = ( @@ -34831,6 +32077,12 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"gOS" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) "gPc" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -34846,24 +32098,11 @@ vector_x = -97; vector_y = 65 }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - dir = 4 - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"gPF" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "gPS" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -34873,6 +32112,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) +"gPU" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "gQk" = ( /obj/structure/surface/table/almayer, /obj/structure/sign/safety/terminal{ @@ -34927,6 +32176,17 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"gRJ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_umbilical) "gRP" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -34981,12 +32241,28 @@ }, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_s) +"gSz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) "gSH" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) +"gTk" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "gTH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/skills{ @@ -35000,8 +32276,8 @@ dir = 4; pixel_y = -18 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "gTK" = ( @@ -35012,6 +32288,20 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/p_bow) +"gTV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "gUf" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/almayer{ @@ -35031,6 +32321,13 @@ /obj/structure/machinery/power/apc/almayer, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/lower/s_bow) +"gUk" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "gUn" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, @@ -35072,9 +32369,9 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "cargo_arrow" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_arrow"; + dir = 4 }, /area/almayer/command/airoom) "gUS" = ( @@ -35137,6 +32434,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"gWm" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"gWt" = ( +/obj/structure/surface/table/almayer, +/obj/item/pipe{ + dir = 9 + }, +/obj/item/tool/screwdriver{ + layer = 3.6; + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/tool/crowbar/red{ + pixel_x = 17 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "gWu" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -35202,6 +32523,34 @@ icon_state = "plating" }, /area/almayer/shipboard/sea_office) +"gYg" = ( +/obj/structure/surface/table/almayer, +/obj/item/prop/almayer/flight_recorder{ + pixel_x = 9 + }, +/obj/item/tool/weldingtool{ + pixel_x = -7; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) +"gYj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "gYl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35221,6 +32570,15 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) +"gYx" = ( +/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/starboard_hallway) "gYI" = ( /obj/structure/platform{ dir = 4 @@ -35255,6 +32613,16 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) +"gZW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "had" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -35339,12 +32707,16 @@ icon_state = "plate" }, /area/almayer/maint/lower/s_bow) -"haT" = ( -/obj/structure/machinery/light, +"haY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "redcorner" }, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "hbl" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -35378,6 +32750,12 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) +"hbA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "hbE" = ( /obj/structure/largecrate/random, /obj/item/reagent_container/food/snacks/cheesecakeslice{ @@ -35433,15 +32811,6 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"hcs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "hcw" = ( /obj/structure/surface/table/reinforced/black, /obj/item/explosive/grenade/high_explosive/training, @@ -35465,21 +32834,21 @@ icon_state = "cargo" }, /area/almayer/squads/delta) +"hcX" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "hdd" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"hdh" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "hds" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -35505,27 +32874,34 @@ icon_state = "green" }, /area/almayer/squads/req) -"heb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"hdQ" = ( +/obj/structure/closet/secure_closet{ + name = "\improper Execution Firearms" }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/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/hallways/starboard_hallway) +/area/almayer/shipboard/brig/execution_storage) +"hdV" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_midship_hallway) "hec" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"hee" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "heo" = ( /obj/structure/machinery/power/apc/almayer{ cell_type = /obj/item/cell/hyper; @@ -35596,6 +32972,15 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) +"hfc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "hfv" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ @@ -35647,6 +33032,37 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"hgp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) +"hgs" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"hgA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "hgB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/intel, @@ -35691,17 +33107,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) -"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; @@ -35733,17 +33138,6 @@ }, /turf/open/floor/plating, /area/almayer/maint/lower/constr) -"hhe" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_y = 32 - }, -/obj/structure/sign/safety/press_area_ag{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_umbilical) "hhg" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -35764,17 +33158,6 @@ /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{ @@ -35814,6 +33197,16 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"hiP" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "hja" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -35873,6 +33266,12 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/processing) +"hjQ" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "hjT" = ( /obj/structure/machinery/light/small{ dir = 1; @@ -35904,12 +33303,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/port_point_defense) -"hkE" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"hkC" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "hkG" = ( /obj/structure/sign/safety/ammunition{ pixel_y = -32 @@ -35975,6 +33374,23 @@ icon_state = "plate" }, /area/almayer/engineering/lower) +"hlI" = ( +/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 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "hlT" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -36013,20 +33429,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) -"hmc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "hme" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -36049,6 +33451,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/starboard) +"hmv" = ( +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) "hmw" = ( /obj/structure/platform{ dir = 1 @@ -36073,6 +33481,16 @@ "hmA" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/maint/hull/upper/p_bow) +"hmB" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 + }, +/obj/structure/sign/safety/south{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "hmC" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; @@ -36097,20 +33515,6 @@ 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{ @@ -36168,6 +33572,22 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"hnE" = ( +/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{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "hnI" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -36181,6 +33601,32 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) +"hnP" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) +"hoc" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/lower/vehiclehangar) "hog" = ( /obj/structure/machinery/light/small, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -36190,30 +33636,30 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) -"hon" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 - }, +"hoK" = ( /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"hop" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 + dir = 8; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "hoT" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) +"hoW" = ( +/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{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) "hpk" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -36279,22 +33725,26 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) +"hqp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "hqu" = ( /obj/item/stack/sheet/metal, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) -"hqU" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +"hqx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "hqW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -36363,15 +33813,18 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"hrO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ +"hsc" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "hsg" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -36443,6 +33896,13 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) +"hte" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "htg" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -36461,6 +33921,11 @@ icon_state = "plate" }, /area/almayer/maint/lower/cryo_cells) +"htl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "htq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -36470,6 +33935,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_p) +"htF" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 + }, +/obj/structure/sign/safety/north{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "htG" = ( /obj/item/tool/soap, /obj/structure/machinery/light/small{ @@ -36498,6 +33973,20 @@ icon_state = "greenfull" }, /area/almayer/living/offices) +"hux" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "huD" = ( /obj/structure/machinery/light{ dir = 1 @@ -36519,6 +34008,12 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"huP" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "huU" = ( /obj/structure/machinery/door/airlock/almayer/security{ access_modified = 1; @@ -36534,11 +34029,9 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"hvp" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +"hvd" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/interrogation) "hvq" = ( /obj/structure/bed/chair{ dir = 8; @@ -36588,19 +34081,15 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/lower/l_f_p) +"hvz" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "hvH" = ( /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"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"; @@ -36610,6 +34099,19 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"hwH" = ( +/obj/structure/stairs{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "hxe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36662,26 +34164,11 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) -"hyc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "hyk" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"hyt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "hyw" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -36709,6 +34196,27 @@ "hyQ" = ( /turf/closed/wall/almayer, /area/almayer/living/synthcloset) +"hyV" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 32; + pixel_y = 24 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) +"hza" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "hzb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4; @@ -36750,6 +34258,15 @@ icon_state = "cargo" }, /area/almayer/squads/delta) +"hzG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "hzL" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -36780,6 +34297,16 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"hAf" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) +"hAh" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/hallways/lower/port_umbilical) "hAz" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -36788,6 +34315,19 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"hAA" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/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/lower/port_midship_hallway) "hAG" = ( /obj/structure/closet/crate/internals, /obj/item/handcuffs/cable/blue, @@ -36822,6 +34362,14 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"hBa" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "hBc" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -36830,6 +34378,30 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) +"hBr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) +"hBy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "hBz" = ( /obj/item/mortar_kit, /turf/open/floor/almayer{ @@ -36837,26 +34409,40 @@ icon_state = "plating" }, /area/almayer/squads/req) -"hBC" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "hBF" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"hBG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/repair_bay) "hBL" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/command/lifeboat) +"hBW" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) +"hCf" = ( +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "hCk" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ @@ -36883,6 +34469,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"hCF" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "hCS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin/uscm{ @@ -36917,13 +34509,6 @@ }, /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{ @@ -36939,6 +34524,16 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) +"hDU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "hDV" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -36961,6 +34556,20 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"hEg" = ( +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "hEj" = ( /obj/structure/machinery/vending/hydronutrients, /turf/open/floor/almayer{ @@ -36973,6 +34582,13 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"hEm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "hEr" = ( /obj/structure/filingcabinet{ density = 0; @@ -37026,6 +34642,15 @@ icon_state = "test_floor4" }, /area/almayer/medical/morgue) +"hGo" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "hGG" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -37097,23 +34722,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"hHJ" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "vehicle1door"; - name = "Vehicle Bay One" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) -"hHR" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) "hIp" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -37133,6 +34741,12 @@ icon_state = "dark_sterile" }, /area/almayer/command/corporateliaison) +"hIF" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "hIG" = ( /obj/structure/largecrate/random, /turf/open/floor/plating/plating_catwalk, @@ -37176,15 +34790,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"hJu" = ( -/obj/structure/sign/safety/stairs{ - pixel_x = -15 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "hJD" = ( /obj/structure/bed/sofa/south/grey/right{ pixel_y = 12 @@ -37197,6 +34802,15 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"hKe" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "hKl" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/warning_stripes{ @@ -37211,15 +34825,18 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"hKq" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +"hKJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + dir = 4; + icon_state = "silver" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/upper/aft_hallway) "hKO" = ( /obj/structure/largecrate/random/barrel/green, /obj/structure/sign/safety/maint{ @@ -37271,23 +34888,21 @@ 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, /area/almayer/living/chapel) -"hMs" = ( -/obj/structure/bed/stool, +"hMk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "hMG" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -37310,17 +34925,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_p) -"hNl" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 16 +"hNv" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + icon_state = "green" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_midship_hallway) "hNw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -37328,6 +34941,17 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/squads/charlie) +"hNB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + req_one_access = null; + req_one_access_txt = "7;19" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/vehiclehangar) "hNM" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/sheet/metal{ @@ -37354,15 +34978,22 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) -"hOR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"hOu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/machinery/door_control{ + id = "hangarentrancenorth"; + name = "North Hangar Podlocks"; + pixel_y = -26; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "hOV" = ( /turf/closed/wall/almayer, /area/almayer/maint/lower/constr) @@ -37385,6 +35016,15 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) +"hPr" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "hPu" = ( /obj/structure/largecrate/supply, /obj/item/tool/crowbar, @@ -37392,16 +35032,18 @@ icon_state = "cargo" }, /area/almayer/maint/hull/upper/u_f_p) -"hPI" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/shipboard/brig/perma) -"hPK" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"hPD" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, /turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "orange" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/lower/starboard_umbilical) +"hPI" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/brig/perma) "hPN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -37426,6 +35068,10 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"hQf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "hQw" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -37518,6 +35164,9 @@ icon_state = "plate" }, /area/almayer/living/numbertwobunks) +"hRu" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/shipboard/brig/execution_storage) "hRA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37552,9 +35201,7 @@ pixel_x = 14; pixel_y = 38 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "hSb" = ( /obj/structure/largecrate/random/secure, @@ -37621,13 +35268,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/morgue) -"hSL" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) "hTc" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -37651,9 +35291,7 @@ pixel_y = 16 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "hTt" = ( /obj/structure/machinery/brig_cell/cell_1{ @@ -37729,6 +35367,14 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) +"hUh" = ( +/obj/structure/machinery/medical_pod/bodyscanner{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) "hUk" = ( /turf/open/floor/almayer{ dir = 10; @@ -37752,6 +35398,28 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"hUU" = ( +/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_storage) "hUW" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -37834,6 +35502,10 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"hWD" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "hWH" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -37865,6 +35537,12 @@ icon_state = "blue" }, /area/almayer/command/cichallway) +"hWV" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/aft_hallway) "hXb" = ( /turf/open/floor/almayer{ dir = 1; @@ -37996,9 +35674,7 @@ icon_state = "N"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "hZw" = ( /obj/effect/decal/warning_stripes{ @@ -38038,18 +35714,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"hZU" = ( -/obj/structure/transmitter{ - name = "Brig Offices Telephone"; - phone_category = "MP Dept."; - phone_id = "Brig Main Offices"; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "hZZ" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating/plating_catwalk, @@ -38211,6 +35875,12 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"iea" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "ied" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -38293,9 +35963,7 @@ dir = 1; icon_state = "ramptop" }, -/turf/open/floor/almayer/no_build{ - dir = 4 - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "ieX" = ( /obj/structure/surface/table/almayer, @@ -38321,6 +35989,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"ifz" = ( +/obj/structure/machinery/keycard_auth{ + pixel_x = 25 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "igb" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -38332,21 +36009,20 @@ /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"igt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"igs" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/engineering/lower/engine_core) "igw" = ( /obj/structure/sign/poster/ad{ pixel_x = 30 @@ -38387,6 +36063,13 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) +"ihI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "ihM" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; @@ -38399,6 +36082,15 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"ihW" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "ihX" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -38448,16 +36140,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"iiC" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "iiZ" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ @@ -38473,6 +36155,14 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"ijn" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "ijr" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -38500,6 +36190,11 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) +"ikl" = ( +/turf/open/floor/almayer{ + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/lower/vehiclehangar) "iks" = ( /obj/structure/pipes/binary/pump/high_power/on{ dir = 1 @@ -38691,12 +36386,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) -"ioX" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "ipa" = ( /obj/effect/decal/cleanable/generic, /obj/effect/decal/warning_stripes{ @@ -38833,12 +36522,17 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) -"irF" = ( -/obj/structure/closet/emcloset/legacy, -/turf/open/floor/almayer{ - icon_state = "cargo" +"irJ" = ( +/obj/item/tool/wirecutters{ + pixel_y = -7 + }, +/obj/structure/sign/poster{ + desc = "You are becoming hysterical."; + icon_state = "poster11"; + pixel_y = 30 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "irS" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/cable/heavyduty{ @@ -38890,9 +36584,7 @@ dir = 1; icon_state = "ramptop" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "isI" = ( /obj/structure/sign/nosmoking_2{ @@ -38916,15 +36608,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) -"isW" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) "itf" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -38947,9 +36630,9 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 8 }, /area/almayer/command/airoom) "ito" = ( @@ -39072,12 +36755,6 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"ivB" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_hallway) "ivL" = ( /obj/structure/platform{ dir = 8 @@ -39099,6 +36776,12 @@ icon_state = "plate" }, /area/almayer/engineering/lower) +"ivV" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "iwf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -39193,18 +36876,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"ixC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/stern_hallway) "ixD" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -39231,6 +36902,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) +"ixT" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) +"iyC" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "iyE" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -39257,9 +36940,7 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "iyS" = ( /obj/structure/disposalpipe/segment{ @@ -39304,6 +36985,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"iAg" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/mp_bunks) "iAw" = ( /obj/item/tool/warning_cone{ pixel_x = -12 @@ -39325,14 +37012,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) -"iAB" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "iAE" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -39341,16 +37020,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"iAT" = ( -/obj/structure/sign/safety/south{ - pixel_x = -17; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "iBl" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -39416,12 +37085,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"iDd" = ( -/obj/structure/machinery/door/poddoor/railing{ - id = "vehicle_elevator_railing_aux" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "iDk" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -39434,28 +37097,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_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) "iEa" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_bow) -"iEb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "iEg" = ( /turf/open/floor/almayer{ dir = 9; @@ -39499,6 +37146,17 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"iEM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "iFc" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/wood/ship, @@ -39508,6 +37166,17 @@ icon_state = "bluefull" }, /area/almayer/living/pilotbunks) +"iFp" = ( +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/almayer{ + allow_construction = 0; + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "iFA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -39547,6 +37216,15 @@ }, /turf/open/floor/almayer, /area/almayer/living/offices) +"iFK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "iFM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -39574,6 +37252,14 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) +"iGi" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "iGn" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/closet/secure_closet/surgical{ @@ -39584,6 +37270,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) +"iGE" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "iGQ" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 @@ -39595,6 +37287,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"iGZ" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "iHc" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) @@ -39655,6 +37356,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) +"iIQ" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "iIR" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -39790,17 +37500,15 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"iLo" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"iLm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/surface/table/almayer, -/obj/item/storage/donut_box, -/turf/open/floor/almayer{ - icon_state = "red" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "iLq" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -39867,6 +37575,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"iNh" = ( +/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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "iNk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -39874,6 +37593,21 @@ /obj/structure/machinery/power/apc/almayer, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_s) +"iNH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/maint{ + pixel_x = -17; + pixel_y = -8 + }, +/obj/structure/sign/safety/storage{ + pixel_x = -17; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "redcorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "iNR" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -39888,12 +37622,27 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"iOo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "iOD" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"iOP" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "iOX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -39912,6 +37661,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_s) +"iPt" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "iPv" = ( /obj/structure/bed/chair/comfy, /obj/structure/window/reinforced/ultra, @@ -39939,6 +37694,18 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"iPK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "iPN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/station_alert, @@ -39960,6 +37727,14 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"iPU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "iQd" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -40052,21 +37827,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_s) -"iRr" = ( -/obj/structure/machinery/light{ - dir = 1 +"iRi" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 }, /turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "green" }, -/area/almayer/hallways/port_hallway) -"iRx" = ( -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/hallways/upper/aft_hallway) +"iRp" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 8; + id = "Interrogation Shutters"; + name = "\improper Privacy Shutters" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/interrogation) "iRy" = ( /obj/structure/pipes/vents/pump/on, /turf/open/floor/almayer, @@ -40133,6 +37911,15 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) +"iSu" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "iSB" = ( /obj/structure/platform_decoration{ dir = 8 @@ -40210,19 +37997,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"iTK" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "iTQ" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -40278,6 +38052,24 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"iUG" = ( +/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/medical) +"iUV" = ( +/turf/open/floor/almayer{ + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "iUW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -40288,6 +38080,22 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"iUX" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/item/device/taperecorder, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/interrogation) "iVy" = ( /turf/open/floor/almayer{ dir = 1; @@ -40337,15 +38145,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) -"iWd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) "iWx" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -40376,19 +38175,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/s_bow) -"iWL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"iWN" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "iWQ" = ( /obj/effect/landmark/start/researcher, /obj/effect/landmark/late_join/researcher, @@ -40476,16 +38262,6 @@ icon_state = "cargo_arrow" }, /area/almayer/medical/hydroponics) -"iYj" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "iYm" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ @@ -40544,10 +38320,7 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "iZE" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, @@ -40562,15 +38335,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop/hangar) -"iZH" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) "iZP" = ( /obj/structure/platform{ dir = 8 @@ -40604,6 +38368,12 @@ icon_state = "plate" }, /area/almayer/squads/req) +"jae" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "jaf" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 4 @@ -40620,6 +38390,33 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"jak" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) +"jao" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"jas" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "jay" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/etool{ @@ -40631,6 +38428,13 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_p) +"jaz" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "jaH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ @@ -40648,15 +38452,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_p) -"jaK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "jaM" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -40782,12 +38577,6 @@ icon_state = "plating_striped" }, /area/almayer/engineering/upper_engineering/starboard) -"jdk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) "jdm" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -40813,6 +38602,10 @@ /obj/structure/largecrate/random/case/small, /turf/open/floor/plating, /area/almayer/maint/lower/constr) +"jdC" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "jdG" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -40823,6 +38616,12 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_three) +"jdZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "jeb" = ( /turf/closed/wall/almayer, /area/almayer/squads/alpha_bravo_shared) @@ -40913,18 +38712,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"jfD" = ( -/obj/structure/sign/safety/security{ - pixel_y = -32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "jfK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -41055,12 +38842,45 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/lower/l_m_s) -"jgU" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +"jgR" = ( +/obj/structure/sign/safety/rewire{ + pixel_y = 32 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/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/mp_bunks) +"jgS" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "jhb" = ( /obj/structure/sign/safety/cryo{ pixel_x = -6; @@ -41068,12 +38888,27 @@ }, /turf/closed/wall/almayer, /area/almayer/living/cryo_cells) +"jhc" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"jhm" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "jhn" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) +"jhs" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "jht" = ( /obj/structure/machinery/vending/coffee{ density = 0; @@ -41096,6 +38931,10 @@ icon_state = "green" }, /area/almayer/living/offices) +"jhA" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "jhD" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 @@ -41126,6 +38965,12 @@ }, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_s) +"jhS" = ( +/obj/structure/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing_aux" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "jhW" = ( /obj/structure/machinery/cryopod/right, /turf/open/floor/almayer{ @@ -41144,14 +38989,6 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/lobby) -"jiw" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "jiM" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -41182,19 +39019,13 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"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" +"jjl" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 8; + id = "vehicle_elevator_railing_aux" }, -/area/almayer/shipboard/brig/execution) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "jjn" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/door/window/eastright{ @@ -41210,13 +39041,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/lower_medical_medbay) -"jjs" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 4; - id = "vehicle_elevator_railing_aux" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "jjS" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -41230,36 +39054,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/medical_science) -"jjT" = ( -/obj/structure/machinery/light, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"jjZ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/vehicle/powerloader{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) -"jkd" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_hallway) "jkj" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/machinery/light{ @@ -41352,6 +39146,28 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) +"jkY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/closet/secure_closet/engineering_welding{ + req_one_access_txt = "7;23;27" + }, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/sign/safety/terminal{ + pixel_y = 32 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "jlc" = ( /turf/open/floor/almayer{ dir = 1; @@ -41369,6 +39185,25 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) +"jlD" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_fore_hallway) +"jlE" = ( +/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 = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "jlG" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -41462,6 +39297,17 @@ icon_state = "blue" }, /area/almayer/command/cichallway) +"jnc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "jne" = ( /turf/open/floor/almayer{ icon_state = "cargo" @@ -41476,24 +39322,43 @@ icon_state = "plate" }, /area/almayer/maint/upper/mess) -"jnw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"jno" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"jnp" = ( +/obj/structure/surface/table/almayer, +/obj/item/cell/high{ + pixel_x = -8; + pixel_y = 8 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/item/ashtray/plastic{ + icon_state = "ashtray_full_bl"; + pixel_x = 5; + pixel_y = 1 }, -/obj/structure/sign/safety/bridge{ - pixel_y = 32 +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 13 }, -/obj/structure/sign/safety/reception{ - pixel_x = 15; - pixel_y = 32 +/obj/item/trash/cigbutt{ + pixel_x = -6; + pixel_y = -9 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "mono" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/upper_engineering/port) +"jnx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "jnD" = ( /turf/open/floor/almayer{ dir = 1; @@ -41566,6 +39431,12 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) +"jpW" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "jqP" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -41573,7 +39444,7 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -41614,6 +39485,17 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"jru" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_y = 32 + }, +/obj/structure/sign/safety/press_area_ag{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_umbilical) "jrB" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -41644,6 +39526,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"jsa" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "jss" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -41691,30 +39584,51 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"jtj" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +"jsR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) +"jtj" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) -"jtJ" = ( -/obj/structure/machinery/door_control{ - id = "laddernorthwest"; - name = "North West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"jts" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "jtU" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_m_p) +"jtZ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"juo" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"jux" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "juD" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -41722,6 +39636,17 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/port_emb) +"juS" = ( +/obj/structure/machinery/gear{ + id = "vehicle_elevator_gears" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/lower/vehiclehangar) "juX" = ( /obj/structure/platform_decoration{ dir = 1 @@ -41742,6 +39667,12 @@ icon_state = "plate" }, /area/almayer/medical/lower_medical_medbay) +"jvc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) "jvp" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -41778,12 +39709,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"jvz" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/aft_hallway) "jvB" = ( /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ - dir = 4 +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_plates" }, /area/almayer/command/airoom) +"jvD" = ( +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "jvM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -41851,6 +39800,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_p) +"jwr" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "jwJ" = ( /obj/structure/platform_decoration, /turf/open/floor/plating/plating_catwalk, @@ -41868,6 +39823,13 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_p) +"jwP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "jxi" = ( /obj/structure/machinery/sleep_console, /turf/open/floor/almayer{ @@ -41875,6 +39837,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"jxu" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "jxx" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41890,13 +39858,15 @@ }, /turf/open/floor/plating, /area/almayer/living/bridgebunks) -"jxP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +"jxX" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "jyb" = ( /turf/open/floor/almayer{ dir = 6; @@ -41947,6 +39917,13 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"jzT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "jzZ" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -41960,9 +39937,18 @@ icon_state = "plate" }, /area/almayer/command/corporateliaison) -"jAi" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hallways/vehiclehangar) +"jAj" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "jAz" = ( /obj/structure/platform, /obj/structure/platform{ @@ -42048,6 +40034,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/s_bow) +"jCx" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "bluecorner" + }, +/area/almayer/hallways/lower/port_midship_hallway) "jCK" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; @@ -42058,6 +40050,10 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"jCX" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "jDk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -42075,6 +40071,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"jDz" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/barricade/handrail, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/port_midship_hallway) "jDO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42111,9 +40116,7 @@ pixel_x = 24; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "jEA" = ( /obj/structure/disposalpipe/segment{ @@ -42143,6 +40146,20 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) +"jEV" = ( +/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/mp_bunks) "jFf" = ( /obj/structure/machinery/shower{ pixel_y = 16 @@ -42157,18 +40174,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"jFg" = ( -/obj/structure/pipes/standard/cap/hidden{ - dir = 4 - }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) "jFt" = ( /obj/structure/machinery/light/small, /obj/effect/decal/warning_stripes{ @@ -42251,16 +40256,6 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"jGN" = ( -/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/hallways/port_hallway) "jGQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -42282,15 +40277,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"jHe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "jHh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42306,21 +40292,15 @@ icon_state = "plate" }, /area/almayer/maint/lower/s_bow) +"jHt" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/repair_bay) "jHC" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "silvercorner" }, /area/almayer/command/computerlab) -"jHG" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "jHL" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -42344,13 +40324,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_p) -"jIo" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) "jIC" = ( /obj/structure/machinery/computer/working_joe{ dir = 4; @@ -42361,19 +40334,6 @@ icon_state = "orange" }, /area/almayer/maint/upper/mess) -"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) "jIJ" = ( /obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ @@ -42394,18 +40354,6 @@ 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) "jJk" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -42415,11 +40363,6 @@ icon_state = "blue" }, /area/almayer/living/port_emb) -"jJs" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "jKn" = ( /turf/open/floor/almayer{ dir = 5; @@ -42442,14 +40385,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"jKA" = ( -/obj/structure/sign/safety/cryo{ - pixel_y = 26 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "jKF" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -42475,15 +40410,12 @@ icon_state = "cargo" }, /area/almayer/engineering/port_atmos) -"jKK" = ( -/obj/structure/machinery/light{ - dir = 1 - }, +"jLg" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - dir = 5; - icon_state = "green" + icon_state = "cargo" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "jLj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42499,40 +40431,12 @@ 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) "jLH" = ( /obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_p) -"jLK" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - 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, @@ -42540,12 +40444,18 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"jMb" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 +"jMa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "jMm" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null @@ -42598,19 +40508,19 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"jMK" = ( +"jML" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) +"jMP" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, /turf/open/floor/almayer{ dir = 1; - icon_state = "orange" + icon_state = "blue" }, -/area/almayer/hallways/stern_hallway) -"jML" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliaison) +/area/almayer/hallways/upper/aft_hallway) "jMQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -42670,6 +40580,22 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) +"jNw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/obj/structure/sign/safety/escapepod{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "jND" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -42854,6 +40780,20 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"jRg" = ( +/obj/effect/landmark/crap_item, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"jRm" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "jRp" = ( /obj/structure/largecrate/supply/supplies/water, /obj/item/toy/deck{ @@ -42973,12 +40913,41 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"jTt" = ( +/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/lower/starboard_midship_hallway) "jTB" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "orangecorner" }, /area/almayer/engineering/lower) +"jTH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "jTI" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -42986,6 +40955,11 @@ icon_state = "emerald" }, /area/almayer/squads/charlie_delta_shared) +"jTU" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/warden_office) "jUb" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/toy/deck{ @@ -43107,13 +41081,6 @@ 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; @@ -43132,13 +41099,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"jWt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "jWu" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -43148,13 +41108,19 @@ icon_state = "plate" }, /area/almayer/living/offices) -"jWU" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +"jXc" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "jXd" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -43172,18 +41138,17 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) -"jXk" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/vents/scrubber{ - dir = 1 +"jXR" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/lower/starboard_fore_hallway) "jYc" = ( /obj/item/bedsheet/blue{ layer = 3.2 @@ -43226,14 +41191,6 @@ icon_state = "blue" }, /area/almayer/living/port_emb) -"jYd" = ( -/obj/structure/machinery/gear{ - id = "vehicle_elevator_gears" - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/vehiclehangar) "jYm" = ( /obj/item/reagent_container/food/snacks/wrapped/chunk, /obj/structure/surface/rack, @@ -43264,9 +41221,7 @@ /obj/structure/machinery/camera/autoname/almayer/containment/ares{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "jZd" = ( /obj/structure/pipes/vents/pump{ @@ -43277,6 +41232,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_four) +"jZe" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "jZj" = ( /obj/structure/surface/rack, /obj/item/book/manual/orbital_cannon_manual, @@ -43345,6 +41309,16 @@ }, /turf/open/floor/almayer, /area/almayer/medical/containment/cell/cl) +"jZW" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "jZY" = ( /obj/structure/closet/l3closet/virology, /turf/open/floor/almayer{ @@ -43359,29 +41333,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/s_bow) -"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{ - icon_state = "SW-out" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "kam" = ( /obj/item/tool/screwdriver{ layer = 2.9; @@ -43395,18 +41346,17 @@ "kan" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lower_medical_medbay) -"kaA" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"kaq" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" + allow_construction = 0; + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "kaB" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -43418,17 +41368,6 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"kaF" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "kaI" = ( /obj/structure/bed/chair{ dir = 4 @@ -43437,6 +41376,16 @@ icon_state = "bluefull" }, /area/almayer/squads/charlie_delta_shared) +"kaQ" = ( +/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/starboard_hallway) "kaS" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -43497,9 +41446,7 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "kbJ" = ( /obj/effect/decal/warning_stripes{ @@ -43512,6 +41459,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/containment) +"kbT" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "kbV" = ( /obj/structure/platform{ dir = 1 @@ -43528,6 +41485,17 @@ /obj/structure/machinery/camera/autoname/almayer, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"kcg" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "kcl" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -43617,6 +41585,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) +"keG" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Interrogation Observation" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/interrogation) "keO" = ( /obj/structure/largecrate/random/secure, /obj/effect/decal/warning_stripes{ @@ -43630,13 +41610,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/starboard) -"kff" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "kfo" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -43679,12 +41652,6 @@ icon_state = "plate" }, /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) "kfU" = ( /turf/open/floor/plating, /area/almayer/powered/agent) @@ -43707,14 +41674,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"kgr" = ( -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "kgs" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -43727,6 +41686,12 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) +"kgt" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "kgD" = ( /obj/structure/sign/safety/cryo{ pixel_x = 35 @@ -43735,17 +41700,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) -"kgQ" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv{ - pixel_x = 6; - pixel_y = 6 +"kgS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/storage/firstaid/regular, +/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/hallways/lower/vehiclehangar) "khd" = ( /obj/structure/bed/chair{ dir = 4 @@ -43799,19 +41762,15 @@ /obj/structure/machinery/camera/autoname/almayer/containment/ares{ dir = 8 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) -"kij" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +"kil" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/area/almayer/hallways/aft_hallway) +/obj/item/storage/belt/utility, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "kio" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -43824,6 +41783,24 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"kiq" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) +"kiy" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "kiG" = ( /obj/structure/machinery/power/smes/buildable, /obj/structure/machinery/status_display{ @@ -43900,6 +41877,22 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"kjw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "kjD" = ( /obj/structure/machinery/computer/demo_sim{ dir = 4; @@ -43919,6 +41912,12 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower/engine_core) +"kjW" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/port_midship_hallway) "kjY" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -43964,14 +41963,17 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"kkE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 3 +"kkI" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"kkN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/starboard_aft_hallway) "kkW" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/atmospipes, @@ -43981,6 +41983,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"klr" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "klH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -44002,12 +42010,6 @@ }, /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{ @@ -44021,6 +42023,16 @@ icon_state = "plate" }, /area/almayer/living/offices) +"kmx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "kmE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -44035,6 +42047,19 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"knl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) +"knm" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "knH" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ @@ -44057,23 +42082,6 @@ 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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "kow" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -44147,6 +42155,21 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_p) +"kqd" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) +"kqm" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "kqt" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -44230,11 +42253,6 @@ icon_state = "bluecorner" }, /area/almayer/living/basketball) -"kro" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "krp" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/cups, @@ -44326,6 +42344,10 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) +"ksm" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "ksp" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -44342,6 +42364,35 @@ dir = 6 }, /area/almayer/living/briefing) +"kti" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktl" = ( +/obj/structure/machinery/firealarm{ + dir = 1; + pixel_y = -28 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "ktR" = ( /obj/item/trash/crushed_cup, /turf/open/floor/almayer{ @@ -44423,6 +42474,16 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"kvL" = ( +/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/warden_office) "kvU" = ( /obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, @@ -44456,6 +42517,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_f_s) +"kwi" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "kwo" = ( /obj/structure/surface/rack, /turf/open/floor/almayer, @@ -44522,6 +42589,12 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) +"kxP" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "kyh" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -44582,12 +42655,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"kyZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "kzb" = ( /obj/structure/machinery/vending/walkman, /turf/open/floor/almayer, @@ -44685,12 +42752,15 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"kzP" = ( +"kzR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + dir = 4; + icon_state = "orange" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/stern_hallway) "kzT" = ( /obj/structure/machinery/door_control{ id = "ARES StairsLower"; @@ -44699,9 +42769,9 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 8 }, /area/almayer/command/airoom) "kAh" = ( @@ -44713,6 +42783,14 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"kAj" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "kAm" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/almayer{ @@ -44788,21 +42866,6 @@ 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"; @@ -44820,13 +42883,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"kBK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "kBP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -44843,6 +42899,14 @@ icon_state = "cargo" }, /area/almayer/living/tankerbunks) +"kCd" = ( +/obj/structure/machinery/gear{ + id = "vehicle_elevator_gears" + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/lower/vehiclehangar) "kCi" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/port_missiles) @@ -44864,6 +42928,9 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"kCo" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "kCu" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber, /turf/open/floor/almayer{ @@ -44885,10 +42952,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) -"kCS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) +"kCY" = ( +/obj/structure/machinery/sleep_console{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) "kDd" = ( /obj/structure/sign/safety/water{ pixel_x = 8; @@ -44931,12 +43002,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"kEb" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "kEc" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -44990,6 +43055,15 @@ icon_state = "redfull" }, /area/almayer/living/briefing) +"kEE" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) +"kEW" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "kFe" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/firealarm{ @@ -45053,6 +43127,12 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"kGw" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "kGF" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; @@ -45063,21 +43143,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"kGI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"kGL" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "kGQ" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 @@ -45086,9 +43151,11 @@ icon_state = "containment_corner_variant_2" }, /area/almayer/medical/containment/cell) -"kHa" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/surgery) +"kGS" = ( +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "kHd" = ( /obj/structure/machinery/computer/arcade, /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -45100,14 +43167,22 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"kHj" = ( -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 +"kHo" = ( +/obj/item/device/camera{ + pixel_x = 4; + pixel_y = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/obj/structure/surface/table/almayer, +/obj/item/device/camera_film{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/item/device/camera_film, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "kHS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -45117,12 +43192,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"kHT" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "kHY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -45151,15 +43220,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_s) -"kIm" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) "kIP" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -45179,6 +43239,14 @@ }, /turf/open/floor/plating/almayer, /area/almayer/maint/hull/lower/s_bow) +"kJh" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "kJi" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -45191,18 +43259,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"kJn" = ( -/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/lower/engine_core) "kJH" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -45224,13 +43280,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"kJV" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "kJW" = ( /obj/structure/machinery/door/window/westright, /obj/structure/machinery/shower{ @@ -45250,15 +43299,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) -"kKb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "kKk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -45282,17 +43322,26 @@ dir = 1; icon_state = "ramptop" }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"kKB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_aft_hallway) "kKR" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"kKY" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "kLc" = ( /obj/structure/machinery/door/airlock/almayer/maint{ req_one_access = null; @@ -45321,24 +43370,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_p) -"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) "kLB" = ( /obj/docking_port/stationary/escape_pod/east, /turf/open/floor/plating, /area/almayer/maint/hull/upper/u_m_s) +"kLE" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancenorth"; + name = "\improper North Hangar Podlock" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "kLP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -45738,6 +43784,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"kRU" = ( +/obj/vehicle/powerloader, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/repair_bay) "kSn" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -45765,10 +43824,19 @@ pixel_y = 24; req_one_access_txt = "200;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) +"kSA" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancesouth"; + name = "\improper South Hangar Podlock" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_fore_hallway) "kSH" = ( /obj/structure/sign/prop1{ pixel_y = 32 @@ -45781,23 +43849,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"kSJ" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) -"kSN" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) "kSU" = ( /obj/structure/transmitter/no_dnd{ name = "Requisition Telephone"; @@ -45810,6 +43861,13 @@ icon_state = "plating" }, /area/almayer/squads/req) +"kTp" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/plating, +/area/almayer/shipboard/brig/medical) "kTv" = ( /obj/structure/machinery/light{ dir = 4 @@ -45835,6 +43893,16 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"kUg" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 21 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "kUh" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ @@ -45847,24 +43915,28 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"kUw" = ( -/obj/structure/surface/rack, -/obj/item/storage/bag/trash{ - pixel_x = 2; - pixel_y = 2 +"kUs" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/obj/item/storage/bag/trash{ - pixel_x = -8; - pixel_y = 4 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/obj/item/storage/bag/trash{ - pixel_x = -3; - pixel_y = -2 +/area/almayer/hallways/upper/aft_hallway) +"kUA" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) +"kUI" = ( +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 9; + icon_state = "green" }, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/hallways/lower/starboard_midship_hallway) "kUL" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -45911,6 +43983,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"kWc" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "kWk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -45996,9 +44076,9 @@ }, /area/almayer/command/computerlab) "kXj" = ( -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 4 }, /area/almayer/command/airoom) "kXm" = ( @@ -46014,6 +44094,15 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) +"kXt" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "kXu" = ( /turf/open/floor/almayer{ dir = 8; @@ -46035,6 +44124,12 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"kYl" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "kYt" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/bible{ @@ -46071,28 +44166,15 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"kYP" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "kYU" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 - }, -/obj/structure/sign/safety/east{ - pixel_x = 15; - pixel_y = 32 +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, /turf/open/floor/almayer{ dir = 1; - icon_state = "green" + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "kYV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -46105,12 +44187,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"kZA" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) "kZN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -46210,6 +44286,23 @@ }, /turf/open/floor/plating, /area/almayer/command/cic) +"lbc" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/aft_hallway) "lbf" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -46281,9 +44374,23 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) +"ldb" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "ldc" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/engineering/lower/workshop) +"lde" = ( +/obj/structure/machinery/conveyor{ + id = "req_belt" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "ldl" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 @@ -46292,6 +44399,16 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) +"ldq" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "ldt" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -46302,12 +44419,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"ldu" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "ldC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -46317,6 +44428,13 @@ "ldF" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/s_bow) +"ldW" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "lea" = ( /obj/structure/sink{ dir = 4; @@ -46387,6 +44505,10 @@ "lfx" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"lfz" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "lfH" = ( /obj/structure/machinery/light{ dir = 4 @@ -46451,15 +44573,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"lgX" = ( -/obj/structure/sign/safety/storage{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "lhj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/safety/bulkhead_door{ @@ -46469,6 +44582,11 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_bow) +"lhs" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "lht" = ( /turf/open/floor/almayer{ dir = 6; @@ -46556,9 +44674,7 @@ dir = 1; icon_state = "ramptop" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "liF" = ( /obj/structure/machinery/light/small{ @@ -46782,6 +44898,12 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) +"lma" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15 + }, +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "lmi" = ( /obj/structure/bed, /obj/item/bedsheet/green, @@ -46815,7 +44937,7 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) "lmz" = ( -/turf/closed/wall/almayer/white/hull, +/turf/closed/wall/almayer/aicore/hull, /area/space) "lmA" = ( /obj/structure/flora/pottedplant{ @@ -46890,8 +45012,8 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "lok" = ( @@ -47045,33 +45167,17 @@ icon_state = "test_floor4" }, /area/almayer/powered/agent) -"lpD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, +"lql" = ( /turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/starboard_umbilical) "lqF" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"lqJ" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = -32 - }, -/obj/structure/sign/safety/south{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "lqK" = ( /obj/effect/decal/cleanable/ash, /obj/item/trash/cigbutt/ucigbutt{ @@ -47093,6 +45199,13 @@ icon_state = "orange" }, /area/almayer/living/port_emb) +"lrd" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "lrq" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/armory) @@ -47210,7 +45323,7 @@ "ltc" = ( /obj/effect/landmark/late_join/working_joe, /obj/effect/landmark/start/working_joe, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/plating/plating_catwalk/aicore, /area/almayer/command/airoom) "ltm" = ( /obj/structure/bed/chair/comfy/orange, @@ -47224,6 +45337,25 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"ltt" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) +"ltv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "ltw" = ( /obj/structure/largecrate/supply, /turf/open/floor/almayer, @@ -47247,6 +45379,19 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"ltO" = ( +/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_storage) "ltU" = ( /obj/structure/bed/chair{ dir = 8 @@ -47266,16 +45411,6 @@ icon_state = "test_floor4" }, /area/almayer/living/commandbunks) -"luz" = ( -/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/starboard_hallway) "luE" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -47355,13 +45490,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"lwm" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "lwp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -47384,6 +45512,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"lwG" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "lwJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -47392,12 +45526,6 @@ 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) "lwY" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Port Viewing Room" @@ -47406,6 +45534,12 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/upper/u_f_p) +"lxd" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "lxo" = ( /obj/structure/sign/safety/hazard{ pixel_x = -17; @@ -47419,14 +45553,6 @@ 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{ @@ -47462,6 +45588,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_f_p) +"lyq" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) "lyw" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -47523,16 +45655,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"lzj" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "lzq" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -47548,12 +45670,13 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"lzY" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 +"lzF" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/hallways/upper/aft_hallway) "lAa" = ( /obj/structure/surface/table/almayer, /obj/item/device/lightreplacer{ @@ -47591,13 +45714,6 @@ }, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"lAO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "lAQ" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -47610,6 +45726,13 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"lBf" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "lBg" = ( /obj/structure/bedsheetbin, /turf/open/floor/almayer{ @@ -47645,13 +45768,6 @@ icon_state = "cargo" }, /area/almayer/maint/hull/upper/u_m_p) -"lBz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "lBB" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -47660,6 +45776,18 @@ icon_state = "plate" }, /area/almayer/maint/upper/u_m_s) +"lCc" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "lCm" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -47669,12 +45797,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/s_bow) -"lCp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) "lCr" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -47709,20 +45831,22 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"lDg" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "laddernorthwest"; - name = "\improper North West Ladders Shutters" +"lDk" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/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 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "green" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "lDn" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -47737,15 +45861,6 @@ }, /turf/open/floor/plating, /area/almayer/maint/lower/constr) -"lDJ" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_hallway) "lDL" = ( /obj/structure/machinery/light{ dir = 4 @@ -47838,6 +45953,11 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"lEV" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "lFe" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -47895,6 +46015,17 @@ icon_state = "cargo" }, /area/almayer/engineering/starboard_atmos) +"lFw" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "lFA" = ( /obj/structure/surface/table/almayer, /obj/item/storage/pouch/tools/tank, @@ -47935,6 +46066,19 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) +"lFL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "lGg" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer{ @@ -47942,13 +46086,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"lGh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "lHk" = ( /obj/structure/closet/firecloset, /obj/effect/decal/warning_stripes{ @@ -47994,15 +46131,20 @@ }, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"lIw" = ( +"lIu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancenorth"; + name = "\improper North Hangar Podlock" + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "lII" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -48127,15 +46269,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha_bravo_shared) -"lKk" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "lKM" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, @@ -48147,10 +46280,29 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"lLl" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "lLC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/squads/charlie) +"lLO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "lLS" = ( /obj/structure/sign/safety/galley{ pixel_x = 32 @@ -48226,12 +46378,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) -"lNl" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "lNw" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -48247,17 +46393,20 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"lNN" = ( -/obj/structure/closet/secure_closet/medical2, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/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) +"lOn" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "lOr" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -48277,16 +46426,6 @@ 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{ @@ -48384,6 +46523,14 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"lQB" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "lQG" = ( /obj/structure/machinery/computer/tech_control, /turf/open/floor/plating/plating_catwalk, @@ -48402,24 +46549,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_three) -"lQQ" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - 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{ @@ -48451,13 +46580,6 @@ /obj/item/prop/helmetgarb/chaplain_patch, /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"lRU" = ( -/obj/structure/sign/safety/conference_room{ - pixel_x = 14; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "lRX" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, @@ -48536,6 +46658,16 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/processing) +"lUA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "lUQ" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -48605,6 +46737,12 @@ icon_state = "plate" }, /area/almayer/command/cic) +"lVZ" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "lWr" = ( /obj/structure/largecrate/random/case, /turf/open/floor/almayer{ @@ -48668,11 +46806,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) -"lYi" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "lYk" = ( /obj/item/trash/c_tube{ pixel_x = 16; @@ -48767,6 +46900,26 @@ icon_state = "test_floor4" }, /area/almayer/medical/hydroponics) +"may" = ( +/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/starboard_hallway) +"maF" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "maI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -48808,6 +46961,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"mbu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "mbx" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -48821,11 +46983,12 @@ /obj/docking_port/stationary/escape_pod/north, /turf/open/floor/plating, /area/almayer/maint/hull/lower/l_m_p) -"mce" = ( +"mcp" = ( /turf/open/floor/almayer{ - icon_state = "greencorner" + dir = 1; + icon_state = "redcorner" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "mcL" = ( /obj/structure/machinery/vending/snack, /obj/structure/sign/safety/maint{ @@ -48843,12 +47006,28 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) +"mdk" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 4; + id = "vehicle_elevator_railing_aux" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "mdo" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/squads/alpha) +"mdC" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) "mdW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/decal/warning_stripes{ @@ -48861,10 +47040,17 @@ }, /obj/item/folder/white, /obj/item/folder/white, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) +"mea" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "mem" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -48892,16 +47078,24 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"meJ" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +"meE" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) +"meQ" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"meS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "mono" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/aft_hallway) "meT" = ( /obj/structure/machinery/door/poddoor/almayer/open{ id = "Hangar Lockdown"; @@ -49073,6 +47267,17 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"miy" = ( +/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/medical) "miE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -49097,11 +47302,6 @@ icon_state = "redfull" }, /area/almayer/command/cic) -"mji" = ( -/obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "mjs" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -49209,6 +47409,24 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop/hangar) +"mkw" = ( +/obj/structure/sign/safety/security{ + pixel_y = -32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) +"mkx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "mkF" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -49280,9 +47498,7 @@ icon_state = "NE-out"; pixel_y = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "mlm" = ( /turf/open/floor/almayer{ @@ -49332,6 +47548,12 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) +"mnc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) "mng" = ( /turf/open/floor/almayer{ icon_state = "redcorner" @@ -49343,20 +47565,33 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"mnG" = ( -/obj/structure/machinery/status_display{ - pixel_y = -30 - }, +"mnC" = ( /turf/open/floor/almayer{ dir = 8; - icon_state = "orange" + icon_state = "greencorner" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/upper/aft_hallway) "mnI" = ( /turf/open/floor/almayer{ icon_state = "blue" }, /area/almayer/living/briefing) +"mnV" = ( +/obj/structure/sign/safety/refridgeration{ + pixel_y = -32 + }, +/obj/structure/sign/safety/medical{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "mnW" = ( /obj/structure/surface/table/almayer, /obj/item/device/reagent_scanner{ @@ -49479,12 +47714,27 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower) +"mpV" = ( +/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/hallways/lower/starboard_umbilical) "mqb" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"mqd" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/upper/aft_hallway) "mqg" = ( /obj/structure/bed/chair{ dir = 4 @@ -49498,15 +47748,18 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"mqo" = ( -/obj/structure/bed/chair/bolted{ - dir = 1 +"mqt" = ( +/turf/open/floor/almayer{ + icon_state = "bluecorner" }, +/area/almayer/hallways/lower/port_midship_hallway) +"mqB" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 8; - icon_state = "red" + icon_state = "orange" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_umbilical) "mqK" = ( /obj/structure/machinery/cm_vending/gear/spec, /obj/structure/sign/safety/hazard{ @@ -49520,6 +47773,18 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"mqR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "mqU" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -49529,13 +47794,12 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_two) -"mru" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 +"mqZ" = ( +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "mrD" = ( /obj/structure/machinery/light{ dir = 1 @@ -49681,6 +47945,12 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"mua" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "mub" = ( /obj/structure/barricade/handrail{ dir = 4 @@ -49761,36 +48031,6 @@ 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; @@ -49804,15 +48044,12 @@ 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" +"mww" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/shipboard/brig/surgery) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "mwA" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -49859,6 +48096,15 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/stair_clone/upper) +"mxg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "mxT" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, @@ -49942,6 +48188,21 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/armory) +"mze" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + name = "\improper Brig"; + closeOtherId = "brigmaint_n" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "mzg" = ( /turf/open/floor/almayer{ icon_state = "emerald" @@ -49971,6 +48232,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) +"mzv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "mzz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -49988,13 +48253,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) -"mzR" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "mzS" = ( /turf/open/floor/almayer{ dir = 9; @@ -50032,6 +48290,24 @@ icon_state = "cargo" }, /area/almayer/squads/delta) +"mAY" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"mBa" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "mBc" = ( /obj/structure/bed/chair{ dir = 8 @@ -50191,22 +48467,13 @@ icon_state = "test_floor4" }, /area/almayer/living/commandbunks) -"mEb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"mDZ" = ( +/obj/structure/disposalpipe/segment{ 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) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "mEE" = ( /obj/structure/platform{ dir = 4; @@ -50243,6 +48510,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"mFL" = ( +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "mFN" = ( /obj/effect/step_trigger/ares_alert/mainframe, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -50250,7 +48527,7 @@ name = "\improper ARES Mainframe Shutters"; plane = -7 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -50295,6 +48572,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/command/cichallway) +"mGk" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "mGu" = ( /turf/open/floor/almayer{ dir = 4; @@ -50325,16 +48609,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"mHm" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_y = -32 - }, -/obj/structure/sign/safety/manualopenclose{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "mHo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -50366,19 +48640,6 @@ }, /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" @@ -50392,9 +48653,9 @@ }, /area/almayer/medical/hydroponics) "mHE" = ( -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 8 }, /area/almayer/command/airoom) "mHF" = ( @@ -50449,16 +48710,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"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{ @@ -50469,13 +48720,6 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/upper_engineering/port) -"mIW" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "mJa" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/boonie, @@ -50513,6 +48757,15 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/squads/alpha) +"mJp" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "mJu" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/command/cic) @@ -50649,14 +48902,6 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"mKY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/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 @@ -50670,14 +48915,9 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"mLu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_umbilical) +"mLg" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "mLz" = ( /obj/structure/machinery/door_control{ id = "pobunk1"; @@ -50704,12 +48944,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"mLJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "mLN" = ( /obj/structure/machinery/light/small, /obj/structure/disposalpipe/segment{ @@ -50730,12 +48964,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/req) -"mLU" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "mMP" = ( /obj/effect/landmark/start/intel, /turf/open/floor/plating/plating_catwalk, @@ -50751,22 +48979,31 @@ 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) "mNm" = ( /obj/structure/platform{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"mNG" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/west{ + pixel_y = 32 + }, +/obj/structure/machinery/door_control{ + id = "laddernorthwest"; + name = "North West Ladders Shutters"; + pixel_y = 24; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "mNI" = ( /obj/structure/machinery/door/window/westleft{ dir = 2 @@ -50827,6 +49064,12 @@ "mOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/command/airoom) +"mOw" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "mOE" = ( /obj/structure/sign/safety/water{ pixel_x = -17 @@ -50835,16 +49078,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) -"mOL" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "mOR" = ( /obj/structure/surface/rack, /obj/item/roller, @@ -50914,6 +49147,11 @@ icon_state = "green" }, /area/almayer/squads/req) +"mPM" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_midship_hallway) "mPR" = ( /obj/structure/machinery/light{ dir = 8 @@ -50923,11 +49161,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"mPX" = ( -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "mQc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -50937,6 +49170,14 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"mQd" = ( +/obj/structure/surface/rack, +/obj/item/device/radio, +/obj/item/tool/weldpack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "mQn" = ( /obj/structure/sign/safety/rad_shield{ pixel_x = 32 @@ -50946,15 +49187,25 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"mQx" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "mQC" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/port_atmos) -"mQH" = ( +"mQF" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/stern_hallway) "mQY" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -50965,16 +49216,6 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/lower/l_m_s) -"mRl" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "mRn" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -50982,7 +49223,7 @@ plane = -7 }, /obj/effect/step_trigger/ares_alert/core, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -51022,6 +49263,20 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"mRH" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ + req_access = null; + req_one_access = null; + req_one_access_txt = "7;23;27;102" + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -3; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "mRI" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -51044,16 +49299,6 @@ 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) "mRU" = ( /turf/closed/wall/almayer, /area/almayer/maint/hull/upper/u_m_p) @@ -51109,15 +49354,6 @@ icon_state = "blue" }, /area/almayer/squads/charlie_delta_shared) -"mTb" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "mTc" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/emails{ @@ -51145,12 +49381,16 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"mTn" = ( -/obj/structure/closet/firecloset, +"mTo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4; + icon_state = "silver" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/aft_hallway) "mTp" = ( /obj/structure/window/reinforced{ dir = 4; @@ -51179,14 +49419,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"mUa" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "mUq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -51208,19 +49440,8 @@ dir = 8; pixel_x = 17 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) -"mUC" = ( -/obj/structure/machinery/light{ - dir = 4; - invisibility = 101; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "mUE" = ( @@ -51321,14 +49542,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"mWw" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "mWy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/shared/alpha_bravo/yellow{ @@ -51386,37 +49599,58 @@ /obj/item/tool/wrench, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/p_bow) -"mYv" = ( -/obj/structure/disposalpipe/sortjunction{ +"mXy" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/obj/structure/sign/safety/rewire{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ dir = 4; - negdir = 4; - posdir = 1 + icon_state = "orange" }, -/turf/closed/wall/almayer, -/area/almayer/squads/req) -"mYw" = ( +/area/almayer/hallways/lower/port_aft_hallway) +"mXP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) +"mYd" = ( /obj/structure/sign/safety/escapepod{ - pixel_x = -17; - pixel_y = -8 + pixel_y = 32 }, -/obj/structure/sign/safety/stairs{ - pixel_x = -17; - pixel_y = 7 +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = 32 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" + dir = 1; + icon_state = "green" }, -/area/almayer/hallways/port_hallway) -"mYY" = ( +/area/almayer/hallways/upper/aft_hallway) +"mYt" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out" + icon_state = "W"; + pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) +"mYv" = ( +/obj/structure/disposalpipe/sortjunction{ + dir = 4; + negdir = 4; + posdir = 1 }, -/area/almayer/hallways/vehiclehangar) +/turf/closed/wall/almayer, +/area/almayer/squads/req) "mZb" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -51502,6 +49736,18 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"mZP" = ( +/obj/structure/surface/rack, +/obj/item/tool/crowbar, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "mZQ" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/light, @@ -51513,6 +49759,15 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) +"naa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "nac" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -51523,6 +49778,12 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"naj" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "nar" = ( /obj/structure/toilet{ dir = 4 @@ -51587,14 +49848,24 @@ icon_state = "test_floor4" }, /area/almayer/living/gym) -"nbv" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 3" +"nbu" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"nbW" = ( +/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) +/area/almayer/hallways/upper/stern_hallway) "ncf" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -51607,6 +49878,9 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"nci" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "ncl" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -51673,15 +49947,6 @@ icon_state = "plate" }, /area/almayer/maint/lower/cryo_cells) -"ndJ" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "ndZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, @@ -51702,6 +49967,15 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"nef" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "new" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/item/reagent_container/glass/bucket/janibucket{ @@ -51773,13 +50047,6 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"nfp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "ngf" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -51873,6 +50140,20 @@ icon_state = "redcorner" }, /area/almayer/living/briefing) +"ngK" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "DeployWorkR"; + name = "\improper Workshop Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/repair_bay) "ngU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -51939,6 +50220,16 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"nhE" = ( +/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/lower/starboard_midship_hallway) "nhG" = ( /obj/item/newspaper{ name = "character sheet" @@ -51966,6 +50257,13 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"nhT" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "nhV" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -52091,12 +50389,6 @@ "njn" = ( /turf/closed/wall/almayer, /area/almayer/maint/upper/u_m_s) -"njy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "njD" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -52116,31 +50408,22 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"njL" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) "njO" = ( /obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/shipboard/panic) -"nka" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 2; - id = "vehicle_elevator_railing" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"njS" = ( +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = -32 }, +/obj/structure/machinery/power/reactor, /turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" + icon_state = "test_floor4" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/engineering/lower/engine_core) "nkj" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -52261,26 +50544,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_s) -"nmx" = ( +"nmH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 + dir = 9 }, -/obj/structure/disposalpipe/junction{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"nmD" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_aft_hallway) "nmK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -52311,6 +50584,18 @@ icon_state = "plate" }, /area/almayer/command/cichallway) +"nnr" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_aft_hallway) "nny" = ( /obj/structure/sign/safety/rewire{ pixel_x = -17; @@ -52400,6 +50685,15 @@ }, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_p) +"noI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "noP" = ( /obj/structure/machinery/light{ dir = 1 @@ -52417,17 +50711,6 @@ }, /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"; @@ -52443,6 +50726,12 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) +"npw" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "npA" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -52532,22 +50821,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"nrt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "nrw" = ( /obj/structure/bed/chair{ dir = 4 @@ -52587,6 +50860,13 @@ /obj/item/storage/box/lights/mixed, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_s) +"nso" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "nsQ" = ( /obj/structure/sink{ dir = 4; @@ -52633,17 +50913,6 @@ "ntj" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/computerlab) -"ntt" = ( -/obj/item/stool, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "ntx" = ( /obj/structure/machinery/door/airlock/almayer/generic{ id = "Alpha_2"; @@ -52709,6 +50978,20 @@ /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) +"nuZ" = ( +/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/starboard_hallway) "nvd" = ( /turf/open/floor/almayer{ dir = 6; @@ -52796,6 +51079,24 @@ dir = 4 }, /area/almayer/medical/containment/cell) +"nwu" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 + }, +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) +"nww" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "nwx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -52898,29 +51199,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"nxK" = ( -/obj/structure/sign/safety/high_voltage{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - 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" @@ -52943,12 +51221,6 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"nyG" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "nyQ" = ( /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) @@ -52959,6 +51231,12 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"nzt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "nzv" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/clipboard, @@ -52970,15 +51248,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"nzA" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "nzD" = ( /obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer, @@ -53042,6 +51311,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"nBo" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "nBw" = ( /turf/open/floor/almayer{ dir = 1; @@ -53069,15 +51347,21 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) -"nBW" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"nBV" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/o2, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) +"nCe" = ( +/obj/structure/machinery/prop/almayer/computer{ + pixel_y = 20 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/repair_bay) "nCf" = ( /obj/effect/landmark/start/marine/tl/charlie, /obj/effect/landmark/late_join/charlie, @@ -53126,6 +51410,11 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"nCD" = ( +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "nCM" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ @@ -53167,6 +51456,13 @@ icon_state = "tcomms" }, /area/almayer/engineering/lower/engine_core) +"nDb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "nDo" = ( /obj/structure/closet/l3closet/general, /obj/structure/window/reinforced{ @@ -53179,19 +51475,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"nDL" = ( -/obj/structure/barricade/handrail{ - dir = 4 - }, -/obj/structure/surface/rack, -/obj/item/stack/tile/carpet{ - amount = 20 - }, -/obj/item/stack/sheet/wood/large_stack, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/upper_engineering/port) "nDM" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -53217,12 +51500,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) -"nEs" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) "nEF" = ( /obj/structure/machinery/conveyor_switch{ id = "gym_1"; @@ -53270,12 +51547,6 @@ icon_state = "plate" }, /area/almayer/command/cichallway) -"nFr" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) "nFs" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -53325,24 +51596,6 @@ }, /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; @@ -53495,6 +51748,13 @@ icon_state = "plating" }, /area/almayer/shipboard/port_missiles) +"nIF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "nIG" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -53531,12 +51791,6 @@ /obj/item/newspaper, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"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; @@ -53566,17 +51820,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"nLg" = ( -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 - }, -/turf/open/floor/almayer{ - allow_construction = 0; - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "nLk" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/power/apc/almayer{ @@ -53620,21 +51863,15 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"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 +"nLM" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, /turf/open/floor/almayer{ - icon_state = "green" + dir = 1; + icon_state = "blue" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/aft_hallway) "nMe" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -53911,13 +52148,19 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) -"nQx" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "nQA" = ( /turf/open/floor/carpet, /area/almayer/command/corporateliaison) +"nRA" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_midship_hallway) "nRE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -54049,9 +52292,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) -"nTT" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/maint/hull/upper) "nTZ" = ( /turf/open/floor/almayer{ dir = 5; @@ -54138,24 +52378,30 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) -"nVe" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/sign/safety/bridge{ - pixel_x = 15; - pixel_y = 32 +"nVi" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/obj/structure/sign/safety/west{ +/area/almayer/living/briefing) +"nVm" = ( +/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 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) -"nVi" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "red" }, -/area/almayer/living/briefing) +/area/almayer/shipboard/brig/starboard_hallway) "nVn" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -54177,6 +52423,20 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"nVA" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/aft_hallway) "nVB" = ( /turf/open/floor/almayer, /area/almayer/command/securestorage) @@ -54194,6 +52454,17 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"nVQ" = ( +/obj/structure/machinery/light, +/obj/structure/sign/safety/security{ + pixel_y = -32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "nVR" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/perma) @@ -54211,6 +52482,14 @@ /obj/structure/surface/table/almayer, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) +"nWS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) "nXo" = ( /obj/item/storage/box/donkpockets, /obj/structure/surface/rack, @@ -54304,13 +52583,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"nYv" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "nYD" = ( /obj/structure/closet/secure_closet/medical2, /turf/open/floor/almayer{ @@ -54322,6 +52594,14 @@ dir = 8 }, /area/almayer/command/lifeboat) +"nYR" = ( +/obj/structure/sign/safety/cryo{ + pixel_y = 26 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "nZy" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -54434,17 +52714,6 @@ }, /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 @@ -54491,9 +52760,7 @@ /obj/structure/sign/safety/rewire{ pixel_y = 38 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "ocI" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -54501,6 +52768,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) +"ocX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "odb" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -54522,6 +52799,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) +"odt" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/vehiclehangar) "odu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -54641,6 +52928,9 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"oeZ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/medical) "ofH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -54672,6 +52962,18 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"ogd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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/hallways/upper/stern_hallway) "ogK" = ( /obj/structure/bed/bedroll{ desc = "A bed of cotton fabric, purposely made for a cat to comfortably sleep on."; @@ -54781,6 +53083,13 @@ /obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"oig" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "oih" = ( /obj/structure/bed{ icon_state = "abed" @@ -54838,6 +53147,19 @@ icon_state = "redfull" }, /area/almayer/shipboard/port_missiles) +"oix" = ( +/obj/structure/machinery/power/apc/almayer, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) +"oiB" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "oiL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -54856,6 +53178,10 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) +"oiX" = ( +/obj/docking_port/stationary/vehicle_elevator/almayer, +/turf/open/floor/almayer/empty/vehicle_bay, +/area/almayer/hallways/lower/vehiclehangar) "oiY" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -54907,22 +53233,6 @@ }, /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, @@ -54935,6 +53245,16 @@ icon_state = "plate" }, /area/almayer/squads/charlie) +"okd" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "n_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "okg" = ( /obj/structure/sign/safety/reception{ pixel_x = 8; @@ -54951,6 +53271,12 @@ icon_state = "red" }, /area/almayer/maint/hull/upper/u_a_p) +"okx" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "okD" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer6" @@ -54959,14 +53285,12 @@ icon_state = "outerhull_dir" }, /area/space) -"okQ" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 12" - }, +"okO" = ( +/obj/structure/machinery/cm_vending/clothing/senior_officer, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "mono" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/medical/upper_medical) "old" = ( /obj/structure/machinery/light/small, /obj/structure/largecrate/random/case/double, @@ -55055,6 +53379,18 @@ /obj/structure/window/framed/almayer/white, /turf/open/floor/plating, /area/almayer/medical/lockerroom) +"omp" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "omt" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -55092,21 +53428,22 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) -"omW" = ( -/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +"onh" = ( /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 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + dir = 8; + icon_state = "orange" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/hallways/upper/stern_hallway) +"onn" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "onv" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -55191,6 +53528,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"opd" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/port_midship_hallway) "opC" = ( /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Combat Information Center" @@ -55218,27 +53561,44 @@ 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/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/sign/safety/bridge{ + pixel_y = 32 + }, +/obj/structure/sign/safety/reception{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) +"opV" = ( +/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/lower/port_midship_hallway) "oqc" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/toxin, @@ -55409,13 +53769,10 @@ /area/almayer/hallways/hangar) "osy" = ( /obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ - dir = 4 - }, /obj/structure/platform_decoration, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 4 }, /area/almayer/command/airoom) "osz" = ( @@ -55456,14 +53813,13 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"osM" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 8" - }, +"osQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/lower/starboard_midship_hallway) "osT" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/prop/ice_colony/hula_girl{ @@ -55482,9 +53838,55 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"osX" = ( +/obj/structure/sign/safety/north{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"otp" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/shipboard/brig/medical) +"otq" = ( +/obj/structure/machinery/line_nexter{ + dir = 1; + id = "MTline"; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "otu" = ( /turf/closed/wall/almayer/research/containment/wall/connect_w, /area/almayer/medical/containment/cell) +"otC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"otE" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "otW" = ( /obj/structure/machinery/light/small, /obj/structure/prop/invuln/overhead_pipe{ @@ -55526,12 +53928,7 @@ pixel_y = 6 }, /obj/item/tool/pen, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "ouw" = ( /obj/structure/machinery/light/small{ @@ -55615,28 +54012,20 @@ dir = 4 }, /area/almayer/medical/containment/cell) -"ovP" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15 +"ovQ" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_umbilical) +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "owg" = ( /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) -"owH" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancenorth"; - name = "\improper North Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "owU" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -55666,6 +54055,21 @@ /obj/item/bedsheet/orange, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"oxe" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"oxg" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "oxi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -55701,17 +54105,25 @@ "oxy" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_s) +"oxz" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "oxU" = ( /obj/structure/machinery/photocopier, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"oyy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 +"oyC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/starboard_hallway) "oyE" = ( /obj/effect/landmark/start/intel, /obj/structure/sign/poster{ @@ -55799,6 +54211,15 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"oAa" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "oAB" = ( /obj/structure/platform{ dir = 8; @@ -55834,6 +54255,17 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"oAY" = ( +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/turf/open/floor/almayer{ + allow_construction = 0; + icon_state = "plate" + }, +/area/almayer/hallways/upper/aft_hallway) "oBq" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -55862,6 +54294,30 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"oCa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) +"oCb" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "oCf" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -55985,6 +54441,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/medical_science) +"oDU" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/barricade/handrail, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/port_midship_hallway) "oDY" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -56099,6 +54564,15 @@ /obj/item/storage/firstaid/regular, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_s) +"oGh" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_aft_hallway) "oGi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -56113,6 +54587,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/s_bow) +"oGm" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_umbilical) "oGx" = ( /obj/structure/closet/secure_closet/surgical{ pixel_x = 30 @@ -56137,10 +54617,28 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"oGF" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "oGJ" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/engine_core) +"oGL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "oGP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -56213,6 +54711,23 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"oHs" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"oHt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/cryo{ + pixel_x = 8; + pixel_y = -26 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "oHx" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -56271,9 +54786,24 @@ "oIB" = ( /turf/closed/wall/almayer, /area/almayer/command/combat_correspondent) +"oJj" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "oJk" = ( /turf/closed/wall/almayer, /area/almayer/engineering/lower/workshop) +"oJm" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "oJp" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -56285,6 +54815,22 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"oJL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/door_control{ + id = "hangarentrancesouth"; + name = "South Hangar Shutters"; + pixel_y = 30; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "oJR" = ( /obj/effect/projector{ name = "Almayer_AresDown"; @@ -56304,9 +54850,7 @@ pixel_x = -24; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "oKb" = ( /obj/structure/machinery/status_display{ @@ -56346,6 +54890,17 @@ /obj/effect/landmark/late_join/bravo, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) +"oLj" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "oLm" = ( /obj/structure/machinery/door_control{ id = "ARES StairsLower"; @@ -56359,18 +54914,11 @@ pixel_y = -8 }, /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 8 }, /area/almayer/command/airoom) -"oLv" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "oLF" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -56402,15 +54950,6 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) -"oLT" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "oLU" = ( /turf/open/floor/almayer{ dir = 1; @@ -56457,6 +54996,10 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"oNa" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "oNb" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -56519,6 +55062,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"oOi" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/stern_hallway) "oOp" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wirecutters, @@ -56562,36 +55114,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) -"oPk" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "Interrogation Shutters"; - name = "\improper Shutters"; - pixel_x = -6; - pixel_y = -6; - req_access_txt = "3" - }, -/obj/item/device/taperecorder{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - 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"; @@ -56638,21 +55160,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_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 +"oPT" = ( +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"oQn" = ( /turf/open/floor/almayer{ - icon_state = "green" + dir = 1; + icon_state = "greencorner" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "oQs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/book/manual/surgery{ @@ -56662,6 +55181,16 @@ icon_state = "plate" }, /area/almayer/command/cichallway) +"oQw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_umbilical) "oQH" = ( /turf/open/floor/almayer{ icon_state = "cargo_arrow" @@ -56744,9 +55273,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "oRW" = ( /obj/structure/surface/table/almayer, @@ -56824,6 +55351,9 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"oSM" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "oSR" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -56879,6 +55409,15 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"oTH" = ( +/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/lower/port_umbilical) "oTO" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -56892,6 +55431,10 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"oUi" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "oUt" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = 8; @@ -56905,6 +55448,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"oUz" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "oUG" = ( /obj/structure/machinery/light{ dir = 8 @@ -56914,6 +55469,12 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"oUO" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "oUZ" = ( /obj/structure/surface/rack, /obj/item/tool/crowbar, @@ -56940,6 +55501,22 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) +"oVk" = ( +/obj/structure/stairs{ + dir = 4 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "oVY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -56994,19 +55571,50 @@ icon_state = "plate" }, /area/almayer/living/starboard_garden) +"oWE" = ( +/obj/structure/stairs, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"oWF" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"oWK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"oWN" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "oXb" = ( /obj/effect/landmark/start/marine/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"oXd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "oXp" = ( /obj/effect/decal/cleanable/ash, /turf/open/floor/wood/ship, @@ -57047,6 +55655,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"oYi" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "oYp" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -57079,6 +55693,26 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) +"oYA" = ( +/obj/structure/surface/table/almayer, +/obj/structure/dropship_equipment/fuel/cooling_system{ + layer = 3.5 + }, +/obj/item/clothing/glasses/welding{ + layer = 3.6; + pixel_x = 2; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/computer/working_joe{ + dir = 4; + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "oZn" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -57199,6 +55833,36 @@ dir = 1 }, /area/almayer/command/cic) +"pbm" = ( +/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/mp_bunks) "pbo" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ @@ -57339,9 +56003,32 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"pdT" = ( +/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/medical) "pek" = ( /turf/closed/wall/almayer, /area/almayer/maint/hull/upper/s_bow) +"peu" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "peM" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -57380,6 +56067,17 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) +"pfd" = ( +/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/starboard_hallway) "pfp" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Up4"; @@ -57451,9 +56149,7 @@ dir = 1; icon_state = "ramptop" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "pgJ" = ( /obj/structure/sign/safety/hvac_old{ @@ -57539,6 +56235,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) +"pij" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "piJ" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -57565,9 +56268,6 @@ icon_state = "plate" }, /area/almayer/shipboard/panic) -"pji" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/stern_hallway) "pjj" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -57605,18 +56305,18 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) -"pjM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"pjP" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"pjQ" = ( /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + dir = 10; + icon_state = "silver" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/aft_hallway) "pjR" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -57627,13 +56327,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"pky" = ( -/obj/structure/largecrate/random/secure, +"pjY" = ( +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + dir = 10; + icon_state = "red" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_hallway) "pkz" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -57652,13 +56354,15 @@ "plv" = ( /turf/open/floor/plating, /area/almayer/maint/hull/lower/l_m_p) -"plI" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, +"pmd" = ( +/obj/structure/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" + icon_state = "plate" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/hallways/lower/port_aft_hallway) "pmq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -57697,9 +56401,7 @@ pixel_y = 16 }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "pnh" = ( /obj/structure/ladder{ @@ -57711,12 +56413,6 @@ }, /turf/open/floor/plating/almayer, /area/almayer/maint/hull/upper/p_bow) -"pno" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "pns" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -57812,6 +56508,12 @@ "ppM" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/stern) +"ppV" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "pqc" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -57836,6 +56538,19 @@ /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) +"pqv" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) +"pqw" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "pqD" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -57859,6 +56574,16 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"pqM" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Workshop Vendors" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/repair_bay) "pqP" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/machinery/light{ @@ -57868,12 +56593,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"pqQ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "pqX" = ( /obj/structure/bed/chair{ dir = 4 @@ -57895,6 +56614,18 @@ }, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_s) +"prl" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "prx" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -57919,6 +56650,12 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"prV" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/stern_hallway) "prX" = ( /obj/structure/ladder{ height = 2; @@ -58049,6 +56786,16 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"pum" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "pun" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -58062,36 +56809,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"puv" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/almayer{ - 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 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "puI" = ( /obj/structure/machinery/light{ dir = 4 @@ -58135,22 +56852,31 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"pvt" = ( -/obj/structure/sign/safety/refridgeration{ - pixel_y = -32 +"pvi" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" }, -/obj/structure/sign/safety/medical{ - pixel_x = 15; - pixel_y = -32 +/area/almayer/hallways/upper/aft_hallway) +"pvE" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) +"pvI" = ( +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = 32 }, +/obj/structure/machinery/power/reactor, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/engineering/lower/engine_core) "pvJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58190,6 +56916,23 @@ icon_state = "redcorner" }, /area/almayer/shipboard/starboard_missiles) +"pwd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) +"pwx" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "pwG" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -58279,6 +57022,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/bravo) +"pym" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/stern_hallway) "pyx" = ( /obj/structure/machinery/door_display/research_cell{ dir = 4; @@ -58354,6 +57103,16 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"pzj" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "northcheckpoint"; + name = "\improper Checkpoint Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "pzG" = ( /obj/docking_port/stationary/emergency_response/port1, /turf/open/floor/almayer{ @@ -58379,18 +57138,12 @@ icon_state = "bluecorner" }, /area/almayer/living/briefing) +"pzW" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/hallways/lower/vehiclehangar) "pAm" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"pAR" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/starboard_umbilical) "pAV" = ( /obj/structure/platform{ dir = 1 @@ -58398,16 +57151,14 @@ /obj/item/tool/mop, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_p) -"pBn" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 +"pBg" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "greencorner" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/stern_hallway) "pBG" = ( /turf/closed/wall/almayer, /area/almayer/command/corporateliaison) @@ -58428,18 +57179,6 @@ icon_state = "plate" }, /area/almayer/squads/req) -"pCD" = ( -/obj/structure/pipes/standard/cap/hidden{ - dir = 4 - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 14; - pixel_y = -25 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/stern_hallway) "pCQ" = ( /obj/structure/surface/table/almayer, /obj/item/attachable/lasersight, @@ -58529,6 +57268,12 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) +"pEd" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "pEl" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -58580,6 +57325,18 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/south1) +"pFf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "pFq" = ( /obj/structure/surface/table/almayer, /obj/item/device/binoculars, @@ -58628,12 +57385,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"pGM" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "pGT" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -58644,6 +57395,20 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"pHh" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "pHp" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/perma) @@ -58661,6 +57426,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"pHF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "pHG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58736,6 +57510,16 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/north1) +"pJq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "pJr" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -58744,19 +57528,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"pJv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "pJD" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -58776,12 +57547,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"pJJ" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "pJR" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_AresUp"; @@ -58791,8 +57556,8 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - dir = 4 +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "pKh" = ( @@ -58812,6 +57577,28 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/s_stern) +"pKU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) +"pKW" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "DeployWorkR"; + name = "\improper Workshop Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/repair_bay) "pKZ" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -58928,28 +57715,6 @@ 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) "pNM" = ( /obj/structure/platform{ dir = 4 @@ -58986,6 +57751,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/s_bow) +"pOC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "pOD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment{ @@ -59011,6 +57788,12 @@ dir = 8 }, /area/almayer/command/cic) +"pOW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "pOY" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/microwave{ @@ -59102,6 +57885,21 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"pPQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) +"pPU" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "pQr" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -59125,6 +57923,16 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) +"pQI" = ( +/obj/structure/machinery/power/apc/almayer{ + cell_type = /obj/item/cell/hyper; + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "pQN" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/franks, @@ -59176,14 +57984,6 @@ dir = 4 }, /area/almayer/medical/containment/cell/cl) -"pRL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) "pRO" = ( /obj/structure/bed/chair{ dir = 4 @@ -59222,15 +58022,24 @@ }, /turf/open/floor/plating, /area/almayer/engineering/lower/workshop) -"pSL" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 +"pSF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) +"pSN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "pSQ" = ( /obj/structure/reagent_dispensers/fueltank{ anchored = 1 @@ -59349,6 +58158,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) +"pVr" = ( +/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/lower/starboard_midship_hallway) "pVx" = ( /obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, /turf/open/floor/almayer{ @@ -59485,16 +58304,31 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"pYi" = ( -/obj/structure/machinery/light{ - dir = 4 +"pYh" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/structure/sign/safety/one{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"pYi" = ( /obj/structure/pipes/vents/pump/no_boom{ dir = 8 }, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 4 }, /area/almayer/command/airoom) "pYo" = ( @@ -59516,6 +58350,17 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"pYN" = ( +/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/hallways/lower/port_fore_hallway) "pYQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -59538,12 +58383,18 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) -"pZo" = ( +"pZq" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/stern_hallway) "pZH" = ( /obj/structure/machinery/shower{ dir = 8 @@ -59589,6 +58440,24 @@ /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_s) +"qas" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"qax" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) "qaV" = ( /turf/open/floor/almayer{ dir = 10; @@ -59653,12 +58522,6 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"qcl" = ( -/obj/structure/sign/safety/conference_room{ - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "qcy" = ( /obj/structure/sign/safety/bathunisex{ pixel_x = 8; @@ -59668,6 +58531,13 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) +"qcL" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "qdk" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -59741,6 +58611,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"qdV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "qec" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -59829,6 +58705,12 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"qfq" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_umbilical) "qfy" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -59864,6 +58746,14 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) +"qfI" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "qfQ" = ( /obj/structure/surface/rack, /obj/item/stack/folding_barricade/three, @@ -59896,16 +58786,6 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"qgG" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "qgK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/generic/press{ @@ -59945,12 +58825,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"qhc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/stern_hallway) "qhx" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -60057,14 +58931,9 @@ /area/almayer/medical/lower_medical_lobby) "qit" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/light{ - dir = 8 - }, /obj/item/paper_bin/uscm, /obj/item/tool/pen, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "qiy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -60088,6 +58957,12 @@ icon_state = "silvercorner" }, /area/almayer/command/computerlab) +"qjK" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/mp_bunks) "qjL" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -60126,16 +59001,6 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"qkn" = ( -/obj/structure/machinery/power/apc/almayer{ - cell_type = /obj/item/cell/hyper; - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "qkP" = ( /obj/item/frame/light_fixture{ anchored = 1; @@ -60172,13 +59037,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"qld" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/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{ @@ -60219,21 +59077,16 @@ /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 - }, +"qlL" = ( +/obj/item/reagent_container/food/drinks/cans/souto, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "cargo_arrow" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/repair_bay) +"qmh" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/hallways/lower/repair_bay) "qmk" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -60304,21 +59157,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/medical_science) -"qmC" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Brig"; - closeOtherId = "brigmaint_n" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "qmD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -60331,12 +59169,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"qmL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "qmM" = ( /obj/structure/bed/chair{ dir = 8 @@ -60387,6 +59219,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"qnf" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/stern_hallway) "qnh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60510,6 +59351,13 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) +"qpH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "qpQ" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/medbay, @@ -60527,6 +59375,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_p) +"qqb" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) +"qqf" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "qqn" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -60549,17 +59410,6 @@ 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{ @@ -60590,10 +59440,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/s_stern) -"qqV" = ( -/obj/structure/machinery/cm_vending/clothing/military_police_warden, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) "qra" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -60649,15 +59495,6 @@ 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{ @@ -60705,25 +59542,6 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) -"quI" = ( -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - name = "South West Ladders Shutters"; - pixel_y = -21; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/structure/sign/safety/stairs{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/west{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "quJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -60768,6 +59586,24 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) +"qvE" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "qvI" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -60789,6 +59625,13 @@ icon_state = "test_floor4" }, /area/almayer/command/corporateliaison) +"qwf" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "qwo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -60830,9 +59673,9 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 8 }, /area/almayer/command/airoom) "qwY" = ( @@ -60930,6 +59773,12 @@ /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"qxK" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "qxL" = ( /obj/structure/machinery/medical_pod/autodoc, /turf/open/floor/almayer{ @@ -60980,21 +59829,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"qyF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "qyG" = ( /obj/structure/sign/safety/hazard{ desc = "A sign that warns of a hazardous environment nearby"; @@ -61009,6 +59843,21 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"qyP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "qyW" = ( /obj/structure/bed/chair{ dir = 4 @@ -61017,6 +59866,13 @@ icon_state = "emeraldfull" }, /area/almayer/squads/charlie_delta_shared) +"qyX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "qyZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/view_objectives, @@ -61055,6 +59911,16 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) +"qAy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "qAA" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -61181,6 +60047,16 @@ /obj/effect/landmark/start/captain, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/bridgebunks) +"qCA" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/sign/safety/rewire{ + pixel_y = -38 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/execution) "qCG" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -61265,6 +60141,10 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"qEc" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "qEk" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -61278,6 +60158,15 @@ icon_state = "plating" }, /area/almayer/command/cic) +"qEl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "qEn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -61299,6 +60188,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) +"qEz" = ( +/obj/structure/machinery/door_control{ + id = "laddersouthwest"; + name = "South West Ladders Shutters"; + pixel_y = -21; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/obj/structure/sign/safety/stairs{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/west{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "qEA" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -61323,6 +60231,16 @@ icon_state = "plate" }, /area/almayer/engineering/lower) +"qEM" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_fore_hallway) "qEZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -61335,14 +60253,6 @@ icon_state = "dark_sterile" }, /area/almayer/maint/hull/upper/u_a_s) -"qFb" = ( -/obj/structure/sign/safety/storage{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "qFi" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 @@ -61396,6 +60306,9 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_s) +"qFX" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/mp_bunks) "qGc" = ( /turf/open/floor/almayer{ dir = 1; @@ -61431,31 +60344,33 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_two) +"qGP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "qGU" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/south2) +"qGZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "qHg" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) -"qHl" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "qHq" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -61466,6 +60381,12 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"qHu" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "qHG" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -61492,6 +60413,15 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) +"qIf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "qIx" = ( /obj/structure/machinery/door/airlock/almayer/maint{ access_modified = 1; @@ -61572,14 +60502,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) -"qJN" = ( -/obj/structure/surface/rack, -/obj/item/device/radio, -/obj/item/tool/weldpack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "qJS" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; @@ -61673,20 +60595,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_p) -"qKM" = ( -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - name = "South West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) "qKY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -61719,23 +60627,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) -"qLj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"qLo" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"qLp" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "qLs" = ( /obj/effect/landmark/start/maint, /turf/open/floor/plating/plating_catwalk, @@ -61769,20 +60660,10 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"qLK" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "qLS" = ( /obj/structure/pipes/standard/manifold/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - dir = 4 +/turf/open/floor/almayer/aicore/glowing/no_build{ + icon_state = "ai_floor3" }, /area/almayer/command/airoom) "qLV" = ( @@ -61898,6 +60779,19 @@ /obj/structure/disposalpipe/junction, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) +"qOS" = ( +/obj/structure/machinery/door_control{ + id = "laddernorthwest"; + name = "North West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "qOY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -61906,12 +60800,22 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/upper/u_f_p) +"qPk" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "qPn" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/maint/hull/lower/l_a_s) +"qPv" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/aft_hallway) "qPD" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) @@ -61928,9 +60832,6 @@ icon_state = "silverfull" }, /area/almayer/command/securestorage) -"qPO" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/surgery) "qPS" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -61940,6 +60841,10 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"qPU" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "qPX" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -61981,17 +60886,21 @@ }, /area/almayer/maint/hull/upper/u_a_p) "qQS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 - }, -/obj/structure/machinery/light{ - dir = 8 +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"qRb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"qRd" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/area/almayer/command/airoom) +/area/almayer/hallways/lower/starboard_aft_hallway) "qRj" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -62021,6 +60930,15 @@ icon_state = "test_floor4" }, /area/almayer/command/corporateliaison) +"qRx" = ( +/obj/structure/sign/safety/stairs{ + pixel_x = -15 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "qSm" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -62037,6 +60955,14 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"qSI" = ( +/obj/structure/surface/table/almayer, +/obj/item/tank/oxygen/red, +/obj/item/tool/screwdriver, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "qSK" = ( /obj/item/stack/sheet/metal{ layer = 2.9; @@ -62058,6 +60984,14 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"qTu" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "qTQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -62070,12 +61004,6 @@ /obj/structure/machinery/gibber, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"qTZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_umbilical) "qUh" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 @@ -62123,6 +61051,26 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"qUG" = ( +/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 + }, +/obj/item/device/toner{ + pixel_y = -11; + pixel_x = -2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "qUL" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 @@ -62134,6 +61082,11 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"qUO" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "qUZ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -62199,12 +61152,27 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"qWx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "qWI" = ( /obj/structure/machinery/status_display{ pixel_y = -30 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"qWK" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "emerald" + }, +/area/almayer/hallways/lower/port_midship_hallway) "qWL" = ( /obj/structure/prop/holidays/string_lights{ pixel_y = 27 @@ -62336,14 +61304,6 @@ 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; @@ -62366,15 +61326,6 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) -"qYt" = ( -/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) "qYu" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -62485,6 +61436,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"qZT" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "qZX" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -62499,6 +61458,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/engine_core) +"raE" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_fore_hallway) "raK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62517,22 +61482,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_f_p) -"rbi" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/ids{ - pixel_x = -6; - pixel_y = 8 +"rbd" = ( +/obj/structure/barricade/handrail{ + dir = 8 }, -/obj/item/device/flash, -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101 +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "test_floor5" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/starboard_midship_hallway) "rbp" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -62548,9 +61509,7 @@ pixel_y = -24; req_one_access_txt = "200;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "rbB" = ( /turf/open/floor/almayer{ @@ -62590,16 +61549,6 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/execution) -"rbX" = ( -/obj/structure/sign/safety/manualopenclose{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "rbY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -62651,6 +61600,18 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"rdo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "rdt" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -62710,15 +61671,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"rdY" = ( -/obj/structure/machinery/light{ - dir = 8 - }, +"rdT" = ( +/obj/structure/machinery/power/apc/almayer, /turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_fore_hallway) "rec" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 1 @@ -62739,6 +61697,11 @@ icon_state = "plate" }, /area/almayer/living/gym) +"reu" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "reH" = ( /obj/structure/noticeboard{ pixel_x = -10; @@ -62810,6 +61773,10 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"rfQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "rfT" = ( /obj/item/frame/camera{ desc = "The Staff Officer insisted he needed to monitor everyone at all times."; @@ -62848,6 +61815,9 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_s) +"rgt" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/port_umbilical) "rgy" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -62881,17 +61851,6 @@ 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) "rhm" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -62938,6 +61897,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) +"rhX" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "rib" = ( /obj/structure/sink{ dir = 8; @@ -63001,6 +61970,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"riK" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/aft_hallway) "riP" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/rewire{ @@ -63107,6 +62082,23 @@ /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/living/gym) +"rkV" = ( +/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/warden_office) "rlc" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -63143,6 +62135,15 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"rlD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "rlQ" = ( /turf/open/floor/almayer{ dir = 1; @@ -63174,18 +62175,15 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/starboard) -"rmv" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Interrogation Observation" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 +"rmk" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 26 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/shipboard/brig/starboard_hallway) "rmx" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -63194,6 +62192,18 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) +"rmz" = ( +/obj/structure/sign/safety/conference_room{ + pixel_x = 14; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"rmB" = ( +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "rmD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -63212,8 +62222,23 @@ }, /area/almayer/engineering/upper_engineering/port) "rna" = ( -/turf/closed/wall/almayer/white, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) +"rnd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "rnF" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -63236,9 +62261,7 @@ dir = 8; pixel_x = 17 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "rnN" = ( /obj/structure/pipes/standard/simple/hidden/supply, @@ -63250,6 +62273,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"rnO" = ( +/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/hallways/upper/stern_hallway) "rob" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -63300,36 +62332,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"rpd" = ( -/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/hallways/port_hallway) -"rph" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"roY" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, /turf/open/floor/almayer{ - icon_state = "redfull" + dir = 9; + icon_state = "red" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/upper/stern_hallway) "rpp" = ( /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) "rpG" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -63367,15 +62382,6 @@ /obj/structure/sign/poster/safety, /turf/closed/wall/almayer, /area/almayer/maint/lower/s_bow) -"rqw" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "rqz" = ( /obj/structure/sign/safety/autoopenclose{ pixel_y = 32 @@ -63415,6 +62421,13 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"rqQ" = ( +/obj/structure/machinery/door/poddoor/railing{ + id = "vehicle_elevator_railing_aux" + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "rqS" = ( /obj/structure/surface/table/almayer, /obj/item/folder/red{ @@ -63469,6 +62482,13 @@ icon_state = "test_floor4" }, /area/almayer/living/bridgebunks) +"rrG" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "rrK" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -63494,21 +62514,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) -"rrV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"rrU" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "rsK" = ( /obj/structure/sign/safety/hvac_old, /turf/closed/wall/almayer, /area/almayer/squads/req) +"rsL" = ( +/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/hallways/lower/port_aft_hallway) "rsM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63547,6 +62571,23 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/almayer/maint/lower/constr) +"rtc" = ( +/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 + }, +/obj/item/device/camera_film{ + pixel_x = -5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "rtd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -63681,6 +62722,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/p_bow) +"rwf" = ( +/obj/structure/sign/safety/analysis_lab{ + pixel_y = 26 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 15; + pixel_y = 26 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) +"rwj" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "rwq" = ( /obj/structure/sign/safety/cryo{ pixel_x = 7; @@ -63736,15 +62796,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_p) -"rxG" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "rxK" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -63755,11 +62806,6 @@ icon_state = "silverfull" }, /area/almayer/command/computerlab) -"rxV" = ( -/obj/structure/barricade/handrail, -/obj/structure/largecrate/supply/generator, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) "ryt" = ( /obj/structure/pipes/standard/manifold/visible, /turf/open/floor/almayer{ @@ -63795,20 +62841,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"rzy" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "rzN" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/medical/containment) -"rzY" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "rAb" = ( /turf/open/floor/almayer{ icon_state = "bluecorner" @@ -63878,20 +62920,6 @@ 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{ @@ -63915,16 +62943,6 @@ /obj/structure/machinery/processor, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"rBk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) "rBv" = ( /obj/structure/closet/toolcloset, /turf/open/floor/almayer{ @@ -63956,13 +62974,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"rBV" = ( -/obj/structure/bed/chair/bolted, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "rCh" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -63976,9 +62987,7 @@ /obj/structure/machinery/camera/autoname/almayer/containment/ares{ dir = 8 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "rCl" = ( /obj/effect/decal/warning_stripes{ @@ -64002,9 +63011,7 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "rCD" = ( /obj/structure/machinery/light/small{ @@ -64028,22 +63035,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"rCU" = ( -/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{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/chief_mp_office) "rDb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -64076,6 +63067,15 @@ icon_state = "green" }, /area/almayer/squads/req) +"rDf" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) +"rDm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "rDr" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -64112,22 +63112,19 @@ 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) "rDH" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_p) +"rDO" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "rDQ" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -64149,20 +63146,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"rDY" = ( -/obj/item/stack/sheet/glass/reinforced{ - amount = 50 +"rEd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" }, -/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" +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/hallways/lower/port_fore_hallway) "rEf" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -64198,12 +63193,6 @@ icon_state = "cargo" }, /area/almayer/maint/hull/lower/l_f_s) -"rEu" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "rEv" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -64236,22 +63225,6 @@ 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/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -64288,15 +63261,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering/starboard) -"rFB" = ( -/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_umbilical) "rFH" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -64310,21 +63274,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"rFY" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"rGg" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"rGc" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "green" + dir = 10; + icon_state = "red" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/stern_hallway) "rGj" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -64392,6 +63350,13 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) +"rHn" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "rHo" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ layer = 1.9 @@ -64418,6 +63383,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"rHr" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "rHw" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -64510,6 +63481,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"rIP" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "rIV" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -64593,39 +63573,6 @@ /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) "rJY" = ( /obj/item/book/manual/medical_diagnostics_manual, /obj/structure/surface/rack, @@ -64652,13 +63599,6 @@ icon_state = "rasputin15" }, /area/almayer/powered/agent) -"rKy" = ( -/obj/structure/machinery/firealarm{ - dir = 1; - pixel_y = -28 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "rKA" = ( /obj/structure/bed{ can_buckle = 0 @@ -64743,6 +63683,12 @@ dir = 8 }, /area/almayer/medical/containment/cell/cl) +"rMj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "rMO" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -64811,9 +63757,7 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "rNK" = ( /obj/structure/surface/table/almayer, @@ -64830,15 +63774,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"rOj" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) "rOs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clipboard, @@ -64848,6 +63783,14 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"rOv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "rOC" = ( /obj/structure/machinery/light{ dir = 1 @@ -64890,6 +63833,11 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"rPF" = ( +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "rPO" = ( /turf/open/floor/almayer{ dir = 10; @@ -64986,23 +63934,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) -"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 +"rRf" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, /turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/upper/aft_hallway) +"rRq" = ( +/turf/closed/wall/almayer, +/area/almayer/lifeboat_pumps/south2) "rRz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -65060,6 +64003,18 @@ }, /turf/open/floor/plating, /area/almayer/maint/lower/constr) +"rSA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_fore_hallway) "rSG" = ( /obj/structure/toilet{ pixel_y = 16 @@ -65097,6 +64052,14 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"rTA" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "rTJ" = ( /obj/effect/decal/cleanable/blood/oil/streak, /turf/open/floor/almayer{ @@ -65137,16 +64100,6 @@ /obj/effect/landmark/late_join/nurse, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) -"rUs" = ( -/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) "rUy" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -65155,6 +64108,11 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"rUN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "rVc" = ( /obj/structure/bed/chair{ dir = 8; @@ -65164,16 +64122,24 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_p) -"rVm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +"rVt" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/part_fabricator/dropship, /turf/open/floor/almayer{ - icon_state = "redcorner" + icon_state = "plate" + }, +/area/almayer/hallways/lower/repair_bay) +"rVC" = ( +/obj/structure/pipes/vents/pump/on, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/starboard_aft_hallway) "rVN" = ( /turf/open/floor/almayer{ dir = 8; @@ -65207,25 +64173,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"rWv" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "rWz" = ( /turf/open/floor/plating, /area/almayer/maint/upper/u_m_s) -"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{ icon_state = "cargo" }, /area/almayer/living/cryo_cells) +"rWP" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "rWT" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -65265,6 +64233,25 @@ icon_state = "test_floor4" }, /area/almayer/living/gym) +"rXE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = -32 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/execution) "rXF" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -65307,6 +64294,15 @@ icon_state = "cargo" }, /area/almayer/maint/hull/lower/l_f_s) +"rXV" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "rYh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65322,13 +64318,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"rYj" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "rYp" = ( /obj/effect/landmark/start/marine/medic/delta, /obj/effect/landmark/late_join/delta, @@ -65348,6 +64337,26 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"rYG" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) +"rYI" = ( +/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/hallways/lower/starboard_fore_hallway) "rYJ" = ( /obj/structure/surface/table/almayer, /obj/item/device/taperecorder, @@ -65355,17 +64364,25 @@ icon_state = "plate" }, /area/almayer/living/offices/flight) -"rZz" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +"rZt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -30 +/obj/structure/machinery/door_control{ + id = "hangarentrancesouth"; + name = "South Hangar Shutters"; + pixel_y = 30; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_fore_hallway) "rZB" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 @@ -65374,6 +64391,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) +"rZC" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "rZP" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack, @@ -65387,6 +64413,13 @@ /obj/effect/landmark/late_join/doctor, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) +"sai" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "saL" = ( /obj/structure/machinery/door/airlock/almayer/generic/corporate{ name = "Corporate Liaison's Closet" @@ -65395,6 +64428,13 @@ icon_state = "test_floor4" }, /area/almayer/command/corporateliaison) +"saT" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "sbq" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; @@ -65418,8 +64458,15 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/panic) +"sbE" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "sbJ" = ( -/turf/closed/wall/almayer/white/hull, +/turf/closed/wall/almayer/aicore/hull, /area/almayer/powered/agent) "sbP" = ( /obj/effect/landmark/start/police, @@ -65439,6 +64486,19 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) +"sct" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/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) "scu" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -65494,20 +64554,6 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"scS" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101; - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "scX" = ( /obj/structure/surface/table/almayer, /obj/item/tool/kitchen/tray, @@ -65583,6 +64629,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"seL" = ( +/obj/structure/pipes/vents/pump{ + dir = 8; + id_tag = "mining_outpost_pump" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "sfT" = ( /turf/open/floor/almayer, /area/almayer/hallways/upper/port) @@ -65670,19 +64723,6 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) -"sgw" = ( -/obj/structure/surface/table/almayer, -/obj/item/prop/almayer/flight_recorder{ - pixel_x = 9 - }, -/obj/item/tool/weldingtool{ - pixel_x = -7; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "sgD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65702,6 +64742,16 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) +"sgL" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "southcheckpoint"; + name = "\improper Checkpoint Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/lower/port_midship_hallway) "sgR" = ( /obj/structure/surface/table/almayer, /obj/item/toy/deck{ @@ -65794,6 +64844,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_s) +"siy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "siz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/hangar{ @@ -65810,6 +64870,12 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) +"siC" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "siN" = ( /obj/structure/machinery/light{ dir = 1 @@ -65825,6 +64891,15 @@ icon_state = "plate" }, /area/almayer/engineering/lower) +"siS" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "siT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65845,10 +64920,9 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"sjc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"sje" = ( +/turf/open/floor/almayer/empty/vehicle_bay, +/area/almayer/hallways/lower/vehiclehangar) "sjj" = ( /obj/structure/machinery/keycard_auth{ pixel_x = -7; @@ -65917,13 +64991,6 @@ 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 @@ -65981,6 +65048,28 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) +"slo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"slv" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "slF" = ( /turf/open/floor/almayer{ dir = 9; @@ -65992,12 +65081,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"smn" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "smw" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/med_data/laptop{ @@ -66059,23 +65142,6 @@ }, /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; @@ -66089,18 +65155,6 @@ icon_state = "orange" }, /area/almayer/command/cic) -"snm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) "snt" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer{ @@ -66202,27 +65256,6 @@ icon_state = "cargo" }, /area/almayer/living/synthcloset) -"sos" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) -"sou" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "sov" = ( /turf/open/floor/almayer{ dir = 1; @@ -66333,6 +65366,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) +"spW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "sqa" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -66386,6 +65431,15 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) +"srh" = ( +/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/hallways/lower/port_umbilical) "srl" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ @@ -66396,6 +65450,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/upper/mess) +"srR" = ( +/obj/structure/stairs{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/obj/structure/machinery/light, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "srT" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 @@ -66407,20 +65475,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/evidence_storage) -"ssa" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "DeployWorkR"; - name = "\improper Workshop Shutters" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/repair_bay) "ssk" = ( /obj/structure/surface/rack, /obj/item/storage/backpack/marine/satchel{ @@ -66443,28 +65497,20 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_p) -"ssD" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"ssF" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32; + pixel_y = 6 }, -/area/almayer/shipboard/brig/main_office) -"ssE" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - name = "South West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +/obj/structure/sign/safety/reduction{ + pixel_x = 32; + pixel_y = -8 }, /turf/open/floor/almayer{ - icon_state = "greencorner" + dir = 8; + icon_state = "red" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_hallway) "ssU" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer{ @@ -66496,6 +65542,15 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) +"stk" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "str" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down3"; @@ -66538,45 +65593,37 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_s) -"stY" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer{ - dir = 4; - id = "hangarentrancenorth"; - name = "\improper North Hangar Podlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"suc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +"stR" = ( /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" + dir = 8; + icon_state = "pipe-c" }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"sub" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "cargo" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/vehiclehangar) "suy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"suH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "suJ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ name = "\improper Core Hatch" @@ -66589,10 +65636,18 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/engine_core) -"suV" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +"suU" = ( +/obj/structure/stairs, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "suY" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -66614,6 +65669,19 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"svt" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"svw" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "svF" = ( /obj/structure/prop/invuln/overhead_pipe{ pixel_x = 12 @@ -66638,13 +65706,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_s) -"swn" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/surgery) "swt" = ( /turf/open/floor/almayer{ icon_state = "greencorner" @@ -66701,21 +65762,6 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering) -"sxu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "sxD" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -66753,6 +65799,12 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"syj" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "syH" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 @@ -66762,13 +65814,13 @@ }, /turf/open/floor/almayer, /area/almayer/squads/delta) -"syP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +"szb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/stern_hallway) "szf" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -66793,6 +65845,20 @@ icon_state = "test_floor4" }, /area/almayer/living/offices) +"szG" = ( +/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/warden_office) "szM" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -66814,12 +65880,6 @@ 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 @@ -66849,6 +65909,14 @@ icon_state = "orange" }, /area/almayer/engineering/ce_room) +"sAD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "sAS" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, @@ -66859,6 +65927,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) +"sBK" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/upper/stern_hallway) "sBL" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light, @@ -66874,6 +65950,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) +"sCg" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "sCA" = ( /obj/structure/bed/chair/comfy/delta{ dir = 4 @@ -66935,12 +66017,42 @@ /obj/structure/surface/table/almayer, /turf/open/floor/plating, /area/almayer/maint/lower/constr) +"sDe" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + layer = 3.33; + pixel_x = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + layer = 3.33; + pixel_y = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 3.3 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/upper/stern_hallway) "sDu" = ( /obj/item/clothing/under/marine/dress, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"sDx" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/vehiclehangar) "sDA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/charlie{ @@ -66950,19 +66062,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"sDC" = ( -/obj/structure/sign/safety/analysis_lab{ - pixel_y = 26 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 15; - pixel_y = 26 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "sDD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -66976,17 +66075,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"sDV" = ( -/obj/structure/machinery/firealarm{ - pixel_y = -28 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "sEd" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ @@ -67065,13 +66153,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"sEz" = ( +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/shipboard/brig/starboard_hallway) "sEK" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" }, -/turf/open/floor/almayer/no_build{ - icon_state = "tcomms" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) "sEM" = ( /obj/structure/surface/table/reinforced/almayer_B, @@ -67122,22 +66213,17 @@ icon_state = "cargo" }, /area/almayer/shipboard/starboard_missiles) -"sFh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"sFu" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin/uscm{ + pixel_y = 7 }, -/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{ +/obj/item/tool/pen, +/turf/open/floor/almayer{ dir = 8; - id = "Interrogation Shutters"; - name = "\improper Privacy Shutters" + icon_state = "red" }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) +/area/almayer/shipboard/brig/starboard_hallway) "sGh" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/command/lifeboat) @@ -67238,9 +66324,7 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "sIr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -67270,6 +66354,14 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) +"sIR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "sIU" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ @@ -67282,10 +66374,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) -"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{ @@ -67351,9 +66439,7 @@ dir = 8; layer = 3.25 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "sLk" = ( /obj/structure/ladder{ @@ -67388,12 +66474,12 @@ /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 +"sLX" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "emeraldcorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "sMu" = ( /obj/item/trash/uscm_mre, /obj/structure/bed/chair/comfy/charlie{ @@ -67435,6 +66521,16 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"sNL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "sNO" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3" @@ -67577,6 +66673,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"sPY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"sQu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "sQF" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -67659,15 +66772,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"sSY" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) "sTd" = ( /turf/open/floor/almayer{ dir = 4; @@ -67693,6 +66797,13 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"sTU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "sTV" = ( /obj/structure/machinery/power/apc/almayer/hardened{ cell_type = /obj/item/cell/hyper; @@ -67726,6 +66837,15 @@ icon_state = "bluefull" }, /area/almayer/squads/delta) +"sUk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "sUs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67742,16 +66862,6 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"sUF" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "sUO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -67775,15 +66885,15 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) -"sVf" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 +"sVA" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, /turf/open/floor/almayer{ + dir = 8; icon_state = "green" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_hallway) "sVT" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, @@ -67894,6 +67004,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"sXC" = ( +/obj/structure/sign/safety/storage{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "sXE" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Auxiliary Support Officer's Room" @@ -67919,25 +67038,37 @@ 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" +"sYj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/structure/sign/safety/ammunition{ - pixel_y = 32 +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = 32 +/area/almayer/hallways/upper/aft_hallway) +"sYl" = ( +/obj/structure/machinery/body_scanconsole{ + dir = 8 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + dir = 8; + icon_state = "sterile_green_side" + }, +/area/almayer/shipboard/brig/medical) +"sYr" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_umbilical) "sYw" = ( /obj/structure/platform{ dir = 8 @@ -67964,20 +67095,6 @@ 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{ @@ -68001,6 +67118,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_s) +"sZe" = ( +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "sZq" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; @@ -68079,21 +67201,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"tak" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"tal" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) "tan" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -68129,15 +67236,6 @@ "taw" = ( /turf/closed/wall/almayer, /area/almayer/maint/hull/upper/u_a_s) -"taA" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "taH" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ id = "Containment Cell 2"; @@ -68177,6 +67275,17 @@ icon_state = "plate" }, /area/almayer/hallways/upper/starboard) +"tbD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) +"tbF" = ( +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/aft_hallway) "tcd" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio{ @@ -68197,6 +67306,12 @@ "tcO" = ( /turf/closed/wall/almayer/outer, /area/almayer/maint/hull/lower/l_a_p) +"tcS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "tcZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -68233,6 +67348,14 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"tdi" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "tdv" = ( /obj/structure/surface/table/almayer, /obj/structure/sign/safety/terminal{ @@ -68288,21 +67411,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"tdK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/airlock{ - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/port_umbilical) "tdT" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 @@ -68325,6 +67433,15 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"ter" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "teu" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/weapon/gun/shotgun/pump{ @@ -68350,16 +67467,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"teH" = ( -/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 @@ -68381,29 +67488,17 @@ icon_state = "red" }, /area/almayer/shipboard/brig/lobby) -"tfl" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"tfw" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"tfE" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 }, +/obj/item/storage/firstaid/regular, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/brig/execution_storage) "tfH" = ( /obj/structure/machinery/light/containment, /obj/effect/decal/warning_stripes{ @@ -68417,6 +67512,21 @@ /obj/structure/machinery/light/small, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"tfZ" = ( +/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/starboard_hallway) "tge" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -68435,6 +67545,33 @@ /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"tgy" = ( +/obj/structure/machinery/light, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ + req_one_access = null; + req_one_access_txt = "7;23;27;102" + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) +"tgz" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_y = -32 + }, +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"tgJ" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) "tgK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -68563,13 +67700,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"tit" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "tiE" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -68643,6 +67773,10 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"tiZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "tjj" = ( /turf/open/floor/almayer{ dir = 5; @@ -68691,13 +67825,16 @@ icon_state = "orange" }, /area/almayer/maint/hull/lower/l_m_s) -"tki" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +"tkg" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "tkn" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, @@ -68810,6 +67947,12 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"tmE" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "tmH" = ( /obj/structure/pipes/vents/pump, /obj/structure/machinery/camera/autoname/almayer{ @@ -68875,16 +68018,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_three) -"tnl" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 - }, -/obj/structure/sign/safety/north{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "tnY" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -68962,6 +68095,20 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"toQ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "tpa" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/window/reinforced{ @@ -68978,9 +68125,37 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"tpj" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/aft_hallway) "tpn" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/evidence_storage) +"tpB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "hangarentrancesouth"; + name = "\improper South Hangar Podlock" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_fore_hallway) "tpD" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -68991,36 +68166,29 @@ icon_state = "silver" }, /area/almayer/living/bridgebunks) -"tqg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/door_control{ - id = "DeployWorkR"; - name = "Workshop Shutters"; - pixel_x = -7; - pixel_y = -26; - req_one_access_txt = "3;22;2;19;7" - }, -/obj/structure/surface/rack, -/obj/item/rappel_harness{ - pixel_y = 8 +"tpG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/obj/item/rappel_harness, -/obj/item/rappel_harness{ - pixel_y = -6 +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 15; - pixel_y = -32 +/area/almayer/hallways/lower/port_umbilical) +"tpR" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"tqf" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = -16 }, -/turf/open/floor/almayer{ - icon_state = "silverfull" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, -/area/almayer/hallways/repair_bay) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "tqE" = ( /obj/structure/machinery/light{ dir = 8 @@ -69043,6 +68211,19 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"tqQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "tqV" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/electrical{ @@ -69244,31 +68425,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_p) -"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; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "ttS" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -69335,9 +68491,32 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"tup" = ( +/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/lower/starboard_midship_hallway) "tuA" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/port_missiles) +"tuC" = ( +/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 = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "tuJ" = ( /obj/item/reagent_container/glass/bucket{ pixel_x = 4; @@ -69363,6 +68542,13 @@ icon_state = "redcorner" }, /area/almayer/shipboard/weapon_room) +"tvl" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "tvr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -69391,6 +68577,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_s) +"tvJ" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "tvM" = ( /obj/structure/bed/chair{ dir = 1 @@ -69488,16 +68684,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_p) -"twT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -26 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "twW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -69512,26 +68698,19 @@ }, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"txe" = ( +"txd" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 1; + icon_state = "pipe-c" }, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"txi" = ( -/obj/structure/machinery/light{ - dir = 8 + dir = 5 }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/stern_hallway) "txp" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating/plating_catwalk, @@ -69544,6 +68723,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_s) +"txE" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "txH" = ( /obj/structure/bed/stool, /turf/open/floor/almayer{ @@ -69564,6 +68753,17 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"txS" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "tyb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -69595,11 +68795,12 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) -"tzf" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, +"tzw" = ( +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/port_fore_hallway) "tzx" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -69610,6 +68811,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) +"tzF" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "tzL" = ( /obj/structure/sign/safety/waterhazard{ pixel_x = 8; @@ -69626,6 +68833,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"tAb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "tAq" = ( /obj/structure/surface/table/reinforced/black, /obj/item/clothing/mask/breath{ @@ -69669,6 +68884,13 @@ icon_state = "cargo" }, /area/almayer/medical/lower_medical_medbay) +"tAW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "tBq" = ( /obj/item/tool/crowbar, /turf/open/floor/plating/plating_catwalk, @@ -69680,27 +68902,18 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"tBz" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" +"tBP" = ( +/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{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) -"tBF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"tBL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/shipboard/brig/execution_storage) "tBU" = ( /obj/structure/platform, /obj/structure/largecrate/random/case/double{ @@ -69764,12 +68977,16 @@ icon_state = "orange" }, /area/almayer/maint/hull/upper/u_a_s) -"tCN" = ( +"tCD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ dir = 8; - icon_state = "orange" + icon_state = "cargo_arrow" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/aft_hallway) "tCT" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 @@ -69861,6 +69078,11 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) +"tFQ" = ( +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "tFS" = ( /obj/structure/machinery/computer/supplycomp, /obj/structure/sign/safety/terminal{ @@ -69917,14 +69139,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"tGq" = ( -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "tGG" = ( /obj/structure/bed/chair/comfy/alpha{ dir = 1 @@ -69940,14 +69154,14 @@ }, /turf/closed/wall/almayer, /area/almayer/shipboard/panic) -"tGO" = ( -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 +"tGS" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "tGT" = ( /obj/structure/machinery/light{ dir = 1 @@ -69960,15 +69174,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"tHh" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = -32 - }, +"tGW" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "blue" + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/stern_hallway) "tHk" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -70003,6 +69214,12 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) +"tHF" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "tHQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -70017,8 +69234,8 @@ /area/almayer/shipboard/brig/cells) "tId" = ( /obj/structure/machinery/recharge_station, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_cargo" }, /area/almayer/command/airoom) "tIe" = ( @@ -70030,6 +69247,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"tIl" = ( +/obj/structure/pipes/vents/pump/on, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "tIp" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dorms" @@ -70116,28 +69342,19 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"tJM" = ( -/obj/structure/toilet{ - pixel_y = 13 - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, +"tJH" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "mono" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/upper/stern_hallway) "tJN" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; pixel_y = 13 }, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_cargo" }, /area/almayer/command/airoom) "tJR" = ( @@ -70228,34 +69445,17 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"tLZ" = ( +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "tMc" = ( /obj/structure/machinery/chem_master/industry_mixer, /turf/open/floor/almayer{ icon_state = "orange" }, /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{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/chief_mp_office) "tMT" = ( /obj/item/tool/weldingtool, /obj/structure/surface/rack, @@ -70340,6 +69540,13 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"tON" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "tOW" = ( /turf/open/floor/almayer{ dir = 10; @@ -70392,6 +69599,20 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"tPz" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"tPB" = ( +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/aft_hallway) "tPI" = ( /obj/structure/bed/chair{ dir = 4 @@ -70407,6 +69628,16 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"tQe" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "tQi" = ( /obj/effect/landmark/start/warrant, /obj/effect/decal/warning_stripes{ @@ -70415,29 +69646,6 @@ }, /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{ - dir = 9; - icon_state = "sterile_green_side" - }, -/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) "tQA" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ dir = 1 @@ -70451,6 +69659,14 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"tQO" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "tQV" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/south1) @@ -70492,12 +69708,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"tSw" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hallways/stern_hallway) "tSB" = ( /turf/open/floor/almayer{ dir = 1; @@ -70510,6 +69720,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"tSY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/stern_hallway) "tTk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -70555,6 +69774,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_s) +"tTO" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "tUh" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -70571,6 +69797,17 @@ "tUx" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"tUK" = ( +/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/starboard_hallway) "tUN" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ access_modified = 1; @@ -70634,10 +69871,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_p) +"tVZ" = ( +/turf/open/floor/almayer{ + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/lower/repair_bay) "tWd" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating, /area/almayer/maint/lower/constr) +"tWf" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "tWi" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -70674,6 +69925,14 @@ icon_state = "test_floor4" }, /area/almayer/maint/upper/mess) +"tWL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "tWM" = ( /obj/docking_port/stationary/escape_pod/north, /turf/open/floor/plating, @@ -70734,6 +69993,11 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) +"tXo" = ( +/turf/open/floor/almayer{ + icon_state = "redcorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "tXM" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -70858,17 +70122,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_s) -"tZP" = ( -/obj/structure/surface/rack, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/upper_engineering/port) "tZZ" = ( /obj/structure/machinery/cryopod, /obj/effect/decal/warning_stripes{ @@ -70936,6 +70189,9 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/upper/u_f_s) +"uaG" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "uaI" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/processor{ @@ -70967,9 +70223,7 @@ icon_state = "E"; pixel_x = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "ubI" = ( /obj/structure/surface/table/almayer, @@ -70984,6 +70238,27 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"ubQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) +"uch" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "ucp" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -71024,6 +70299,23 @@ icon_state = "plate" }, /area/almayer/command/cic) +"udf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/storage{ + pixel_y = 32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "udi" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -71047,15 +70339,6 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"udF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) "udG" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes{ @@ -71201,6 +70484,17 @@ /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer, /area/almayer/living/briefing) +"ugw" = ( +/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/starboard_hallway) "ugJ" = ( /obj/structure/largecrate/random/case/small, /obj/structure/largecrate/random/mini/small_case{ @@ -71212,11 +70506,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"ugT" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "ugZ" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -71242,6 +70531,28 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"uhq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "northcheckpoint"; + name = "\improper Checkpoint Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"uhA" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "uhE" = ( /obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, /turf/open/floor/plating/plating_catwalk, @@ -71260,18 +70571,6 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) -"uhW" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) -"uif" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "uiC" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -71345,16 +70644,13 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"ukh" = ( -/obj/structure/sign/safety/rewire{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" +"uky" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_umbilical) "ukC" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/almayer{ @@ -71407,6 +70703,16 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) +"ulH" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 2; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "ulZ" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -71447,6 +70753,22 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"umD" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) +"umI" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "umS" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -71656,17 +70978,6 @@ "uqo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"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{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "uqA" = ( /obj/structure/machinery/firealarm{ dir = 8; @@ -71692,6 +71003,22 @@ /obj/docking_port/stationary/escape_pod/east, /turf/open/floor/plating, /area/almayer/maint/hull/upper/u_m_p) +"urk" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/starboard_umbilical) +"urs" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "ury" = ( /obj/structure/bed/chair{ dir = 8 @@ -71735,14 +71062,6 @@ /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"urW" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 7" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "usm" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ @@ -71866,6 +71185,14 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) +"uun" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) "uuu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71910,6 +71237,12 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower) +"uuI" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/port_midship_hallway) "uuR" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal8"; @@ -71933,6 +71266,25 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"uuT" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) +"uvh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_aft_hallway) "uvp" = ( /obj/structure/largecrate/supply, /obj/structure/sign/safety/bulkhead_door{ @@ -71942,6 +71294,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/s_bow) +"uvq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "uvt" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -72027,24 +71391,6 @@ }, /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"; @@ -72129,18 +71475,6 @@ /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"; - name = "South West Ladders Shutters"; - pixel_x = 25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) "uyd" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -72191,12 +71525,37 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) +"uzH" = ( +/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"; + closeOtherId = "brigmed" + }, +/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/medical) "uAb" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"uAi" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "uAj" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, @@ -72277,17 +71636,13 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"uBn" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" - }, -/area/almayer/hallways/vehiclehangar) -"uBw" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" +"uBj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 3 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "uBx" = ( /obj/structure/prop/invuln/overhead_pipe{ dir = 4; @@ -72312,16 +71667,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_m_p) -"uBz" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) "uBM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -72361,6 +71706,20 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"uCt" = ( +/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/lower/starboard_midship_hallway) "uCw" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_container/food/snacks/tomatomeat, @@ -72428,6 +71787,36 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"uEO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"uES" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/recharge_station{ + layer = 2.9 + }, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "uFd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -72479,21 +71868,6 @@ /obj/effect/landmark/map_item, /turf/open/floor/almayer, /area/almayer/living/briefing) -"uFL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) -"uFP" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) "uGc" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /obj/structure/sign/safety/hazard{ @@ -72511,12 +71885,18 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"uGt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +"uGf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "uGN" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -72559,16 +71939,11 @@ icon_state = "plate" }, /area/almayer/maint/lower/s_bow) -"uId" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/step_trigger/clone_cleaner, +"uIa" = ( /turf/open/floor/almayer{ - dir = 9; - icon_state = "green" + icon_state = "greencorner" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/aft_hallway) "uIv" = ( /turf/open/floor/almayer{ icon_state = "orange" @@ -72600,6 +71975,19 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha_bravo_shared) +"uJb" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "uJk" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer4" @@ -72608,15 +71996,13 @@ icon_state = "outerhull_dir" }, /area/space) -"uJs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"uJM" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/starboard_fore_hallway) "uJU" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -72666,13 +72052,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"uKA" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "uKH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -72694,22 +72073,13 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_point_defense) -"uLu" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"uLv" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_y = -32 - }, -/obj/structure/sign/safety/manualopenclose{ - pixel_x = 15; - pixel_y = -32 +"uLE" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/area/almayer/shipboard/brig/medical) "uLG" = ( /obj/structure/closet/crate/freezer{ desc = "A freezer crate. Someone has written 'open on christmas' in marker on the top." @@ -72766,12 +72136,24 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"uNf" = ( +/obj/structure/sign/safety/conference_room{ + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "uNg" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/living/bridgebunks) +"uNp" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -30 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "uNq" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ @@ -72811,22 +72193,23 @@ icon_state = "blue" }, /area/almayer/living/basketball) +"uNQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "uNV" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"uOc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "uOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/south2) @@ -72850,14 +72233,9 @@ icon_state = "blue" }, /area/almayer/living/basketball) -"uPI" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) +"uPE" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "uPN" = ( /obj/item/tool/wirecutters/clippers, /turf/open/floor/almayer{ @@ -72889,19 +72267,23 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) +"uPX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"uQi" = ( +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "uQm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) -"uQn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "uQo" = ( /obj/structure/machinery/disposal, /obj/item/reagent_container/food/drinks/cans/beer{ @@ -72914,22 +72296,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"uQU" = ( -/obj/structure/stairs{ - dir = 1 - }, -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/effect/projector{ - name = "Almayer_Up4"; - vector_x = -19; - vector_y = 104 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/port_hallway) "uRo" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -72962,6 +72328,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"uRD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "uRM" = ( /obj/structure/bed{ can_buckle = 0 @@ -73010,15 +72382,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"uSB" = ( -/obj/structure/machinery/keycard_auth{ - pixel_x = 25 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) "uSH" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/reagent_dispensers/water_cooler{ @@ -73054,6 +72417,16 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"uSZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "uTk" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/plating, @@ -73091,6 +72464,16 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) +"uTP" = ( +/obj/structure/disposalpipe/segment, +/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/hallways/lower/starboard_aft_hallway) "uTU" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -73115,13 +72498,6 @@ icon_state = "orangefull" }, /area/almayer/engineering/lower/workshop) -"uTY" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "uTZ" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -73144,6 +72520,28 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) +"uUf" = ( +/obj/structure/surface/table/almayer, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = 9 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = -9; + pixel_y = -4 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_y = -2 + }, +/obj/item/reagent_container/pill/happy, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "uUi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -73210,6 +72608,15 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"uVg" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "uVh" = ( /obj/structure/filingcabinet/seeds, /turf/open/floor/almayer{ @@ -73229,9 +72636,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply/no_boom{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "uVA" = ( /turf/open/floor/almayer{ @@ -73264,21 +72669,29 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"uVZ" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "uWc" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"uWC" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"uWm" = ( +/obj/effect/projector{ + name = "Almayer_Up4"; + vector_x = -19; + vector_y = 104 }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + allow_construction = 0; + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "uWV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -73339,14 +72752,21 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_p) "uXu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "Interrogation Shutters"; + name = "\improper Privacy Shutters" }, -/obj/structure/pipes/standard/manifold/hidden/supply{ +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Interrogation" + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/interrogation) "uXL" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -73395,6 +72815,22 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"uYM" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) +"uZm" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "uZo" = ( /obj/structure/bed/stool, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -73420,10 +72856,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"uZQ" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/hallways/repair_bay) +"uZI" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "uZV" = ( /obj/structure/reagent_dispensers/fueltank/gas/methane{ anchored = 1 @@ -73447,13 +72885,33 @@ icon_state = "test_floor4" }, /area/almayer/living/basketball) -"vak" = ( -/obj/structure/sign/safety/security{ +"vaq" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) +"vaM" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/airlock{ pixel_x = 15; pixel_y = 32 }, -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_umbilical) +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "vaQ" = ( /obj/structure/machinery/door/airlock/almayer/medical{ dir = 1; @@ -73463,6 +72921,9 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) +"vaS" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/mp_bunks) "vaV" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -73563,6 +73024,18 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) +"vbZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "vcm" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_x = -30 @@ -73600,6 +73073,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_s) +"vcO" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "vdl" = ( /obj/structure/window/reinforced/ultra{ pixel_y = -12 @@ -73612,24 +73094,6 @@ icon_state = "plating_striped" }, /area/almayer/shipboard/brig/execution) -"vdJ" = ( -/obj/structure/surface/table/almayer, -/obj/item/pipe{ - dir = 9 - }, -/obj/item/tool/screwdriver{ - layer = 3.6; - pixel_x = 9; - pixel_y = 8 - }, -/obj/item/tool/crowbar/red{ - pixel_x = 17 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "vdL" = ( /obj/structure/sign/safety/reception{ pixel_x = -17; @@ -73673,15 +73137,6 @@ icon_state = "plate" }, /area/almayer/maint/upper/u_m_s) -"vdW" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "ven" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -73747,15 +73202,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"vfw" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) "vfx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -73772,11 +73218,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"vfB" = ( -/turf/open/floor/almayer/no_build{ - dir = 4 - }, -/area/almayer/command/airoom) "vfP" = ( /turf/open/floor/almayer/research/containment/corner{ dir = 1 @@ -73796,17 +73237,6 @@ /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{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" - }, -/area/almayer/hallways/port_hallway) "vgn" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -73875,22 +73305,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"vgC" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/door_control{ - id = "hangarentrancenorth"; - name = "North Hangar Podlocks"; - pixel_y = -26; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "vgD" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -73900,36 +73314,9 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"vgF" = ( -/obj/structure/stairs{ - dir = 4 - }, -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "vgO" = ( /turf/closed/wall/almayer/research/containment/wall/east, /area/almayer/medical/containment/cell) -"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; @@ -73944,9 +73331,7 @@ /obj/item/folder/white, /obj/item/folder/white, /obj/item/folder/white, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "vhw" = ( /obj/structure/disposalpipe/trunk{ @@ -74045,19 +73430,8 @@ /obj/structure/pipes/standard/manifold/hidden/supply/no_boom{ dir = 1 }, -/turf/open/floor/plating/plating_catwalk{ - allow_construction = 0 - }, +/turf/open/floor/plating/plating_catwalk/aicore, /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{ @@ -74109,6 +73483,29 @@ icon_state = "plating" }, /area/almayer/shipboard/port_missiles) +"vjk" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "vjv" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -74116,6 +73513,12 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"vjB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "vjC" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -74132,6 +73535,16 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"vjG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/hallways/lower/port_umbilical) "vjK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, @@ -74152,6 +73565,15 @@ icon_state = "test_floor4" }, /area/almayer/maint/lower/constr) +"vjT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/lower/port_umbilical) "vjW" = ( /obj/structure/reagent_dispensers/watertank{ anchored = 1 @@ -74234,6 +73656,12 @@ icon_state = "plate" }, /area/almayer/maint/lower/s_bow) +"vkQ" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "vkR" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -74282,12 +73710,6 @@ }, /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; @@ -74322,6 +73744,13 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"vlR" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "vlX" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /turf/open/floor/almayer{ @@ -74391,6 +73820,12 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"vno" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/almayer/hallways/lower/port_midship_hallway) "vnD" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -74400,6 +73835,28 @@ icon_state = "plate" }, /area/almayer/living/gym) +"vnY" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"vnZ" = ( +/obj/structure/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) +"vop" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silvercorner" + }, +/area/almayer/hallways/lower/repair_bay) "vor" = ( /obj/effect/decal/cleanable/blood, /obj/structure/prop/broken_arcade, @@ -74480,6 +73937,19 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/processing) +"vqz" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/hallways/lower/port_fore_hallway) "vqC" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -74627,6 +74097,21 @@ icon_state = "cargo" }, /area/almayer/living/offices) +"vsf" = ( +/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/lower/starboard_midship_hallway) "vsh" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -74655,19 +74140,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"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{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) "vta" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -74706,29 +74178,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) -"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" - }, -/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 @@ -74764,6 +74213,16 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"vuE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "vuF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ access_modified = 1; @@ -74797,6 +74256,15 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"vuV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "vuZ" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -74931,28 +74399,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_p) -"vwP" = ( -/obj/structure/surface/table/almayer, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_x = -7; - pixel_y = 9 - }, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_x = 9 - }, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_x = -9; - pixel_y = -4 - }, -/obj/item/prop/helmetgarb/prescription_bottle{ - pixel_y = -2 - }, -/obj/item/reagent_container/pill/happy, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hallways/repair_bay) "vwU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -74974,6 +74420,22 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"vxh" = ( +/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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/warden_office) "vxu" = ( /obj/structure/machinery/meter, /obj/structure/pipes/standard/simple/visible{ @@ -75019,6 +74481,17 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"vxY" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "vyg" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data, @@ -75068,6 +74541,9 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"vyB" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) "vyH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -75077,6 +74553,13 @@ "vyI" = ( /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) +"vzi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 3 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "vzj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 @@ -75097,19 +74580,19 @@ "vzp" = ( /turf/open/floor/almayer/research/containment/entrance, /area/almayer/medical/containment/cell/cl) -"vzq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 3 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"vzu" = ( +"vzy" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 + dir = 5 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/starboard_hallway) "vzz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -75233,20 +74716,14 @@ }, /area/almayer/medical/medical_science) "vAU" = ( -/obj/structure/machinery/light{ - dir = 8 - }, /obj/structure/pipes/vents/scrubber/no_boom{ dir = 4 }, -/turf/open/floor/almayer/no_build{ - dir = 8; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 8 }, /area/almayer/command/airoom) -"vBm" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/main_office) "vBp" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -75345,6 +74822,19 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/s_bow) +"vDo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "vDt" = ( /obj/item/stool, /obj/effect/landmark/yautja_teleport, @@ -75398,6 +74888,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"vEv" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddernorthwest"; + name = "\improper North West Ladders Shutters" + }, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "vEx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -75442,6 +74942,15 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) +"vFp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) "vFv" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -75457,6 +74966,19 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"vFy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/sign/safety/stairs{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "vFH" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -75476,6 +74998,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_p) +"vGn" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/interrogation) "vGA" = ( /obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer{ @@ -75523,6 +75051,30 @@ "vHn" = ( /turf/closed/wall/almayer/outer, /area/almayer/maint/hull/upper/u_m_s) +"vHp" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/prop/helmetgarb/flair_io{ + pixel_x = -10; + pixel_y = 6 + }, +/obj/item/prop/magazine/boots/n160{ + pixel_x = -6; + pixel_y = -5 + }, +/obj/structure/transmitter/rotary{ + name = "Flight Deck Telephone"; + phone_category = "Almayer"; + phone_id = "Flight Deck"; + pixel_y = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/repair_bay) "vHq" = ( /obj/item/device/assembly/mousetrap/armed, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -75540,13 +75092,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"vHs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "vHt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door_control{ @@ -75642,36 +75187,26 @@ icon_state = "test_floor4" }, /area/almayer/maint/hull/lower/l_a_s) -"vIm" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +"vIr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/aft_hallway) "vIu" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"vIN" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/intercom{ - pixel_y = 32 - }, +"vJc" = ( /turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" + dir = 4; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/warden_office) "vJg" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -75743,22 +75278,12 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) "vKF" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/effect/projector{ - name = "Almayer_Down2"; - vector_x = 1; - vector_y = -100 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/obj/structure/machinery/cm_vending/sorted/medical, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/shipboard/brig/medical) "vKI" = ( /obj/structure/machinery/light{ dir = 1 @@ -75787,6 +75312,15 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) +"vLp" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "vLA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -75815,13 +75349,15 @@ /obj/effect/landmark/start/otech, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices) -"vMx" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +"vMA" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "vME" = ( /turf/open/floor/almayer{ dir = 9; @@ -75854,6 +75390,20 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"vMJ" = ( +/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/mp_bunks) "vMM" = ( /obj/structure/machinery/light, /obj/effect/decal/cleanable/dirt, @@ -75865,6 +75415,16 @@ /obj/docking_port/stationary/escape_pod/north, /turf/open/floor/plating, /area/almayer/maint/hull/upper/u_m_p) +"vMU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "redcorner" + }, +/area/almayer/hallways/lower/port_fore_hallway) "vNp" = ( /obj/structure/sign/safety/three{ pixel_x = -17 @@ -75882,6 +75442,16 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie) +"vNT" = ( +/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/starboard_hallway) "vNW" = ( /turf/open/floor/almayer/uscm/directional{ dir = 9 @@ -75891,6 +75461,17 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) +"vOu" = ( +/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/mp_bunks) "vOw" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -75933,6 +75514,12 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) +"vOV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "vOY" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ access_modified = 1; @@ -75948,6 +75535,17 @@ icon_state = "test_floor4" }, /area/almayer/maint/upper/mess) +"vOZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "vPf" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -76021,6 +75619,15 @@ icon_state = "redfull" }, /area/almayer/engineering/lower/workshop/hangar) +"vPW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) "vQe" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down2"; @@ -76228,6 +75835,13 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) +"vTM" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "vTS" = ( /obj/structure/machinery/light{ pixel_x = 16 @@ -76258,6 +75872,16 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"vTX" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_y = -32 + }, +/obj/structure/sign/safety/manualopenclose{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "vUb" = ( /obj/effect/landmark/start/marine/alpha, /obj/effect/landmark/late_join/alpha, @@ -76277,6 +75901,12 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"vUI" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/warden_office) "vUJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -76292,27 +75922,18 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_p) -"vUP" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/cic_hallway) -"vUU" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/structure/sign/safety/three{ - pixel_x = 31; - pixel_y = -8 - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 +"vUO" = ( +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" + dir = 8; + icon_state = "green" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_hallway) +"vUP" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/cic_hallway) "vVb" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -76348,6 +75969,14 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"vVy" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "vVI" = ( /obj/structure/sign/safety/nonpress_0g{ pixel_x = 8; @@ -76367,23 +75996,18 @@ 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) "vVY" = ( /turf/open/floor/plating, /area/almayer/maint/hull/upper/u_m_s) +"vVZ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "vWc" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio/intercom/normandy{ @@ -76393,6 +76017,19 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) +"vWs" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "vWt" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -76514,10 +76151,14 @@ dir = 4; pixel_x = -17 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/glowing/no_build, /area/almayer/command/airoom) +"vXk" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/stern_hallway) "vXo" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -76540,12 +76181,21 @@ icon_state = "mono" }, /area/almayer/medical/upper_medical) -"vYi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +"vXF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) +"vYd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "vYm" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -76681,15 +76331,17 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"wbh" = ( -/obj/structure/machinery/light{ - dir = 4 +"waV" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + dir = 8; + icon_state = "red" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/upper/aft_hallway) "wbu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname/almayer{ @@ -76800,6 +76452,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"wcD" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "wcJ" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -76830,16 +76488,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"wdb" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/stairs{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/starboard_hallway) "wdf" = ( /obj/structure/bed/chair{ dir = 1 @@ -76924,6 +76572,12 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"wdQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_umbilical) "wdW" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -76956,6 +76610,14 @@ icon_state = "test_floor4" }, /area/almayer/medical/hydroponics) +"wer" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/repair_bay) "wes" = ( /obj/structure/machinery/cm_vending/sorted/medical/marinemed, /obj/structure/sign/safety/medical{ @@ -77013,24 +76675,6 @@ 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 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "wfE" = ( /turf/closed/wall/almayer, /area/almayer/living/gym) @@ -77056,14 +76700,6 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"wgd" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "wgf" = ( /obj/structure/sign/safety/nonpress_0g{ pixel_x = 32 @@ -77073,9 +76709,6 @@ icon_state = "plating" }, /area/almayer/shipboard/stern_point_defense) -"wgi" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) "wgk" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -77132,6 +76765,15 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"whQ" = ( +/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/warden_office) "wid" = ( /turf/closed/wall/almayer/outer, /area/almayer/maint/hull/lower/p_bow) @@ -77187,6 +76829,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"wiQ" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "vehicle1door"; + name = "Vehicle Bay One" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "wiW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -77243,6 +76895,11 @@ icon_state = "test_floor4" }, /area/almayer/hallways/upper/starboard) +"wjL" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/repair_bay) "wjP" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -77337,7 +76994,7 @@ alert_message = "Caution: Movement detected in ARES Core."; cooldown_duration = 1200 }, -/obj/structure/machinery/door/poddoor/almayer/blended/white/open{ +/obj/structure/machinery/door/poddoor/almayer/blended/aicore/open{ closed_layer = 3.2; id = "ARES Emergency"; layer = 3.2; @@ -77371,22 +77028,27 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"wld" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" +"wlg" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door_control{ + id = "Interrogation Shutters"; + name = "\improper Shutters"; + pixel_x = -6; + pixel_y = -6; + req_access_txt = "3" }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +/obj/item/device/taperecorder{ + pixel_x = 3; + pixel_y = 3 }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = -32 +/obj/structure/machinery/light/small{ + dir = 8 }, -/obj/structure/sign/safety/hazard{ - pixel_y = -32 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) +/area/almayer/shipboard/brig/interrogation) "wlh" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -77403,6 +77065,16 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_m_p) +"wlD" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "wlE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -77446,6 +77118,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"wmH" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "wmK" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -77480,7 +77158,7 @@ }, /area/almayer/living/bridgebunks) "wnh" = ( -/obj/structure/window/framed/almayer/white/hull, +/obj/structure/window/framed/almayer/aicore/hull, /turf/open/floor/plating, /area/almayer/command/airoom) "wnw" = ( @@ -77636,12 +77314,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"wqq" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) "wqr" = ( /obj/structure/sign/safety/terminal{ pixel_x = 7; @@ -77652,15 +77324,15 @@ icon_state = "plate" }, /area/almayer/command/combat_correspondent) -"wqA" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 +"wqO" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_aft_hallway) "wqW" = ( /obj/structure/closet/secure_closet/CMO, /obj/structure/machinery/light{ @@ -77679,12 +77351,47 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_a_p) +"wrr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/structure/machinery/door_control/railings{ + pixel_y = 24 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/lower/vehiclehangar) +"wru" = ( +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "wrC" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = -17 }, /turf/open/floor/almayer, /area/almayer/living/gym) +"wrN" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "wrQ" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -77741,16 +77448,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"wst" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) "wsw" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -77780,6 +77477,11 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"wsS" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "wtk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -77855,22 +77557,6 @@ icon_state = "mono" }, /area/almayer/medical/upper_medical) -"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"; - closeOtherId = "brigmed" - }, -/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/surgery) "wud" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -77998,15 +77684,18 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) -"wwu" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ +"wwv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"wwE" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "wwJ" = ( /obj/structure/surface/table/almayer, /obj/item/paper, @@ -78046,6 +77735,11 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"wxp" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "wxq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -78064,6 +77758,27 @@ "wxy" = ( /turf/closed/wall/almayer/outer, /area/almayer/maint/hull/upper/p_stern) +"wxD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"wxF" = ( +/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 = "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{ + dir = 5; + icon_state = "red" + }, +/area/almayer/shipboard/brig/warden_office) "wxU" = ( /obj/item/ashtray/bronze{ pixel_x = 7; @@ -78104,6 +77819,16 @@ }, /turf/open/floor/plating, /area/almayer/maint/lower/constr) +"wyE" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/aft_hallway) "wyG" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/airlock/almayer/maint{ @@ -78126,6 +77851,27 @@ icon_state = "plating" }, /area/almayer/command/airoom) +"wzy" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) +"wzJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"wzL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "wzZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ dir = 1; @@ -78139,17 +77885,12 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) -"wAR" = ( +"wAK" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "S" }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_umbilical) "wBd" = ( /obj/structure/machinery/status_display{ pixel_x = 32 @@ -78164,6 +77905,16 @@ icon_state = "red" }, /area/almayer/shipboard/brig/lobby) +"wBw" = ( +/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/lower/starboard_midship_hallway) "wBI" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/sign/safety/maint{ @@ -78205,9 +77956,7 @@ /obj/structure/stairs{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "wDg" = ( /obj/effect/decal/warning_stripes{ @@ -78219,13 +77968,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"wDp" = ( -/obj/structure/machinery/photocopier, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "wDq" = ( /obj/structure/largecrate/random/case/small, /obj/structure/machinery/light/small{ @@ -78275,6 +78017,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"wDG" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "wDH" = ( /obj/structure/morgue, /obj/structure/machinery/light{ @@ -78347,6 +78098,12 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"wEK" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "wEO" = ( /obj/structure/platform_decoration{ dir = 4 @@ -78377,6 +78134,9 @@ icon_state = "redfull" }, /area/almayer/command/cic) +"wFs" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "wFz" = ( /obj/item/prop{ desc = "Predecessor to the M56 the M38 was known for its extreme reliability in the field. This particular M38D is fondly remembered for its stalwart defence of the hangar bay during the Arcturian commando raid of the USS Almayer on Io."; @@ -78400,6 +78160,12 @@ icon_state = "plate" }, /area/almayer/shipboard/panic) +"wFQ" = ( +/obj/structure/machinery/cm_vending/clothing/maintenance_technician, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering/upper_engineering/port) "wFR" = ( /turf/open/floor/almayer, /area/almayer/living/gym) @@ -78438,14 +78204,6 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_f_p) -"wGA" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "wGE" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/marine/leader/delta, @@ -78478,6 +78236,13 @@ icon_state = "emerald" }, /area/almayer/living/port_emb) +"wHn" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "wHo" = ( /turf/open/floor/almayer{ icon_state = "emerald" @@ -78490,17 +78255,6 @@ }, /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(); @@ -78550,9 +78304,29 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) +"wIX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/disposalpipe/up/almayer{ + dir = 8; + id = "almayerlink" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "wJb" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/lower_medical_medbay) +"wJd" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/hallways/upper/stern_hallway) "wJh" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -78572,20 +78346,10 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) -"wJw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/computer/supplycomp/vehicle, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "wJB" = ( /obj/structure/machinery/cryopod/right, -/turf/open/floor/almayer{ - icon_state = "cargo" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_cargo" }, /area/almayer/command/airoom) "wJC" = ( @@ -78619,6 +78383,26 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_f_s) +"wKc" = ( +/obj/effect/decal/cleanable/vomit, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/engineering/upper_engineering/port) +"wKm" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_aft_hallway) "wKF" = ( /obj/structure/machinery/power/apc/almayer{ cell_type = /obj/item/cell/hyper; @@ -78637,6 +78421,15 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"wKN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "wKP" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -78737,6 +78530,38 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"wLS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"wMl" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/structure/sign/safety/two{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "wMv" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -78745,6 +78570,15 @@ icon_state = "dark_sterile" }, /area/almayer/living/auxiliary_officer_office) +"wMB" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "wMF" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -78759,6 +78593,17 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"wMI" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "wMO" = ( /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 @@ -78798,6 +78643,27 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/processing) +"wNz" = ( +/obj/structure/stairs, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"wNG" = ( +/obj/effect/projector{ + name = "Almayer_Up2"; + vector_x = -1; + vector_y = 100 + }, +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "wNS" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -78810,13 +78676,6 @@ /obj/structure/platform, /turf/open/floor/almayer, /area/almayer/living/briefing) -"wOh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "wOt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -78859,6 +78718,27 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"wPi" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/lower/port_midship_hallway) +"wPm" = ( +/obj/structure/pipes/standard/cap/hidden{ + dir = 4 + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/stern_hallway) "wPz" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -78894,12 +78774,17 @@ /obj/item/clothing/head/beret/cm, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_a_s) -"wQg" = ( +"wQu" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" + allow_construction = 0; + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/port_fore_hallway) "wQA" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 @@ -78913,6 +78798,19 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"wRf" = ( +/obj/structure/machinery/light/small, +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/press_area_ag{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/lower/port_umbilical) "wRN" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/goldappleseed, @@ -78952,15 +78850,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"wSk" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) "wSm" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -78994,13 +78883,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) -"wSK" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, +"wSQ" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "silver" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/hallways/lower/repair_bay) "wSR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -79091,14 +78979,20 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/south1) -"wTJ" = ( -/obj/structure/barricade/handrail, -/obj/structure/barricade/handrail{ - dir = 4 +"wTB" = ( +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/obj/structure/largecrate/random, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "wTM" = ( /turf/closed/wall/almayer/research/containment/wall/south, /area/almayer/medical/containment/cell) @@ -79119,13 +79013,6 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"wUz" = ( -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "wUJ" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ @@ -79167,6 +79054,20 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"wVh" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) +"wVm" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "wVt" = ( /obj/effect/step_trigger/clone_cleaner, /turf/open/floor/plating/plating_catwalk, @@ -79228,12 +79129,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/chapel) -"wWk" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "wWl" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/general_air_control/large_tank_control{ @@ -79255,6 +79150,14 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"wWt" = ( +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "wWz" = ( /turf/closed/wall/almayer/research/containment/wall/north, /area/almayer/medical/containment/cell) @@ -79271,12 +79174,6 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) -"wWQ" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "wWR" = ( /obj/structure/machinery/medical_pod/bodyscanner{ dir = 8 @@ -79307,6 +79204,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/u_a_p) +"wXz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "wXH" = ( /obj/structure/bed/chair{ dir = 1 @@ -79391,6 +79294,30 @@ }, /turf/open/floor/plating, /area/almayer/engineering/ce_room) +"wZk" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" + }, +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/obj/structure/machinery/light, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/aft_hallway) +"wZp" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "wZv" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -79419,26 +79346,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) -"wZM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - 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) "wZX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -79592,6 +79499,28 @@ icon_state = "plate" }, /area/almayer/shipboard/panic) +"xcY" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) +"xdf" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) +"xdl" = ( +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) "xdx" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular/empty, @@ -79661,6 +79590,16 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"xeq" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "xer" = ( /obj/structure/machinery/power/apc/almayer, /turf/open/floor/plating/plating_catwalk, @@ -79677,6 +79616,12 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/cafeteria_officer) +"xfo" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "xfq" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -79751,6 +79696,13 @@ icon_state = "sterile_green" }, /area/almayer/medical/lower_medical_lobby) +"xgk" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "xgm" = ( /obj/structure/reagent_dispensers/fueltank/oxygentank, /turf/open/floor/almayer{ @@ -79768,25 +79720,16 @@ }, /turf/open/floor/plating/almayer, /area/almayer/maint/hull/lower/l_a_p) -"xgx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) -"xgI" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null +"xgE" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/item/storage/donut_box{ - pixel_y = 8 +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "xgJ" = ( /obj/structure/machinery/light{ dir = 1 @@ -79837,6 +79780,11 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_p) +"xhi" = ( +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/stern_hallway) "xhn" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -79850,12 +79798,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"xhE" = ( -/obj/structure/bed/chair/bolted{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) "xhO" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -79867,6 +79809,17 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"xhU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/starboard_hallway) +"xhW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "xhZ" = ( /obj/structure/bed/chair/comfy/beige{ dir = 4 @@ -79962,23 +79915,12 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"xjG" = ( -/obj/structure/machinery/door_control{ - id = "Interrogation Shutters"; - name = "\improper Shutters"; - pixel_x = 24; - pixel_y = 12; - req_access_txt = "3" - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, +"xjI" = ( /turf/open/floor/almayer{ - dir = 5; + dir = 4; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/upper/stern_hallway) "xjK" = ( /obj/structure/sign/safety/hazard{ pixel_y = 32 @@ -80020,6 +79962,16 @@ "xkd" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/cells) +"xky" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "xkB" = ( /obj/structure/bed/chair/comfy/charlie{ dir = 1 @@ -80029,15 +79981,20 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"xkC" = ( -/obj/structure/machinery/light{ - dir = 8 +"xkN" = ( +/obj/structure/machinery/door_control{ + id = "laddernorthwest"; + name = "North West Ladders Shutters"; + pixel_x = 25; + req_one_access_txt = "2;3;12;19"; + throw_range = 15 }, +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" + dir = 4; + icon_state = "greencorner" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "xlk" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, @@ -80110,11 +80067,6 @@ icon_state = "cargo" }, /area/almayer/medical/lower_medical_medbay) -"xmX" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/surgery) "xns" = ( /obj/structure/machinery/door_control{ id = "ARES JoeCryo"; @@ -80125,7 +80077,7 @@ }, /obj/effect/landmark/late_join/working_joe, /obj/effect/landmark/start/working_joe, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/plating/plating_catwalk/aicore, /area/almayer/command/airoom) "xnz" = ( /obj/effect/decal/warning_stripes{ @@ -80168,9 +80120,25 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) +"xog" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "xoj" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop) +"xos" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) "xoB" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/maint/hull/upper/u_f_s) @@ -80188,6 +80156,15 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"xpc" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "xpi" = ( /obj/structure/sink{ dir = 8; @@ -80205,36 +80182,32 @@ 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 = "3" +"xpl" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/obj/item/device/radio/listening_bug/radio_linked/mp{ - pixel_y = 8 +/obj/structure/sign/safety/four{ + pixel_x = 31; + pixel_y = -8 }, -/obj/item/device/radio/listening_bug/radio_linked/mp, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 }, -/area/almayer/shipboard/brig/chief_mp_office) -"xpI" = ( -/obj/structure/stairs{ - dir = 4 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" }, -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 +/area/almayer/hallways/lower/port_midship_hallway) +"xpw" = ( +/obj/structure/machinery/medical_pod/sleeper{ + dir = 8 }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/shipboard/brig/medical) "xpL" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -80280,12 +80253,6 @@ 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{ @@ -80341,12 +80308,6 @@ 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 @@ -80373,6 +80334,17 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"xrC" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "xrI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -80381,10 +80353,16 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"xsg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +"xrT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "xsl" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -80439,12 +80417,13 @@ /obj/item/weapon/dart/green, /turf/open/floor/plating, /area/almayer/maint/lower/constr) -"xsW" = ( -/obj/structure/machinery/cm_vending/gear/vehicle_crew, -/turf/open/floor/almayer{ - icon_state = "cargo" +"xsX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/vehiclehangar) +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/stern_hallway) "xtM" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -80452,6 +80431,26 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"xtO" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) +"xub" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "xuc" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -80459,6 +80458,23 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"xui" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"xuy" = ( +/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/lower/port_fore_hallway) "xuE" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ dir = 1; @@ -80505,13 +80521,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"xvh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/hallways/aft_hallway) "xvE" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{ @@ -80530,11 +80539,21 @@ req_one_access_txt = "90;91;92" }, /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ - dir = 4; - icon_state = "silver" +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_silver"; + dir = 4 }, /area/almayer/command/airoom) +"xvO" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "xvQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/sentencing{ @@ -80573,6 +80592,18 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) +"xwm" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_fore_hallway) "xwp" = ( /obj/item/storage/box/matches{ pixel_x = -11; @@ -80603,6 +80634,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"xwU" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/upper/aft_hallway) "xwX" = ( /turf/open/floor/almayer{ dir = 9; @@ -80647,14 +80687,6 @@ }, /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 @@ -80756,9 +80788,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"xys" = ( -/turf/closed/wall/almayer, -/area/almayer/shipboard/brig/main_office) "xyt" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical{ @@ -80803,6 +80832,15 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) +"xyN" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/execution_storage) +"xyQ" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silvercorner" + }, +/area/almayer/hallways/lower/repair_bay) "xyY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -80835,30 +80873,18 @@ "xzB" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_s) -"xzO" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Execution Firearms" +"xzI" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/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" + dir = 1; + icon_state = "green" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/hallways/lower/port_midship_hallway) "xAe" = ( /turf/closed/wall/almayer/research/containment/wall/corner, /area/almayer/medical/containment/cell) -"xAj" = ( -/obj/structure/bed/chair/bolted{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "xAt" = ( /obj/structure/bed/chair/comfy/charlie{ dir = 8 @@ -80997,9 +81023,7 @@ /area/almayer/shipboard/brig/cic_hallway) "xDC" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "xDF" = ( /obj/structure/machinery/autolathe, @@ -81060,22 +81084,18 @@ "xFt" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_p) -"xFw" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "xFP" = ( /turf/open/floor/almayer{ dir = 5; icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) +"xFW" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/almayer/hallways/upper/aft_hallway) "xFZ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -81093,16 +81113,6 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) -"xGk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) "xGm" = ( /obj/structure/platform_decoration{ dir = 8 @@ -81184,6 +81194,12 @@ /obj/effect/spawner/random/powercell, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_a_p) +"xHl" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "xHp" = ( /turf/open/floor/almayer{ icon_state = "orange" @@ -81261,14 +81277,6 @@ 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" @@ -81407,6 +81415,18 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/upper/u_m_s) +"xLX" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_midship_hallway) "xMf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -81425,21 +81445,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"xMk" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" - }, -/obj/effect/projector{ - name = "Almayer_Down3"; - vector_x = 1; - vector_y = -102 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/almayer{ - allow_construction = 0 - }, -/area/almayer/hallways/aft_hallway) "xMl" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -81574,6 +81579,12 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"xNl" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "xNu" = ( /obj/structure/toilet{ dir = 1 @@ -81607,25 +81618,12 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) -"xNB" = ( -/obj/structure/machinery/light, -/obj/structure/sign/safety/security{ - pixel_y = -32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = -32 - }, -/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 +"xNM" = ( +/obj/structure/machinery/cm_vending/gear/vehicle_crew, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/vehiclehangar) +/area/almayer/hallways/lower/vehiclehangar) "xOs" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -81667,6 +81665,26 @@ dir = 4 }, /area/almayer/medical/containment/cell) +"xPn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "xPq" = ( /obj/structure/filingcabinet, /obj/item/folder/yellow, @@ -81735,11 +81753,17 @@ dir = 1 }, /area/almayer/medical/containment/cell) +"xQz" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_aft_hallway) "xQV" = ( /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "xQW" = ( /obj/structure/sign/safety/bathunisex{ @@ -81782,6 +81806,12 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"xRn" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/upper/aft_hallway) "xRw" = ( /turf/open/floor/almayer/uscm/directional{ dir = 1 @@ -81807,15 +81837,16 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"xRU" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"xSl" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "green" + dir = 4; + icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/stern_hallway) "xSw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -81826,6 +81857,12 @@ }, /turf/open/floor/plating, /area/almayer/squads/charlie) +"xSx" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "xSz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/status_display{ @@ -81836,15 +81873,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"xSI" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/repair_bay) "xSM" = ( /obj/structure/machinery/light{ dir = 8 @@ -81875,18 +81903,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/containment) -"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 @@ -82019,9 +82035,7 @@ pixel_y = 24; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "xVe" = ( /obj/effect/decal/warning_stripes{ @@ -82038,11 +82052,6 @@ "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" @@ -82072,6 +82081,12 @@ }, /turf/closed/wall/almayer, /area/almayer/living/tankerbunks) +"xVY" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/hallways/lower/port_midship_hallway) "xWd" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -82210,16 +82225,6 @@ 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 @@ -82229,6 +82234,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) +"xZf" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "blue" + }, +/area/almayer/hallways/upper/aft_hallway) "xZk" = ( /obj/item/prop/helmetgarb/gunoil{ layer = 4.2; @@ -82274,6 +82285,22 @@ }, /turf/open/floor/almayer, /area/almayer/maint/hull/upper/u_f_p) +"xZM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) +"xZR" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) "xZU" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -82294,6 +82321,18 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"yap" = ( +/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 = "plate" + }, +/area/almayer/hallways/lower/starboard_fore_hallway) "yaz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Officer's Study" @@ -82324,28 +82363,43 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 9 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"yaZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +"yaR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/command/airoom) -"ybf" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/stern_hallway) +"yaX" = ( +/obj/structure/machinery/door/poddoor/railing{ + dir = 2; + id = "vehicle_elevator_railing" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ dir = 1; - icon_state = "blue" + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/lower/vehiclehangar) +"yaZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + layer = 3.3 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer/aicore/no_build, +/area/almayer/command/airoom) +"ybk" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/upper/stern_hallway) "ybm" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/hardhat{ @@ -82370,16 +82424,14 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"ybU" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"ybP" = ( +/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/hallways/lower/port_umbilical) "ybZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/transmitter{ @@ -82486,6 +82538,19 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) +"ydA" = ( +/obj/structure/stairs{ + dir = 4 + }, +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/lower/port_fore_hallway) "ydE" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -82500,9 +82565,7 @@ icon_state = "W"; pixel_x = -1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "ydM" = ( /obj/structure/window{ @@ -82535,15 +82598,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"yeu" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/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, @@ -82580,6 +82634,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) +"yfd" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "yff" = ( /obj/structure/machinery/cm_vending/clothing/dress{ density = 0; @@ -82592,6 +82652,13 @@ icon_state = "cargo" }, /area/almayer/command/cic) +"yfg" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) "yfm" = ( /obj/effect/landmark/start/marine/delta, /obj/effect/landmark/late_join/delta, @@ -82599,24 +82666,13 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"yfv" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"yfw" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"yfy" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "yfG" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -82642,6 +82698,28 @@ icon_state = "silver" }, /area/almayer/maint/hull/upper/u_m_p) +"yfO" = ( +/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{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/warden_office) "yfS" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -82658,6 +82736,11 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"ygp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "ygv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -82671,6 +82754,26 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_f_p) +"ygB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "green" + }, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ygP" = ( +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/structure/surface/table/almayer, +/obj/item/fuel_cell, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) "yhg" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -82700,6 +82803,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/maint/hull/lower/l_m_s) +"yhV" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/mp_bunks) "yhZ" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/maint/hull/lower/p_bow) @@ -82715,26 +82827,11 @@ icon_state = "plate" }, /area/almayer/maint/hull/lower/l_m_s) -"yiq" = ( -/obj/structure/sign/safety/north{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) "yit" = ( -/obj/structure/machinery/light{ - dir = 4 - }, /obj/structure/pipes/vents/pump/no_boom{ dir = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "yiW" = ( /obj/structure/machinery/cryopod/right{ @@ -82819,6 +82916,18 @@ icon_state = "test_floor4" }, /area/almayer/living/grunt_rnr) +"yko" = ( +/obj/vehicle/powerloader, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/hallways/lower/repair_bay) "ykv" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ id = "InnerShutter"; @@ -82834,22 +82943,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"ykP" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/shipboard/brig/main_office) "ykY" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -82939,16 +83032,13 @@ icon_state = "test_floor5" }, /area/almayer/engineering/lower/engine_core) -"ylJ" = ( -/obj/structure/sign/safety/maint{ +"ylN" = ( +/obj/structure/sign/safety/galley{ pixel_x = 8; pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) "ymg" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -90320,13 +90410,13 @@ dhd oog jNT fag -jVP -feb -feb -feb -feb -feb +qCA feb +hRu +hRu +hRu +hRu +hRu ajZ aaa aaa @@ -90524,12 +90614,12 @@ nPb fZX dBS nSu -wld -mtl -jjm -wZN -kgQ -feb +rXE +xyN +ltO +tBP +tfE +hRu aag aaf ajY @@ -90728,11 +90818,11 @@ qVF xdJ kzr jqY -kBh -jNT -jNT -wSK -feb +elV +dJJ +dJJ +glP +hRu xiV xiV ajZ @@ -90931,11 +91021,11 @@ mtl mtl mtl ewI -mtl -xzO -pNk -jIH -mtl +xyN +hdQ +hUU +cXD +xyN igS xiV xiV @@ -91134,11 +91224,11 @@ tul mNK gtU bjk -mtl -mtl -mtl -mtl -mtl +xyN +xyN +xyN +xyN +xyN iuf pnh xiV @@ -91724,13 +91814,13 @@ uDg uDg gkr xkc -vBm -vBm -vBm -vBm -vBm -qmC -vBm +hvd +hvd +hvd +hvd +hvd +mze +eyD naB kry pHp @@ -91927,13 +92017,13 @@ uDg pOp gkr cth -vBm -rBV -oPk -mqo -vBm -eRL -puv +hvd +ddj +wlg +fuY +hvd +cQG +jXc naB pQr bsp @@ -92130,13 +92220,13 @@ uDg lDT xkc xyZ -vBm -ldu -wgi -wgi -ckS -eRL -sDV +hvd +vGn +ehl +ehl +uXu +cQG +alp naB naB naB @@ -92332,20 +92422,20 @@ aag uDg xkc gkr -vBm -vBm -sFC -sFC -sFC -vBm -lOI -pJv -jLM -btn -cMb -rbi -wDp -xys +hvd +hvd +iRp +iRp +iRp +hvd +cyc +vzy +fqQ +kHo +sFu +hnE +tTO +wFs nkX iQB cmv @@ -92535,20 +92625,20 @@ aag lrE xkc gkr -vBm -ykP -xAj -xhE -xhE -vBm -hKq -lwK -hrO -xsg -xsg -grF -xVl -uqy +hvd +iUX +gii +gIO +gIO +hvd +gYx +oyC +bKI +xhU +xhU +jCX +sEz +iNh wdF wdF wdF @@ -92738,20 +92828,20 @@ aag lrE gkr xkc -vBm -ykP -xjG -ssD -gcT -rmv -eRL -eRL -rhl -gcT -gcT -xVl -gcT -lxy +hvd +iUX +gJE +cKJ +hyV +keG +cQG +cQG +ugw +cwC +cwC +sEz +cwC +uun oRk oRk oRk @@ -92948,8 +93038,8 @@ lrq lrq lrq lrq -cxA -uwS +uhA +aaP tpn tpn srT @@ -93151,8 +93241,8 @@ cAy uhE vKB lrq -szR -cZj +vjB +gIz tpn eVR cak @@ -93354,8 +93444,8 @@ nqe nqe nqe tLa -eRL -igt +cQG +gfd tpn rqS cak @@ -93557,8 +93647,8 @@ pId qMD uqo lrq -sYi -sYE +nVm +dRA tpn gIU xIq @@ -93760,8 +93850,8 @@ nqe nqe nqe mza -eRL -wfB +cQG +qvE tpn tpn tpn @@ -93963,13 +94053,13 @@ fxJ fAr qmU lrq -hZU -cWs -fAE -kHa -frX -mHA -kHa +dmr +wLS +aVm +cmM +miy +iUG +cmM snX oIh oIh @@ -94166,13 +94256,13 @@ iwV iwV lrq lrq -gob -cWs -irF -kHa -rEQ -xmX -eGr +kXt +wLS +eBx +cmM +hAf +cNI +bbi wdF wdF wdF @@ -94369,13 +94459,13 @@ bvH evR cQv cQv -vtD -rAX -kHa -kHa -lRe -mvR -kHa +rmk +nuZ +cmM +cmM +pdT +otp +cmM tzd tzd sgi @@ -94572,13 +94662,13 @@ kde ajj mZQ cQv -vgW -igt -swn -rpF -tQm -ond -swn +dFl +tUK +kTp +sYl +fgt +kCY +kTp gHt oIh eNR @@ -94775,13 +94865,13 @@ quj vgi rXd cqJ -ldu -igt -swn -dfO -dQv -doj -swn +oJm +tUK +kTp +hUh +nWS +xpw +kTp neC mjt vqc @@ -94978,13 +95068,13 @@ lEe pGT pGT vkM -sjc -xYS -kHa -qPO -wuc -qPO -qPO +ksm +bxE +cmM +oeZ +uzH +oeZ +oeZ ptq oRk eNR @@ -95181,13 +95271,13 @@ vyH ajj rXd cqJ -ldu -igt -swn -plI -dQv -lNN -qPO +oJm +tUK +kTp +uLE +nWS +cTy +oeZ emp emp emp @@ -95384,13 +95474,13 @@ sBg uGN rXd cQv -gax -igt -swn -vsM -dQv -ebv -qPO +mAY +tUK +kTp +hoW +nWS +aIY +oeZ cFC oIh lUm @@ -95499,13 +95589,13 @@ cmJ alU alU alU -jAi -jAi -jAi -jAi -aib -jAi -jAi +pzW +pzW +pzW +pzW +hNB +pzW +pzW ipB mVh sGK @@ -95587,13 +95677,13 @@ kde ajj tuk cQv -rzY -igt -swn -skq -dQv -hhW -qPO +kYU +tUK +kTp +vKF +nWS +glG +oeZ ehX mTN hZJ @@ -95702,15 +95792,15 @@ aoi grG bXY alU -xsW -uBn -wJw -bEz -bzA -dRw -bzy -bzy -bzy +xNM +ikl +eLp +dFM +lEV +mZP +sDx +sDx +sDx mVh sGK wid @@ -95790,13 +95880,13 @@ ioV cQv tlk cQv -cxA -suc -qPO -qPO -wuc -qPO -qPO +uhA +bKN +oeZ +oeZ +uzH +oeZ +oeZ mFc eKa emp @@ -95810,12 +95900,12 @@ bQc pgP uVV iBl -wIC -smZ -smZ -wIC -tMH -wIC +cHk +rkV +rkV +cHk +yfO +cHk pRs pdp xiV @@ -95905,15 +95995,15 @@ aoi bNk ecZ alU -bNW -uBn -fut -pqQ -pqQ -pqQ -bzA -rEu -bzy +odt +ikl +qAy +mua +mua +mua +lEV +eQz +sDx mVh fJu mVh @@ -95991,11 +96081,11 @@ rdM gUg cov cqJ -hNl -tak -uhW -uJs -tsX +may +hoK +mcp +hzG +eyD ngr cDN peO @@ -96013,12 +96103,12 @@ emp lFJ emp emp -wIC -puE -crp -dco -dqZ -wIC +cHk +hlI +ekZ +kvL +oix +cHk uxb oDh pdp @@ -96108,15 +96198,15 @@ cmJ alU alU alU -bOe -nrt -qyF -ecR -uOc -uOc -uOc -bPj -bzy +wrr +kjw +hBr +tqQ +hgp +hgp +hgp +nef +sDx mXm mVh sGK @@ -96194,11 +96284,11 @@ vxM vxM vxM vxM -qlS -eRL -eRL -uJs -tsX +tfZ +cQG +cQG +hzG +eyD tdy cDN oFY @@ -96216,13 +96306,13 @@ qUz ksg oIh iTl -wIC -cBZ -hMc -vAG -jIo -wIC -wIC +cHk +frt +vUI +tgJ +wVh +cHk +cHk oDh pdp xiV @@ -96302,23 +96392,23 @@ bTS lxo qcy kcp -kmk -kmk -mIJ -bLt -bXX -bKh -egq -bKh -bNp -fsd -bKj -jjs -jjs -jjs -jjs -jjs -jYd +sub +sub +tqf +pHF +vYd +ghF +eSp +ghF +aFG +pPQ +juS +mdk +mdk +mdk +mdk +mdk +kCd bSv bSv bSv @@ -96397,11 +96487,11 @@ kGu iqR fyp wJh -ldu -eRL -eRL -uJs -diP +oJm +cQG +cQG +hzG +asC tff cDN oFY @@ -96419,13 +96509,13 @@ oDy wsq vxK gwj -rCU -jPS -jPS -sJm -dqZ -rDY -wIC +vxh +csy +csy +bWQ +deH +szG +cHk pdp kIf xiV @@ -96505,23 +96595,23 @@ oQM aqI aqI kcp -jaK -jxP -xNL -bLu -bBB -bBB -bBB -bBB -bNp -mYY -nka -afz -afz -afz -afz -afz -iDd +bOw +mYt +jsR +vPW +vyB +vyB +vyB +vyB +aFG +vFp +yaX +sje +sje +sje +sje +sje +jhS qih bTH foN @@ -96600,11 +96690,11 @@ wee wee fRS wJh -yeu -sjc -rVm -mMZ -aDM +iFK +ksm +haY +kaQ +vNT oSC uFq wsl @@ -96622,13 +96712,13 @@ mBx utZ pyj jPP -wIC -xpo -xqs -rWF -uSB -lzY -wIC +cHk +wxF +vJc +kUg +ifz +fyI +cHk pdp ome xiV @@ -96708,23 +96798,23 @@ wGX bFr ppe kcp -bzA -bKh -bKh -hcs -kCS -kCS -kCS -kCS -hHJ -iWL -bkD -afz -afz -afz -afz -afz -iDd +lEV +ghF +ghF +jak +jdC +jdC +jdC +jdC +wiQ +dEo +fGd +sje +sje +sje +sje +sje +jhS bSv tjw bTH @@ -96803,11 +96893,11 @@ rDQ rDQ rDQ ctT -mLJ -bua -ybU -vBm -tsX +wXz +aNW +tvJ +eyD +eyD tsX tsX epu @@ -96828,10 +96918,10 @@ lnh wIC rWn rWn -wIC -wIC -wHM -wIC +cHk +cHk +gxt +cHk dJy aCA xiV @@ -96911,23 +97001,23 @@ rgK hbu iYe bJl -bKa -bKa -bKa -gCl -bzA -bzA -bzA -bzA -bNp -pqQ -nka -afz -afz -afC -afz -afz -bRx +yfd +yfd +yfd +kgS +lEV +lEV +lEV +lEV +aFG +mua +yaX +sje +sje +oiX +sje +sje +rqQ bSv ifb bTH @@ -97006,10 +97096,10 @@ sbP sbP sbP wJh -ekF -uif -vBm -vBm +oWK +jwr +eyD +eyD tHr mqg udR @@ -97032,9 +97122,9 @@ dgx fKi vxG wIC -xgI -dBQ -wIC +whQ +bHu +cHk oLf hIG xiV @@ -97114,23 +97204,23 @@ bTS bTS niR kcp -bzA -bKh -bKh -bLt -bzA -bKh -bKh -bKh -bNp -pqQ -fti -afz -afz -afz -afz -afz -iDd +lEV +ghF +ghF +pHF +lEV +ghF +ghF +ghF +aFG +mua +hoc +sje +sje +sje +sje +sje +jhS bSv aIX aIX @@ -97209,9 +97299,9 @@ ncf kjk qxr wJh -ekF -ugT -qqC +oWK +rPF +pfd ceZ jnD hUW @@ -97235,9 +97325,9 @@ jPS jPS xrt wIC -qqV -nNg -wIC +aDt +jTU +cHk oDh xas xiV @@ -97317,23 +97407,23 @@ sXE kcp kcp kcp -bzA -bBB -bBB -bLt -bzA -bKh -bBB -bBB -bNp -xgx -nka -afz -afz -afz -afz -afz -iDd +lEV +vyB +vyB +pHF +lEV +ghF +vyB +vyB +aFG +pJq +yaX +sje +sje +sje +sje +sje +jhS bSv cop cop @@ -97412,9 +97502,9 @@ vxM vxM vxM gaJ -hmG -xys -vBm +vMJ +qFX +cAR vGA hUW dHd @@ -97438,9 +97528,9 @@ qFi vAG hsj wIC -wIC -wIC -wIC +cHk +cHk +cHk oDh nEc xiV @@ -97520,23 +97610,23 @@ gZK bTS lyX kcp -bAr -bKh -bBB -bLt -bzA -bKh -bBB -bKh -bNp -fsd -bKj -eGg -eGg -eGg -eGg -eGg -jYd +rMj +ghF +vyB +pHF +lEV +ghF +vyB +ghF +aFG +pPQ +juS +jjl +jjl +jjl +jjl +jjl +kCd bSv kBY bTn @@ -97612,12 +97702,12 @@ xkc ode xkc gNg -vBm -tJM -viH -lCp -ttE -vBm +cAR +dRj +yhV +jvc +jEV +cAR iuE uwN vka @@ -97723,23 +97813,23 @@ wdf bTS kcp kcp -bzy -bKh -bBB -bLt -bzA -bKh -bBB -bKh -bzy -tBz -fBD -ntt -jXk -hdh -hdh -hdh -bRD +sDx +ghF +vyB +pHF +lEV +ghF +vyB +ghF +sDx +prl +gNy +fbU +vbZ +qEl +qEl +qEl +vWs bSv bSv bSv @@ -97815,12 +97905,12 @@ cYo ode gkr gkr -vBm -vBm -vBm -vfw -occ -vBm +cAR +cAR +cAR +pKU +vOu +cAR udK mwA lnt @@ -97926,24 +98016,24 @@ utK rKA kcp kcp -bzy -bXs -bBB -bLt -bzA -bKh -bBB -bXZ -bzy -bAg -bBB -qJN -jjZ -bzH -bBB -bzA -cBl -bRU +sDx +hIF +vyB +pHF +lEV +ghF +vyB +kEW +sDx +xHl +vyB +mQd +akn +vTM +vyB +lEV +meE +gGw mVh iBu sGK @@ -98018,12 +98108,12 @@ akC akC uvp gkr -vBm -mvE -tak -lCp -iLo -vBm +cAR +pbm +qjK +jvc +dGT +cAR bmz wSR mMV @@ -98110,16 +98200,16 @@ aaa aaa aaa aaa -aPy -aPY -aQv -aQv -aQv -aQv -aQv -aQv -aQv -aQv +fwK +cZB +uaG +uaG +uaG +uaG +uaG +uaG +uaG +uaG bcm bcm kcp @@ -98129,34 +98219,34 @@ kcp kcp kcp kcp -bzy -bZL -cat -caC -caD -bZL -cat -bZL -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bzy -bJh -bJh -cmH -bJh -bJh -bJh -bJh -bJh -ces -bSg +sDx +lQB +qax +jTH +gPU +lQB +qax +lQB +sDx +sDx +sDx +sDx +sDx +sDx +sDx +sDx +sDx +sDx +rgt +rgt +sYr +rgt +rgt +rgt +rgt +rgt +ctw +hAh aaa aaa aaa @@ -98221,12 +98311,12 @@ bzz akC pzc gkr -vBm -qkn -eRL -lwK -vlN -vBm +cAR +pQI +gym +gSz +cNJ +cAR pZS pEB jUY @@ -98313,16 +98403,16 @@ aaa aaa aaa aaa -aPy -dhZ -aQv -bbn -bmu -bot -bpU -rFB -bmu -aQv +fwK +elY +uaG +vjk +lxd +dPk +nBV +dyq +lxd +uaG lYN byr aXh @@ -98350,16 +98440,16 @@ aXj qUh xyw ccG -bJh -cax -cet -cfx -cgG -cex -dfc -bJh -bJO -bSg +rgt +gMS +vXF +hsc +epk +lwG +uJb +rgt +wRf +hAh aaa aaa aaa @@ -98424,12 +98514,12 @@ aHZ akC lDT gkr -vBm -rJN -nJz -wgi -rEO -vBm +cAR +jgR +iAg +vaS +bsF +cAR vkR wsD jUY @@ -98516,16 +98606,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjL -bmw -kIm -bmw -brO -bmx -bvT +okd +lql +okd +urk +fmZ +ePq +fmZ +cqd +jhc +eml btO aYt bzQ @@ -98553,16 +98643,16 @@ bVM bVM bwn bVM -cdb -cdw -bGp -cfy -rBk -cfy -cim -cjl -bRz -cjm +oTH +kUA +gRJ +mqB +vjG +mqB +oQw +avp +oAa +efk aaa aaa aaa @@ -98627,12 +98717,12 @@ btv akC lCm gkr -vBm -vBm -knO -wgi -ugT -vBm +cAR +cAR +eLX +vaS +nCD +cAR kfE wsD jUY @@ -98719,16 +98809,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjM -bmx -eBC -aZB -qld -kyZ -bvT +okd +lql +okd +nDb +jhc +ccL +rDf +xZM +mnc +eml btO aYt aYt @@ -98756,16 +98846,16 @@ aYt aYt aYt btO -cdc -jdk -mLu -erS -pZo -cdx -cin -cjm -bRA -cjm +tpG +wdQ +ybP +dhQ +dcx +mLg +wAK +efk +bTz +efk aaa aaa aaa @@ -98831,11 +98921,11 @@ akC jdn lgk hMM -vBm -rRr -dFU -fnC -vBm +cAR +jlE +cXV +kqd +cAR xDn pEB jUY @@ -98922,16 +99012,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjM -bmx -bmx -bmx -brP -qTZ -bvT +okd +lql +okd +nDb +jhc +jhc +jhc +vOV +eAm +eml btO aYu aYu @@ -98959,16 +99049,16 @@ aYu aYu aYu btO -cdc -nEs -cev -cdx -cdx -cdx -cin -cjm -bRA -cjm +tpG +hbA +uky +mLg +mLg +mLg +wAK +efk +bTz +efk aaa aaa aaa @@ -99034,11 +99124,11 @@ akC pek rir pek -vBm -hqU -gcT -oPp -vBm +cAR +gdG +kxP +mea +cAR nNv pEB jUY @@ -99125,16 +99215,16 @@ aaa aaa aaa aaa -bhh -aPZ -bhh -bjN -bmy -pAR -hHR -brQ -btp -bvV +okd +lql +okd +bRt +oGm +hPD +aIy +ekR +gWm +mpV bvf bdL bvf @@ -99162,16 +99252,16 @@ bvf bvf bdL bvf -cdd -cdy -cew -cfz -sSY -kZA -cio -cjm -bRA -cjm +srh +gKo +fsf +fuU +cnI +qfq +vjT +efk +bTz +efk aaa aaa aaa @@ -99237,11 +99327,11 @@ akC ibP loE cmr -vBm -vBm -vBm -vBm -vBm +cAR +cAR +cAR +cAR +cAR xSz pEB jUY @@ -99328,16 +99418,16 @@ aaa aaa aaa aaa -aPy -hhe -aQv -bjO -bmu -bou -bpW -rFB -bmu -aQv +fwK +jru +uaG +vaM +lxd +cif +jaz +dyq +lxd +uaG vCg bHB xyw @@ -99365,16 +99455,16 @@ xyw xyw bHB osx -bJh -cdz -aTq -cfA -cgH -cex -dfc -bJh -tdK -bSg +rgt +qTu +wlD +gTk +qSI +lwG +uJb +rgt +oCa +hAh aaa aaa aaa @@ -99531,16 +99621,16 @@ aaa aaa aaa aaa -aPy -aPY -aQv -aQv -aQv -aQv -aQv -aQv -vak -ovP +fwK +cZB +uaG +uaG +uaG +uaG +uaG +uaG +hte +lma xyw bHB xyw @@ -99576,8 +99666,8 @@ hOV hOV hOV hOV -cjK -bSg +vVZ +hAh aaa aaa aaa @@ -101661,8 +101751,8 @@ aaa aaa aaa aad -nTT -nTT +cZe +cZe cZe vfS cmr @@ -102173,13 +102263,13 @@ sGw dvD xzB eWs -aas -alI -agw -anB -ajp -vdJ -bJo +kRU +dON +oJj +vLp +oYA +gWt +jHt amo bHB aZP @@ -102376,13 +102466,13 @@ sGw dvD xzB eWs -aga -alQ -amR -adg -cdF -sgw -bJo +irJ +bKk +kil +vnY +fCG +gYg +jHt gRP bHB aZQ @@ -102579,13 +102669,13 @@ sGw fzx dWJ eWs -aav -amj -agG -anD -adg -ajB -bJo +yko +qlL +oxz +gnB +vnY +mRH +jHt xjK bHB btO @@ -102782,13 +102872,13 @@ sGw dvD nsd eWs -aay -adg -amU -anK -ccJ -ajL -bJo +kqm +vnY +wjL +oGF +gKK +dBR +jHt bwl bHB xyw @@ -102985,13 +103075,13 @@ sGw dvD kFU eWs -aaD -ahB -ahB -anL -ajz -aBC -cfM +oUz +mqZ +mqZ +lVZ +ctQ +wer +pKW wqh bHB vpW @@ -103188,13 +103278,13 @@ sGw xzB xer eWs -aaK -cfN -afe -adg -ajz -aBC -cfM +uES +xrT +gYj +vnY +ctQ +wer +pKW wqh bHB xyw @@ -103391,13 +103481,13 @@ sGw nkj dvD eWs -ceQ -ceU -aff -adg -ajz -aBC -cfM +rVt +tVZ +bkS +vnY +ctQ +wer +pKW wqh bHB ezQ @@ -103594,13 +103684,13 @@ sGw vEI dvD eWs -ceR -ceU -aff -agy -ajx -tqg -bJo +nCe +tVZ +bkS +bfO +tWL +aLx +jHt mVE rgy baN @@ -103797,13 +103887,13 @@ sGw oGf dvD eWs -abd -adk -afu -anT -eLz -uFL -ssa +jkY +ktI +xPn +xyQ +ixT +hBG +ngK sqa hBF hCt @@ -104000,13 +104090,13 @@ sGw fzT dvD eWs -uZQ -uZQ -bJo -aoH -aoF -aBC -cfM +qmh +qmh +jHt +wSQ +rOv +wer +pKW wqh bHB xyw @@ -104203,13 +104293,13 @@ sGw iPf klT eWs -cdE -xSI -uZQ -aoH -aoF -aBC -cfM +vHp +gJp +qmh +wSQ +rOv +wer +pKW wqh bHB vpW @@ -104406,13 +104496,13 @@ sGw cqp xzB smH -adg -amp -uZQ -aoH -gds -aky -bJo +vnY +asE +qmh +wSQ +vop +tgy +jHt vPM bHB xyw @@ -104609,13 +104699,13 @@ sGw jOq xzB eWs -hSL -agn -afx -agX -ajy -vwP -bJo +nso +jdZ +pqM +bZS +rlD +uUf +jHt kCm bHB btO @@ -105948,9 +106038,9 @@ awY kOB awZ aiX -jnw -aBq -pRL +opN +bDi +vIr awF aEM aGV @@ -106151,9 +106241,9 @@ pXx jrm evg aiX -asj -aAW -aCl +dCb +dDc +rdo awF aFg aGY @@ -106354,9 +106444,9 @@ wWC auZ aiX aiX -asl -amO -aGO +mJp +bNT +cbK awF hRk aGY @@ -106557,9 +106647,9 @@ pQV apq ana aiX -asp -amO -avj +glc +bNT +rmB awF xTL lmA @@ -106760,9 +106850,9 @@ xQg wWC szO aiX -atU -amO -qLj +nLM +bNT +iPU awF awF aEW @@ -106963,10 +107053,10 @@ yjM qbO aqw hnI -bYe -amO -wZM -aPm +kGS +bNT +gFN +bMi awF nvG vGI @@ -107166,10 +107256,10 @@ aqy nBE pOD bZa -ahM -aEf -wZM -ejp +nIF +duR +gFN +mqd awF aHn szU @@ -107369,9 +107459,9 @@ aiX aiX aiX aiX -atV -amO -oXd +eFI +bNT +sQu tsr tsr tsr @@ -107572,9 +107662,9 @@ aiX aKG amb aiX -ayT -amO -avj +eWN +bNT +rmB tsr sOL jIC @@ -107775,9 +107865,9 @@ aqz aKH and aiX -lzj -amO -bYe +umD +bNT +kGS fyT xIV xIV @@ -107978,9 +108068,9 @@ aiX aiX aiX aiX -ukh -amO -nxK +cwi +bNT +fBA tsr iPN dbX @@ -108181,9 +108271,9 @@ aqz mBe atT aiX -ayU -amO -avm +fXf +bNT +hCF tsr tsr vOY @@ -108384,9 +108474,9 @@ aiX asf atT aiX -mQH -amT -ioX +cKW +mqR +xZf lIj tBY gkE @@ -108473,9 +108563,9 @@ wfE wfE wfE wfE -bsk -sxu -cBI +yap +bqg +eIO bkA eFG bej @@ -108497,9 +108587,9 @@ bnS fdZ tzx gfW -bLT -cbQ -ccq +rZt +qyP +tuC lFp lGg aId @@ -108587,9 +108677,9 @@ aiX aiX aiX aiX -nVe -akV -bRs +dRo +fsu +enz lIj lIj dvZ @@ -108676,9 +108766,9 @@ bqm bsD btr wfE -owH -stY -owH +kLE +lIu +kLE bkA bcC bej @@ -108700,9 +108790,9 @@ ixj fdZ bET gfW -bGT -bHH -bGT +kSA +tpB +kSA lFp xDF eRS @@ -108779,31 +108869,31 @@ awW awW fSm hiy -apl -bbL -bbL -kij -bbL -bYe -bYe -yfv -bbL -aWl -bbL -bbL -bax -bbL -bbL -aWl -afv -yfv -bbL -bbL -bbL -bbL -kij -bbL -xRU +ddp +fCP +fCP +stk +fCP +kGS +kGS +sVA +fCP +vUO +fCP +fCP +wzL +fCP +fCP +vUO +pwd +sVA +fCP +fCP +fCP +fCP +stk +fCP +uVg pEY jsP baw @@ -108879,9 +108969,9 @@ wFR wFR xbk aWw -bys -bxd -vgC +cJK +oGL +hOu bkA eUn bcD @@ -108903,9 +108993,9 @@ nTo bqN bwR gfW -bUe -cbR -ccr +oJL +jMa +cVt sHm ddM hZe @@ -108982,31 +109072,31 @@ ajf ajf oAO pIZ -aod -qgG -amC -amC -amC -fXB -amC -amC -hyc -all -all -amC -bYh -amC -fXB -fXB -fBL -bYc -bYc -suV -bYc -bYc -bYc -qgG -dqN +qwf +jRm +gDQ +gDQ +gDQ +rUN +gDQ +gDQ +dFd +rDm +rDm +gDQ +saT +gDQ +rUN +rUN +bxt +tPz +tPz +tiZ +tPz +tPz +tPz +jRm +rHn tFW dGC aZz @@ -109082,9 +109172,9 @@ esM uUi xbk aWw -aNO -sLE -qLo +gtD +uRD +wru bkA nvM bgG @@ -109106,10 +109196,10 @@ gfW uFo omo gfW -iRx -iEb -bHa -apm +eWx +lLO +juo +otq gJO pwG aId @@ -109185,31 +109275,31 @@ awW awW aSJ isI -dtM -aii -mce -avn -mTb -avn -avn -gyy -avn -avn -avn -avn -mRl -avn -gyy -avn -avn -avn -avn -avn -mTb -avn -nFr -aii -ajC +dgP +jao +uIa +qxK +rYG +qxK +qxK +iRi +qxK +qxK +qxK +qxK +xcY +qxK +iRi +qxK +qxK +qxK +qxK +qxK +rYG +qxK +bTD +jao +uQi dCD aXe baw @@ -109285,9 +109375,9 @@ wFR soA xbk wfE -kEb -sLE -aLG +xos +uRD +qPk bCd iey baf @@ -109309,10 +109399,10 @@ bPk bsj byb bCd -buH -iEb -buH -app +knm +lLO +knm +yfy ruL qUZ aId @@ -109388,9 +109478,9 @@ njn njn njn njn -dtM -aii -ajC +dgP +jao +uQi aoe aoe aoe @@ -109410,9 +109500,9 @@ aoe aoe aoe aoe -aEI -aii -aik +maF +jao +mOw nIN nIN nIN @@ -109488,9 +109578,9 @@ qtv xFZ btx naV -bxk -aYI -aLG +pij +kJh +qPk bCd tmg qjN @@ -109512,10 +109602,10 @@ qjN tzP wYK bCd -buH -iEb -buH -app +knm +lLO +knm +yfy ruL gsd aId @@ -109591,9 +109681,9 @@ deA olC ujf njn -mOL -aii -ajC +xky +jao +uQi aoe aoh jHQ @@ -109613,9 +109703,9 @@ cnV isN cnZ aoe -dtM -aii -ajC +dgP +jao +uQi nIN cHn cHn @@ -109691,9 +109781,9 @@ esM jpt xbk aWw -aLG -aZi -cOM +qPk +hKe +uJM baZ bep qjN @@ -109715,10 +109805,10 @@ qjN qjN imo baZ -oLv -iEb -buH -app +sbE +lLO +knm +yfy ruL xPq aId @@ -109794,9 +109884,9 @@ tey cGR jsA tQA -bYe -akU -ajC +kGS +lOn +uQi aoe vbS arb @@ -109816,9 +109906,9 @@ cnW aEi coa aoe -ahr -akU -bYe +tWf +lOn +kGS aZv gNo xzh @@ -109894,9 +109984,9 @@ nEF tXi pcE aWw -aLG -aZi -aLG +qPk +hKe +qPk hqW qjN qjN @@ -109918,10 +110008,10 @@ hDX qjN qjN jpp -buH -iEb -buH -eDG +knm +lLO +knm +hnP lFp xlO aId @@ -109997,9 +110087,9 @@ gxm gxm gxm gxm -ahr -akU -ajC +tWf +lOn +uQi aoe qQc fXg @@ -110019,9 +110109,9 @@ jBy aEi fFh aoe -dtM -akU -ajC +dgP +lOn +uQi gxm gxm gxm @@ -110097,9 +110187,9 @@ ljf maL uKe aWw -aLG -avX -tzf +qPk +ckh +gyn vcq qPS qPS @@ -110121,10 +110211,10 @@ iaF bqL bqL ocf -bFu -mKY -hvp -mWw +wwE +sAD +cIO +tAb vpe dxT olN @@ -110192,17 +110282,17 @@ sqP tVs tVs gxm -aax -aax -aax +tPB +tPB +tPB dkO aps aps aps gxm -vIm -aii -ajC +xtO +jao +uQi aoe vbS koB @@ -110222,17 +110312,17 @@ aoe hFF aoe aoe -dtM -aii -ajC +dgP +jao +uQi gxm aiJ aiJ aiJ qYr -atj -atj -atj +cJV +cJV +cJV gxm ear aGm @@ -110300,9 +110390,9 @@ wDr wDr wDr wDr -aLG -aZi -cOM +qPk +hKe +uJM baZ eyQ qjN @@ -110324,9 +110414,9 @@ qjN qjN xtM baZ -oLv -hop -vMx +sbE +jZe +cbL wDr wDr wDr @@ -110395,17 +110485,17 @@ vdT jsA jsA gxm -aax -aax -aax +tPB +tPB +tPB vQe aps aps aps gxm -ahq -akU -ajC +hGo +lOn +uQi aoe aop koB @@ -110425,17 +110515,17 @@ uRt aQz aRJ ajl -dtM -akU -ajC +dgP +lOn +uQi gxm aiJ aiJ aiJ str -atj -atj -atj +cJV +cJV +cJV gxm aGm xzh @@ -110498,14 +110588,14 @@ wDr aeL aeL aeL -aqM -arO -arO -arO +oLj +wNG +wNG +wNG wDr -beB -byI -beB +qZT +pSF +eZC bCd mlH bqR @@ -110527,14 +110617,14 @@ cle bCe sdO bCd -bJz -rrV -bJz +hBW +dxJ +rdT wDr -aue -aue -aue -txi +mQx +mQx +mQx +jsa azy azy azy @@ -110598,17 +110688,17 @@ lBB cGR mOR gxm -acV -acV -acV +gHX +gHX +gHX vQe aps aps aps gxm -dtM -nmx -cpw +dgP +hBy +dlT hSI pMp gzK @@ -110628,17 +110718,17 @@ akw aQz aRK ajl -aDk -akU -ajC +kUs +lOn +uQi gxm aiJ aiJ aiJ str -atl -atl -atl +oAY +oAY +oAY gxm rTe xzh @@ -110701,14 +110791,14 @@ wDr aeL aeL aeL -kHj -arO -arO -arO +uZm +wNG +wNG +wNG wDr -aLG -aZi -aLG +qPk +hKe +qPk bCd bmn knH @@ -110730,14 +110820,14 @@ kan iXW iLs bCd -buH -hop -buH +knm +jZe +knm wDr -aue -aue -aue -tGO +mQx +mQx +mQx +guK azy azy azy @@ -110801,17 +110891,17 @@ cGR fwP mOR gxm -adb -adb -adb +tpj +tpj +tpj gxm asm asm asm gxm -dtM -ajt -pvt +dgP +mxg +mnV aoe pjF wUd @@ -110831,17 +110921,17 @@ akw fOL aRS ajl -ahq -aii -ajC +hGo +jao +uQi gxm alW alW alW gxm -atI -atI -atI +nVA +nVA +nVA gxm aGm ear @@ -110904,14 +110994,14 @@ wDr aeL aeL aeL -kHj -nLg -nLg -nLg +uZm +kaq +kaq +kaq wDr -aLG -aZi -bad +qPk +hKe +qqf kan kan kan @@ -110933,14 +111023,14 @@ kan kan kan kan -bGe -bHL -buH +tzw +sPY +knm wDr -auk -auk -auk -tGO +wQu +wQu +wQu +guK azy azy azy @@ -111004,17 +111094,17 @@ njn njn njn gxm -adb -adb -adb +tpj +tpj +tpj gxm asm asm asm gxm -dtM -akU -wgd +dgP +lOn +tQO sqf sqf sqf @@ -111034,17 +111124,17 @@ upM akw alD vEx -bYe -akU -ajC +kGS +lOn +uQi gxm alW alW alW gxm -atI -atI -atI +nVA +nVA +nVA gxm nIN nIN @@ -111108,13 +111198,13 @@ aiR aiR aiR wDr -xpI -xpI -xpI +hwH +hwH +hwH wDr -aLG -aZi -aLG +qPk +hKe +qPk kan qWS oDJ @@ -111136,13 +111226,13 @@ kan psO gjK kan -buH -bHL -buH +knm +sPY +knm wDr -aul -aul -aul +ydA +ydA +ydA wDr azD azD @@ -111207,17 +111297,17 @@ rWz rWz tWM gxm -adb -adb -adb +tpj +tpj +tpj gxm asm asm asm gxm -dtM -akU -ajC +dgP +lOn +uQi sqf anp wjz @@ -111226,7 +111316,7 @@ jZY jZY sqf wpu -cGp +okO ajl ajl ajl @@ -111237,17 +111327,17 @@ ajl onQ alD ajl -hon -akU -ajC +bNI +lOn +uQi gxm alW alW alW gxm -atI -atI -atI +nVA +nVA +nVA gxm rgL rgL @@ -111311,13 +111401,13 @@ aiR aiR aiR wDr -xpI -xpI -xpI +hwH +hwH +hwH wDr -aLG -aZi -aLG +qPk +hKe +qPk kan kAp dYU @@ -111339,13 +111429,13 @@ wzZ tdI vbV kan -buH -hop -buH +knm +jZe +knm wDr -aul -aul -aul +ydA +ydA +ydA wDr azD azD @@ -111410,17 +111500,17 @@ rWz rWz rWz gxm -vKF -adb -adb +lbc +tpj +tpj gxm asm asm asm gxm -dtM -aii -ajC +dgP +jao +uQi sqf sOZ oNJ @@ -111440,17 +111530,17 @@ ajl aCp alD ajl -wqA -aii -ajC +kiq +jao +uQi gxm alW alW alW gxm -atI -atI -xMk +nVA +nVA +wZk gxm rgL rgL @@ -111514,13 +111604,13 @@ aiR aiR aiR wDr -xpI -xpI -xpI +hwH +hwH +hwH wDr -bxD -byI -beB +iGi +pSF +eZC bst bst bst @@ -111542,13 +111632,13 @@ biA biA biA biA -bJz -bHT -koc +hBW +ltv +uYM wDr -aul -aul -aul +ydA +ydA +ydA wDr azD azD @@ -111613,17 +111703,17 @@ rWz rWz rWz gxm -adb -adb -adb +tpj +tpj +tpj gxm asm asm asm gxm -dtM -ajt -aik +dgP +mxg +mOw sqf anq awn @@ -111643,17 +111733,17 @@ fQu akx alD gWG -dtM -aii -ajC +dgP +jao +uQi gxm alW alW alW gxm -atI -atI -atI +nVA +nVA +nVA gxm rgL rgL @@ -111717,13 +111807,13 @@ aiR aiR aiR wDr -xpI -xpI -vgF +hwH +hwH +srR wDr -jgU -aZi -aLG +cvg +hKe +qPk bst bui bvz @@ -111745,13 +111835,13 @@ bsQ bmj caS biA -buH -bHL -wWQ +knm +sPY +jxu wDr -aun -aul -aul +oVk +ydA +ydA wDr azD azD @@ -111816,17 +111906,17 @@ rWz rWz rWz gxm -adb -adb -adb +tpj +tpj +tpj gxm asm asm asm gxm -dtM -aii -ajC +dgP +jao +uQi sqf anr awn @@ -111846,17 +111936,17 @@ fQu akx alD gWG -dtM -aii -ajC +dgP +jao +uQi gxm alW alW alW gxm -atI -atI -atI +nVA +nVA +nVA gxm rgL rgL @@ -111920,13 +112010,13 @@ aiR aiR aiR wDr -xpI -xpI -xpI +hwH +hwH +hwH wDr -aLG -aZi -aLG +qPk +hKe +qPk bst bcR bev @@ -111948,13 +112038,13 @@ bCl bsz caT biA -buH -bHL -buH +knm +sPY +knm wDr -aul -aul -aul +ydA +ydA +ydA wDr azD azD @@ -112019,17 +112109,17 @@ rWz rWz rWz gxm -adb -adb -adb +tpj +tpj +tpj gxm asm asm asm gxm -aEI -aii -ajC +maF +jao +uQi sqf sqf awp @@ -112049,17 +112139,17 @@ ajl hVz alD ajl -ahr -aii -ajC +tWf +jao +uQi gxm alW alW alW gxm -atI -atI -atI +nVA +nVA +nVA gxm rgL rgL @@ -112123,13 +112213,13 @@ aiR aiR aiR wDr -xpI -xpI -xpI +hwH +hwH +hwH wDr -aLG -aZi -mzR +qPk +hKe +tON bst bcS bag @@ -112151,13 +112241,13 @@ bCm bsP hgZ biA -buH -bHL -buH +knm +sPY +knm wDr -aul -aul -aul +ydA +ydA +ydA wDr azD azD @@ -112222,17 +112312,17 @@ njn njn njn gxm -adc -adc -adc +hWV +hWV +hWV gxm gxm gxm gxm gxm -kYU -akU -rxG +mYd +lOn +xwU ajl qhx akw @@ -112252,17 +112342,17 @@ ajl nMV vIf ajl -aEI -akU -gMa +maF +lOn +nwu gxm gxm gxm gxm gxm -adc -adc -adc +hWV +hWV +hWV gxm nIN nIN @@ -112326,13 +112416,13 @@ aiR aiR aiR wDr -xpI -xpI -xpI +hwH +hwH +hwH wDr -aLG -aZi -aLG +qPk +hKe +qPk bst buj bev @@ -112354,13 +112444,13 @@ bCn bsz hMN biA -buH -bHL -buH +knm +sPY +knm wDr -aul -aul -aul +ydA +ydA +ydA wDr azD azD @@ -112424,18 +112514,18 @@ cWv cWv cWv cWv -kaj -uId -adH -adH -fMA -atC -bbL -aWl -bbL -wQg -akU -bYe +omp +kmx +xog +xog +vFy +ltt +fCP +vUO +fCP +xRn +lOn +kGS bVE aos akw @@ -112455,23 +112545,23 @@ ans aos alE bVE -bYe -akU -aGd -aWl -hJu -bbL -atC -aAa -aww -aww -wst -axs -bbL -bbL -bYe -bbL -bit +kGS +lOn +mnC +vUO +qRx +fCP +ltt +cuI +ocX +ocX +sYj +fvj +fCP +fCP +kGS +fCP +oiB baw baw qYC @@ -112529,13 +112619,13 @@ wDr wDr wDr wDr -kaF -jWU -jWU +jXR +enK +enK wDr -pGM -aZi -aLG +kgt +hKe +qPk bst aYQ bbd @@ -112557,13 +112647,13 @@ bnT btX byc biA -buH -bHL -bIR +knm +sPY +qPU wDr -cyG -cyG -sos +sai +sai +wrN wDr wDr wDr @@ -112627,18 +112717,18 @@ boL boL boL boL -kGL -uTY -azY -azY -azY -atC -abx -abx -abx -abx -tal -ait +fGD +bfb +qEc +qEc +qEc +ltt +gfv +gfv +gfv +gfv +aPC +tzF aEe akA akA @@ -112658,23 +112748,23 @@ akA oap aSb aEe -ait -bjJ -abx -abx -abx -abx -atC -azY -azY -azY -fad -kGL -abg -abg -abg -abg -ajC +tzF +lzF +gfv +gfv +gfv +gfv +ltt +qEc +qEc +qEc +rWP +fGD +acQ +acQ +acQ +acQ +uQi baw vbB ley @@ -112729,16 +112819,16 @@ mzI olQ oCK eob -lGh -aQt -lDg -lpD -wGA -lpD -hmc -tBF -jWt -aLG +gMk +qRb +axY +xrC +oWF +xrC +toQ +exl +qyX +qPk bst bst bst @@ -112760,22 +112850,22 @@ biA biA biA biA -ghD -vdW -hvp -ayE -azE -ajd -azS -chE -azI -ciT -cjw -cjS -ckl -ckI -cla -cly +wHn +rDO +cIO +rEd +fml +fqU +bIO +rSA +cIm +emw +bvD +gZW +lUA +bwv +hDU +iNH cDx ndl iDk @@ -112830,18 +112920,18 @@ dux iYr dux ado -atC -kHT -avn -avn -mTb -atC -avn -avn -avn -nFr -ajt -ajC +ltt +uVZ +qxK +qxK +rYG +ltt +qxK +qxK +qxK +bTD +mxg +uQi vOy vOy vOy @@ -112861,23 +112951,23 @@ vOy wMO wky sqf -hon -ajt -mce -avn -avn -avn -atC -mTb -avn -avn -aim -atC -avn -bYe -cre -avn -aim +bNI +mxg +uIa +qxK +qxK +qxK +ltt +rYG +qxK +qxK +fdf +ltt +qxK +kGS +ftZ +qxK +fdf baw dBp gVA @@ -112932,16 +113022,16 @@ yih kgD deq bwG -aNn -aNO -asO -apC -apC -apC -aqx -aLG -aYO -aLG +vVy +gtD +vEv +cvI +cvI +cvI +aza +qPk +wKN +qPk kan ihw beW @@ -112963,22 +113053,22 @@ tAU xmT tAU kan -buH -bHL -buH -azB -azT -azT -azT -azG -bHa -ccU -kzP -cjT -ckm -bHa -clb -clz +knm +sPY +knm +qEM +wzy +wzy +wzy +qEM +juo +seL +siC +jNw +xuy +juo +vqz +vMU mJO vDN xbg @@ -113042,9 +113132,9 @@ abE abE abE abE -jKK -pjM -aim +bff +rnd +fdf vOy nos fcy @@ -113064,9 +113154,9 @@ ayX kXw pxo sqf -kHT -pjM -aim +uVZ +rnd +fdf mRU mRU mRU @@ -113135,16 +113225,16 @@ aQF aQF szE aQF -bBb -jtJ -asO -asP -uKA -asP -aqx -aLG -aZi -aLG +ihW +qOS +vEv +xkN +dwj +xkN +aza +qPk +hKe +qPk kan iMI rlZ @@ -113166,16 +113256,16 @@ wJb wJb bPu kan -buH -bHL -buH -azB -qKM -rYj -ssE -azG -uxZ -vgk +knm +sPY +knm +qEM +hEg +ewc +lLl +qEM +jvD +cBV mJO mJO mJO @@ -113245,9 +113335,9 @@ gwo aed aeG abE -atL -akV -atL +umI +fsu +umI vOy oNp aSn @@ -113267,9 +113357,9 @@ niL kXw pxo sqf -atL -bkQ -atL +umI +uch +umI mRU qSw qSw @@ -113345,9 +113435,9 @@ aQF aQF aQF aQF -esi -byI -beB +mNG +pSF +eZC kan avW bZn @@ -113369,9 +113459,9 @@ xIk cLA xIk kan -bJz -bHT -quI +hBW +ltv +qEz bJt bJt bJt @@ -113448,9 +113538,9 @@ adF aef dWw agA -ago -snm -cwJ +okx +hgA +xfo vOy anz vgx @@ -113470,9 +113560,9 @@ aCC kXw pxo asn -ago -asW -cwJ +okx +cFH +xfo mRU qSw qSw @@ -113548,9 +113638,9 @@ eKT wan cTC aQF -pno -aYO -bad +syj +wKN +qqf xMs xMs xMs @@ -113572,9 +113662,9 @@ vMo vMo vMo vMo -bGe -bHL -smn +tzw +sPY +hkC bJt xOL gGI @@ -113651,9 +113741,9 @@ adF aef aef uZZ -bYe -amO -avj +kGS +bNT +rmB vOy awQ oLU @@ -113673,9 +113763,9 @@ edv kXw pxo asn -ayT -akU -avj +eWN +lOn +rmB mRU qSw qSw @@ -113751,9 +113841,9 @@ aRy aRy nIj aQF -aWM -aZi -aLG +rWv +hKe +qPk xMs aSO feY @@ -113775,9 +113865,9 @@ wZE iGn byd vMo -buH -bHL -buH +knm +sPY +knm lhB pOY bDs @@ -113854,9 +113944,9 @@ adF bls aeH agq -ahM -kSJ -avj +nIF +ijn +rmB vOy hng dnC @@ -113876,9 +113966,9 @@ aCt kXw pxo asn -ayT -aii -avm +eWN +jao +hCF mRU qSw qSw @@ -113954,9 +114044,9 @@ bQU bQU bjD dqE -aem -mUa -uLv +htl +vaq +vTX xMs lOH dUS @@ -113978,9 +114068,9 @@ bof vit dxu vMo -buH -bHL -buH +knm +sPY +knm lhB xCb bDs @@ -114057,9 +114147,9 @@ adF aef kqN agA -ayT -ajt -avm +eWN +mxg +hCF vOy xyt wiW @@ -114079,9 +114169,9 @@ vOy mFq vqW sqf -ybf -aii -avj +jMP +jao +rmB mRU pBG pBG @@ -114157,9 +114247,9 @@ brb cpp buv aWF -aLG -aZi -aLG +qPk +hKe +qPk xMs akE qGF @@ -114181,9 +114271,9 @@ ggz dka bye vMo -buH -bHL -buH +knm +sPY +knm lhB aQW bDs @@ -114260,9 +114350,9 @@ aef aef tRD abE -aTL -ajt -avj +ciI +mxg +rmB vOy iYf bIM @@ -114282,10 +114372,10 @@ hPe sdu btC vLj -ahM -kSJ -avj -cGr +nIF +ijn +rmB +dyJ pBG gqQ cHG @@ -114360,9 +114450,9 @@ aTY iCF gJP aQF -qcl -aZi -aLG +uNf +hKe +qPk xMs aYR dUS @@ -114384,9 +114474,9 @@ jZd vit bzo vMo -buH -bHL -buH +knm +sPY +knm lhB pxD bDs @@ -114463,9 +114553,9 @@ adF aef afs agA -ayT -akU -avj +eWN +lOn +rmB vOy mTp wiW @@ -114485,10 +114575,10 @@ lON dVu oDR vOP -bYe -bnD -aWH -aYn +kGS +fAW +vlR +qPv qvL wmP wmP @@ -114563,9 +114653,9 @@ qZH bsN buB aWD -aLG -aZi -aLG +qPk +hKe +qPk xMs bXw eiw @@ -114587,9 +114677,9 @@ boh qDP wbP vMo -buH -bHL -vMx +knm +sPY +cbL bJt qom bDs @@ -114666,9 +114756,9 @@ adD sOw afs agA -ayT -akU -avj +eWN +lOn +rmB vOy axn dRh @@ -114688,10 +114778,10 @@ vOy aRd aIo vOy -qLK -akU -avj -eAT +gyb +lOn +rmB +aRl pBG lvb eAN @@ -114766,9 +114856,9 @@ fHF bml buB aWD -beB -byI -beB +eZC +pSF +eZC xMs xMs xMs @@ -114790,9 +114880,9 @@ vMo vMo vMo vMo -bJz -bHT -uFP +hBW +ltv +kGw bJt bJt nFI @@ -114869,9 +114959,9 @@ adF aef afs agA -ayT -akU -avj +eWN +lOn +rmB vOy aAr pGK @@ -114891,9 +114981,9 @@ aCD hFC qmy vOy -ayT -akU -avj +eWN +lOn +rmB pBG pBG hEl @@ -114969,9 +115059,9 @@ htL aUL buB aWD -aLG -aZi -aLG +qPk +hKe +qPk nyw iXU hDw @@ -114993,9 +115083,9 @@ vEH uFH tQd nyw -buH -bHL -buH +knm +sPY +knm yfS sEi dck @@ -115072,9 +115162,9 @@ aef aef pHG abE -aTL -aii -avj +ciI +jao +rmB vOy aID gLc @@ -115094,9 +115184,9 @@ aoM aoM vgB kgs -ayT -aii -avj +eWN +jao +rmB bvX ojQ eAN @@ -115172,9 +115262,9 @@ aTZ aUM gJP aQF -lRU -aYO -aLG +rmz +wKN +qPk nyw beH dcd @@ -115196,9 +115286,9 @@ beH beH beH nyw -buH -bHL -buH +knm +sPY +knm yfS hgL swt @@ -115275,9 +115365,9 @@ adF aef aGS agA -ayT -aii -avj +eWN +jao +rmB vOy aMd pGK @@ -115297,9 +115387,9 @@ prx fpT eVT kgs -ayT -aii -avj +eWN +jao +rmB bvX kVV vQR @@ -115375,9 +115465,9 @@ eXr iFH buv aWE -aLG -avX -aem +qPk +ckh +htl aum emr emr @@ -115399,9 +115489,9 @@ rCO rCO rCO eVv -bFu -lAO -buH +wwE +mDZ +knm ykj rlQ ven @@ -115478,9 +115568,9 @@ adF aef nIS uZZ -bYe -aii -avj +kGS +jao +rmB vOy aMg aSo @@ -115500,9 +115590,9 @@ ger aoM aFf mmN -ayT -aii -avj +eWN +jao +rmB bvX maO lPm @@ -115578,9 +115668,9 @@ pOi pOi nVF aWF -aLG -aYO -aLG +qPk +wKN +qPk nyw eGZ ieX @@ -115602,9 +115692,9 @@ bhq dcd eTd nyw -buH -vdW -qLp +knm +rDO +hqp kKk rDt gpI @@ -115681,9 +115771,9 @@ adF aef nIS eWF -bYe -aii -avj +kGS +jao +rmB vOy aQZ bkT @@ -115703,9 +115793,9 @@ qMP kBP aSl vOy -aTL -aii -avm +ciI +jao +hCF pBG pBG pBG @@ -115781,9 +115871,9 @@ tou tou jhy aQF -beB -aYT -jfD +eZC +hMk +mkw bdd bdd bdd @@ -115805,9 +115895,9 @@ bdd bdd bdd bdd -fZx -bHT -bJz +xwm +ltv +hBW yfS ape ven @@ -115884,9 +115974,9 @@ adF aef kqN agA -ayT -akU -avj +eWN +lOn +rmB vOy dVd lea @@ -115906,9 +115996,9 @@ vti vti aEZ vOy -ayT -akU -avj +eWN +lOn +rmB fKh gQk trU @@ -115984,9 +116074,9 @@ dVO bsR aQr aQF -aLG -aYO -aLG +qPk +wKN +qPk tda ngI dkq @@ -116008,9 +116098,9 @@ qby btY bAJ huU -buH -bHL -buH +knm +sPY +knm yfS ape ven @@ -116087,9 +116177,9 @@ fcE aef uNN abE -giB -akU -avj +iGZ +lOn +rmB vOy vOy vOy @@ -116109,9 +116199,9 @@ nPE oqZ uaI vOy -atV -akU -avj +eFI +lOn +rmB fKh iuG sOv @@ -116187,9 +116277,9 @@ aQF aQF aQF aQF -ePA -akO -bwd +ldb +rYI +fzc bdg vyg bni @@ -116211,9 +116301,9 @@ snb xbd bAU bdg -bCi -bCo -ivB +jlD +pYN +raE bJt wbC lHu @@ -116290,11 +116380,11 @@ aeI eva xzf abE -aTL -aii -ali -amD -cwJ +ciI +jao +uZI +cSM +xfo vOy vOy vOy @@ -116312,9 +116402,9 @@ vOy vOy vOy vOy -vIN -aii -avj +czJ +jao +rmB fKh ubI nQA @@ -116390,9 +116480,9 @@ wYG yhR gHi bwG -aeb -alx -aeb +pzj +uhq +pzj bdg apz dyd @@ -116414,9 +116504,9 @@ vPw bvr bBQ bdg -bCj -bDx -bCj +sgL +aRL +sgL rde vjC iMm @@ -116493,11 +116583,11 @@ aNi aNi aNi aNi -atV -aii -abx -abx -avj +eFI +jao +gfv +gfv +rmB vOy elR xXh @@ -116515,9 +116605,9 @@ dMK vOy vOy vOy -ayT -aii -avj +eWN +jao +rmB pBG mGT nQA @@ -116593,9 +116683,9 @@ hCk deq nRN bwG -bwd -auv -bwd +wsS +vxY +wsS bdg auj bbf @@ -116617,9 +116707,9 @@ bpv tMW bBY bCh -bCi -bCo -bCi +mPM +esd +mPM ejw xML iMm @@ -116696,11 +116786,11 @@ bhx vif aOR bsw -ayT -xGk -all -amK -avj +eWN +uSZ +rDm +ldq +rmB vOy wWz vHO @@ -116716,11 +116806,11 @@ ruc xOY wTM vOy -nzA -amD -ajr -aii -avm +qqb +cSM +fvE +jao +hCF pBG tGT nQA @@ -116796,9 +116886,9 @@ lka kpj kpj mQY -aem -mUa -aLG +ygp +tdi +fZE tda mng wTm @@ -116820,9 +116910,9 @@ mng wTm wCI tda -buH -bHL -buH +oSM +ter +oSM bJt swE wpI @@ -116899,11 +116989,11 @@ aco aco dYu bsw -mQH -hee -aEX -aii -avm +cKW +xNl +dpS +jao +hCF vOy wWz anw @@ -116919,11 +117009,11 @@ wLy eiE wTM vOy -ayT -akT -amC -bKe -avj +eWN +gFL +gDQ +xgE +rmB fKh eYn nQA @@ -116999,9 +117089,9 @@ bdd bdd bdd bdd -teH -aYO -xNB +nhE +naa +nVQ bdd vuA vuA @@ -117023,9 +117113,9 @@ vuA vuA vuA bdd -bSj -bHL -bIR +fvV +ter +gvK bdd bdd bdd @@ -117104,9 +117194,9 @@ cCa aNi aNi aNi -ybf -ajt -avj +jMP +mxg +rmB vOy wWz ovG @@ -117122,11 +117212,11 @@ gxP aOe wTM vOy -atU -akU -abg -abg -avj +nLM +lOn +acQ +acQ +rmB fKh wvo nQA @@ -117202,9 +117292,9 @@ eYj aSp mho bdg -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -117226,9 +117316,9 @@ bqZ bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdg lCE oZD @@ -117307,9 +117397,9 @@ qiy ahR ahR egt -ait -ani -avj +tzF +gIN +rmB vOy woh vgO @@ -117325,11 +117415,11 @@ qxm vgO xAe vOy -aOP -aii -aow -hee -ioX +oxg +jao +iUV +xNl +xZf fKh lDa eAN @@ -117405,9 +117495,9 @@ tGG bpA mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -117429,9 +117519,9 @@ beH beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg lCE uek @@ -117510,9 +117600,9 @@ hpY aOR aOR bgK -bYe -ajt -avj +kGS +mxg +rmB vOy vOy vOy @@ -117528,9 +117618,9 @@ aoK vOy vOy vOy -asp -aii -avj +glc +jao +rmB mRU mRU pBG @@ -117608,9 +117698,9 @@ tGG lJD mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -117632,9 +117722,9 @@ gBo beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg lCE fMe @@ -117713,9 +117803,9 @@ aOR aOR agr aNi -ayT -amO -avj +eWN +bNT +rmB vOy vOy vOy @@ -117731,9 +117821,9 @@ vOy vOy vOy vOy -meJ -amO -avj +kbT +bNT +rmB mRU vpf pBG @@ -117811,9 +117901,9 @@ lCr mpn pZR bdd -beB -aYT -beB +atH +iEM +atH bCx bqZ beH @@ -117835,9 +117925,9 @@ bgO beH bqZ bCx -buH -bHL -buH +oSM +ter +oSM bdd tSF lsn @@ -117916,9 +118006,9 @@ aNi aNi aNi aNi -asp -amO -avj +glc +bNT +rmB bPF aqG ata @@ -117934,9 +118024,9 @@ vOy jyJ niF bPF -aTL -akU -avj +ciI +lOn +rmB mRU vpf pBG @@ -118014,9 +118104,9 @@ nYp fZG phd pmv -tBF -fSK -aLG +mzv +yfg +fZE nyw bqZ beH @@ -118038,9 +118128,9 @@ tmB eBg vKe eVv -bFu -omW -bFu +cVZ +xdf +cVZ hLS vKe vKe @@ -118119,9 +118209,9 @@ hoT tob tob fkK -bYe -amO -bYe +kGS +bNT +kGS cbg aqG atb @@ -118137,9 +118227,9 @@ vOy sLk niF cbg -bYe -akU -bYe +kGS +lOn +kGS rXF jtU jtU @@ -118217,9 +118307,9 @@ bdd bdd bdd bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ beH @@ -118241,9 +118331,9 @@ bgO beH bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd bdd bdd @@ -118322,9 +118412,9 @@ aej aej aej aej -iiC -amO -tHh +jZW +bNT +rZC vOy vOy vOy @@ -118340,9 +118430,9 @@ vOy vOy vOy vOy -apv -akU -jHG +bxV +lOn +uAi mRU mRU mRU @@ -118420,9 +118510,9 @@ mPR osU vKe dYX -tBF -lBz -aLG +mzv +xhW +fZE bdg bqZ beH @@ -118444,9 +118534,9 @@ bgO beH bqZ bdg -buH -uXu -bFu +oSM +iOo +cVZ iUk cIx fUC @@ -118525,9 +118615,9 @@ aeO afG ags aej -ayT -amO -avj +eWN +bNT +rmB vOy elR xXh @@ -118543,9 +118633,9 @@ xXh xXh dMK vOy -ayT -akU -avj +eWN +lOn +rmB mRU bnF lBw @@ -118623,9 +118713,9 @@ cHB hDV vmP bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -118647,9 +118737,9 @@ bgO bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd oNP tge @@ -118728,9 +118818,9 @@ aeP agI aia yaz -bYe -ajt -avj +kGS +mxg +rmB vOy wWz vHO @@ -118746,9 +118836,9 @@ uXj rdt wTM vOy -ayT -aii -avj +eWN +jao +rmB eyI jtU jaW @@ -118826,9 +118916,9 @@ wmz rhy rec bdg -aLG -aYO -bad +fZE +naa +onn bdd bdd bDQ @@ -118850,9 +118940,9 @@ bgO cab bdd bdd -bGe -bHL -buH +tmE +ter +oSM bdg jLS xdP @@ -118931,9 +119021,9 @@ aeQ agK agu eup -bYe -ajt -avj +kGS +mxg +rmB vOy wWz uwZ @@ -118949,9 +119039,9 @@ coZ sNz wTM vOy -ayT -aii -avj +eWN +jao +rmB eyI yfL sjw @@ -119029,10 +119119,10 @@ wmz vbI rec bdg -beB -aYT -beB -beB +atH +iEM +atH +ppV bdd bqZ bgO @@ -119052,10 +119142,10 @@ gAj bgO bqZ bdd -bJz -bJz -bHT -bJz +eoy +brq +jnc +brq bdg jLS frb @@ -119134,9 +119224,9 @@ aeR agK agu aej -pSL -amT -mIW +ftb +mqR +djd vOy wWz pEJ @@ -119152,9 +119242,9 @@ xQm tfH wTM vOy -aEK -aSv -ioX +ddx +pFf +xZf eyI byH jtU @@ -119232,10 +119322,10 @@ xgN vgn xgN bdg -aLG -aYO -aLG -aLG +fZE +naa +fZE +fZE bdg bqZ qMR @@ -119255,10 +119345,10 @@ tXb fOk bqZ bdg -buH -buH -bHL -buH +oSM +oSM +ter +oSM bdg vLg loy @@ -119337,9 +119427,9 @@ aej agO aid aej -atL -akV -atL +umI +fsu +umI vOy wWz uwZ @@ -119355,9 +119445,9 @@ vfP sNz wTM vOy -atL -akV -atL +umI +fsu +umI mRU mRU veW @@ -119435,10 +119525,10 @@ bdd bdd bdd bdd -hDL -aYO -aNO -aLG +tvl +naa +meQ +fZE bdg bqZ beH @@ -119458,10 +119548,10 @@ gAj beH bqZ bdg -buH -bHa -bHL -bIR +oSM +awE +ter +gvK bdd bdd bdd @@ -119535,14 +119625,14 @@ cuN cQW lQa wjE -aeU -bUE -bYe -bYe -aaO -alp -aio -baB +vuE +bkb +kGS +kGS +pvi +bgh +spW +pjQ vOy wWz qxP @@ -119558,14 +119648,14 @@ gxP nMe wTM vOy -alp -aio -baB -aEV -bUE -bYe -nBW -bWP +bgh +spW +pjQ +eJg +bkb +kGS +rRf +pOC qtj fpA qUx @@ -119618,30 +119708,30 @@ bwG bwG bwG bwG -aLB -acF -heb -cqa -bBh -aMV -dRG -aMV -yiq -kLp -aMV -bBh -tCN -lDJ -tCN -tCN -yfw -tCN -bBh -aLG -aLG -aYO -aNO -aLG +bwG +kUI +bFB +iPt +atH +sCg +hgs +sCg +osX +uCt +sCg +atH +eUf +pwx +eUf +eUf +rIP +eUf +atH +fZE +fZE +naa +meQ +fZE bdg bqZ beH @@ -119661,29 +119751,29 @@ beH beH bqZ bdg -buH -bHa -bHL -buH -buH -cbD -iZH -xkC -njL -njL -njL -njL -cbD -bUM -bUM -mYw -iAT -rdY -bUM -cbD -rGg -qtn -kJV +oSM +awE +ter +oSM +oSM +brq +mdC +qWK +lyq +lyq +lyq +lyq +brq +eMI +eMI +gjg +bom +kiy +eMI +brq +cSP +cSH +svt mJO mJO mJO @@ -119738,14 +119828,14 @@ jlc kbv dTn ngE -abg -abg -abg -abg -acC -iWN -amO -dLE +acQ +acQ +acQ +acQ +xdl +klr +bNT +dOW vOy woh vgO @@ -119761,14 +119851,14 @@ vgO vgO xAe vOy -aIS -alq -wWk -chu -aZE -aZE -aZE -aZE +gTV +mGk +xFW +lrd +kkI +kkI +kkI +kkI usL gsC cMz @@ -119821,30 +119911,30 @@ ycl ycl ycl jCg -aLB -nyG -iDN -tit -nFV -tBL -tBL -tBL -tBL -tBL -tBL -mRS -tBL -tBL -tBL -tBL -tBL -tBL -luz -tzf -tBL -fau -aNO -aLG +bwG +eNL +pVr +oHs +osQ +tpR +tpR +tpR +tpR +tpR +tpR +osQ +tpR +tpR +tpR +tpR +tpR +tpR +osQ +wxp +tpR +baW +meQ +fZE bdg bqZ beH @@ -119864,30 +119954,30 @@ beH beH bqZ bdg -buH -bHa -wwu -buI -bFu -cbE -buI -buI -buI -buI -buI -buI -rpd -buI -buI -buI -buI -buI -buI -rpd -fkO -bHY -kro -bGb +oSM +awE +jas +jhA +cVZ +qWx +jhA +jhA +jhA +jhA +jhA +jhA +qWx +jhA +jhA +jhA +jhA +jhA +jhA +qWx +ldW +mkx +eWv +mJO plv plv plv @@ -119941,14 +120031,14 @@ sdv xMO wDg vHA -aaL -aJs -bYe -bYe -aaE -afD -kaA -anh +waV +iGE +kGS +kGS +pjY +gqv +hKJ +nww vOy vOy vOy @@ -119964,14 +120054,14 @@ vOy vOy vOy vOy -xFw -iTK -anh -aFF -cjo -bYe -kSN -aTQ +xvO +peu +nww +vcO +ssF +kGS +bij +hux kfo rCl ePM @@ -120024,30 +120114,30 @@ ycl ycl ycl ycl -aLB -csl -gjn -jJs -bBh -aMM -aMM -aNG -bga -taA -aSr -bBh -gyC -wbh -bsX -bAa -bKE -eBj -bBh -aLG -aNO -aYT -aNO -bad +bwG +xgk +oUi +tLZ +atH +xSx +xSx +fBi +tXo +mBa +pYh +atH +wMl +aAU +dkP +dsY +rwj +xZR +atH +fZE +meQ +iEM +meQ +onn bdd bDQ mng @@ -120067,30 +120157,30 @@ vUe kuw cab bdd -bGe -bHa -bHT -bHa -buH -cbD -bMt -bMt -bOv -bOX -jLK -vUU -cbD -ciU -rOj -bUd -bUF -clR -clR -cbD -dQs -sFh -guc -bGb +tmE +awE +jnc +awE +oSM +brq +gOS +gOS +sLX +bIj +jtZ +eLu +brq +xpl +exc +jCx +mqt +vno +vno +brq +wDG +ihI +fnc +mJO plv plv plv @@ -120149,27 +120239,27 @@ ael agQ aih ael -tnl -amO -anc -atC -apJ -apJ -aMl -apJ -apJ -apJ -apJ -apJ -apJ -apJ -aMl -apJ -apJ -atC -cnv -amO -lqJ +htF +bNT +jvz +ltt +pPU +pPU +ecz +pPU +pPU +pPU +pPU +pPU +pPU +pPU +ecz +pPU +pPU +ltt +riK +bNT +hmB mRU mRU gBs @@ -120228,9 +120318,9 @@ ycl ycl ycl jUx -aLG -qmL -rZz +fZE +bBR +tup jeb jeb jeb @@ -120246,11 +120336,11 @@ mWy jeb jeb jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bdg bqZ udi @@ -120270,11 +120360,11 @@ veu mDW bqZ bdg -buH -bHa -bHT -bHa -buH +oSM +awE +jnc +awE +oSM vra vra vra @@ -120290,9 +120380,9 @@ rJx vra vra vra -jJe -bHY -buH +uGf +mkx +oSM vfo plv plv @@ -120352,27 +120442,27 @@ afE agT agT ael -cZm -akU -abg -atC -abg -abx -abx -abx -abg -abx -abx -abx -abg -abx -abx -abx -avD -atC -abg -amO -nQx +oPT +lOn +acQ +ltt +acQ +gfv +gfv +gfv +acQ +gfv +gfv +gfv +acQ +gfv +gfv +gfv +jRg +ltt +acQ +bNT +oNa mRU tih vpf @@ -120430,10 +120520,10 @@ ycl ycl ycl ycl -aLB -dEC -aNO -qHl +bwG +hiP +meQ +czN jeb vlX aNx @@ -120449,11 +120539,11 @@ xHp hmF vlX jeb -aNn -aNO -aYT -aNO -aLG +bMf +meQ +iEM +meQ +fZE bdg bqZ udi @@ -120473,11 +120563,11 @@ fIZ mDW bqZ bdg -buH -bHa -bHT -bHa -deH +oSM +awE +jnc +awE +eOx vra asX chf @@ -120493,10 +120583,10 @@ lpt mgF asX vra -tfw -bHY -sVf -bGb +pHh +mkx +hNv +mJO plv plv plv @@ -120555,27 +120645,27 @@ afH agV ain ael -eGl -aii -anf -atC -apK -anf -apK -arf -auG -azb -azb -azb -auG -aDp -apK -cbr -apK -atC -cbr -amO -uGt +bMV +jao +tbF +ltt +dZP +tbF +dZP +eQh +mTo +tCD +tCD +tCD +mTo +wyE +dZP +dKD +dZP +ltt +dKD +bNT +enF mRU mRU jtU @@ -120633,10 +120723,10 @@ ycl ycl ycl ycl -aLB -udF -aNO -nLZ +bwG +cVf +meQ +jTt jeb obE tdE @@ -120652,11 +120742,11 @@ xHp xwl rHf jeb -jgU -aNO -aYT -aNO -aLG +rrU +meQ +iEM +meQ +fZE bdg bqZ ngI @@ -120676,11 +120766,11 @@ xAt nNH bqZ bdg -buH -bHa -bHT -bHa -bKc +oSM +awE +jnc +awE +uNp vra bMq qUq @@ -120696,10 +120786,10 @@ lpt qYQ ptj vra -mEb -bHY -haT -bGb +opV +mkx +xVY +mJO plv plv plv @@ -120758,9 +120848,9 @@ afI agY oxi xfm -als -ani -anc +jux +gIN +jvz mOi mOi mOi @@ -120776,10 +120866,10 @@ aHq aHq aHq aHq -iWN -ajt -kGI -aPm +klr +mxg +qGZ +bMi mRU jtU vpf @@ -120836,10 +120926,10 @@ bwG bwG bwG bwG -aLB -dzF -dzF -dac +bwG +dTd +dTd +div jeb vlX thA @@ -120855,11 +120945,11 @@ gAA fFD vlX jeb -kEb -aNO -aYT -aNO -aLG +wEK +meQ +iEM +meQ +fZE bdg bqZ beH @@ -120879,11 +120969,11 @@ beH beH bqZ bdg -buH -bHa -bHT -bHa -rKy +oSM +awE +jnc +awE +dNW vra asX drj @@ -120899,10 +120989,10 @@ cgo hQc asX vra -cwQ -vtB -tQo -bGb +crc +goo +hAA +mJO mJO mJO mJO @@ -120961,9 +121051,9 @@ afJ agY aiq ajJ -aEX -ajt -aow +dpS +mxg +iUV mOi rCw rCw @@ -120972,17 +121062,17 @@ oJR tFe asD xQV -avK +qQS aqU aCZ dgg xRk bti aHq -sDC -ajt -kGI -ejp +rwf +mxg +qGZ +mqd mRU jtU vzB @@ -121039,10 +121129,10 @@ ycl ycl ycl jCg -aLB -enx -aQt -oQj +bwG +wBw +bZo +vsf jeb vlX tdE @@ -121058,11 +121148,11 @@ xHp xwl vlX jeb -pGM -aNO -aYT -aNO -bad +dQV +meQ +iEM +meQ +onn bdd bDQ lnm @@ -121082,11 +121172,11 @@ sCA bVw cab bdd -bGe -bHa -bHT -bHa -bIR +tmE +awE +jnc +awE +gvK vra asX qUq @@ -121102,10 +121192,10 @@ lpt qYQ asX vra -ojR -tki -lQQ -bGb +lDk +dEK +oWN +mJO plv plv plv @@ -121164,9 +121254,9 @@ afK ahc air ael -isW -ajt -ali +nBo +mxg +uZI mOi wCT sIf @@ -121182,9 +121272,9 @@ oqv iqd rUy cnS -iWN -ajt -nYv +klr +mxg +pSN mRU mRU jtU @@ -121242,10 +121332,10 @@ ycl ycl ycl ycl -aLB -ewo -aNO -jLv +bwG +tQe +meQ +ktl jeb obE thA @@ -121261,11 +121351,11 @@ xHp diJ rHf jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bCx bqZ cNf @@ -121285,11 +121375,11 @@ nuK dVe bqZ bCx -buH -bHa -rrV -bHa -buH +oSM +awE +vOZ +awE +oSM vra bMq drj @@ -121305,10 +121395,10 @@ lpt eBV ptj vra -fsH -bHY -pBn -bGb +xzI +mkx +hdV +mJO plv plv plv @@ -121367,9 +121457,9 @@ afL ahe aij ael -abg -akU -abg +acQ +lOn +acQ mOi kbH kbH @@ -121385,9 +121475,9 @@ wDy aGN dxv cnS -cnv -ajt -bYe +riK +mxg +kGS rXF vpf vpf @@ -121446,9 +121536,9 @@ ycl ycl ycl cmC -aLG -aNO -uBw +fZE +meQ +hvz jeb vlX tdE @@ -121464,11 +121554,11 @@ xHp xwl vlX jeb -aLG -aNO -aYV -bai -bbg +fZE +meQ +cmL +czR +jzT bCy bDS cNf @@ -121488,11 +121578,11 @@ qnC dVe cac bCy -bzK -bHb -bHV -bHa -rbX +hQf +sTU +xLX +awE +hCf vra asX qUq @@ -121508,9 +121598,9 @@ lpt qYQ asX vra -pJJ -bHY -buH +wcD +mkx +oSM cnd plv plv @@ -121570,9 +121660,9 @@ adO adO adO adO -lwm -akU -nQx +frI +lOn +oNa mOi mOi mOi @@ -121588,9 +121678,9 @@ nTs pje pje cnT -xvh -fNC -cKY +meS +gUk +naj mRU mRU mRU @@ -121648,10 +121738,10 @@ ycl ycl ycl ycl -aLB -fTU -bbO -cmg +bwG +lFL +sNL +ygB jeb jeb hfa @@ -121667,11 +121757,11 @@ xWd oSL jeb jeb -aLG -aNO -aYW -sLE -bbh +fZE +meQ +dAm +fEF +otC bdd bDT tHv @@ -121691,11 +121781,11 @@ iXb pzV cad bdd -oLT -iEb -bHW -bHa -buH +vMA +oYi +sIR +awE +oSM vra vra eUh @@ -121711,10 +121801,10 @@ mSU wVy vra vra -cmd -cmh -wAR -bGb +siy +wIX +aCu +mJO plv plv plv @@ -121773,16 +121863,16 @@ afM fpR ahf adO -wUz -aii -abg +dni +jao +acQ aqU sdl mLE bUx mLE tmK -avK +qQS aug avL aqU @@ -121791,9 +121881,9 @@ rsO aGN rbB cnS -cbr -ajt -anc +dKD +mxg +jvz aUH aXx jKI @@ -121851,10 +121941,10 @@ ycl ycl ycl ycl -aLB -ahj -ahj -ahj +bwG +bwP +bwP +bwP jeb tkN qHg @@ -121870,11 +121960,11 @@ gAA cGV tkN jeb -aWM -aNO -aYX -gjn -bbi +hjQ +meQ +fNd +oUi +qdV bdd bDU bqZ @@ -121894,11 +121984,11 @@ bqZ bqZ cae bdd -bGg -bHd -bHX -bHa -buH +huP +nbu +kcg +awE +oSM vra gNq hXb @@ -121914,10 +122004,10 @@ cgo skF gNq vra -ajX -ajX -ajX -bGb +fqA +fqA +fqA +mJO plv plv plv @@ -121976,9 +122066,9 @@ afN ahh aiw ahG -bYe -ajt -abg +kGS +mxg +acQ aqU xbN gfE @@ -121994,9 +122084,9 @@ liJ pTj cnq cnS -iWN -aii -abg +klr +jao +acQ aUH oyE mMP @@ -122055,9 +122145,9 @@ wDr wDr wDr wDr -wdb -ahj -ahj +txE +bwP +bwP jeb aMx qHg @@ -122073,11 +122163,11 @@ xHp cGV nBa jeb -beB -beB -aYW -bzV -cBA +atH +atH +dAm +aCX +suH bdd beQ beQ @@ -122097,11 +122187,11 @@ beQ beQ beQ bdd -bRQ -cbS -bHW -bJz -bJz +oCb +wwv +sIR +brq +brq vra bMu hXb @@ -122117,9 +122207,9 @@ lpt skF pQF vra -ajX -ajX -hBC +fqA +fqA +gzM wDr wDr wDr @@ -122179,9 +122269,9 @@ afO ahh aiw adO -aEp -xTt -aEp +mQF +yaR +mQF lmK lmK lmK @@ -122197,9 +122287,9 @@ cnH kzk cnR aHq -aEp -xTt -aEp +mQF +yaR +mQF aUH sIA gSj @@ -122248,19 +122338,19 @@ kyw deq iGc wDr -bbB -bbB -arn -ajO -ajO -ajO -clC -ajO -ajO -cno -ahj -ahj -ahj +mFL +mFL +iFp +wNz +wNz +wNz +oWE +wNz +wNz +suU +bwP +bwP +bwP jeb iow aMO @@ -122276,11 +122366,11 @@ xHp aUi iow jeb -aLG -aNO -aYY -bal -bbj +fZE +meQ +rTA +tAW +stR bCz bDV bGw @@ -122300,11 +122390,11 @@ bGw bGw bGw bCz -buH -iEb -bHW -bHa -vMx +oSM +oYi +sIR +awE +dnP vra wTw bNE @@ -122320,19 +122410,19 @@ bUi bUT wTw vra -ajX -ajX -ajX -amS -aoc -aoc -uQU -aoc -aoc -aoc -aAv -eZi -eZi +fqA +fqA +fqA +dBg +aqL +aqL +buY +aqL +aqL +aqL +uWm +nRA +nRA wDr jPx wdW @@ -122382,9 +122472,9 @@ jkj ahh aiw adO -uLu -anC -aiC +ebV +mbu +kCo ioU pvK qPE @@ -122400,9 +122490,9 @@ liJ hgB cbn aHq -uLu -aQo -aTS +ebV +qGP +pym aUd ckK iKM @@ -122451,19 +122541,19 @@ kyw lfx gSH wDr -bbB -bbB -arn -ajO -ajO -ajO -ajO -ajO -ajO -cno -ahj -ahj -ahj +mFL +mFL +iFp +wNz +wNz +wNz +wNz +wNz +wNz +suU +bwP +bwP +bwP aLT aLT aLT @@ -122479,11 +122569,11 @@ aQL aQL aQL aQL -pGM -aNO -aYW -sLE -aLG +dQV +meQ +dAm +fEF +fZE bCA bCA bdj @@ -122503,11 +122593,11 @@ bCA bdj bCA bCA -buH -iEb -bHW -bHa -bIR +oSM +oYi +sIR +awE +gvK bJC bJC bJC @@ -122523,19 +122613,19 @@ bSJ bSJ bSJ bSJ -ajX -ajX -ajX -amS -aoc -aoc -aoc -aoc -aoc -aoc -aAv -eZi -eZi +fqA +fqA +fqA +dBg +aqL +aqL +aqL +aqL +aqL +aqL +uWm +nRA +nRA wDr nEl mgb @@ -122585,9 +122675,9 @@ lFt ahh aiw adO -aSz -anG -aiC +qHu +hqx +kCo ioU qyZ wTd @@ -122603,9 +122693,9 @@ liJ qmP uoH aHq -aiC -anC -aiC +kCo +mbu +kCo aUH dbv lII @@ -122654,19 +122744,19 @@ kyw oif nRN wDr -bbB -bbB -arn -ajO -ajO -ajO -ajO -ajO -ajO -cno -ahj -ahj -ahj +mFL +mFL +iFp +wNz +wNz +wNz +wNz +wNz +wNz +suU +bwP +bwP +bwP aLT kaB vVb @@ -122682,11 +122772,11 @@ aQL mJP bSn aQL -vHs -ehH -aYZ -sLE -bAV +hEm +kti +eFa +fEF +exQ bCB bCB bCB @@ -122706,11 +122796,11 @@ bCB bCB bCB bCB -cbv -iEb -bHY -mru -syP +uuI +oYi +mkx +bIW +eMZ bJC jSp lAQ @@ -122726,19 +122816,19 @@ bSJ hII iJS bSJ -ajX -ajX -ajX -amS -aoc -aoc -aoc -aoc -aoc -aoc -aAv -eZi -eZi +fqA +fqA +fqA +dBg +aqL +aqL +aqL +aqL +aqL +aqL +uWm +nRA +nRA wDr xgS svF @@ -122788,9 +122878,9 @@ aiw ahh aiw nph -aiC -ajF -aiC +kCo +tSY +kCo ioU mSz nIG @@ -122806,9 +122896,9 @@ iKf aGN qrv aHq -cgJ -ajG -aiC +hBa +gft +kCo aGz ckd mQC @@ -122857,9 +122947,9 @@ kyw vaV qxJ wDr -bbC -aan -aan +lFw +wWt +wWt wDr wDr wDr @@ -122885,11 +122975,11 @@ aTw aUj kLk aQL -mTn -aiy -aYZ -sLE -bbk +npw +vzi +eFa +fEF +rbd bdk bdk bgR @@ -122909,11 +122999,11 @@ myJ eKI bdk bdk -bGh -iEb -bHY -njy -hkE +cxF +oYi +mkx +fic +kjW bJC ojF bNG @@ -122939,9 +123029,9 @@ wDr wDr wDr wDr -tGq -tGq -jjT +fCg +fCg +geu wDr wtk mgb @@ -122991,9 +123081,9 @@ afP ahh aiw nph -aiC -anG -aiC +kCo +hqx +kCo ioU ioU ioU @@ -123009,9 +123099,9 @@ aGN aGN pSU aHq -czM -ajG -aiC +qcL +gft +kCo aGz drk mQC @@ -123089,10 +123179,10 @@ aQL aQL aQL aQL -uQn -aYZ -sLE -bbl +uBj +eFa +fEF +wMB bdl bdl bdl @@ -123112,10 +123202,10 @@ bdl bdl bdl bdl -bGi -iEb -bHY -oyy +opd +oYi +mkx +jwP bJC bJC bJC @@ -123194,9 +123284,9 @@ afQ aiw aiw nph -aiC -anG -aiC +kCo +hqx +kCo ioU lPO vJg @@ -123212,9 +123302,9 @@ eEo aGN rub aHq -cES -ajG -aiC +gar +gft +kCo aGz eqB obC @@ -123292,10 +123382,10 @@ brn aRT buM aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bEr bEs @@ -123315,10 +123405,10 @@ bYu nmK caf bdl -bGj -iEb -bHY -buH +oDU +oYi +mkx +oSM bJC cdT cfo @@ -123397,9 +123487,9 @@ ahJ ahJ ahJ adO -aiC -ajF -aiC +kCo +tSY +kCo ioU dnS viN @@ -123415,9 +123505,9 @@ aRi aGN qrv aHq -aOS -ajG -aiC +oUO +gft +kCo aUH aGz aGz @@ -123495,10 +123585,10 @@ aQL aUY buN aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bDX bCA @@ -123518,10 +123608,10 @@ rIH tUh cag bdl -bGk -iEb -bHY -buH +jDz +oYi +mkx +oSM bJC cdU bMy @@ -123596,13 +123686,13 @@ ily cGd moK cGd -aWd -aWd -aWd -pji -aiC -ajF -aiC +fiH +fiH +fiH +ybk +kCo +tSY +kCo ioU pPM qKz @@ -123618,13 +123708,13 @@ xNv iLO bUa aHq -aSz -anC -aiC -pji -aWd -aWd -aWd +qHu +mbu +kCo +ybk +fiH +fiH +fiH mRU gBs mRU @@ -123698,10 +123788,10 @@ aQL aQL aQL aQL -pGM -aYZ -sLE -bbm +dQV +eFa +fEF +fNH bdl bDY bCA @@ -123721,10 +123811,10 @@ jac bCA cah bdl -bGl -iEb -bHY -bIR +wPi +oYi +mkx +gvK bJC bJC bJC @@ -123796,16 +123886,16 @@ aeC aeC ajs aeC -aGD -aWd -eTO -anR -anR -lNl -aFW -aSy -anH -aoB +bZq +fiH +rGc +xjI +xjI +fzm +pBg +gmZ +dpN +txd alL alL alL @@ -123821,16 +123911,16 @@ jvY alL alL alL -aSy -aoS -dZd -aFW -aIe -anR -anR -uWC -aHQ -apj +gmZ +onh +wJd +pBg +iOP +xjI +xjI +roY +vXk +jgS vcE kUV vcE @@ -123901,10 +123991,10 @@ brr aUZ buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl bDZ bdj @@ -123924,10 +124014,10 @@ jac xxa cai bdl -bII -iEb -bHY -buH +tkg +oYi +mkx +oSM bJC cdV bMx @@ -123999,16 +124089,16 @@ wXh aeC ydz ayb -aGC -tSw -agJ -aXE -aXE -agJ -aFV -hPK -aXE -akH +rrG +gBZ +tGW +rfQ +rfQ +tGW +oOi +szb +rfQ +vnZ jvY jvY jvY @@ -124024,16 +124114,16 @@ jvY jvY jvY jvY -aSB -iWd -elA -aFV -aGC -aXE -aXE -aGC -rph -agJ +urs +eEF +wmH +oOi +rrG +rfQ +rfQ +rrG +sBK +tGW sSl kkx vcE @@ -124104,10 +124194,10 @@ brr aRT buO aQL -aLG -aYZ -sLE -bkY +fZE +eFa +fEF +xpc bdl lOr lOr @@ -124127,10 +124217,10 @@ bYv tiE tiE bdl -rqw -iEb -bHY -buH +fJt +oYi +mkx +oSM bJC cdV cfo @@ -124202,16 +124292,16 @@ ngl aeA ajk aeA -aIe -aWd -kYP -aHQ -aHQ -apj -aFW -rFY -aVY -akI +iOP +fiH +dwJ +vXk +vXk +jgS +pBg +vkQ +brm +aOw jvY arg atf @@ -124227,16 +124317,16 @@ jvY aMm aOq jvY -aDx -dsk -mLU -aFW -aGD -aHQ -aHQ -lKk -kKb -lNl +biB +uvq +cVT +pBg +bZq +vXk +vXk +siS +aRr +fzm lJY xVS lJY @@ -124307,10 +124397,10 @@ brs aRT bew aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH mCo iwZ jFy @@ -124330,10 +124420,10 @@ eHa cmo xAB mCo -bJz -cbS -bHW -bJz +brq +wwv +sIR +brq bJC bKX cfo @@ -124408,13 +124498,13 @@ ily taw mRI taw -blb -aWd -aXT -pji -aEp -aEp -akJ +qnf +fiH +wPm +ybk +mQF +mQF +nbW jvY arh atm @@ -124430,13 +124520,13 @@ jvY nSG aOs jvY -aEp -ixC -aEp -pji -jFg -aWd -pCD +mQF +pZq +mQF +ybk +dJF +fiH +dAr kNq cWo kNq @@ -124510,10 +124600,10 @@ brr aRT buO aQL -aXS -aYZ -kfP -tBF +jpW +eFa +svw +mzv bmv bEg bGU @@ -124533,10 +124623,10 @@ bYw nDM bWL sSa -qLp -lYi -bIb -mHm +bRo +dOG +gKw +tgz bJC cdV cfo @@ -124615,9 +124705,9 @@ ggQ ggQ aME aep -aiB -ajN -akK +ivV +jnx +iPK jvY ari aoP @@ -124633,9 +124723,9 @@ axo atm aOr jvY -aiB -aWf -aiB +ivV +otE +ivV aep aME ggQ @@ -124713,10 +124803,10 @@ brr aUY buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ mCo bEh bNQ @@ -124736,10 +124826,10 @@ bKA cXR cal mCo -pJJ -iEb -bHY -buH +wcD +oYi +mkx +oSM bJC cdV bMy @@ -124818,9 +124908,9 @@ afj afk agM aep -alG -aYj -aoD +pEd +tbD +fDk jvY arj atm @@ -124836,9 +124926,9 @@ bzD atm aOs jvY -alG -anG -apd +pEd +hqx +xhi aep aHS afk @@ -124916,10 +125006,10 @@ aQL aQL aQL aQL -aLG -aYZ -sLE -qFb +fZE +eFa +fEF +bNr bdl bEi bZr @@ -124939,10 +125029,10 @@ bKA cir bdl bdl -lgX -iEb -bHY -buH +sXC +oYi +mkx +oSM bJC bJC bJC @@ -125021,9 +125111,9 @@ afk afk afk aep -alG -aYj -aoD +pEd +tbD +fDk jvY ark atm @@ -125039,9 +125129,9 @@ axo atm thv jvY -alG -anG -apd +pEd +hqx +xhi aep afk aHl @@ -125119,10 +125209,10 @@ brt aUZ buS aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl brp bZr @@ -125141,11 +125231,11 @@ bNQ bNQ bNQ bGz -hMs -cbw -iEb -bHY -buH +egD +oQn +oYi +mkx +oSM bJC cdX bMx @@ -125224,9 +125314,9 @@ aep aep aep aep -alJ -aYj -aoD +pvE +tbD +fDk jvY alL atk @@ -125242,9 +125332,9 @@ jvY aAy alL jvY -alG -anG -apd +pEd +hqx +xhi aep aep aep @@ -125322,10 +125412,10 @@ brt bpC buS aQL -aNn -aYZ -sLE -jJs +bMf +eFa +fEF +tLZ bdl bEl wup @@ -125344,11 +125434,11 @@ krN krN krN oqY -can -buH -iEb -bHY -buH +lde +oSM +oYi +mkx +oSM bJC cdX cfo @@ -125427,9 +125517,9 @@ aep aep aep aep -alG -aYj -aoD +pEd +tbD +fDk jvY arl atm @@ -125445,13 +125535,13 @@ alL aMo aOt jvY -alG -anG -apf +pEd +hqx +jhm oIB jgr -gGp -dMf +qUG +rtc oIB vmu kNq @@ -125525,10 +125615,10 @@ brs bpC abT aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH bdl buz bZr @@ -125547,11 +125637,11 @@ ibc uly bNN vbR -pky -cbv -cbS -bHW -bJz +eGq +uuI +wwv +sIR +brq bJC ack cfo @@ -125630,9 +125720,9 @@ taw taw taw taw -alG -aYj -aoD +pEd +tbD +fDk jvY abF atm @@ -125648,9 +125738,9 @@ aIT atm aVF jvY -alG -aYD -uPI +pEd +wZp +amc oIB fXE kaS @@ -125728,10 +125818,10 @@ brt aUY buS aQL -aLG -aYZ -sLE -uBw +fZE +eFa +fEF +hvz bdl bEm bZr @@ -125751,10 +125841,10 @@ uys uys uys uys -iRr -iEb -bHY -buH +bfd +oYi +mkx +oSM bJC cdX bMy @@ -125833,9 +125923,9 @@ taw oQL oQL taw -alK -ajP -aoD +pqv +gqf +fDk jvY jvY jvY @@ -125851,9 +125941,9 @@ jvY jvY jvY jvY -sUF -anG -apd +xeq +hqx +xhi oIB wqr bZw @@ -125931,10 +126021,10 @@ aQL aQL aQL aQL -bxx -byF -bzW -bxx +edn +qRd +gtH +edn bdl bpT bNN @@ -125954,10 +126044,10 @@ dyx eYr bUo uys -cbz -cbU -ccu -cbz +kKB +rsL +jts +kKB bJC bJC bJC @@ -126036,9 +126126,9 @@ mfH nwT nwT mfH -aTS -ajP -aoD +pym +gqf +fDk alL urM dBG @@ -126054,9 +126144,9 @@ jvY wjv fDG alL -alG -aYD -aTS +pEd +wZp +pym qgK tEB uBM @@ -126134,10 +126224,10 @@ aQL bsS mqK aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl bEp bCA @@ -126157,10 +126247,10 @@ dyx hGN pVx uys -ttM -iEb -ccv -bIS +wKm +ekM +aVM +wVm bJC cfp cgu @@ -126239,9 +126329,9 @@ taw oQL oQL taw -uBz -aYj -aoE +gbR +tbD +chC aqe amw anO @@ -126257,9 +126347,9 @@ arq anO qaV kwd -aSB -anG -mPX +urs +hqx +tFQ oIB wKF hzb @@ -126337,10 +126427,10 @@ ihY bpC dnE aQL -kgr -aYW -bzV -beB +qfI +dpA +ggo +lhs bdl ycp ycp @@ -126360,10 +126450,10 @@ uys uys uys uys -bJz -cbS -bJz -bHW +gyw +bFX +gyw +hza bJC bMA cfo @@ -126442,9 +126532,9 @@ taw oQL hja taw -jMK -ajR -aoG +bwN +gxR +lCc aqg arr atn @@ -126460,9 +126550,9 @@ atn atn aOB aRj -aSC -aZH -iAB +dZR +kWc +cwL oIB phj vEf @@ -126540,10 +126630,10 @@ aQL aQL aQL aQL -pGM -aYZ -sLE -jJs +oxe +tcS +mww +sZe bdl fKT bGy @@ -126563,10 +126653,10 @@ sgc xCa bUy bdl -qYt -iEb -bHa -bIT +eTx +ekM +cJs +pOW bJC bJC bJC @@ -126645,9 +126735,9 @@ taw cap fiN taw -rFY -ctC -aoQ +vkQ +kzR +mXP kwd amA atq @@ -126663,11 +126753,11 @@ atq atq aoT kwd -rFY -ctC -gPF +vkQ +kzR +oig oIB -opI +cHC dha pxj oIB @@ -126743,10 +126833,10 @@ mUx bpC dnE aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl fgm bdj @@ -126766,10 +126856,10 @@ fYZ vYC noj hpS -pJJ -iEb -bHa -bIT +gyE +ekM +cJs +pOW bJC bMA cfo @@ -126848,9 +126938,9 @@ taw taw taw taw -aEp -lIw -aoR +mQF +rnO +ogd alO ars amx @@ -126866,9 +126956,9 @@ amx amx aOC alO -aEp -lIw -aEp +mQF +rnO +mQF loP loP loP @@ -126946,10 +127036,10 @@ aQL bsW xvX aQL -aLG -txe -baq -jJs +bqc +noI +dJG +sZe bdl ntd hgO @@ -126969,10 +127059,10 @@ scH nzO kxL hpS -pJJ -vzu -vYi -bIT +gyE +nzt +jhs +pOW bJC cfq cgv @@ -127051,9 +127141,9 @@ taw liF wPR taw -ndJ -anJ -aoS +cui +fQU +onh inw amA amx @@ -127069,9 +127159,9 @@ atq amx aoT inw -aiB -anJ -mnG +ivV +fQU +hPr loP iwB tOC @@ -127149,10 +127239,10 @@ aQL aQL aQL aQL -aLG -aYO -kBK -hyt +bqc +ubQ +fpM +bEk bdl tFS bdj @@ -127172,10 +127262,10 @@ jaR mJa wWP rsK -aGc -kkE -iEb -bIT +cBC +feo +ekM +pOW bJC bJC bJC @@ -127254,9 +127344,9 @@ taw oQL oQL taw -alG -aDZ -aoU +pEd +gBg +bLg aqj arw anP @@ -127272,9 +127362,9 @@ atq atq wwJ inw -alG -aYj -apd +pEd +tbD +xhi loP joG sDu @@ -127352,10 +127442,10 @@ aUZ uqA bES kcl -aLG -aYO -sou -bAX +bqc +ubQ +uPX +rHr bdl wIr aQy @@ -127375,10 +127465,10 @@ nPT bdl bdl bdl -dhU -vzq -iEb -bIT +jLg +uEO +ekM +pOW hNw wos bMC @@ -127457,9 +127547,9 @@ taw oQL oQL taw -ylJ -aDZ -aoD +rhX +gBg +fDk inw qHM emn @@ -127475,9 +127565,9 @@ amx amx aBs inw -alG -aYj -apd +pEd +tbD +xhi loP kxo wSn @@ -127555,9 +127645,9 @@ aSE aVf bES kcl -aLG -aZg -bar +bqc +sUk +slo bdl bdl bdl @@ -127579,9 +127669,9 @@ htk dEp bdl bdl -cbV -fpO -bIT +udf +iyC +pOW hNw sZq jZv @@ -127660,9 +127750,9 @@ kiR oxy oxy kiR -aWd -aDZ -nfp +fiH +gBg +xsX alO alO alO @@ -127678,9 +127768,9 @@ atq atq aBs alO -alG -aDZ -aWd +pEd +gBg +fiH fTF xBY xBY @@ -127758,9 +127848,9 @@ iIR aVf bES kcl -aLG -aYO -bZK +bqc +ubQ +kwi lZM rSR xss @@ -127782,9 +127872,9 @@ dXb xss xss lZM -cbW -iEb -bIT +kYl +ekM +pOW hNw sZq jZv @@ -127863,9 +127953,9 @@ taw oQL oQL lnD -alG -aDZ -xrr +pEd +gBg +iea alO gKZ vTv @@ -127881,9 +127971,9 @@ atq atq aBs alO -alJ -aYj -apd +pvE +tbD +xhi gdS wSn kXN @@ -127961,9 +128051,9 @@ chp aVf aQL aQL -beB -aYT -bzY +lhs +bww +tHF cvx cvx bKJ @@ -127985,9 +128075,9 @@ bKJ cvx cvx cvx -cbX -cbS -ccO +xQz +bFX +pmd bJC bJC bMD @@ -128066,9 +128156,9 @@ taw kLZ tty lnD -alG -aDZ -xrr +pEd +gBg +iea alO arz atq @@ -128084,9 +128174,9 @@ auB atc aOF alO -alG -aYj -apd +pEd +tbD +xhi gdS lBg dXd @@ -128164,9 +128254,9 @@ brA aVf lQz aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs cbh xYP @@ -128188,9 +128278,9 @@ tez gsm bCM bbr -buH -iEb -bIT +uPE +ekM +pOW bJC jht jZv @@ -128269,9 +128359,9 @@ taw taw taw taw -alG -aDZ -xrr +pEd +gBg +iea alO arz atq @@ -128287,9 +128377,9 @@ aIU aMq aOG alO -alG -aDZ -apd +pEd +gBg +xhi loP loP loP @@ -128367,9 +128457,9 @@ bOG aVf iaq aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs bKD vTS @@ -128391,9 +128481,9 @@ tez ccQ bCN bbr -buH -iEb -bIT +uPE +ekM +pOW bJC cjC jZv @@ -128472,9 +128562,9 @@ aYU uxs iDs taw -alG -aDZ -xrr +pEd +gBg +iea alO arz atq @@ -128490,9 +128580,9 @@ xBe xBe xBe xBe -alG -aDZ -apd +pEd +gBg +xhi jWh eFK wGd @@ -128570,9 +128660,9 @@ bRg aVf aQL aQL -fvK -aZi -aLG +ylN +qIf +bqc bbs ydM xYP @@ -128594,9 +128684,9 @@ tez ccQ cdn bbr -buH -iEb -bIT +uPE +ekM +pOW bJC bJC kGF @@ -128675,9 +128765,9 @@ oQL oQL keE taw -alJ -aDZ -xrr +pvE +gBg +iea xnR arm ats @@ -128693,9 +128783,9 @@ aIV qqr arH xBe -alG -aDZ -apd +pEd +gBg +xhi vXd duF hSk @@ -128773,9 +128863,9 @@ jOi aVf bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bbs dvs xYP @@ -128797,9 +128887,9 @@ tez ccQ bCM bbr -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lef @@ -128878,9 +128968,9 @@ gNQ gNQ gNQ xDG -alP -ajW -apc +tJH +qpH +iSu alO arA att @@ -128896,9 +128986,9 @@ azo aJg abR xBe -alG -aDZ -apf +pEd +gBg +jhm jWh oih khE @@ -128976,9 +129066,9 @@ vfx aVf bES kcl -beB -byI -beB +lhs +uvh +lhs kFY jmK bDL @@ -129000,9 +129090,9 @@ tez ccQ bCN jhb -jiw -cbS -bHW +kAj +bFX +hza hNw sZq ltI @@ -129081,9 +129171,9 @@ taw taw taw taw -ylJ -aDZ -apd +rhX +gBg +xhi wDM wDM wDM @@ -129099,9 +129189,9 @@ atv auV amE xBe -alG -aDZ -apd +pEd +gBg +xhi jWh jWh uUz @@ -129179,9 +129269,9 @@ bRV bSe bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bBd aPr bfl @@ -129203,9 +129293,9 @@ bSb bEa bFp bBd -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lwJ @@ -129284,9 +129374,9 @@ tfb tfb tfb ptK -alG -aYj -apd +pEd +tbD +xhi wDM aOM aoW @@ -129302,9 +129392,9 @@ atv auV amE xBe -alG -aYj -apd +pEd +tbD +xhi jWh xXa xXa @@ -129382,9 +129472,9 @@ csZ odB aQL aQL -aLG -aZg -tBF +bqc +sUk +ade bBe bFq bfm @@ -129406,9 +129496,9 @@ bCD bEb bFq bBe -bFu -fpO -bIT +hWD +iyC +pOW bJC bJC rbH @@ -129487,9 +129577,9 @@ jhx jhx dnH gpc -aWd -aYj -apd +fiH +tbD +xhi wDM uto aoX @@ -129505,9 +129595,9 @@ nNY qKi abR xBe -alJ -ajR -aTS +pvE +gxR +pym dEt soP pDr @@ -129585,9 +129675,9 @@ vil bpC qZX aQL -kEb -aZi -bad +pjP +qIf +lfz bbs cdp cdp @@ -129609,9 +129699,9 @@ fJO fJO fJO bbs -nmD -iEb -twT +wMI +ekM +oHt bJC lbf cft @@ -129690,9 +129780,9 @@ nwU owg owg ptK -wOh -ajP -apd +nhT +gqf +xhi wDM aOQ fxI @@ -129708,9 +129798,9 @@ azp qJf anV xBe -alG -aYj -apd +pEd +tbD +xhi jWh iqH khE @@ -129788,9 +129878,9 @@ vil bpC qDq kbc -aLG -aYO -aLG +bqc +ubQ +bqc bbs bdw bfo @@ -129812,9 +129902,9 @@ lJu bEd bFs bbs -buH -iEb -bIT +uPE +ekM +pOW fzq oXb cft @@ -129893,9 +129983,9 @@ eNi eNi eNi eNi -alG -aDZ -apf +pEd +gBg +jhm wDM aOH aJf @@ -129911,9 +130001,9 @@ xBe xBe xBe xBe -alG -aYj -wSk +pEd +tbD +rXV jWh jWh jlQ @@ -129991,9 +130081,9 @@ ngA koC koC xGE -aem -mUa -aLG +jno +fqw +bqc lgy ccb xYP @@ -130015,9 +130105,9 @@ rXk xYP jew laU -buH -jGN -bJb +uPE +dEL +rzy uCM lNw eFj @@ -130096,9 +130186,9 @@ olO wiG nWN eNi -alG -aYj -apd +pEd +tbD +xhi wDM wDM wDM @@ -130114,9 +130204,9 @@ aJh arq ufx alR -alG -aYj -apf +pEd +tbD +jhm jWh hSk hSk @@ -130194,9 +130284,9 @@ jOx bpC qDq aQL -jKA -aYT -beB +nYR +bww +lhs lgy bsG xYP @@ -130218,9 +130308,9 @@ lJu xYP hLI laU -bJz -rrV -bJz +gyw +uNQ +gyw bJC oXb cfo @@ -130299,9 +130389,9 @@ ueG rPt jyE eNi -alG -aYj -apd +pEd +tbD +xhi hwC rcS amx @@ -130317,9 +130407,9 @@ aJi azs atq alR -alG -aYj -apd +pEd +tbD +xhi jlQ tst uUe @@ -130397,9 +130487,9 @@ jOx bpC ksp aQL -aLG -bSY -aWR +bqc +wqO +wxD cau bCG cgE @@ -130421,9 +130511,9 @@ hcw cgE yht blq -buJ -jHe -buH +ddL +eZR +uPE bJC kIP cfo @@ -130502,9 +130592,9 @@ iKD rPt rPt eNi -alG -aYj -apd +pEd +tbD +xhi alR amA atq @@ -130520,9 +130610,9 @@ aJj aMD atq alR -alG -aYj -apd +pEd +tbD +xhi jlQ tZZ gLz @@ -130600,9 +130690,9 @@ pyl pDt aQL aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccN xYP @@ -130624,9 +130714,9 @@ lJu xYP wbV laU -buH -hop -buH +uPE +vuV +uPE bJC bJC vLA @@ -130705,9 +130795,9 @@ eNi eNi gIh eNi -geH -aDZ -apd +iIQ +gBg +xhi alR amA atq @@ -130723,9 +130813,9 @@ amA ayl amx alR -alG -aYj -apd +pEd +tbD +xhi jWh jmQ vcu @@ -130803,9 +130893,9 @@ jOx bpC qZX aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccb xYP @@ -130827,9 +130917,9 @@ rXk xYP jew laU -buH -hop -buH +uPE +vuV +uPE bJC lbf cfo @@ -130908,9 +130998,9 @@ aWb dyK vzK wYY -alG -aDZ -apd +pEd +gBg +xhi alR amA atq @@ -130926,9 +131016,9 @@ aJl amx atq alR -alG -aYj -apd +pEd +tbD +xhi jlQ snE sGL @@ -131006,9 +131096,9 @@ jOx bpC qDq bTb -aLG -aYO -aLG +bqc +ubQ +bqc bbs ccd ccN @@ -131030,9 +131120,9 @@ lJu huK jeQ bbs -buH -hop -buH +uPE +vuV +uPE xSw oXb cfo @@ -131111,9 +131201,9 @@ tii eJX sAC wYY -alG -aDZ -apd +pEd +gBg +xhi alR amA amx @@ -131129,9 +131219,9 @@ aJk amx atq alR -alG -aYj -apd +pEd +tbD +xhi jlQ tZZ cBj @@ -131209,9 +131299,9 @@ osA cHl cHl bTb -beB -aYT -beB +lhs +bww +lhs bbs cdp cdp @@ -131233,9 +131323,9 @@ fJO fJO fJO bbs -bJz -rrV -bJz +gyw +uNQ +gyw xSw ejo ejo @@ -131314,9 +131404,9 @@ sjj fzP sAC wYY -alG -aYj -apd +pEd +tbD +xhi alR amA atq @@ -131332,9 +131422,9 @@ xEO xEO lnP alR -alG -aYj -apf +pEd +tbD +jhm jWh qLs qLs @@ -131412,33 +131502,33 @@ qDq qDq qDq bTb -aLG -aYO -aLG -bBh -aLG -aLG -aLG -aLG -byC -aLG -beB -aLG -aLG -bsT -buH -buH -bJz -buH -bSd -buH -buH -buH -buH -cbD -buH -hop -buH +bqc +ubQ +bqc +bqc +bqc +bqc +bqc +bqc +dYb +bqc +fpI +bqc +bqc +tGS +uPE +uPE +uuT +uPE +fRL +uPE +uPE +uPE +uPE +uPE +uPE +vuV +uPE xSw oXb oXb @@ -131517,9 +131607,9 @@ fcM uzE qsL nim -qhc -ajP -apd +prV +gqf +xhi alR amA atq @@ -131535,9 +131625,9 @@ iWR iWR kbx alR -alG -aYj -apd +pEd +tbD +xhi jWh jWh jlQ @@ -131615,33 +131705,33 @@ ksp rou ksp aQL -aLG -aZl -tzf -mRS -tzf -tBL -bhn -tBL -tBL -tBL -crW -tBL -tBL -mji -ftx -ftx -bUz -ftx -ftx -ftx -bCE -ftx -hvp -rUs -hvp -bIl -bIR +bqc +qas +qUO +qUO +qUO +reu +fLf +reu +reu +reu +kkN +reu +reu +uTP +kEE +kEE +dCM +kEE +kEE +kEE +ulH +kEE +wzJ +wzJ +wzJ +nmH +xui bJC kIP qer @@ -131720,9 +131810,9 @@ xlC gyO kTN eNi -alJ -aYj -apd +pvE +tbD +xhi alR amA atq @@ -131738,14 +131828,14 @@ xEO xEO aOV alR -alG -aYj -apd +pEd +tbD +xhi jWh -kUw -dod -eNv -rxV +wFQ +bop +vyI +jnp thV fCL uIv @@ -131818,33 +131908,33 @@ oBr oBr oBr oBr -tfl -aLG -aLG -bBh -aLG -aNO -sLE -aNO -aNO -aLG -beB -aLG -aLG -bsV -buH -buH -bJz -buH -bHa -bHa -hop -bHa -buH -cbD -buH -buH -jMb +ovQ +bqc +bqc +bqc +bqc +nci +mww +nci +nci +bqc +rVC +bqc +bqc +tGS +uPE +uPE +tIl +uPE +cJs +cJs +vuV +cJs +uPE +uPE +uPE +uPE +pqw bJC bJC bJC @@ -131923,9 +132013,9 @@ oNb iFC qAA eNi -alG -aDZ -apd +pEd +gBg +xhi alR arK atc @@ -131941,15 +132031,15 @@ aJq aMG aOW alR -alG -aYj -apd +pEd +tbD +xhi jWh -tZP -hSk -hSk +bXy +bop +vyI +vyI vyI -thV fCL uIv hSk @@ -132025,25 +132115,25 @@ oBr qPn oBr oBr -bCW -bEH -bHt -bJi -bKE -bKE +jxX +knl +pum +jAj +kKY +kKY oJk lNR lNR -lNR +oJk lNR lNR oJk -bWV -jkd -bYE -bZz -cav -bBa +mXy +oGh +far +vDo +nnr +cNm ljv ljv sUi @@ -132126,9 +132216,9 @@ eNi eNi eNi eNi -aEp -lIw -aEp +mQF +rnO +mQF alO alO alO @@ -132144,14 +132234,14 @@ alO alO alO alO -aEp -lIw -aEp +mQF +rnO +mQF jWh -nDL +wFQ +bop vyI -vyI -wTJ +wKc thV uWV uIv @@ -132329,9 +132419,9 @@ dWX owg owg ptK -aGD -aPb -apj +bZq +hfc +jgS aqq aPa eky @@ -132347,9 +132437,9 @@ eky eky aPa aqq -aGD -aPb -kff +bZq +hfc +lBf jWh xXa xXa @@ -132532,9 +132622,9 @@ keR jhx keR dwI -aTS -wqq -agJ +pym +jae +tGW hal uYg nau @@ -132550,9 +132640,9 @@ uYg nau uYg hal -aGC -wqq -aTS +rrG +jae +pym mPh soP tWi @@ -132735,9 +132825,9 @@ kPG kPG cVw ptK -aIe -anR -lNl +iOP +xjI +fzm aqq eky aNl @@ -132753,9 +132843,9 @@ eky aNl eky aqq -aIe -iYj -lNl +iOP +xSl +fzm jWh tim uWV @@ -132938,9 +133028,9 @@ ucp cIW ptK ptK -pji -dKm -pji +ybk +sDe +ybk aHe jlT exi @@ -134873,13 +134963,13 @@ shL uXk mlF hsy -hgV -osM -ghX +ckZ +hmv +hmv dTS -okQ -xIO -nxZ +hmv +hmv +ckZ hsy tos uXk @@ -135275,7 +135365,7 @@ nic tmQ ppM hsy -npn +txS bVN oGJ xpZ @@ -135289,7 +135379,7 @@ coH oTO uqh iAE -gNG +sct hsy iWa fZR @@ -135478,21 +135568,21 @@ nic aIh aIh hsy -cGe +fCT uXk rae jIV pzM mtZ -bqP -fyd -qYo +hmv +hmv +hmv fQn pzM nac xNf uXk -fbH +slv hsy aIh aIh @@ -135681,21 +135771,21 @@ nic ppM ppM hsy -ebt +igs nCn oGJ uSW kzO vaZ kYL -dLi +hmv sCV rjO suY pdK uqh pJr -fbH +slv hsy aIh aIh @@ -135885,19 +135975,19 @@ aIh ppM hsy hsy -vVX +wTB mlF uXk hmw gSa mtZ -nbv +hmv fQn wSV ulp uXk tos -fbH +slv hsy hsy ppM @@ -136088,19 +136178,19 @@ aIh aIh aIh hsy -hwd +ygP mlF hsy -kag +hcX fQn mtZ -xxl +hmv fQn mtZ -dKc +hmv hsy beL -hwd +ygP hsy cWb aIh @@ -136294,13 +136384,13 @@ hsy ylh opH hsy -kJn +pvI fQn qoR aPU rjO mtZ -rDB +njS hsy iEw ylh @@ -136497,13 +136587,13 @@ hsy ylh mlF hsy -nFM +hmv eZp kzO pzM hip ptZ -urW +hmv hsy tos ylh @@ -139703,8 +139793,8 @@ fEN cqm gTH qit -rna -qQS +ebN +cxc gwn pfT jYR @@ -139901,11 +139991,11 @@ sbJ sbJ sbJ daz -jtj -avK -avK +rna +clw +qQS sKY -avK +qQS bIp fKe dDp @@ -140307,12 +140397,12 @@ daz daz kfU daz -rna -rna +ebN +ebN lnS uVv yit -rna +ebN cxc kBy kBy @@ -140502,7 +140592,7 @@ lmz lmz daz daz -scS +eKJ yaZ ffE hZj @@ -140511,8 +140601,8 @@ daz daz daz sGZ -rna -rna +ebN +ebN roH ebN ebN @@ -140916,14 +141006,14 @@ ffE ffE jqP cLo -vfB +clw viB dIi qLS -vfB +erN wkM jvB -jvB +jtj ieF ieF pJR @@ -141318,13 +141408,13 @@ eKJ yaZ ffE hZj -mUC +clw daz daz daz tHu -rna -rna +ebN +ebN gXs ebN ebN @@ -141525,13 +141615,13 @@ daz daz sTV daz -rna -rna +ebN +ebN gbg uVv -erN -rna -qQS +yit +ebN +cxc kBy kBy gfu @@ -141931,11 +142021,11 @@ sbJ sbJ sbJ daz -jtj -avK -avK +rna +clw +qQS aCd -avK +qQS mFN igr sEK @@ -142139,7 +142229,7 @@ rCi gba mUz our -rna +ebN cxc kBy kBy 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 b593cfbd943a..5a4ce7045021 100644 --- a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm +++ b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm @@ -700,6 +700,13 @@ /obj/item/stool, /turf/open/gm/dirtgrassborder/west, /area/whiskey_outpost/outside/lane/two_south) +"cB" = ( +/obj/structure/machinery/fuelcell_recycler/full, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "cC" = ( /obj/structure/sign/poster, /turf/closed/wall/r_wall, @@ -1397,76 +1404,6 @@ "fj" = ( /turf/open/floor/prison, /area/whiskey_outpost/inside/bunker) -"fk" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/rad, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/adv{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, -/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, -/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, -/area/whiskey_outpost/inside/hospital) "fl" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/sentry, @@ -1929,13 +1866,6 @@ icon_state = "floor_plate" }, /area/whiskey_outpost/inside/cic) -"gX" = ( -/obj/structure/machinery/gel_refiller, -/turf/open/floor{ - dir = 4; - icon_state = "whitegreen" - }, -/area/whiskey_outpost/inside/hospital) "gZ" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/reagent_container/glass/beaker/bluespace, @@ -2177,6 +2107,13 @@ icon_state = "whitegreen" }, /area/whiskey_outpost/inside/hospital) +"hH" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "hI" = ( /turf/open/gm/grass/gbcorner/south_west, /area/whiskey_outpost/outside/lane/one_north) @@ -4286,6 +4223,13 @@ /obj/effect/landmark/start/whiskey/engineer, /turf/open/gm/dirtgrassborder/north, /area/whiskey_outpost/outside/lane/two_south) +"pk" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "pm" = ( /obj/effect/decal/cleanable/blood/writing, /obj/item/weapon/gun/pistol/m4a3, @@ -4898,6 +4842,10 @@ "rp" = ( /turf/open/jungle, /area/whiskey_outpost/outside/north/northwest) +"rq" = ( +/obj/effect/landmark/start/whiskey/engineering, +/turf/open/floor/plating/plating_catwalk/prison, +/area/whiskey_outpost/inside/engineering) "rs" = ( /obj/item/storage/toolbox/emergency, /turf/open/floor/plating/plating_catwalk/prison, @@ -5058,16 +5006,6 @@ }, /turf/open/gm/dirt, /area/whiskey_outpost/outside/north/beach) -"rR" = ( -/obj/structure/closet/hydrant{ - pixel_x = -32 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/whiskey_outpost/inside/engineering) "rS" = ( /obj/structure/filingcabinet, /turf/open/floor/prison{ @@ -5446,13 +5384,6 @@ /obj/item/tool/pen, /turf/open/gm/dirt, /area/whiskey_outpost/outside/mortar_pit) -"tt" = ( -/obj/structure/machinery/power/geothermal, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/whiskey_outpost/inside/engineering) "tu" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -5485,14 +5416,6 @@ icon_state = "darkyellowfull2" }, /area/whiskey_outpost/inside/supply) -"ty" = ( -/obj/structure/machinery/power/geothermal, -/obj/structure/machinery/light/small, -/turf/open/floor/prison{ - dir = 10; - icon_state = "floor_plate" - }, -/area/whiskey_outpost/inside/engineering) "tz" = ( /turf/open/floor{ dir = 1; @@ -5898,6 +5821,13 @@ }, /turf/open/floor/prison, /area/whiskey_outpost/inside/supply) +"uM" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "uN" = ( /obj/structure/disposalpipe/sortjunction/untagged/flipped{ dir = 1 @@ -6554,6 +6484,14 @@ "xb" = ( /turf/closed/wall/r_wall/unmeltable, /area/whiskey_outpost/outside/north/beach) +"xc" = ( +/obj/structure/machinery/light/small, +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "xg" = ( /turf/open/floor/prison{ dir = 4; @@ -7438,6 +7376,13 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/whiskey_outpost/inside/bunker) +"Ay" = ( +/obj/structure/machinery/gel_refiller, +/turf/open/floor{ + dir = 4; + icon_state = "whitegreen" + }, +/area/whiskey_outpost/inside/hospital) "AA" = ( /turf/open/jungle, /area/whiskey_outpost/outside/south/far) @@ -9779,6 +9724,14 @@ /obj/item/tool/crowbar, /turf/open/gm/dirt, /area/whiskey_outpost/outside/lane/three_south) +"JA" = ( +/obj/structure/machinery/power/reactor/colony, +/obj/structure/machinery/light/small, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "JB" = ( /obj/structure/disposalpipe/sortjunction{ dir = 1; @@ -11094,6 +11047,17 @@ }, /turf/open/gm/river, /area/whiskey_outpost/outside/river/west) +"PR" = ( +/obj/structure/surface/rack, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_plate" + }, +/area/whiskey_outpost/inside/engineering) "PT" = ( /obj/structure/machinery/medical_pod/sleeper, /turf/open/floor{ @@ -12545,6 +12509,76 @@ icon_state = "floor_plate" }, /area/whiskey_outpost/inside/bunker/pillbox/one) +"Wj" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/rad, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/adv{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, +/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, +/obj/effect/landmark/wo_supplies/storage/belts/lifesaver, +/turf/open/floor{ + dir = 5; + icon_state = "whitegreen" + }, +/area/whiskey_outpost/inside/hospital) "Wk" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -19565,13 +19599,13 @@ WK ak ak ak -ak -mT -mT -mT -mT -mT -mT +nK +nK +nK +nK +nK +nK +nK mT mT mT @@ -19767,13 +19801,13 @@ aC qe ih Nr -ak -mT -mT -mT -mT -mT -mT +nK +uM +rq +fG +rq +PR +nK mT mT mT @@ -19970,11 +20004,11 @@ PB PM Ed nK -nK -nK -nK -nK -nK +pk +sP +rV +sP +cB nK nK nK @@ -20174,9 +20208,9 @@ PM nK qu re -rR +rV sP -tt +hH nK vl vR @@ -20376,9 +20410,9 @@ uI nK qx ri -rf +rV sP -ty +JA nK vl rV @@ -20578,9 +20612,9 @@ mh nK qu re -rf +rV sP -tt +hH nK vl rV @@ -20780,9 +20814,9 @@ nI Kr qC rs -fG +rV sP -ty +xc nK vl rV @@ -26217,8 +26251,8 @@ bG cb pq qz -fk -gX +Wj +Ay hD im iO diff --git a/maps/shuttles/dropship_alamo.dmm b/maps/shuttles/dropship_alamo.dmm index d23036afdea3..dd799ca7cd6e 100644 --- a/maps/shuttles/dropship_alamo.dmm +++ b/maps/shuttles/dropship_alamo.dmm @@ -18,14 +18,6 @@ /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, @@ -81,15 +73,6 @@ 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, @@ -101,7 +84,7 @@ /area/shuttle/drop1/sulaco) "if" = ( /obj/structure/shuttle/part/dropship1/left_outer_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "ig" = ( /turf/closed/shuttle/dropship1{ @@ -218,7 +201,7 @@ /area/shuttle/drop1/sulaco) "rl" = ( /obj/structure/shuttle/part/dropship1/lower_right_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "rr" = ( /turf/closed/shuttle/dropship1/transparent{ @@ -229,17 +212,9 @@ /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, +/turf/template_noop, /area/shuttle/drop1/sulaco) "tR" = ( /obj/item/device/radio/intercom/alamo{ @@ -279,7 +254,7 @@ /area/shuttle/drop1/sulaco) "xM" = ( /obj/structure/shuttle/part/dropship1/bottom_right_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "yQ" = ( /turf/closed/shuttle/dropship1/transparent{ @@ -288,7 +263,7 @@ /area/shuttle/drop1/sulaco) "yU" = ( /obj/structure/shuttle/part/dropship1/bottom_left_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "zw" = ( /obj/structure/shuttle/part/dropship1/transparent/upper_left_wing, @@ -319,6 +294,14 @@ icon_state = "63" }, /area/shuttle/drop1/sulaco) +"BM" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + attach_id = 9 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop1/sulaco) "BS" = ( /turf/closed/shuttle/dropship1{ icon_state = "48" @@ -358,7 +341,7 @@ /area/shuttle/drop1/sulaco) "EN" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_left_exhaust, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "FA" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_left_cap, @@ -369,6 +352,15 @@ icon_state = "39" }, /area/shuttle/drop1/sulaco) +"GQ" = ( +/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) "Ho" = ( /obj/structure/machinery/computer/dropship_weapons/dropship1, /obj/structure/transmitter/rotary{ @@ -401,6 +393,23 @@ icon_state = "35" }, /area/shuttle/drop1/sulaco) +"Iu" = ( +/obj/effect/attach_point/fuel/dropship1{ + dir = 1; + pixel_x = -32 + }, +/turf/closed/shuttle/dropship1/transparent{ + icon_state = "33" + }, +/area/shuttle/drop1/sulaco) +"IP" = ( +/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) "Jb" = ( /turf/closed/shuttle/dropship1/transparent{ icon_state = "80" @@ -408,23 +417,17 @@ /area/shuttle/drop1/sulaco) "Jm" = ( /obj/structure/shuttle/part/dropship1/transparent/engine_right_exhaust, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "JP" = ( /turf/closed/shuttle/dropship1{ icon_state = "62" }, /area/shuttle/drop1/sulaco) -"Kk" = ( -/obj/effect/attach_point/crew_weapon/dropship1/floor{ - attach_id = 7 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +"Kt" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit{ + dir = 1 }, -/area/shuttle/drop1/sulaco) -"KC" = ( -/obj/structure/machinery/door/airlock/hatch/cockpit, /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -442,30 +445,13 @@ /area/shuttle/drop1/sulaco) "Me" = ( /obj/structure/shuttle/part/dropship1/left_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "MP" = ( /turf/closed/shuttle/dropship1{ icon_state = "64" }, /area/shuttle/drop1/sulaco) -"Nv" = ( -/obj/effect/attach_point/crew_weapon/dropship1/floor{ - 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, @@ -506,9 +492,9 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) -"PV" = ( +"PA" = ( /obj/effect/attach_point/crew_weapon/dropship1/floor{ - attach_id = 9 + attach_id = 7 }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" @@ -539,7 +525,7 @@ /area/shuttle/drop1/sulaco) "Ta" = ( /obj/structure/shuttle/part/dropship1/right_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "Te" = ( /obj/structure/shuttle/part/dropship1/transparent/right_inner_bottom_wing, @@ -598,6 +584,14 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) +"UN" = ( +/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) "Vm" = ( /turf/closed/shuttle/dropship1/transparent{ icon_state = "78" @@ -609,7 +603,7 @@ /area/shuttle/drop1/sulaco) "Wg" = ( /obj/structure/shuttle/part/dropship1/right_outer_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop1/sulaco) "WQ" = ( /turf/closed/shuttle/dropship1{ @@ -634,7 +628,15 @@ icon_state = "rasputin7" }, /area/shuttle/drop1/sulaco) -"XP" = ( +"XH" = ( +/obj/effect/attach_point/fuel/dropship1{ + dir = 1 + }, +/turf/closed/shuttle/dropship1/transparent{ + icon_state = "28" + }, +/area/shuttle/drop1/sulaco) +"XI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds1{ id = "port_door"; dir = 2 @@ -643,13 +645,13 @@ icon_state = "rasputin15" }, /area/shuttle/drop1/sulaco) -"Ye" = ( -/obj/effect/attach_point/electronics/dropship1{ - dir = 1; - attach_id = 6 +"YV" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + attach_id = 8 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" }, -/obj/structure/shuttle/part/dropship1/transparent/inner_right_weapons, -/turf/template_noop, /area/shuttle/drop1/sulaco) "Za" = ( /turf/closed/shuttle/dropship1{ @@ -683,7 +685,7 @@ mb mb FA Oq -sm +XH iz EN mb @@ -700,7 +702,7 @@ Et iI JP il -XP +XI mW qn sA @@ -717,7 +719,7 @@ NQ mb mb mb -bc +UN oo TK ws @@ -787,7 +789,7 @@ ax EB Py tR -KC +Kt dU Ph BB @@ -796,11 +798,11 @@ BB OK OU il -Kk +PA il -Nv +YV il -PV +BM il mb mb @@ -855,7 +857,7 @@ Wg mb mb mb -Ye +IP oo TK cr @@ -884,7 +886,7 @@ iv zV MP il -ed +GQ nC nE rl @@ -913,7 +915,7 @@ mb mb eD Gw -ND +Iu qy Jm mb diff --git a/maps/shuttles/dropship_normandy.dmm b/maps/shuttles/dropship_normandy.dmm index e64fbe62372d..969e5927d3f8 100644 --- a/maps/shuttles/dropship_normandy.dmm +++ b/maps/shuttles/dropship_normandy.dmm @@ -15,6 +15,16 @@ icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) +"ba" = ( +/obj/effect/attach_point/fuel/dropship2{ + dir = 1; + pixel_x = -32; + attach_id = 11 + }, +/turf/closed/shuttle/dropship2/transparent{ + icon_state = "33" + }, +/area/shuttle/drop2/sulaco) "bc" = ( /obj/structure/shuttle/part/dropship2/transparent/left_outer_bottom_wing, /turf/template_noop, @@ -36,6 +46,14 @@ /obj/structure/shuttle/part/dropship2/transparent/right_outer_bottom_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) +"db" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 7 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) "eu" = ( /turf/closed/shuttle/dropship2{ icon_state = "75" @@ -51,6 +69,14 @@ icon_state = "29" }, /area/shuttle/drop2/sulaco) +"ft" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 8 + }, +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) "fx" = ( /turf/closed/shuttle/dropship2{ icon_state = "69" @@ -63,7 +89,7 @@ /area/shuttle/drop2/sulaco) "fQ" = ( /obj/structure/shuttle/part/dropship2/left_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "gD" = ( /turf/closed/shuttle/dropship2/transparent{ @@ -79,14 +105,6 @@ 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 @@ -95,12 +113,22 @@ icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) -"hn" = ( -/obj/effect/attach_point/crew_weapon/dropship2/floor{ - attach_id = 8 +"gV" = ( +/obj/effect/attach_point/fuel/dropship2{ + dir = 1; + attach_id = 10 + }, +/turf/closed/shuttle/dropship2/transparent{ + icon_state = "28" + }, +/area/shuttle/drop2/sulaco) +"he" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + dir = 1; + id = "starboard_door" }, /turf/open/shuttle/dropship{ - icon_state = "rasputin3" + icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) "it" = ( @@ -118,7 +146,7 @@ /area/shuttle/drop2/sulaco) "iI" = ( /obj/structure/shuttle/part/dropship2/right_inner_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "jc" = ( /obj/item/device/radio/intercom/normandy{ @@ -151,6 +179,15 @@ icon_state = "26" }, /area/shuttle/drop2/sulaco) +"lj" = ( +/obj/structure/machinery/door/airlock/hatch/cockpit/two{ + dir = 1 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/shuttle/dropship{ + icon_state = "rasputin15" + }, +/area/shuttle/drop2/sulaco) "lz" = ( /obj/effect/attach_point/weapon/dropship2/right_fore, /obj/structure/shuttle/part/dropship2/transparent/outer_right_weapons, @@ -175,14 +212,6 @@ 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; @@ -200,15 +229,6 @@ 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, @@ -216,7 +236,7 @@ /area/shuttle/drop2/sulaco) "nS" = ( /obj/structure/shuttle/part/dropship2/lower_left_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "oc" = ( /obj/structure/shuttle/part/dropship2/transparent/nose_top_right, @@ -267,18 +287,26 @@ /obj/structure/shuttle/part/dropship2/transparent/upper_left_wing, /turf/template_noop, /area/shuttle/drop2/sulaco) -"vd" = ( +"ut" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ + id = "port_door"; + dir = 2 + }, /turf/open/shuttle/dropship{ - icon_state = "rasputin3" + icon_state = "rasputin15" }, /area/shuttle/drop2/sulaco) -"vh" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/dropshipside/ds2{ - dir = 1; - id = "starboard_door" +"uC" = ( +/obj/effect/attach_point/crew_weapon/dropship2/floor{ + attach_id = 9 }, /turf/open/shuttle/dropship{ - icon_state = "rasputin15" + icon_state = "rasputin3" + }, +/area/shuttle/drop2/sulaco) +"vd" = ( +/turf/open/shuttle/dropship{ + icon_state = "rasputin3" }, /area/shuttle/drop2/sulaco) "wX" = ( @@ -325,14 +353,6 @@ icon_state = "56" }, /area/shuttle/drop2/sulaco) -"Bg" = ( -/obj/effect/attach_point/crew_weapon/dropship2/floor{ - attach_id = 7 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/shuttle/drop2/sulaco) "Bi" = ( /turf/closed/shuttle/dropship2/transparent{ icon_state = "97" @@ -362,6 +382,14 @@ icon_state = "rasputin4" }, /area/shuttle/drop2/sulaco) +"Dq" = ( +/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) "Dy" = ( /turf/closed/shuttle/dropship2/transparent{ icon_state = "35" @@ -477,14 +505,6 @@ /obj/structure/shuttle/part/dropship2/transparent/nose_top_left, /turf/template_noop, /area/shuttle/drop2/sulaco) -"MA" = ( -/obj/effect/attach_point/crew_weapon/dropship2/floor{ - attach_id = 9 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/shuttle/drop2/sulaco) "ME" = ( /turf/closed/shuttle/dropship2/transparent{ icon_state = "96" @@ -514,16 +534,7 @@ /area/shuttle/drop2/sulaco) "NM" = ( /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" - }, +/turf/template_noop, /area/shuttle/drop2/sulaco) "Ov" = ( /obj/structure/shuttle/part/dropship2/transparent/right_inner_bottom_wing, @@ -587,7 +598,7 @@ /area/shuttle/drop2/sulaco) "QK" = ( /obj/structure/shuttle/part/dropship2/lower_right_wall, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "Rr" = ( /turf/template_noop, @@ -607,7 +618,7 @@ /area/shuttle/drop2/sulaco) "RJ" = ( /obj/structure/shuttle/part/dropship2/right_outer_wing_connector, -/turf/open/space/basic, +/turf/template_noop, /area/shuttle/drop2/sulaco) "SB" = ( /obj/structure/shuttle/part/dropship2/nose_front_left, @@ -672,13 +683,6 @@ icon_state = "25" }, /area/shuttle/drop2/sulaco) -"VW" = ( -/obj/structure/machinery/door/airlock/hatch/cockpit/two, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/shuttle/drop2/sulaco) "VZ" = ( /obj/item/device/radio/intercom/normandy{ layer = 3.5; @@ -715,7 +719,7 @@ Rr Rr BG SQ -mn +gV sk Xr Rr @@ -732,7 +736,7 @@ OI GE lJ PJ -mA +ut jc pU nS @@ -819,7 +823,7 @@ LY Bi MQ VZ -VW +lj GN bJ ZK @@ -828,11 +832,11 @@ Bb Iv rc vd -Bg +db vd -hn +ft vd -MA +uC PJ Rr Rr @@ -887,7 +891,7 @@ RJ Rr Rr Rr -gH +Dq yl SY it @@ -916,7 +920,7 @@ fI fx Tp PJ -vh +he gG RG QK @@ -945,7 +949,7 @@ Rr Rr yh UP -Od +ba zt Uu Rr diff --git a/maps/shuttles/escape_shuttle_e.dmm b/maps/shuttles/escape_shuttle_e.dmm index 0ba589df217e..65efffe43619 100644 --- a/maps/shuttles/escape_shuttle_e.dmm +++ b/maps/shuttles/escape_shuttle_e.dmm @@ -9,10 +9,10 @@ icon_state = "wall2" }, /area/shuttle/escape_pod) -"e" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/e, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" +"f" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0"; + dir = 8 }, /area/shuttle/escape_pod) "i" = ( @@ -53,10 +53,6 @@ icon_state = "wall13" }, /area/shuttle/escape_pod) -"z" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) "E" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" @@ -67,16 +63,16 @@ icon_state = "wall11" }, /area/shuttle/escape_pod) -"L" = ( +"M" = ( /obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = -18 +/turf/open/shuttle/escapepod{ + icon_state = "floor4" }, -/turf/open/shuttle/escapepod, /area/shuttle/escape_pod) -"N" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor10" +"O" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/e, +/turf/closed/shuttle/escapepod{ + icon_state = "wall9" }, /area/shuttle/escape_pod) "Q" = ( @@ -87,6 +83,15 @@ icon_state = "floor0" }, /area/shuttle/escape_pod) +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = -18 + }, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" + }, +/area/shuttle/escape_pod) "W" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall4" @@ -98,20 +103,20 @@ w t I E -e +O "} (2,1,1) = {" k -z -L -z +M +T +M s "} (3,1,1) = {" d Q o -N +f s "} (4,1,1) = {" diff --git a/maps/shuttles/escape_shuttle_e_cl.dmm b/maps/shuttles/escape_shuttle_e_cl.dmm index 490f0abdfa95..4b605503d7de 100644 --- a/maps/shuttles/escape_shuttle_e_cl.dmm +++ b/maps/shuttles/escape_shuttle_e_cl.dmm @@ -25,31 +25,24 @@ icon_state = "wall13" }, /area/shuttle/escape_pod) -"i" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = -18 +"n" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0"; + dir = 8 }, -/turf/open/shuttle/escapepod, /area/shuttle/escape_pod) "s" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall2" }, /area/shuttle/escape_pod) -"u" = ( +"z" = ( /obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) -"v" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{ - pixel_y = 30 - }, /turf/open/shuttle/escapepod{ - icon_state = "floor0" + icon_state = "floor4" }, /area/shuttle/escape_pod) -"y" = ( +"D" = ( /obj/structure/machinery/door/airlock/evacuation/liaison{ name = "\improper Evacuation Airlock CL-1"; id_tag = "cl_evac" @@ -68,11 +61,6 @@ icon_state = "wall6" }, /area/shuttle/escape_pod) -"K" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor10" - }, -/area/shuttle/escape_pod) "O" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall4" @@ -88,11 +76,28 @@ icon_state = "wall12" }, /area/shuttle/escape_pod) +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = -18 + }, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" + }, +/area/shuttle/escape_pod) "X" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" }, /area/shuttle/escape_pod) +"Z" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{ + pixel_y = 30 + }, +/turf/open/shuttle/escapepod{ + icon_state = "floor0" + }, +/area/shuttle/escape_pod) (1,1,1) = {" h @@ -103,22 +108,22 @@ a "} (2,1,1) = {" Q -u -i -u +z +T +z E "} (3,1,1) = {" s -v +Z b -K +n E "} (4,1,1) = {" g O O -y +D I "} diff --git a/maps/shuttles/escape_shuttle_n.dmm b/maps/shuttles/escape_shuttle_n.dmm index 71f8515daba8..a7a4e9a69252 100644 --- a/maps/shuttles/escape_shuttle_n.dmm +++ b/maps/shuttles/escape_shuttle_n.dmm @@ -1,23 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/closed/shuttle/escapepod{ - icon_state = "wall6" - }, -/area/shuttle/escape_pod) -"c" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/n, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" - }, -/area/shuttle/escape_pod) -"f" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ - pixel_y = 30 - }, -/turf/open/shuttle/escapepod{ - icon_state = "floor7" - }, -/area/shuttle/escape_pod) "g" = ( /turf/closed/shuttle/escapepod, /area/shuttle/escape_pod) @@ -26,11 +7,6 @@ icon_state = "wall1" }, /area/shuttle/escape_pod) -"j" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor9" - }, -/area/shuttle/escape_pod) "k" = ( /obj/structure/machinery/door/airlock/evacuation{ dir = 2; @@ -45,36 +21,64 @@ icon_state = "wall2" }, /area/shuttle/escape_pod) -"F" = ( -/turf/closed/shuttle/escapepod{ - icon_state = "wall3" +"n" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0" }, /area/shuttle/escape_pod) -"H" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, +"p" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_y = 30 + }, +/turf/open/shuttle/escapepod{ + icon_state = "floor2" + }, /area/shuttle/escape_pod) -"L" = ( +"v" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/n, /turf/closed/shuttle/escapepod{ - icon_state = "wall7" + icon_state = "wall9" }, /area/shuttle/escape_pod) -"Q" = ( -/turf/closed/shuttle/escapepod{ - icon_state = "wall11" +"x" = ( +/obj/structure/machinery/cryopod/evacuation, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" }, /area/shuttle/escape_pod) -"V" = ( +"z" = ( /obj/structure/machinery/cryopod/evacuation, /obj/structure/sign/safety/cryo{ pixel_x = 8; pixel_y = -35 }, -/turf/open/shuttle/escapepod, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" + }, /area/shuttle/escape_pod) -"W" = ( +"D" = ( /turf/open/shuttle/escapepod{ - icon_state = "floor8" + dir = 4 + }, +/area/shuttle/escape_pod) +"F" = ( +/turf/closed/shuttle/escapepod{ + icon_state = "wall3" + }, +/area/shuttle/escape_pod) +"K" = ( +/turf/closed/shuttle/escapepod{ + icon_state = "wall6" + }, +/area/shuttle/escape_pod) +"L" = ( +/turf/closed/shuttle/escapepod{ + icon_state = "wall7" + }, +/area/shuttle/escape_pod) +"Q" = ( +/turf/closed/shuttle/escapepod{ + icon_state = "wall11" }, /area/shuttle/escape_pod) "Y" = ( @@ -87,29 +91,29 @@ g Q Q -c +v "} (2,1,1) = {" i -f -H +p +x L "} (3,1,1) = {" k -W -V +D +z L "} (4,1,1) = {" l -j -H +n +x L "} (5,1,1) = {" F Y Y -a +K "} diff --git a/maps/shuttles/escape_shuttle_s.dmm b/maps/shuttles/escape_shuttle_s.dmm index 82391a5218d5..db3f602bdb5a 100644 --- a/maps/shuttles/escape_shuttle_s.dmm +++ b/maps/shuttles/escape_shuttle_s.dmm @@ -4,20 +4,29 @@ icon_state = "wall1" }, /area/shuttle/escape_pod) -"f" = ( +"c" = ( +/obj/structure/machinery/cryopod/evacuation, /turf/open/shuttle/escapepod{ - icon_state = "floor12" + icon_state = "floor4" }, /area/shuttle/escape_pod) -"g" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) "n" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall2" }, /area/shuttle/escape_pod) +"o" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/s, +/turf/closed/shuttle/escapepod{ + icon_state = "wall9" + }, +/area/shuttle/escape_pod) +"q" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0"; + dir = 1 + }, +/area/shuttle/escape_pod) "v" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall15" @@ -33,11 +42,26 @@ icon_state = "wall6" }, /area/shuttle/escape_pod) +"B" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 8; + pixel_y = 28 + }, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" + }, +/area/shuttle/escape_pod) "D" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" }, /area/shuttle/escape_pod) +"I" = ( +/turf/open/shuttle/escapepod{ + dir = 8 + }, +/area/shuttle/escape_pod) "J" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall14" @@ -48,9 +72,13 @@ icon_state = "wall4" }, /area/shuttle/escape_pod) -"P" = ( +"N" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_x = 30 + }, /turf/open/shuttle/escapepod{ - icon_state = "floor11" + icon_state = "floor0"; + dir = 8 }, /area/shuttle/escape_pod) "Q" = ( @@ -58,14 +86,6 @@ icon_state = "wall13" }, /area/shuttle/escape_pod) -"R" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ - pixel_x = 30 - }, -/turf/open/shuttle/escapepod{ - icon_state = "floor2" - }, -/area/shuttle/escape_pod) "T" = ( /obj/structure/machinery/door/airlock/evacuation{ dir = 2; @@ -75,43 +95,29 @@ icon_state = "test_floor4" }, /area/shuttle/escape_pod) -"U" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/s, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" - }, -/area/shuttle/escape_pod) -"V" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = 28 - }, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) (1,1,1) = {" Q D D -U +o "} (2,1,1) = {" n -g -f +c +q v "} (3,1,1) = {" a -V -P +B +I T "} (4,1,1) = {" n -g -R +c +N J "} (5,1,1) = {" diff --git a/maps/shuttles/escape_shuttle_w.dmm b/maps/shuttles/escape_shuttle_w.dmm index 8f81c83b500b..b6b7452c798f 100644 --- a/maps/shuttles/escape_shuttle_w.dmm +++ b/maps/shuttles/escape_shuttle_w.dmm @@ -1,20 +1,25 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/w, -/turf/closed/shuttle/escapepod{ - icon_state = "wall9" - }, -/area/shuttle/escape_pod) "b" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall8" }, /area/shuttle/escape_pod) +"d" = ( +/turf/open/shuttle/escapepod{ + dir = 1 + }, +/area/shuttle/escape_pod) "e" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall6" }, /area/shuttle/escape_pod) +"g" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/w, +/turf/closed/shuttle/escapepod{ + icon_state = "wall9" + }, +/area/shuttle/escape_pod) "j" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall7" @@ -30,6 +35,12 @@ icon_state = "wall2" }, /area/shuttle/escape_pod) +"r" = ( +/obj/structure/machinery/cryopod/evacuation, +/turf/open/shuttle/escapepod{ + icon_state = "floor4" + }, +/area/shuttle/escape_pod) "B" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall10" @@ -45,21 +56,19 @@ icon_state = "wall4" }, /area/shuttle/escape_pod) -"H" = ( +"N" = ( +/obj/structure/machinery/computer/shuttle/escape_pod_panel{ + pixel_y = 30 + }, /turf/open/shuttle/escapepod{ - icon_state = "floor5" + icon_state = "floor2" }, /area/shuttle/escape_pod) -"I" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 +"O" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0"; + dir = 1 }, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) -"M" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, /area/shuttle/escape_pod) "P" = ( /turf/closed/shuttle/escapepod{ @@ -74,39 +83,35 @@ icon_state = "test_floor4" }, /area/shuttle/escape_pod) -"V" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ - pixel_y = 30 +"T" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 }, /turf/open/shuttle/escapepod{ icon_state = "floor4" }, /area/shuttle/escape_pod) -"W" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor12" - }, -/area/shuttle/escape_pod) (1,1,1) = {" P B S B -a +g "} (2,1,1) = {" F -V -H -W +N +d +O b "} (3,1,1) = {" p -M -I -M +r +T +r j "} (4,1,1) = {" diff --git a/maps/shuttles/lifeboat-port.dmm b/maps/shuttles/lifeboat-port.dmm index 0117730f6971..61b4b6ce54f6 100644 --- a/maps/shuttles/lifeboat-port.dmm +++ b/maps/shuttles/lifeboat-port.dmm @@ -320,7 +320,8 @@ /area/shuttle/lifeboat) "Jg" = ( /turf/open/shuttle/escapepod{ - icon_state = "floor8" + icon_state = "floor1"; + dir = 4 }, /area/shuttle/lifeboat) "Jw" = ( diff --git a/maps/shuttles/lifeboat-starboard.dmm b/maps/shuttles/lifeboat-starboard.dmm index 57e302923131..d4ee3702ff37 100644 --- a/maps/shuttles/lifeboat-starboard.dmm +++ b/maps/shuttles/lifeboat-starboard.dmm @@ -446,7 +446,8 @@ /area/shuttle/lifeboat) "VZ" = ( /turf/open/shuttle/escapepod{ - icon_state = "floor8" + icon_state = "floor1"; + dir = 4 }, /area/shuttle/lifeboat) "Xj" = ( diff --git a/maps/templates/Chinook.dmm b/maps/templates/Chinook.dmm index 077729447e29..bc16f23270fa 100644 --- a/maps/templates/Chinook.dmm +++ b/maps/templates/Chinook.dmm @@ -10,6 +10,23 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/medical) +"ad" = ( +/obj/structure/sign/safety/east{ + pixel_x = 12; + pixel_y = 25 + }, +/obj/structure/sign/safety/medical{ + pixel_y = 25 + }, +/obj/structure/sign/safety/security{ + pixel_x = -12; + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "af" = ( /turf/open/floor/almayer_hull{ icon_state = "outerhull_dir" @@ -54,11 +71,9 @@ /area/adminlevel/chinook) "ap" = ( /obj/structure/closet/secure_closet/securecom{ - name = "general's secure box" - }, -/turf/open/floor/almayer{ - icon_state = "plate" + name = "secure box" }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "aq" = ( /obj/structure/surface/table/almayer, @@ -69,10 +84,24 @@ /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_y = 7 }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 11; + pixel_y = 10 + }, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"ar" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "au" = ( /turf/open/floor/almayer_hull{ dir = 4; @@ -81,25 +110,51 @@ /area/space) "av" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"aw" = ( +/turf/closed/wall/almayer/white/reinforced, +/area/adminlevel/chinook/medical) "ax" = ( /obj/structure/machinery/light{ dir = 1 }, /obj/structure/machinery/vending/cola, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) +"ay" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/obj/structure/platform_decoration{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook/cargo) "aA" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"aB" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/adminlevel/chinook) "aC" = ( -/obj/structure/closet/secure_closet/military_police, +/obj/structure/closet/secure_closet/military_officer_spare{ + name = "provost uniform locker" + }, +/obj/item/clothing/under/marine/mp/provost, +/obj/item/clothing/under/marine/mp/provost, +/obj/item/clothing/under/marine/mp/provost, +/obj/item/clothing/under/marine/mp/provost, /turf/open/floor/almayer{ dir = 4; icon_state = "red" @@ -109,8 +164,8 @@ /obj/structure/machinery/light{ dir = 8 }, -/obj/structure/filingcabinet, -/turf/open/floor/almayer, +/obj/structure/displaycase, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "aE" = ( /obj/structure/machinery/light{ @@ -133,12 +188,12 @@ /area/adminlevel/chinook) "aG" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/fancy/cigarettes/kpack{ - pixel_x = -4 - }, /obj/structure/machinery/light{ dir = 1 }, +/obj/item/storage/fancy/cigarettes/kpack{ + pixel_x = -4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -192,17 +247,15 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/offices) "aP" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/flora/pottedplant/random, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" }, -/area/adminlevel/chinook/cargo) +/area/adminlevel/chinook/offices) "aQ" = ( -/obj/structure/machinery/cryopod, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" - }, +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/medical) "aR" = ( /obj/structure/machinery/door_control{ @@ -239,17 +292,36 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) -"aW" = ( +"aV" = ( +/obj/structure/surface/table/reinforced/black, /obj/structure/machinery/light{ - dir = 1 + dir = 8 }, -/obj/structure/machinery/disposal, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/reagent_container/food/drinks/coffeecup/uscm{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/prop/tableflag/uscm{ + pixel_x = 9; + pixel_y = 3 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"aW" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/obj/structure/sign/safety/biolab{ + pixel_x = 3; + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "aX" = ( /obj/structure/machinery/door/airlock/almayer/security{ name = "\improper Security Armory" @@ -264,6 +336,16 @@ icon_state = "plating" }, /area/adminlevel/chinook/sec) +"aY" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "aZ" = ( /obj/structure/machinery/door/airlock/almayer/secure{ dir = 1; @@ -282,7 +364,7 @@ pixel_x = 3; pixel_y = 8 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bb" = ( /obj/structure/machinery/light{ @@ -301,6 +383,14 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"bd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "be" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 @@ -326,6 +416,9 @@ pixel_x = -11; pixel_y = 3 }, +/obj/structure/prop/ice_colony/hula_girl{ + pixel_x = 10 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -336,8 +429,17 @@ dir = 4 }, /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"bi" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/adminlevel/chinook) "bj" = ( /obj/structure/surface/table/almayer, /obj/item/roller, @@ -359,79 +461,99 @@ }, /area/adminlevel/chinook) "bl" = ( -/obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/structure/noticeboard{ + pixel_y = 27 + }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = -6 + }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = -2 }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = 2 + }, +/obj/item/clothing/accessory/medal/gold/service{ + pixel_y = 21; + pixel_x = 6 + }, +/obj/item/tool/lighter/zippo/gold{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = -2 + }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bm" = ( -/obj/structure/bed/sofa/south/grey/right, -/obj/item/reagent_container/food/drinks/cans/beer, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/item/paper_bin/uscm{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/tool/pen/fountain{ + pixel_y = 4; + pixel_x = -8 + }, +/obj/item/device/flashlight/lamp{ + pixel_y = 8; + pixel_x = 6 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bn" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 9; + pixel_x = -3 }, -/obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red{ + pixel_y = -5 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bp" = ( /obj/structure/machinery/light, /obj/structure/closet, /turf/open/floor/almayer, /area/adminlevel/chinook/cryo) -"bu" = ( -/obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +"bq" = ( +/obj/structure/filingcabinet, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) -"bv" = ( +"bu" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/clothing/head/helmet/marine/pilot{ - pixel_x = 6; - pixel_y = 3 +/obj/structure/machinery/light{ + dir = 8 }, -/obj/item/clothing/suit/armor/vest/pilot{ - pixel_x = -5 +/obj/item/toy/beach_ball/holoball{ + pixel_y = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"bv" = ( +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "bx" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/tool/weldingtool{ - pixel_x = -9; +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; pixel_y = 4 }, -/obj/item/stack/cable_coil{ - pixel_x = 7 - }, -/obj/item/stack/cable_coil{ - pixel_x = 13; - pixel_y = 5 - }, -/obj/item/tool/weldingtool{ - pixel_x = -2; - pixel_y = 6 +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 2 }, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/wood, /area/adminlevel/chinook) "bz" = ( /turf/open/floor/almayer{ @@ -444,16 +566,17 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "bB" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/toy/deck/uno{ - pixel_x = 3; - pixel_y = 8 +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "bC" = ( /turf/closed/wall/almayer/outer, @@ -467,6 +590,29 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"bE" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "bF" = ( /obj/item/paper_bin/uscm, /obj/item/tool/pen, @@ -491,8 +637,11 @@ "bH" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/box/bodybags, -/obj/item/reagent_container/food/drinks/bottle/whiskey, -/turf/open/floor/almayer, +/obj/item/paper, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_y = -7 + }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bI" = ( /obj/structure/surface/table/reinforced/black, @@ -501,6 +650,10 @@ pixel_y = 5 }, /obj/item/reagent_container/food/drinks/h_chocolate, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = 12 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -521,26 +674,39 @@ }, /area/adminlevel/chinook/medical) "bL" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/disposal, -/turf/open/floor/almayer, -/area/adminlevel/chinook) -"bO" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/radio/marine, -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = 6; + pixel_y = 4 }, -/turf/open/floor/almayer{ - dir = 4; +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = -9; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"bN" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = -6 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = 9 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"bO" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer{ + dir = 4; icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) -"bP" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 6 - }, -/area/adminlevel/chinook/shuttle) "bQ" = ( /obj/item/book/manual/marine_law{ pixel_x = 1; @@ -551,10 +717,7 @@ /area/adminlevel/chinook/sec) "bR" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/storage/mateba_case/general{ - pixel_y = 4 - }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bS" = ( /obj/structure/surface/table/reinforced/black, @@ -566,21 +729,26 @@ "bV" = ( /obj/item/device/flashlight/lamp/green, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "bY" = ( -/obj/structure/machinery/cryopod, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" + dir = 1; + icon_state = "blue" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook) +"bZ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "ca" = ( /obj/structure/filingcabinet, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "ce" = ( /turf/open/floor/almayer{ @@ -589,10 +757,7 @@ }, /area/adminlevel/chinook/cargo) "cf" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/cm_vending/sorted/medical/blood, +/obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -613,10 +778,10 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "cj" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/surgical_tray, +/obj/structure/machinery/optable, /turf/open/floor/almayer{ - icon_state = "sterile_green_corner" + dir = 1; + icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) "ck" = ( @@ -631,7 +796,6 @@ }, /area/adminlevel/chinook/offices) "cl" = ( -/obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -650,18 +814,36 @@ }, /area/adminlevel/chinook/engineering) "cp" = ( -/obj/structure/surface/table/almayer, -/obj/item/roller, -/obj/item/roller, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 }, -/area/adminlevel/chinook/offices) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/item/toy/beach_ball/holoball, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "cr" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigar, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "cs" = ( /obj/structure/machinery/light{ @@ -673,7 +855,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "cu" = ( /obj/structure/machinery/disposal, @@ -694,9 +876,18 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"cx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "emerald" + }, +/area/adminlevel/chinook/shuttle) "cy" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, +/obj/item/tool/weldingtool/largetank, /turf/open/floor/almayer{ dir = 1; icon_state = "orange" @@ -710,12 +901,27 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) +"cA" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/cell/super{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/cell/super{ + pixel_x = 3 + }, +/obj/item/tool/screwdriver{ + pixel_x = -1; + pixel_y = 6 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "cB" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigarettes/arcturian_ace{ pixel_y = 6 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "cC" = ( /obj/structure/machinery/door/window/eastleft{ @@ -729,37 +935,23 @@ /area/adminlevel/chinook/cargo) "cE" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/ammo_magazine/revolver/mateba/highimpact{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/clothing/head/cmcap/co/formal/black{ - pixel_x = 4; - pixel_y = 5 +/obj/structure/noticeboard{ + pixel_y = 27 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/item/book/manual/marine_law{ + pixel_y = 10 }, -/area/adminlevel/chinook/offices) -"cG" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/tool/pen{ + pixel_y = 8 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "cL" = ( /obj/structure/bed/chair/comfy{ dir = 1; name = "defense chair" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "cM" = ( /obj/structure/machinery/power/terminal{ @@ -771,13 +963,15 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "cN" = ( -/obj/item/device/flashlight/lamp/green, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 }, -/area/adminlevel/chinook/offices) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "cQ" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -799,42 +993,17 @@ }, /area/adminlevel/chinook/sec) "cT" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/cans/souto/classic{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/reagent_container/food/drinks/cans/souto/cranberry{ - pixel_x = -4; - pixel_y = 2 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer, +/area/adminlevel/chinook) "cU" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/cans/souto/classic{ - pixel_x = -18; - pixel_y = 3 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/offices) -"cV" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/paper_bin/uscm{ - pixel_y = 6 - }, -/obj/item/tool/pen, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/sign/poster{ + pixel_y = 32 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer, +/area/adminlevel/chinook) "cW" = ( /obj/structure/machinery/autolathe/medilathe/full, /turf/open/floor/almayer{ @@ -850,16 +1019,23 @@ /obj/item/device/defibrillator, /obj/item/device/defibrillator, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_corner" + icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"cY" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1; + name = "\improper Janitorial Closet"; + req_access = null; + req_one_access = null + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "cZ" = ( /obj/structure/bed, /obj/item/bedsheet/medical, /turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" + icon_state = "sterile_green" }, /area/adminlevel/chinook/offices) "db" = ( @@ -867,7 +1043,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dc" = ( /obj/structure/surface/table/reinforced/black, @@ -911,6 +1087,14 @@ "dh" = ( /obj/structure/surface/table/reinforced/black, /obj/item/paper, +/obj/item/reagent_container/food/drinks/drinkingglass/cola{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/tool/lighter/zippo{ + pixel_x = 7; + pixel_y = 5 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -932,24 +1116,16 @@ }, /area/adminlevel/chinook/offices) "dk" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/machinery/cm_vending/sorted/medical{ + layer = 3.5 }, -/obj/structure/bed, -/obj/item/bedsheet/medical, /turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" + icon_state = "silverfull" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "dl" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/marine_law{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/folder/black, -/turf/open/floor/almayer, +/obj/structure/machinery/cm_vending/sorted/marine_food, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dn" = ( /obj/structure/closet/crate, @@ -966,7 +1142,7 @@ /obj/item/paper/crumpled{ pixel_y = 2 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dq" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -990,7 +1166,7 @@ pixel_y = 3 }, /obj/item/tool/pen, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dt" = ( /obj/structure/closet/firecloset, @@ -1000,9 +1176,7 @@ }, /area/adminlevel/chinook/sec) "du" = ( -/obj/structure/barricade/handrail/kutjevo{ - dir = 1 - }, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "dw" = ( @@ -1017,8 +1191,14 @@ /area/adminlevel/chinook/medical) "dy" = ( /obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"dz" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "dA" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/multitool, @@ -1026,6 +1206,18 @@ icon_state = "tcomms" }, /area/adminlevel/chinook/engineering) +"dB" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering"; + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookengilock"; + name = "Engineering Sector Lockdown"; + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cryo) "dC" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/carpet{ @@ -1055,11 +1247,13 @@ }, /area/adminlevel/chinook/offices) "dH" = ( -/obj/structure/machinery/light, +/obj/structure/sign/poster{ + pixel_y = -32 + }, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + icon_state = "red" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/sec) "dJ" = ( /obj/structure/bed/stool, /obj/structure/machinery/light/small{ @@ -1070,27 +1264,50 @@ icon_state = "blue" }, /area/adminlevel/chinook) -"dM" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"dK" = ( +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) +"dL" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/item/reagent_container/food/snacks/carpmeat, +/obj/item/reagent_container/food/snacks/carpmeat, +/obj/item/reagent_container/food/snacks/carpmeat, +/turf/open/floor/prison{ + icon_state = "kitchen" }, -/area/adminlevel/chinook/sec) +/area/adminlevel/chinook/event) "dN" = ( /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) "dO" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/medical_pod/bodyscanner, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) -"dR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; +"dQ" = ( +/obj/structure/surface/table/reinforced/black, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + layer = 5; + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/event) +"dR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; layer = 2.5 }, /turf/open/floor/almayer{ @@ -1113,9 +1330,9 @@ "dU" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper 2BG Command Meeting Room" + name = "\improper Meeting Room" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "dW" = ( /obj/structure/largecrate/supply/supplies/flares, @@ -1125,20 +1342,20 @@ }, /area/adminlevel/chinook/cargo) "dY" = ( -/obj/structure/machinery/light{ - dir = 1 - }, +/obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/almayer{ icon_state = "plate" }, /area/adminlevel/chinook) "dZ" = ( -/obj/structure/machinery/door/airlock/almayer/command{ - dir = 1; - name = "\improper Colonel, Fifth Division" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/offices) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "ea" = ( /obj/structure/machinery/light{ dir = 8 @@ -1146,10 +1363,47 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "eb" = ( -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/surface/table/almayer, +/obj/item/storage/surgical_tray, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" }, -/area/space) +/area/adminlevel/chinook/offices) +"ee" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 + }, +/obj/structure/barricade/handrail/wire{ + dir = 8 + }, +/obj/structure/holohoop{ + dir = 4; + id = "chinook"; + side = "left" + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "eh" = ( /obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer, @@ -1162,6 +1416,11 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"ek" = ( +/turf/open/floor/almayer{ + icon_state = "bluecorner" + }, +/area/adminlevel/chinook) "em" = ( /obj/structure/surface/table/almayer, /obj/item/pizzabox/meat{ @@ -1170,14 +1429,16 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "en" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/surface/table/almayer, +/obj/item/roller, /turf/open/floor/almayer{ - dir = 4; icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/offices) +"eo" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "ep" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ dir = 1; @@ -1189,6 +1450,22 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/offices) +"eq" = ( +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/strata/metal, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"er" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "es" = ( /obj/structure/machinery/light{ dir = 4 @@ -1206,6 +1483,15 @@ icon_state = "test_floor5" }, /area/adminlevel/chinook/cryo) +"eu" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/adminlevel/chinook/offices) "ew" = ( /obj/structure/closet/secure_closet{ name = "secure evidence locker"; @@ -1225,17 +1511,16 @@ }, /area/adminlevel/chinook/offices) "ey" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer{ dir = 1; icon_state = "blue" }, /area/adminlevel/chinook/offices) "ez" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/sign/safety/coffee{ pixel_x = 12; pixel_y = 25 @@ -1243,19 +1528,20 @@ /obj/structure/sign/safety/south{ pixel_y = 25 }, +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer{ dir = 1; icon_state = "blue" }, /area/adminlevel/chinook/offices) "eA" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light{ dir = 8 }, /obj/structure/platform{ dir = 8 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -1278,7 +1564,7 @@ /area/adminlevel/chinook/sec) "eD" = ( /obj/structure/machinery/cm_vending/sorted/attachments, -/turf/closed/wall/almayer, +/turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/cargo) "eE" = ( /obj/item/stack/sheet/wood/medium_stack{ @@ -1291,17 +1577,20 @@ }, /area/adminlevel/chinook/sec) "eF" = ( -/obj/structure/machinery/cryopod, +/obj/structure/surface/rack, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/bodybags, /turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_corner" + icon_state = "plate" }, /area/adminlevel/chinook/medical) "eG" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 4 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -1320,10 +1609,10 @@ }, /area/adminlevel/chinook/offices) "eJ" = ( -/obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/medical_pod/bodyscanner, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -1342,21 +1631,27 @@ icon_state = "blue" }, /area/adminlevel/chinook/offices) -"eL" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ +"eM" = ( +/obj/structure/sink{ dir = 1; - icon_state = "blue" + pixel_y = -10 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/almayer, +/area/adminlevel/chinook/event) "eN" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "blue" }, /area/adminlevel/chinook/offices) +"eO" = ( +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "eP" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -1376,7 +1671,7 @@ }, /area/adminlevel/chinook/offices) "eS" = ( -/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ icon_state = "blue" }, @@ -1401,9 +1696,29 @@ }, /area/adminlevel/chinook/engineering) "eV" = ( -/obj/structure/bed/chair, +/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) +"eW" = ( +/obj/structure/surface/table/almayer, +/obj/item/toy/deck, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) +"fb" = ( +/obj/structure/machinery/door_control{ + id = "chinookengilock"; + name = "Engineering Lockdown"; + pixel_x = 22; + pixel_y = -3; + req_one_access_txt = "2;3;12;19" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) "fd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -1414,6 +1729,27 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"fe" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/drinks/bottle/wine{ + pixel_y = 14; + pixel_x = 7 + }, +/obj/item/reagent_container/food/drinks/bottle/cognac{ + pixel_y = 13; + pixel_x = -6 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = -3; + pixel_x = -3 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_x = 6 + }, +/turf/open/floor/almayer{ + icon_state = "ai_floors" + }, +/area/adminlevel/chinook/offices) "fg" = ( /obj/structure/sign/safety/storage{ pixel_y = -28 @@ -1422,6 +1758,11 @@ icon_state = "blue" }, /area/adminlevel/chinook/offices) +"fh" = ( +/turf/open/floor/almayer/uscm/directional{ + dir = 8 + }, +/area/adminlevel/chinook/shuttle) "fi" = ( /obj/effect/decal/cleanable/liquid_fuel, /turf/open/floor/almayer{ @@ -1474,9 +1815,15 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/offices) "fs" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/sec) +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "fu" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -1517,55 +1864,41 @@ /area/adminlevel/chinook/offices) "fz" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/tool/lighter/zippo{ - pixel_x = 8; - pixel_y = 7 +/obj/item/clothing/suit/storage/bomber{ + name = "custom bomber jacket" }, -/obj/item/storage/fancy/cigar, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/prop/flower_vase/redwhiteflowers{ + pixel_x = 7; + pixel_y = 11 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fA" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 - }, -/obj/structure/surface/table/reinforced/black, -/obj/item/paper/photograph, -/obj/item/storage/box/evidence{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/book/manual/security_space_law{ - pixel_x = -9; - pixel_y = 5 - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "fB" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = 23 }, -/obj/structure/machinery/cm_vending/clothing/dress, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 2; + pixel_y = -4 }, -/area/adminlevel/chinook/offices) +/turf/open/floor/wood, +/area/adminlevel/chinook) "fC" = ( -/obj/structure/machinery/photocopier, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/item/paper_bin/uscm, +/obj/item/tool/pen/fountain{ + pixel_y = -3 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fD" = ( /turf/closed/shuttle/ert{ @@ -1573,37 +1906,14 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "fE" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/paper{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/item/paper{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/paper/crumpled{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/paper/crumpled{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/item/tool/lighter, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/machinery/light{ + dir = 4 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fF" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) "fG" = ( /obj/item/trash/cigbutt, @@ -1615,25 +1925,22 @@ /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, /obj/item/clothing/glasses/hud/health, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) "fI" = ( -/obj/structure/sign/prop1{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" +/obj/structure/barricade/metal{ + dir = 4 }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "fJ" = ( /obj/structure/machinery/autolathe/full, /turf/open/floor/almayer{ @@ -1642,15 +1949,22 @@ }, /area/adminlevel/chinook/engineering) "fK" = ( -/obj/structure/closet/secure_closet/securecom{ - name = "colonel's secure box" - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/computer/card{ + dir = 4 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"fL" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/adminlevel/chinook) "fM" = ( /obj/structure/machinery/body_scanconsole, /turf/open/floor/almayer{ @@ -1659,12 +1973,19 @@ /area/adminlevel/chinook/sec) "fO" = ( /obj/structure/surface/table/reinforced/black, -/obj/structure/machinery/computer/card, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/paper_bin/uscm{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/device/flashlight/lamp{ + pixel_y = 8; + pixel_x = 6 }, +/obj/item/tool/pen/fountain{ + pixel_x = -8; + pixel_y = 5 + }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fP" = ( /turf/closed/shuttle/ert{ @@ -1681,32 +2002,12 @@ }, /area/adminlevel/chinook/engineering) "fR" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/securecom{ - name = "colonel's secure box" - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/machinery/photocopier, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fS" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/storage/fancy/cigarettes/blackpack{ - pixel_x = -6; - pixel_y = 10 - }, -/obj/item/clothing/mask/cigarette/bcigarette{ - pixel_y = 3 - }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/machinery/cm_vending/clothing/dress, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "fU" = ( /obj/structure/closet/emcloset, @@ -1744,28 +2045,24 @@ }, /area/adminlevel/chinook/offices) "fY" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/folder/yellow{ + pixel_y = 7 }, +/turf/open/floor/almayer, /area/adminlevel/chinook) "fZ" = ( -/obj/structure/machinery/cm_vending/gear/synth, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 1; + icon_state = "green" }, /area/adminlevel/chinook) "ga" = ( -/obj/structure/machinery/cm_vending/clothing/synth, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, +/obj/structure/bed/chair, +/turf/open/floor/almayer, /area/adminlevel/chinook) "gb" = ( -/obj/structure/machinery/cm_vending/clothing/synth/snowflake, -/obj/structure/machinery/light{ - dir = 1 - }, +/obj/structure/machinery/cm_vending/clothing/synth, /turf/open/floor/almayer{ icon_state = "cargo" }, @@ -1784,48 +2081,31 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "ge" = ( -/obj/structure/machinery/recharge_station, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4; + icon_state = "green" }, /area/adminlevel/chinook) -"gh" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" +"gg" = ( +/turf/closed/shuttle/elevator{ + dir = 4 }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/cargo) +"gh" = ( +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook/cryo) "gi" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook) -"gj" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/ashtray/glass{ - pixel_y = 4 - }, -/obj/item/storage/fancy/cigarettes/kpack{ - pixel_x = -11; - pixel_y = 7 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/clothing/mask/cigarette, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" + dir = 4; + icon_state = "sterile_green_side" }, /area/adminlevel/chinook/offices) -"gk" = ( -/obj/structure/sign/goldenplaque{ - pixel_y = 27 - }, +"gj" = ( +/obj/structure/barricade/handrail/strata, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "blue" }, /area/adminlevel/chinook) "gl" = ( @@ -1849,6 +2129,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/offices) +"gp" = ( +/obj/structure/largecrate/supply/supplies/metal, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "gq" = ( /obj/item/storage/box/drinkingglasses, /obj/structure/surface/table/reinforced/black, @@ -1877,12 +2164,14 @@ }, /area/adminlevel/chinook/event) "gw" = ( -/obj/effect/decal/cleanable/ash, +/obj/structure/bed/chair/comfy{ + dir = 1 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "gy" = ( /turf/closed/shuttle/ert{ icon_state = "stan20" @@ -1896,10 +2185,13 @@ /obj/item/reagent_container/food/snacks/fishandchips, /obj/item/reagent_container/food/snacks/grilledcheese, /obj/item/reagent_container/food/snacks/grilledcheese, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "gA" = ( /turf/open/floor/almayer{ dir = 8; @@ -1919,6 +2211,31 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook) +"gD" = ( +/obj/structure/machinery/disposal, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) +"gF" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Provost Offices" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/chinook/sec) +"gG" = ( +/obj/structure/sign/safety/security{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/chinook) "gH" = ( /obj/structure/sign/safety/press_area_ag{ pixel_y = 24 @@ -1942,17 +2259,23 @@ }, /area/adminlevel/chinook/engineering) "gK" = ( -/obj/structure/kitchenspike, -/turf/open/floor/prison{ - icon_state = "kitchen" +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" }, -/area/space) +/area/adminlevel/chinook) "gL" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/adminlevel/chinook) +"gM" = ( +/obj/structure/platform_decoration/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "gN" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ @@ -1960,6 +2283,14 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"gO" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookengilock"; + name = "Engineering Sector Lockdown"; + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cryo) "gP" = ( /turf/open/floor/almayer{ dir = 5; @@ -1982,11 +2313,15 @@ }, /area/adminlevel/chinook/engineering) "gT" = ( -/obj/structure/machinery/telecomms/relay/preset/centcom, +/obj/structure/machinery/telecomms/relay, /turf/open/floor/almayer{ icon_state = "tcomms" }, /area/adminlevel/chinook/engineering) +"gU" = ( +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/plating, +/area/adminlevel/chinook/engineering) "gV" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -2011,6 +2346,10 @@ pixel_y = 8 }, /obj/structure/machinery/light, +/obj/item/stack/cable_coil{ + pixel_x = 20; + pixel_y = 5 + }, /turf/open/floor/almayer{ icon_state = "orange" }, @@ -2026,6 +2365,17 @@ icon_state = "orange" }, /area/adminlevel/chinook/offices) +"ha" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_x = 1; + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "hc" = ( /turf/open/shuttle/dropship{ icon_state = "rasputin6" @@ -2033,14 +2383,43 @@ /area/adminlevel/chinook/shuttle/unpowered) "hd" = ( /obj/structure/largecrate/random, +/obj/item/circuitboard/airlock, /turf/open/floor/almayer{ icon_state = "orange" }, /area/adminlevel/chinook/engineering) "he" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor/almayer, +/obj/structure/displaycase, +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/offices) +"hf" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/folder/yellow{ + pixel_y = 9; + pixel_x = -3 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_y = 6; + pixel_x = 10 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, /area/adminlevel/chinook/offices) +"hg" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "hh" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/kutjevo/tan/plate, @@ -2058,40 +2437,31 @@ /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner, /obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer, -/area/adminlevel/chinook) -"hl" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4 +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) -"hm" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/emails{ - dir = 8; - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) -"ho" = ( -/obj/structure/closet{ - name = "boxing attire" +"hl" = ( +/obj/structure/closet/secure_closet/personal/patient{ + name = "morgue closet" }, -/obj/item/clothing/under/shorts/blue, -/obj/item/clothing/under/shorts/blue, -/obj/item/clothing/under/shorts/red, -/obj/item/clothing/under/shorts/red, -/obj/item/clothing/under/shorts/green, -/obj/item/clothing/under/shorts/green, -/obj/item/clothing/under/shorts/black, -/obj/item/clothing/under/shorts/black, -/obj/item/clothing/under/shorts/grey, -/obj/item/clothing/under/shorts/grey, /turf/open/floor/almayer{ icon_state = "plate" }, +/area/adminlevel/chinook/medical) +"hm" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) +"ho" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, /area/adminlevel/chinook) "hp" = ( /obj/structure/machinery/disposal, @@ -2104,6 +2474,7 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -2117,14 +2488,33 @@ icon_state = "plate" }, /area/adminlevel/chinook) -"hw" = ( -/obj/structure/machinery/door_control{ - id = "provostinterrog"; - name = "Interrogation Shutters"; - pixel_x = -25; - req_one_access_txt = "2;3;12;19" +"ht" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 }, -/turf/open/floor/almayer{ +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"hv" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/obj/structure/sign/safety/galley{ + pixel_x = 32 + }, +/turf/open/floor/kutjevo/tan, +/area/adminlevel/chinook/event) +"hw" = ( +/obj/structure/machinery/door_control{ + id = "provostinterrog"; + name = "Interrogation Shutters"; + pixel_x = -25; + req_one_access_txt = "2;3;12;19" + }, +/turf/open/floor/almayer{ icon_state = "plate" }, /area/adminlevel/chinook/sec) @@ -2173,6 +2563,12 @@ icon_state = "blue" }, /area/adminlevel/chinook/offices) +"hF" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "hG" = ( /obj/structure/machinery/light{ dir = 1 @@ -2187,7 +2583,9 @@ }, /area/adminlevel/chinook/offices) "hI" = ( -/obj/structure/machinery/microwave, +/obj/structure/machinery/microwave{ + pixel_y = 6 + }, /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer{ dir = 5; @@ -2198,10 +2596,7 @@ /obj/structure/sign/safety/coffee{ pixel_x = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/offices) "hK" = ( /obj/structure/surface/table/reinforced/black, @@ -2217,31 +2612,21 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) -"hL" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/clothing/mask/cigarette/pipe{ - pixel_y = 5 - }, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +"hM" = ( +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookairlock1"; + name = "\improper Chinook Shuttle Airlock" }, -/area/adminlevel/chinook/offices) +/turf/open/floor/plating, +/area/adminlevel/chinook/shuttle) "hN" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/tool/lighter/zippo{ - pixel_x = 8; - pixel_y = 7 +/obj/structure/barricade/metal{ + dir = 8 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "hP" = ( /turf/open/floor/almayer{ dir = 10; @@ -2341,12 +2726,14 @@ icon_state = "plating" }, /area/adminlevel/chinook/offices) -"ie" = ( -/obj/structure/machinery/light{ - dir = 8 +"id" = ( +/obj/structure/sign/safety/biohazard{ + pixel_x = -18 }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "ih" = ( /obj/structure/machinery/light{ dir = 4 @@ -2376,10 +2763,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 2.1 }, -/obj/structure/platform{ - dir = 1; - layer = 2 - }, +/obj/structure/platform/stair_cut/alt, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "ip" = ( @@ -2402,7 +2786,15 @@ }, /area/adminlevel/chinook) "is" = ( -/obj/structure/machinery/disposal, +/obj/structure/surface/table/reinforced/black, +/obj/item/storage/box/cups{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/cups{ + pixel_x = 3; + pixel_y = 3 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2413,12 +2805,24 @@ icon_state = "p_stair_ew_full_cap"; layer = 2.1 }, -/obj/structure/platform{ - dir = 1; - layer = 2 - }, +/obj/structure/platform/stair_cut, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"iw" = ( +/obj/structure/platform/stair_cut, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_ew_full_cap"; + layer = 3.5 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/engineering) "ix" = ( /obj/structure/machinery/door_control{ id = "chinookarmory1"; @@ -2440,18 +2844,36 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"iA" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "iC" = ( -/obj/structure/target{ - name = "punching bag" +/obj/structure/morgue, +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/medical) "iD" = ( /obj/structure/platform_decoration, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"iF" = ( +/obj/structure/sign/prop2{ + pixel_y = 30 + }, +/turf/open/floor/strata{ + desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; + icon = 'icons/turf/floors/floors.dmi'; + icon_state = "wood" + }, +/area/adminlevel/chinook/offices) "iG" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -2465,6 +2887,15 @@ dir = 4 }, /area/adminlevel/chinook/event) +"iK" = ( +/obj/structure/largecrate/machine/autodoc, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "iL" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -2480,16 +2911,12 @@ /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) "iO" = ( -/obj/structure/surface/table/reinforced/almayer_B, /obj/item/trash/USCMtray{ pixel_x = 6; pixel_y = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "iP" = ( /obj/effect/decal/warning_stripes{ @@ -2521,12 +2948,8 @@ /obj/item/pizzabox/meat{ pixel_y = 8 }, -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/obj/structure/surface/table/reinforced/black, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "iW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ @@ -2537,14 +2960,18 @@ /area/adminlevel/chinook/offices) "iY" = ( /obj/structure/sign/safety/medical{ - pixel_y = 25 + pixel_x = 32 }, -/obj/structure/sign/safety/east{ - pixel_x = 12; - pixel_y = 25 +/obj/structure/sign/safety/south{ + pixel_x = 32; + pixel_y = -12 + }, +/obj/structure/sign/safety/security{ + pixel_x = 32; + pixel_y = 12 }, /turf/open/floor/almayer{ - dir = 1; + dir = 4; icon_state = "silver" }, /area/adminlevel/chinook) @@ -2578,15 +3005,12 @@ "jc" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, Third Division" + name = "Office of LtCol. Misti Rockwell" }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/offices) -"jd" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/adminlevel/chinook/shuttle) +/area/adminlevel/chinook/offices) "je" = ( /obj/item/clothing/head/welding, /turf/open/floor/almayer, @@ -2600,9 +3024,11 @@ "jg" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, First Division" + name = "Office of LtCol. Karl Walz" + }, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "ji" = ( /obj/structure/machinery/door/airlock/almayer/command{ @@ -2665,9 +3091,7 @@ icon_state = "p_stair_ew_full_cap"; layer = 3.5 }, -/obj/structure/platform{ - dir = 1 - }, +/obj/structure/platform/stair_cut/alt, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -2677,12 +3101,18 @@ /turf/closed/wall/almayer/outer, /area/adminlevel/chinook/shuttle/unpowered) "jr" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/medical_pod/bodyscanner, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/cargo_container/arious/right, +/turf/open/floor/corsat{ + icon_state = "squares" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/cargo) +"js" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/condiment/enzyme, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "ju" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Gym" @@ -2700,12 +3130,19 @@ /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "jy" = ( /obj/structure/sign/safety/fridge{ pixel_x = 7; pixel_y = 24 }, +/obj/structure/machinery/microwave{ + pixel_y = -4 + }, +/obj/structure/machinery/microwave{ + layer = 2.83; + pixel_y = 10 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -2722,6 +3159,19 @@ icon_state = "plate" }, /area/adminlevel/chinook/event) +"jA" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "jC" = ( /obj/structure/machinery/space_heater{ pixel_x = -1; @@ -2732,11 +3182,16 @@ icon_state = "plate" }, /area/adminlevel/chinook/event) -"jE" = ( -/obj/structure/machinery/vending/dinnerware, -/turf/open/floor/almayer{ - icon_state = "plate" +"jD" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"jE" = ( +/obj/structure/machinery/seed_extractor, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/event) "jF" = ( /turf/closed/wall/almayer, @@ -2749,15 +3204,9 @@ }, /area/adminlevel/chinook/event) "jI" = ( -/obj/structure/machinery/computer/card{ - dir = 4 - }, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/offices) +/obj/item/stack/sheet/wood/large_stack, +/turf/open/floor/plating, +/area/adminlevel/chinook/engineering) "jJ" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, @@ -2768,10 +3217,6 @@ "jK" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/multitool, -/obj/item/fuelCell{ - pixel_x = 5; - pixel_y = 7 - }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "jN" = ( @@ -2791,9 +3236,6 @@ pixel_x = 12; pixel_y = 25 }, -/obj/structure/sign/safety/west{ - pixel_y = 25 - }, /turf/open/floor/almayer{ dir = 1; icon_state = "silver" @@ -2805,18 +3247,11 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "jS" = ( -/obj/structure/sign/safety/coffee{ - pixel_x = 12; - pixel_y = 25 - }, -/obj/structure/sign/safety/west{ +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" - }, -/area/adminlevel/chinook/offices) +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/engineering) "jT" = ( /obj/structure/sign/safety/ammunition{ pixel_x = 32; @@ -2880,11 +3315,9 @@ }, /area/adminlevel/chinook) "kf" = ( -/obj/item/tool/kitchen/tray, -/obj/item/tool/kitchen/utensil/fork, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/kutjevo/tan, -/area/adminlevel/chinook/event) +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "kg" = ( /obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ @@ -2894,9 +3327,11 @@ "ki" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, Second Division" + name = "Office of LtCol. Hunter Stanford" + }, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "kj" = ( /obj/structure/machinery/shower{ @@ -2906,7 +3341,7 @@ dir = 4 }, /obj/structure/window/reinforced/tinted/frosted, -/turf/open/floor/almayer, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/offices) "kk" = ( /obj/structure/machinery/cm_vending/sorted/attachments, @@ -2914,13 +3349,6 @@ icon_state = "cargo" }, /area/adminlevel/chinook/sec) -"kl" = ( -/obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/adminlevel/chinook/offices) "km" = ( /obj/structure/machinery/light{ dir = 1 @@ -2969,9 +3397,7 @@ }, /area/adminlevel/chinook) "kr" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/machinery/medical_pod/sleeper, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_side" @@ -2984,14 +3410,13 @@ }, /area/adminlevel/chinook/offices) "ku" = ( -/obj/structure/machinery/medical_pod/bodyscanner, +/obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/offices) "kv" = ( -/obj/structure/machinery/light, /obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ dir = 5; @@ -3073,12 +3498,22 @@ name = "\improper carpet" }, /area/adminlevel/chinook/event) +"kI" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/event) "kJ" = ( -/obj/item/tool/lighter/zippo, /obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/drinkingglass/cola{ +/obj/structure/machinery/computer/communications{ + dir = 8; pixel_x = -3; - pixel_y = 6 + pixel_y = 13 + }, +/obj/item/prop/tableflag/uscm{ + pixel_x = -9; + pixel_y = -11 }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; @@ -3154,24 +3589,30 @@ }, /area/adminlevel/chinook/event) "kU" = ( -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" - }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/surface/table/reinforced/black, +/obj/item/clothing/accessory/patch{ + pixel_x = -3; + pixel_y = 6 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "kW" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/item/ammo_box/magazine/m4ra, +/obj/item/ammo_box/magazine/l42a, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/sec) +"kX" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/adminlevel/chinook) "kY" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /turf/open/floor/almayer{ @@ -3216,6 +3657,10 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"lg" = ( +/obj/structure/machinery/light, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "lh" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) @@ -3236,7 +3681,19 @@ }, /area/adminlevel/chinook/medical) "ll" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/surface/table/almayer, +/obj/item/roller{ + pixel_y = 6 + }, +/obj/item/roller{ + pixel_y = 6 + }, +/obj/item/roller{ + pixel_y = 6 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_corner" @@ -3296,6 +3753,26 @@ icon_state = "red" }, /area/adminlevel/chinook/offices) +"ly" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) +"lz" = ( +/obj/structure/sign/safety/firingrange{ + pixel_x = 2; + pixel_y = 25 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 14; + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "lC" = ( /turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/event) @@ -3315,6 +3792,7 @@ /area/adminlevel/chinook/event) "lE" = ( /obj/effect/decal/cleanable/flour, +/obj/structure/surface/table/reinforced/prison, /turf/open/floor/prison{ icon_state = "kitchen" }, @@ -3325,11 +3803,21 @@ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookreq"; + name = "Requisitions Lockdown" + }, /turf/open/floor/almayer{ dir = 4; icon_state = "plating_striped" }, /area/adminlevel/chinook/cargo) +"lH" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/engineering) "lK" = ( /obj/structure/machinery/light{ dir = 4 @@ -3384,6 +3872,12 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/medical) +"lS" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "lV" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -3400,6 +3894,12 @@ }, /turf/open/floor/kutjevo/multi_tiles, /area/adminlevel/chinook/event) +"lZ" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "ma" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer{ @@ -3407,6 +3907,17 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"mc" = ( +/obj/structure/surface/table/almayer, +/obj/item/pizzabox/mushroom, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) +"md" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "me" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/attachment, @@ -3497,15 +4008,17 @@ }, /area/adminlevel/chinook/offices) "mt" = ( -/obj/structure/machinery/light{ - dir = 8 +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 }, -/obj/structure/machinery/cryopod, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/engineering) "mu" = ( /obj/structure/machinery/vending/security, /turf/open/floor/almayer{ @@ -3518,6 +4031,12 @@ icon_state = "plating_striped" }, /area/adminlevel/chinook) +"mw" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "mz" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -3540,6 +4059,23 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"mC" = ( +/obj/structure/platform_decoration/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) +"mD" = ( +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/obj/structure/platform/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "mF" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/pizzabox/meat{ @@ -3576,11 +4112,7 @@ pixel_x = -6; pixel_y = 2 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "mK" = ( /turf/open/floor/almayer{ @@ -3592,11 +4124,7 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "mO" = ( /obj/structure/extinguisher_cabinet{ @@ -3619,23 +4147,23 @@ /area/adminlevel/chinook/medical) "mU" = ( /obj/structure/filingcabinet, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"mV" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryocell2deval" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "mW" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/cans/waterbottle{ pixel_x = 2; pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "mX" = ( /turf/open/shuttle/dropship{ @@ -3651,12 +4179,16 @@ /obj/structure/machinery/light{ dir = 1 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"mZ" = ( +/obj/structure/machinery/door/airlock/almayer/command{ + name = "\improper Female Locker Room" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "na" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/almayer{ @@ -3664,15 +4196,25 @@ icon_state = "emerald" }, /area/adminlevel/chinook/shuttle) +"nb" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/obj/structure/machinery/scoreboard{ + id = "chinook"; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "nd" = ( /obj/structure/bed/chair/office/dark{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "ne" = ( /obj/structure/bed/sofa/south/grey/left, @@ -3711,6 +4253,12 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"nk" = ( +/obj/structure/platform/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "nl" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/sign/prop1{ @@ -3723,11 +4271,7 @@ /obj/item/tool/pen{ pixel_y = 3 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "nm" = ( /obj/structure/surface/table/almayer, @@ -3769,9 +4313,7 @@ }, /area/adminlevel/chinook/medical) "ns" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/item/reagent_container/food/condiment/enzyme, -/obj/item/reagent_container/food/condiment/enzyme, +/obj/structure/machinery/vending/dinnerware, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3811,15 +4353,6 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) -"nx" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, -/area/adminlevel/chinook/shuttle) "ny" = ( /obj/structure/surface/table/reinforced/black, /obj/item/ashtray/glass{ @@ -3863,6 +4396,9 @@ pixel_y = 7 }, /obj/structure/surface/table/reinforced/black, +/obj/structure/sign/poster/propaganda{ + pixel_y = 30 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3877,15 +4413,24 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "nF" = ( -/obj/item/storage/fancy/cigar, /obj/structure/surface/table/reinforced/black, /obj/structure/sign/prop2{ pixel_y = 30 }, +/obj/structure/machinery/faxmachine/uscm/command/highcom{ + name = "Chinook Fax Machine"; + department = "Chinook 91 GSO Station"; + pixel_y = 5 + }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/adminlevel/chinook/offices) +"nG" = ( +/obj/structure/surface/table/almayer, +/obj/item/ashtray/glass, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "nH" = ( /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer, @@ -3900,6 +4445,15 @@ icon_state = "wood" }, /area/adminlevel/chinook/offices) +"nL" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "nN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -3927,11 +4481,7 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "nS" = ( /obj/structure/closet/secure_closet/guncabinet/red, @@ -3954,21 +4504,8 @@ /obj/item/storage/fancy/cigarettes/emeraldgreen{ pixel_y = 6 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) -"nW" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/adminlevel/chinook) "nX" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/coffee{ @@ -3979,11 +4516,7 @@ name = "Courtroom Procedures"; pixel_y = 10 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "nY" = ( /obj/item/paper_bin/uscm{ @@ -3991,11 +4524,7 @@ }, /obj/item/tool/pen, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "nZ" = ( /obj/structure/target, @@ -4044,11 +4573,7 @@ pixel_x = -2 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "og" = ( /obj/structure/stairs/perspective{ @@ -4087,11 +4612,7 @@ }, /area/adminlevel/chinook/event) "om" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/ashtray/glass{ - pixel_y = 4 - }, -/obj/item/clothing/glasses/sunglasses, +/obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -4120,20 +4641,17 @@ }, /area/adminlevel/chinook/medical) "or" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/coffee{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 5; - pixel_y = 5 +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + id = "medcryobeds"; + id_tag = "medcryobeds"; + name = "Medical Hypersleep Access"; + req_access = null; + req_one_access = null }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, -/area/adminlevel/chinook/event) +/area/adminlevel/chinook/medical) "os" = ( /obj/item/tool/wirecutters{ pixel_y = -7 @@ -4154,25 +4672,42 @@ /area/adminlevel/chinook/engineering) "ou" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 9 + dir = 1 }, /area/adminlevel/chinook/shuttle) "ov" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 1 + dir = 5 }, /area/adminlevel/chinook/shuttle) "ow" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/drinkingglass{ - pixel_x = -6; - pixel_y = 6 +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Pool" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"ox" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/disposal, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/adminlevel/chinook/event) +/area/adminlevel/chinook/cargo) +"oy" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/toy/crayon/blue, +/obj/item/stack/cable_coil{ + pixel_x = -8 + }, +/obj/item/device/lightreplacer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "oz" = ( /obj/structure/platform{ dir = 8 @@ -4235,6 +4770,23 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"oF" = ( +/obj/structure/surface/rack, +/obj/item/toy/beach_ball/holoball, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) +"oG" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/adminlevel/chinook) "oH" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -4242,6 +4794,12 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"oI" = ( +/obj/structure/machinery/vending/cola, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) "oJ" = ( /obj/item/storage/surgical_tray, /obj/structure/surface/table/almayer, @@ -4271,9 +4829,6 @@ /area/adminlevel/chinook/event) "oO" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 1 - }, /turf/open/floor/almayer{ icon_state = "red" }, @@ -4283,10 +4838,10 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cryo) "oU" = ( -/obj/structure/machinery/medical_pod/autodoc, /obj/structure/sign/safety/autodoc{ pixel_x = -16 }, +/obj/structure/machinery/medical_pod/autodoc, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -4312,6 +4867,25 @@ /obj/structure/bed/stool, /turf/open/floor/kutjevo/tan/alt_edge, /area/adminlevel/chinook/event) +"oY" = ( +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 8 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 8; + pixel_x = -1; + pixel_y = 3 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 8; + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/event) "oZ" = ( /obj/structure/machinery/vending/dinnerware, /turf/open/floor/kutjevo/plate, @@ -4345,11 +4919,7 @@ dir = 1; name = "prosecution chair" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "pg" = ( /obj/structure/stairs/perspective{ @@ -4416,11 +4986,11 @@ /turf/open/floor/plating, /area/adminlevel/chinook/engineering) "pq" = ( -/obj/structure/sign/safety/med_cryo{ - pixel_y = -25 +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 }, /turf/open/floor/almayer{ - icon_state = "sterile_green_side" + icon_state = "plate" }, /area/adminlevel/chinook/medical) "pr" = ( @@ -4438,6 +5008,14 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) +"pv" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "pw" = ( /turf/open/floor/almayer{ dir = 5; @@ -4459,21 +5037,21 @@ pixel_x = 8; pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"pz" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) "pA" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/folder/blue{ - pixel_x = -6; - pixel_y = 6 +/obj/structure/machinery/door/airlock/almayer/command{ + dir = 1; + name = "Office of LtCol. Booker Peralta" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + icon_state = "plate" }, /area/adminlevel/chinook/offices) "pB" = ( @@ -4482,15 +5060,16 @@ pixel_y = 4 }, /obj/structure/machinery/light, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "pC" = ( -/obj/structure/flora/pottedplant/random, /obj/structure/machinery/light, +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_29"; + pixel_x = 1; + pixel_y = 10 + }, /turf/open/floor/almayer, /area/adminlevel/chinook) "pD" = ( @@ -4498,14 +5077,12 @@ /obj/item/storage/fancy/cigar{ pixel_y = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "pE" = ( -/turf/open/floor/almayer/uscm/directional, +/turf/open/floor/almayer/uscm/directional{ + dir = 6 + }, /area/adminlevel/chinook/shuttle) "pF" = ( /obj/structure/surface/table/reinforced/black, @@ -4534,6 +5111,21 @@ icon_state = "plate" }, /area/adminlevel/chinook/offices) +"pI" = ( +/obj/structure/sign/safety/bridge{ + desc = "A sign signifying the Courtroom"; + name = "\improper Courtroom"; + pixel_x = 12; + pixel_y = 25 + }, +/obj/structure/sign/safety/north{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/adminlevel/chinook/sec) "pJ" = ( /obj/structure/machinery/computer/secure_data{ dir = 4 @@ -4578,6 +5170,11 @@ name = "\improper carpet" }, /area/adminlevel/chinook/event) +"pQ" = ( +/turf/closed/shuttle/elevator{ + dir = 6 + }, +/area/adminlevel/chinook/cargo) "pR" = ( /obj/structure/machinery/disposal, /turf/open/floor/kutjevo, @@ -4589,13 +5186,13 @@ /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) "pT" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light{ dir = 4 }, /obj/structure/platform{ dir = 4 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -4619,25 +5216,19 @@ /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) "pW" = ( +/obj/structure/barricade/handrail/kutjevo{ + dir = 1 + }, /obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "pX" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/cm_vending/sorted/medical, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "sterile_green_side" +/turf/open/gm/river{ + name = "pool" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook) "pY" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -4652,23 +5243,16 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "qa" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/marine_law{ - pixel_x = 3; - pixel_y = 8 - }, -/obj/item/book/manual/marine_law{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/tool/pen{ - pixel_y = 3 +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 16 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "qb" = ( /obj/structure/machinery/vending/cigarette/colony, @@ -4678,15 +5262,19 @@ }, /area/adminlevel/chinook) "qc" = ( +/obj/structure/barricade/handrail/kutjevo{ + dir = 1 + }, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"qd" = ( +/turf/closed/shuttle/elevator{ + dir = 10 + }, +/area/adminlevel/chinook/offices) "qe" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; @@ -4717,6 +5305,19 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"ql" = ( +/obj/structure/machinery/vending/coffee, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) +"qm" = ( +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/sec) "qn" = ( /turf/open/floor/almayer{ dir = 10; @@ -4725,11 +5326,12 @@ /area/adminlevel/chinook/sec) "qo" = ( /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/machinery/computer/communications{ + dir = 4; + pixel_x = 1; + pixel_y = 6 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "qp" = ( /obj/structure/bed/chair/office/dark{ @@ -4740,6 +5342,11 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"qq" = ( +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "qr" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/coffee{ @@ -4752,11 +5359,21 @@ }, /area/adminlevel/chinook/offices) "qu" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/folder/yellow{ - pixel_y = 7 +/obj/item/toy/inflatable_duck, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) +"qv" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "pool" }, -/turf/open/floor/almayer, /area/adminlevel/chinook) "qw" = ( /obj/item/storage/box/m56d/m2c, @@ -4769,18 +5386,14 @@ /obj/structure/bed/chair/comfy{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) "qz" = ( /obj/structure/bed/chair/comfy{ desc = "A chair with leather padding and adjustable headrest. You could probably sit in one of these for ages. This one looks fit for a secretary to sit in."; name = "secretary's comfy chair" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "qA" = ( /obj/structure/surface/table/almayer, @@ -4798,6 +5411,25 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"qB" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/tool/weldingtool/largetank{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/stack/cable_coil{ + pixel_x = 7 + }, +/obj/item/stack/cable_coil{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/tool/weldingtool/largetank{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) "qC" = ( /obj/item/ashtray/glass{ pixel_y = 4 @@ -4849,12 +5481,12 @@ icon_state = "plate" }, /area/adminlevel/chinook) -"qJ" = ( -/obj/structure/machinery/light{ - dir = 4 +"qI" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/kutjevo, -/area/adminlevel/chinook/event) +/area/adminlevel/chinook) "qK" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ name = "\improper Provost Offices" @@ -4863,12 +5495,6 @@ icon_state = "plate" }, /area/adminlevel/chinook/sec) -"qL" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/adminlevel/chinook/engineering) "qM" = ( /turf/open/floor/kutjevo/tan/alt_edge{ dir = 8 @@ -4878,6 +5504,15 @@ /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"qO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "qP" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -4930,9 +5565,15 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) -"rc" = ( -/obj/structure/closet/crate, -/obj/item/storage/briefcase/inflatable, +"rb" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) +"rc" = ( +/obj/structure/closet/crate, +/obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, @@ -5017,6 +5658,11 @@ icon_state = "kitchen" }, /area/adminlevel/chinook/event) +"rp" = ( +/turf/closed/shuttle/elevator{ + dir = 6 + }, +/area/adminlevel/chinook/offices) "rq" = ( /obj/structure/machinery/light{ dir = 1 @@ -5028,19 +5674,7 @@ /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) "ru" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/surface/table/almayer, -/obj/item/roller{ - pixel_y = 6 - }, -/obj/item/roller{ - pixel_y = 6 - }, -/obj/item/roller{ - pixel_y = 6 - }, +/obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -5061,6 +5695,12 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"ry" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "cargo_arrow" + }, +/area/adminlevel/chinook/cargo) "rA" = ( /obj/item/stack/sheet/wood/medium_stack, /turf/open/floor/almayer{ @@ -5068,6 +5708,18 @@ icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"rC" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 6 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/adminlevel/chinook) "rD" = ( /turf/open/floor/almayer{ dir = 4; @@ -5081,6 +5733,12 @@ icon_state = "sterile_green" }, /area/adminlevel/chinook/medical) +"rF" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = -17 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "rG" = ( /turf/open/floor/almayer{ dir = 1; @@ -5114,6 +5772,18 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"rK" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"rM" = ( +/obj/structure/barricade/handrail/kutjevo{ + dir = 1 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/event) "rN" = ( /turf/open/floor/almayer{ dir = 1; @@ -5121,9 +5791,8 @@ }, /area/adminlevel/chinook) "rO" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Engineering Workshop" +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering" }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) @@ -5140,6 +5809,10 @@ }, /area/adminlevel/chinook/offices) "rV" = ( +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_x = 5; + pixel_y = 8 + }, /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) @@ -5151,9 +5824,11 @@ "rX" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper Colonel, Fourth Division" + name = "Office of LtCol. Braden Stephenson" + }, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "rY" = ( /obj/structure/machinery/power/smes, @@ -5173,6 +5848,14 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"se" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -18 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "sg" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/reagent_container/food/drinks/drinkingglass, @@ -5192,7 +5875,7 @@ dir = 4 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "sk" = ( /obj/structure/machinery/cm_vending/sorted/boozeomat, @@ -5208,19 +5891,11 @@ }, /area/adminlevel/chinook/engineering) "sm" = ( -/obj/item/reagent_container/food/drinks/drinkingglass{ - pixel_x = 5; - pixel_y = 8 - }, -/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/disposal, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "sn" = ( -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) "so" = ( /obj/structure/machinery/light{ @@ -5250,7 +5925,7 @@ pixel_x = 1; pixel_y = 6 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "st" = ( /obj/structure/machinery/portable_atmospherics/canister/air, @@ -5259,10 +5934,17 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"sw" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/offices) "sx" = ( -/obj/structure/machinery/vending/snack, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, /area/adminlevel/chinook/cargo) "sz" = ( @@ -5286,6 +5968,25 @@ icon_state = "blue" }, /area/adminlevel/chinook/offices) +"sD" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/tool/kitchen/tray{ + pixel_y = 7 + }, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 10; + pixel_y = 11 + }, +/turf/open/floor/kutjevo/tan/plate, +/area/adminlevel/chinook/event) "sE" = ( /obj/structure/machinery/door_control{ id = "chinookofficelock"; @@ -5354,21 +6055,52 @@ }, /obj/structure/surface/rack, /obj/item/clothing/head/welding, +/obj/item/stack/sheet/metal/large_stack, /turf/open/floor/almayer{ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"sP" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/structure/holohoop{ + dir = 8; + id = "chinook"; + side = "right" + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 + }, +/obj/structure/barricade/handrail/wire{ + dir = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "sQ" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/coffee{ pixel_x = 12; pixel_y = 7 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "sR" = ( /obj/structure/machinery/light, @@ -5418,16 +6150,10 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 6 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "sW" = ( -/obj/structure/platform{ - dir = 1 - }, +/obj/structure/platform/stair_cut, /obj/structure/stairs/perspective{ dir = 8; icon_state = "p_stair_ew_full_cap"; @@ -5459,6 +6185,12 @@ icon_state = "plating" }, /area/adminlevel/chinook) +"ta" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/adminlevel/chinook/cryo) "tb" = ( /obj/item/device/lightreplacer, /obj/structure/surface/table/reinforced/black, @@ -5506,20 +6238,31 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "tn" = ( -/obj/item/ashtray/glass, /obj/structure/surface/table/reinforced/black, +/obj/item/trash/plate, +/obj/item/ashtray/glass{ + pixel_y = 4 + }, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) +"to" = ( +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/obj/structure/platform/strata/metal, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "tp" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/book/manual/barman_recipes{ - pixel_y = 6 +/obj/structure/machinery/light{ + dir = 1 }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook) "tq" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "Bathroom" @@ -5541,18 +6284,9 @@ }, /area/adminlevel/chinook/medical) "tu" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/waterbottle{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/trash/boonie, +/obj/structure/morgue, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" + icon_state = "plate" }, /area/adminlevel/chinook/medical) "tv" = ( @@ -5566,16 +6300,12 @@ }, /area/adminlevel/chinook/cargo) "tw" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/reagent_container/food/drinks/tea{ - pixel_y = 6 - }, -/obj/item/reagent_container/food/snacks/plumphelmetbiscuit, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/structure/closet/secure_closet/personal, +/obj/structure/closet/secure_closet/personal, +/obj/structure/sign/poster{ + pixel_y = 32 }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) "tx" = ( /obj/structure/machinery/light, @@ -5584,6 +6314,15 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"ty" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "tz" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, @@ -5640,11 +6379,9 @@ }, /area/adminlevel/chinook/sec) "tJ" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook) +/obj/structure/flora/pottedplant/random, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "tK" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/drinkingglasses, @@ -5653,20 +6390,11 @@ }, /area/adminlevel/chinook/event) "tL" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/cell/super{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/cell/super{ - pixel_x = 3 - }, -/obj/item/tool/screwdriver{ - pixel_x = -1; - pixel_y = 6 +/obj/structure/machinery/body_scanconsole, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) +/area/adminlevel/chinook/offices) "tM" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -5709,6 +6437,9 @@ icon_state = "plating_striped" }, /area/adminlevel/chinook/engineering) +"tT" = ( +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook/shuttle) "tU" = ( /turf/open/floor/almayer{ dir = 8; @@ -5742,22 +6473,19 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) -"tY" = ( +"tZ" = ( /obj/structure/machinery/light{ - dir = 4 + dir = 1 + }, +/obj/structure/machinery/scoreboard_button{ + pixel_y = 24; + id = "chinook"; + name = "scoreboard reset button" }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" + icon_state = "cargo" }, /area/adminlevel/chinook) -"tZ" = ( -/obj/item/reagent_container/food/drinks/bottle/sake{ - pixel_x = -5 - }, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/kutjevo/tan, -/area/adminlevel/chinook/event) "ud" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ dir = 2; @@ -5769,9 +6497,7 @@ /area/adminlevel/chinook/event) "ue" = ( /obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/chem_dispenser/soda{ - pixel_y = 6 - }, +/obj/structure/machinery/chem_dispenser/soda, /obj/structure/machinery/light{ dir = 4 }, @@ -5788,9 +6514,14 @@ }, /area/adminlevel/chinook/shuttle) "ug" = ( -/obj/structure/machinery/disposal, -/turf/open/floor/kutjevo/plate, -/area/adminlevel/chinook/event) +/obj/structure/sign/safety/bathwomens{ + pixel_x = 15; + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/adminlevel/chinook/offices) "uh" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" @@ -5816,12 +6547,6 @@ icon_state = "cargo" }, /area/adminlevel/chinook/cargo) -"uk" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "uo" = ( /obj/structure/sign/safety/opens_up{ pixel_x = 15; @@ -5833,24 +6558,11 @@ /turf/open/space, /area/space) "up" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/clothing/mask/cigarette/pipe, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/event) +/obj/structure/flora/pottedplant/random, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "uq" = ( -/obj/structure/surface/table/reinforced/black, -/obj/structure/machinery/computer/emails{ - dir = 8; - pixel_x = -3; - pixel_y = -1 - }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "ur" = ( /obj/structure/bed/sofa/south/grey/left, @@ -5869,12 +6581,12 @@ dir = 1; name = "\improper Courtroom" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"uu" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "uv" = ( /obj/structure/surface/table/reinforced/black, /obj/item/paper{ @@ -5888,7 +6600,7 @@ /area/adminlevel/chinook/event) "uw" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "ux" = ( /obj/structure/bed/chair/comfy{ @@ -5900,26 +6612,16 @@ }, /area/adminlevel/chinook/event) "uy" = ( -/obj/structure/closet/secure_closet/guncabinet/blue{ - name = "sidearm storage" - }, -/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/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, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 4 }, -/area/adminlevel/chinook/sec) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "uz" = ( /obj/structure/machinery/light{ dir = 8 @@ -5998,6 +6700,9 @@ /area/adminlevel/chinook/sec) "uK" = ( /obj/structure/bed/chair/comfy, +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "blue" @@ -6013,15 +6718,6 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) -"uN" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "blue" - }, -/area/adminlevel/chinook/offices) "uO" = ( /obj/structure/sign/prop1{ pixel_y = 32 @@ -6049,16 +6745,19 @@ /turf/open/floor/plating, /area/adminlevel/chinook/shuttle/unpowered) "uS" = ( -/obj/structure/cargo_container/wy/left, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = -21 }, -/area/adminlevel/chinook/cargo) -"uT" = ( -/obj/structure/machinery/medical_pod/bodyscanner{ - dir = 8 +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -2; + pixel_y = 4 }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"uT" = ( +/obj/structure/machinery/medical_pod/bodyscanner, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_corner" @@ -6073,15 +6772,6 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) -"uV" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "emerald" - }, -/area/adminlevel/chinook/shuttle) "uW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/lightreplacer, @@ -6090,12 +6780,9 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "uX" = ( -/obj/structure/machinery/vending/coffee, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook/cargo) +/obj/structure/machinery/disposal, +/turf/closed/wall/almayer, +/area/adminlevel/chinook/sec) "uY" = ( /obj/structure/surface/table/reinforced/black, /obj/item/reagent_container/food/drinks/cans/beer{ @@ -6203,27 +6890,32 @@ /area/adminlevel/chinook/event) "vp" = ( /obj/structure/closet/firecloset, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "vq" = ( /obj/structure/largecrate/random/case/small, +/obj/item/circuitboard/airlock, /turf/open/floor/almayer{ dir = 1; icon_state = "orange" }, /area/adminlevel/chinook/engineering) "vs" = ( -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" - }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/obj/structure/closet/secure_closet/commander, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"vt" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/toy/deck, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook) "vu" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 8 + dir = 8; + icon_state = "logo_c" }, /area/adminlevel/chinook/shuttle) "vv" = ( @@ -6233,7 +6925,18 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"vw" = ( +/obj/structure/sign/safety/bathmens{ + pixel_x = 15; + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "vx" = ( +/obj/structure/flora/pottedplant/random, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -6273,12 +6976,6 @@ icon_state = "rasputin7" }, /area/adminlevel/chinook/shuttle/unpowered) -"vD" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" - }, -/area/adminlevel/chinook) "vE" = ( /obj/structure/sign/safety/ammunition{ pixel_x = 32; @@ -6327,11 +7024,7 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook) "vK" = ( /obj/item/storage/fancy/cigar, @@ -6377,6 +7070,18 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook) +"vS" = ( +/obj/structure/sign/safety/med_cryo{ + pixel_y = -25 + }, +/obj/structure/sign/safety/south{ + pixel_x = 12; + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "vT" = ( /obj/item/trash/barcardine, /turf/open/floor/almayer, @@ -6392,11 +7097,7 @@ }, /area/adminlevel/chinook/cargo) "vW" = ( -/obj/structure/machinery/telecomms/processor/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9 - }, +/obj/structure/machinery/telecomms/processor, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -6409,7 +7110,7 @@ }, /area/adminlevel/chinook/medical) "vZ" = ( -/obj/structure/cargo_container/arious/rightmid, +/obj/structure/cargo_container/seegson/mid, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -6459,21 +7160,25 @@ /area/adminlevel/chinook/event) "wl" = ( /obj/structure/surface/rack, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/adminlevel/chinook) +"wm" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "wo" = ( -/obj/structure/bed/sofa/south/grey, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -6483,6 +7188,10 @@ pixel_x = 32; pixel_y = 6 }, +/obj/structure/sign/safety/firingrange{ + pixel_x = 32; + pixel_y = -6 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -6498,6 +7207,15 @@ icon_state = "wood" }, /area/adminlevel/chinook/offices) +"wr" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/chinook) "wt" = ( /obj/structure/sign/safety/synth_storage{ pixel_x = 31; @@ -6529,25 +7247,20 @@ /obj/structure/bed/chair/office/dark{ dir = 1 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "wz" = ( -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook) "wA" = ( -/obj/item/tool/kitchen/tray, +/obj/structure/surface/table/reinforced/black, +/obj/item/trash/plate{ + pixel_x = 2; + pixel_y = -1 + }, /obj/item/reagent_container/food/snacks/sandwich{ pixel_y = 6 }, -/obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) "wB" = ( @@ -6570,7 +7283,7 @@ /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "wE" = ( /obj/structure/machinery/disposal, /turf/open/floor/almayer{ @@ -6602,14 +7315,6 @@ icon_state = "kitchen" }, /area/adminlevel/chinook/event) -"wK" = ( -/obj/structure/surface/table/reinforced/black, -/obj/item/paper, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" - }, -/area/adminlevel/chinook/event) "wL" = ( /obj/structure/machinery/cm_vending/sorted/medical/blood, /turf/open/floor/almayer{ @@ -6635,6 +7340,11 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"wS" = ( +/turf/closed/shuttle/elevator{ + dir = 5 + }, +/area/adminlevel/chinook/cargo) "wT" = ( /obj/structure/machinery/cm_vending/clothing/dress, /turf/open/floor/almayer{ @@ -6650,11 +7360,7 @@ /area/adminlevel/chinook/event) "wV" = ( /obj/structure/bed/chair/comfy, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook) "wW" = ( /turf/open/floor/almayer{ @@ -6662,12 +7368,31 @@ icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) +"wX" = ( +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "wY" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/machinery/light{ + dir = 1 }, -/area/space) +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) +"xa" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/adminlevel/chinook/offices) "xd" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -6693,6 +7418,27 @@ name = "\improper carpet" }, /area/adminlevel/chinook/event) +"xf" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) +"xg" = ( +/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/machinery/door/window/brigdoor/southleft, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/adminlevel/chinook/offices) "xh" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -6701,10 +7447,8 @@ }, /area/adminlevel/chinook/engineering) "xi" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" - }, +/obj/structure/surface/table/reinforced/almayer_B, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "xj" = ( /obj/item/book/manual/chef_recipes, @@ -6714,6 +7458,25 @@ icon_state = "kitchen" }, /area/adminlevel/chinook/event) +"xk" = ( +/obj/structure/sign/safety/bathmens{ + pixel_y = -25 + }, +/obj/structure/sign/safety/bathwomens{ + pixel_x = 12; + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/chinook) +"xm" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) "xn" = ( /obj/structure/closet/secure_closet/brig, /obj/structure/extinguisher_cabinet{ @@ -6723,6 +7486,17 @@ icon_state = "cargo" }, /area/adminlevel/chinook/sec) +"xq" = ( +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/obj/structure/platform/strata/metal{ + dir = 8 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "xr" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 2; @@ -6745,6 +7519,14 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"xv" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "xw" = ( /obj/structure/bed/sofa/south/grey, /turf/open/floor/kutjevo/tan, @@ -6759,6 +7541,14 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/sec) +"xA" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer{ + icon_state = "tcomms" + }, +/area/adminlevel/chinook/engineering) "xC" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/folder/black, @@ -6774,8 +7564,8 @@ }, /area/adminlevel/chinook/offices) "xF" = ( -/obj/structure/filingcabinet, -/turf/open/floor/almayer, +/obj/structure/surface/rack, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "xG" = ( /obj/structure/flora/pottedplant{ @@ -6786,13 +7576,23 @@ "xH" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper SCO Offices" + name = "\improper Offices" }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/offices) -"xK" = ( -/turf/closed/shuttle/ert{ - icon_state = "stan23" +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) +"xI" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/chinook/sec) +"xK" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan23" }, /area/adminlevel/chinook/shuttle/unpowered) "xL" = ( @@ -6827,8 +7627,18 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_21" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) +"xU" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = -12 + }, +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "xV" = ( /obj/structure/machinery/autolathe/full, /turf/open/floor/almayer{ @@ -6849,17 +7659,24 @@ }, /area/adminlevel/chinook/offices) "xZ" = ( -/obj/structure/machinery/body_scanconsole, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" +/obj/structure/surface/table/reinforced/black, +/obj/item/ashtray/glass{ + pixel_y = 4; + pixel_x = -13 }, -/area/adminlevel/chinook/medical) +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "ya" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 1; - name = "\improper General, 3rd Fleet 2nd Battlegroup" + name = "Office of Col. Samantha Maverick" + }, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "yb" = ( /obj/structure/machinery/chem_dispenser, @@ -6889,6 +7706,12 @@ icon_state = "stan27" }, /area/adminlevel/chinook/shuttle/unpowered) +"yi" = ( +/obj/structure/prop/ice_colony/tiger_rug{ + pixel_x = -16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "yj" = ( /obj/structure/machinery/vending/cola, /turf/open/floor/kutjevo/plate, @@ -6902,12 +7725,24 @@ icon_state = "red" }, /area/adminlevel/chinook/event) +"yn" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Morgue" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "yo" = ( /obj/structure/bed/chair/comfy{ dir = 1 }, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"yp" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/adminlevel/chinook/event) "yr" = ( /obj/structure/machinery/medical_pod/autodoc, /turf/open/floor/almayer{ @@ -6943,6 +7778,15 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) +"yy" = ( +/obj/structure/closet/secure_closet/guncabinet/red{ + name = "provost armor rack" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/sec) "yz" = ( /obj/structure/surface/table/almayer, /obj/item/stack/sheet/metal/large_stack, @@ -6963,12 +7807,19 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/almayer, +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "yF" = ( /obj/item/trash/cigbutt, /turf/open/floor/kutjevo/multi_tiles, /area/adminlevel/chinook/event) +"yJ" = ( +/obj/structure/cargo_container/arious/mid, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "yK" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_x = -30 @@ -6977,6 +7828,21 @@ icon_state = "cargo" }, /area/adminlevel/chinook) +"yL" = ( +/obj/structure/cargo_container/arious/leftmid, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) +"yM" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/chinook/medical) "yN" = ( /turf/open/floor/almayer{ icon_state = "cargo" @@ -6989,7 +7855,7 @@ icon_state = "p_stair_full" }, /obj/structure/barricade/handrail/strata{ - layer = 3.5 + layer = 4.5 }, /turf/open/floor/almayer{ dir = 5; @@ -7005,16 +7871,35 @@ icon_state = "plate" }, /area/adminlevel/chinook/offices) +"yQ" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) +"yR" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "yS" = ( /obj/structure/bed/chair/comfy{ dir = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/sec) +"yT" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/snacks/plumphelmetbiscuit{ + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "yV" = ( /obj/structure/machinery/door_control{ id = "chinookrange"; @@ -7036,11 +7921,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/obj/structure/machinery/telecomms/broadcaster/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9 - }, +/obj/structure/machinery/telecomms/broadcaster, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -7067,15 +7948,14 @@ }, /area/adminlevel/chinook) "zd" = ( -/obj/structure/bed/chair/comfy{ - dir = 4 +/obj/structure/sign/safety/med_cryo{ + pixel_x = 31 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/turf/open/floor/almayer{ + dir = 4; + icon_state = "sterile_green_side" }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/medical) "zf" = ( /obj/structure/machinery/autodoc_console, /turf/open/floor/almayer{ @@ -7083,6 +7963,29 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"zg" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/event) +"zi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/engineering) "zj" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -7092,6 +7995,12 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"zl" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/offices) "zm" = ( /obj/structure/machinery/door_control{ id = "chinook_solitary3"; @@ -7112,6 +8021,10 @@ /obj/item/tool/pen{ pixel_y = -6 }, +/obj/item/toy/deck/uno{ + pixel_x = 3; + pixel_y = 8 + }, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -7140,17 +8053,13 @@ }, /area/adminlevel/chinook/offices) "zw" = ( -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/event) "zC" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "zD" = ( -/obj/structure/bed/sofa/south/grey, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7205,11 +8114,22 @@ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, +/obj/structure/machinery/door/poddoor/almayer{ + id = "chinookreq"; + name = "Requisitions Lockdown" + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"zM" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/bottle/sake{ + pixel_x = -5 + }, +/turf/open/floor/kutjevo/tan, +/area/adminlevel/chinook/event) "zO" = ( /obj/structure/machinery/door_control{ id = "chinook_tcomms"; @@ -7228,9 +8148,7 @@ }, /area/adminlevel/chinook/sec) "zR" = ( -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/machinery/medical_pod/sleeper, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_corner" @@ -7259,7 +8177,7 @@ icon_state = "p_stair_full" }, /obj/structure/barricade/handrail/strata{ - layer = 3.5 + layer = 4.5 }, /turf/open/floor/almayer{ dir = 5; @@ -7270,8 +8188,8 @@ /turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/engineering) "zX" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -7368,6 +8286,7 @@ /area/adminlevel/chinook/offices) "Ao" = ( /obj/structure/largecrate/random/barrel/green, +/obj/structure/machinery/light, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -7399,12 +8318,12 @@ }, /area/adminlevel/chinook/engineering) "Ax" = ( -/obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/cups{ pixel_x = 3; pixel_y = 3 }, /obj/structure/machinery/light, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ icon_state = "blue" }, @@ -7438,6 +8357,15 @@ icon_state = "sterile_green" }, /area/adminlevel/chinook/medical) +"AC" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) +"AD" = ( +/turf/closed/shuttle/elevator, +/area/adminlevel/chinook/offices) "AE" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -7485,8 +8413,8 @@ }, /area/adminlevel/chinook/event) "AJ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer, +/obj/structure/bed/sofa/south/grey, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "AK" = ( /obj/item/trash/cigbutt/cigarbutt, @@ -7521,8 +8449,15 @@ icon_state = "redfull" }, /area/adminlevel/chinook) +"AR" = ( +/obj/structure/machinery/door/airlock/almayer/command{ + dir = 1; + name = "\improper Courtroom" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/event) "AS" = ( -/obj/structure/bed/sofa/south/grey/right, +/obj/structure/reagent_dispensers/water_cooler/stacks, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7533,10 +8468,10 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "AV" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 8 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -7549,6 +8484,13 @@ icon_state = "cargo" }, /area/adminlevel/chinook/cargo) +"AY" = ( +/obj/structure/closet/secure_closet/personal, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) "AZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -7573,6 +8515,15 @@ "Bc" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/chinook/sec) +"Bd" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Be" = ( /obj/effect/decal/warning_stripes{ icon_state = "N" @@ -7584,6 +8535,7 @@ /obj/item/device/flashlight/lamp/green{ pixel_y = 7 }, +/obj/item/toy/deck, /turf/open/floor/carpet{ desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; name = "\improper carpet" @@ -7600,19 +8552,23 @@ }, /area/adminlevel/chinook/sec) "Bh" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/commander{ - name = "colonel's locker" +/obj/structure/surface/table/reinforced/black, +/obj/item/folder/black{ + pixel_y = 6; + pixel_x = -6 }, -/obj/item/clothing/head/beret/marine/commander/council, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/obj/item/folder/white{ + pixel_x = 2; + pixel_y = 2 }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"Bi" = ( +/turf/closed/wall/almayer/white/hull{ + desc = "A reinforced white hull. Nothing gets through here."; + name = "ultra-reinforced hull" + }, +/area/adminlevel/chinook/medical) "Bj" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigarettes/kpack{ @@ -7624,6 +8580,17 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) +"Bk" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/event) "Bn" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, @@ -7641,10 +8608,7 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "Br" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" - }, +/turf/closed/wall/almayer/reinforced, /area/adminlevel/chinook/sec) "Bt" = ( /obj/structure/surface/rack, @@ -7655,15 +8619,10 @@ }, /area/adminlevel/chinook/engineering) "Bu" = ( -/obj/structure/sign/safety/coffee{ - pixel_x = 12; - pixel_y = 25 - }, -/obj/structure/sign/safety/west{ - pixel_y = 25 +/turf/open/floor/almayer/uscm/directional{ + dir = 10 }, -/turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/sec) +/area/adminlevel/chinook/shuttle) "Bx" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/emails{ @@ -7721,12 +8680,6 @@ icon_state = "plating" }, /area/adminlevel/chinook/cargo) -"BE" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/kutjevo/plate, -/area/adminlevel/chinook/event) "BF" = ( /obj/structure/machinery/photocopier, /turf/open/floor/almayer{ @@ -7754,12 +8707,14 @@ pixel_y = 6 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"BJ" = ( +/obj/item/toy/beach_ball, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "BK" = ( /turf/open/floor/almayer{ dir = 5; @@ -7787,6 +8742,12 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"BR" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/medical) "BS" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/shuttle) @@ -7812,6 +8773,7 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ dir = 6; icon_state = "red" @@ -7836,15 +8798,17 @@ }, /area/adminlevel/chinook/engineering) "BZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = 21 }, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "plating_striped" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -2; + pixel_y = -4 }, -/area/adminlevel/chinook/engineering) +/turf/open/floor/wood, +/area/adminlevel/chinook) "Cb" = ( /turf/closed/shuttle/ert{ icon_state = "leftengine_3"; @@ -7866,6 +8830,14 @@ }, /area/adminlevel/chinook) "Cf" = ( +/obj/structure/sign/safety/firingrange{ + pixel_x = -17; + pixel_y = 6 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = -17; + pixel_y = -6 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "red" @@ -7877,6 +8849,13 @@ }, /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"Ch" = ( +/turf/closed/shuttle/elevator, +/area/adminlevel/chinook/cargo) +"Ci" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "Cj" = ( /obj/structure/sign/safety/cryo{ pixel_x = -18 @@ -7887,7 +8866,7 @@ }, /area/adminlevel/chinook) "Ck" = ( -/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/strata{ desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; icon = 'icons/turf/floors/floors.dmi'; @@ -7914,16 +8893,36 @@ /obj/structure/machinery/vending/coffee, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) -"Cr" = ( -/obj/structure/bed/sofa/south/grey/left, -/turf/open/floor/kutjevo/plate, -/area/adminlevel/chinook) -"Cs" = ( -/obj/structure/surface/table/almayer, +"Cp" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) +"Cq" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) +"Cr" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook) +"Cs" = ( +/obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm{ pixel_y = 6 }, /obj/item/tool/pen, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 23 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7932,19 +8931,27 @@ /obj/structure/machinery/fuelcell_recycler, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"Cu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/motiondetector{ + pixel_y = 9 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "Cw" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/sign/goldenplaque{ + pixel_x = 32; + desc = "The plaque reads, 'This plaque is awarded to: KARL WALZ, For superior and unrivaled strategic prowess during the 2173 War Games, scoring a decisive and triumphant victory for their side.'"; + name = "2173 Commanding Excellence Award" }, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/turf/open/floor/almayer{ + icon_state = "ai_floors" }, /area/adminlevel/chinook/offices) "Cx" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "emeraldcorner" +/turf/open/floor/almayer/uscm/directional{ + dir = 9 }, /area/adminlevel/chinook/shuttle) "Cz" = ( @@ -7956,7 +8963,7 @@ /area/adminlevel/chinook) "CA" = ( /obj/structure/machinery/disposal, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "CC" = ( /obj/structure/bed/chair/comfy/black, @@ -7966,12 +8973,20 @@ }, /area/adminlevel/chinook/offices) "CE" = ( -/obj/structure/machinery/light, /obj/structure/bed/chair/comfy{ dir = 1 }, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) +"CF" = ( +/obj/structure/barricade/handrail/strata, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/adminlevel/chinook) "CH" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/plate, @@ -7993,19 +9008,11 @@ /area/adminlevel/chinook/cryo) "CM" = ( /obj/structure/machinery/light, -/obj/structure/machinery/medical_pod/sleeper{ - dir = 8 - }, +/obj/structure/machinery/medical_pod/sleeper, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) -"CN" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/adminlevel/chinook) "CP" = ( /turf/open/shuttle/dropship{ icon_state = "rasputin8" @@ -8018,6 +9025,20 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"CS" = ( +/obj/structure/machinery/cryopod, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/chinook/medical) +"CT" = ( +/obj/effect/decal/medical_decals{ + icon_state = "triagedecaldir" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "CU" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/plate, @@ -8054,12 +9075,17 @@ }, /area/adminlevel/chinook/event) "Db" = ( -/obj/structure/machinery/cryopod, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering" + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" + dir = 8; + icon_state = "orange" }, -/area/adminlevel/chinook/medical) +/area/adminlevel/chinook/engineering) "Dc" = ( /obj/structure/toilet{ dir = 4 @@ -8067,21 +9093,31 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "De" = ( -/obj/structure/machinery/computer/secure_data{ - dir = 4 +/obj/structure/surface/rack, +/obj/item/storage/bag/plants{ + pixel_x = -3 + }, +/obj/item/storage/bag/plants{ + pixel_x = 3 + }, +/obj/item/storage/bag/plants{ + pixel_y = -3 + }, +/obj/item/tool/scythe, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/obj/structure/surface/table/reinforced/almayer_B, -/turf/open/floor/almayer, /area/adminlevel/chinook/event) "Df" = ( -/obj/structure/bed/chair/comfy{ - dir = 8 +/obj/structure/bed/chair/comfy/black{ + dir = 1 }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "Dg" = ( -/obj/structure/surface/rack, -/turf/open/floor/almayer, +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) "Dh" = ( /obj/structure/machinery/light, @@ -8130,6 +9166,15 @@ }, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"Dq" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/obj/structure/bed/chair/wheelchair, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Dr" = ( /obj/structure/closet/secure_closet{ name = "\improper Lethal Injection Locker" @@ -8164,23 +9209,53 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"Dv" = ( +/turf/closed/shuttle/elevator{ + dir = 10 + }, +/area/adminlevel/chinook/cargo) "Dw" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/emails{ dir = 8; pixel_x = -2 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"Dx" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "Dy" = ( /turf/closed/shuttle/ert{ icon_state = "rightengine_2" }, /area/adminlevel/chinook/shuttle/unpowered) +"Dz" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal8"; + pixel_x = -16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal7"; + pixel_x = 16; + pixel_y = -16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -16; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "DC" = ( /obj/structure/machinery/light{ dir = 8 @@ -8234,6 +9309,15 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"DN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/engineering) "DO" = ( /turf/open/floor/almayer{ dir = 5; @@ -8255,6 +9339,14 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"DS" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/offices) "DT" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ @@ -8266,9 +9358,6 @@ /area/adminlevel/chinook/cryo) "DV" = ( /obj/structure/surface/rack, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, -/obj/item/explosive/grenade/high_explosive/training, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -8289,6 +9378,15 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"Ea" = ( +/obj/structure/sign/safety/security{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Ed" = ( /obj/structure/machinery/cm_vending/clothing/dress, /turf/open/floor/almayer{ @@ -8333,12 +9431,31 @@ icon_state = "plate" }, /area/adminlevel/chinook/sec) +"Ek" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -2; + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 1; + pixel_x = -6 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "El" = ( /obj/structure/bed/chair/dropship/passenger, /turf/open/shuttle/dropship{ icon_state = "rasputin15" }, /area/adminlevel/chinook/shuttle/unpowered) +"Em" = ( +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/offices) "En" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -8357,14 +9474,29 @@ /turf/open/floor/kutjevo/tan/alt_inner_edge, /area/adminlevel/chinook) "Ep" = ( -/obj/structure/bed/chair/comfy{ +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_sn_full_cap" + }, +/obj/structure/platform/strata/metal{ + dir = 4 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) +"Eq" = ( +/obj/structure/machinery/vending/hydronutrients, +/obj/structure/machinery/light{ dir = 8 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) +"Es" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, +/turf/open/floor/almayer, /area/adminlevel/chinook) "Et" = ( /turf/open/floor/strata{ @@ -8385,6 +9517,13 @@ dir = 1 }, /area/adminlevel/chinook) +"Ex" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Ey" = ( /turf/open/floor/kutjevo/tan/alt_inner_edge{ dir = 1 @@ -8418,10 +9557,21 @@ /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) "EE" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 5 +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "emerald" }, /area/adminlevel/chinook/shuttle) +"EG" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Men's Bathroom" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "EJ" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/kutjevo/tan/plate, @@ -8458,7 +9608,7 @@ /turf/open/floor/prison{ icon_state = "kitchen" }, -/area/space) +/area/adminlevel/chinook/event) "ET" = ( /obj/structure/machinery/vending/security, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -8475,6 +9625,12 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/event) +"EV" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/adminlevel/chinook) "EZ" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -8482,6 +9638,16 @@ icon_state = "plating" }, /area/adminlevel/chinook) +"Fa" = ( +/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/machinery/door/window/brigdoor/southright, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/adminlevel/chinook/offices) "Fb" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -8498,6 +9664,7 @@ /obj/structure/sign/safety/ammunition{ pixel_x = -16 }, +/obj/structure/flora/pottedplant/random, /turf/open/floor/almayer{ icon_state = "red" }, @@ -8513,6 +9680,18 @@ icon_state = "red" }, /area/adminlevel/chinook) +"Fi" = ( +/obj/structure/surface/rack, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "Fk" = ( /obj/structure/sign/ROsign{ desc = "A metal plaque discussing firearms safety. Its rules say: \n 1. Always keep firearms pointed in a safe direction away from anyone.\n 2. Keep your finger off the trigger until ready to shoot.\n 3. Do not take any firearms outside of the range.\n 4. No smoking, eating or drinking is allowed while on the firing range."; @@ -8536,8 +9715,20 @@ icon_state = "red" }, /area/adminlevel/chinook) +"Fn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/offices) "Fq" = ( /obj/structure/surface/table/reinforced/black, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + pixel_y = 12 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -8551,6 +9742,15 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"Ft" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Fu" = ( /obj/structure/closet/toolcloset, /turf/open/floor/almayer{ @@ -8566,6 +9766,9 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"Fx" = ( +/turf/closed/shuttle/elevator/gears, +/area/adminlevel/chinook/offices) "Fy" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, @@ -8584,24 +9787,22 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) -"FB" = ( -/obj/structure/cargo_container/grant/right, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook/cargo) -"FD" = ( +"FD" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "emerald" }, /area/adminlevel/chinook/shuttle) "FE" = ( -/turf/open/floor/almayer{ - icon_state = "sterile_green" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = -12 }, -/area/adminlevel/chinook/sec) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "FF" = ( /obj/structure/sign/prop3{ pixel_y = 28 @@ -8624,6 +9825,14 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"FK" = ( +/obj/structure/morgue{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "FL" = ( /obj/structure/machinery/body_scanconsole{ dir = 8 @@ -8653,7 +9862,7 @@ /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "FQ" = ( -/obj/structure/machinery/telecomms/hub/preset_cent, +/obj/structure/machinery/telecomms/hub, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -8689,6 +9898,16 @@ dir = 8 }, /area/adminlevel/chinook) +"FW" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "FX" = ( /obj/structure/machinery/light{ dir = 8 @@ -8731,13 +9950,18 @@ icon_state = "redcorner" }, /area/adminlevel/chinook/sec) +"Gc" = ( +/obj/structure/machinery/door/airlock/multi_tile/elevator/freight, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) "Gf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/drinkingglasses, /obj/item/reagent_container/food/snacks/sandwich{ pixel_y = 22 }, -/obj/item/ashtray/glass, /turf/open/floor/prison{ icon_state = "kitchen" }, @@ -8775,6 +9999,10 @@ pixel_x = 24; pixel_y = 25 }, +/obj/structure/sign/safety/security{ + pixel_x = -12; + pixel_y = 25 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "silver" @@ -8802,12 +10030,15 @@ }, /area/adminlevel/chinook) "Gu" = ( -/obj/structure/cargo_container/wy/mid, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3" }, -/area/adminlevel/chinook/cargo) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal5"; + pixel_x = -2 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Gv" = ( /obj/structure/surface/rack, /obj/item/device/binoculars, @@ -8838,14 +10069,15 @@ }, /area/adminlevel/chinook/sec) "Gz" = ( -/obj/structure/machinery/light{ - dir = 8 +/obj/structure/bed/chair/comfy{ + dir = 1 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/turf/open/floor/strata{ + desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; + icon = 'icons/turf/floors/floors.dmi'; + icon_state = "wood" }, -/area/adminlevel/chinook/cargo) +/area/adminlevel/chinook/offices) "GA" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -8872,6 +10104,12 @@ icon_state = "rasputin3" }, /area/adminlevel/chinook/shuttle/unpowered) +"GE" = ( +/obj/structure/largecrate/supply/medicine/blood, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "GF" = ( /obj/structure/sign/safety/conference_room{ pixel_y = 25 @@ -8886,11 +10124,8 @@ /turf/open/floor/kutjevo/tan/alt_edge, /area/adminlevel/chinook) "GH" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - dir = 1; - name = "Firing Range"; - req_access = null; - req_one_access_txt = "2;4;7;9;21" +/obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + name = "Firing Range" }, /turf/open/floor/almayer, /area/adminlevel/chinook) @@ -9014,14 +10249,6 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) -"GY" = ( -/obj/structure/sign/poster{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/adminlevel/chinook) "Ha" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -9033,6 +10260,13 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"Hd" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/flora/pottedplant/random, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "Hf" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 @@ -9050,10 +10284,6 @@ pixel_x = 12; pixel_y = -28 }, -/obj/structure/sign/safety/west{ - pixel_x = -12; - pixel_y = -28 - }, /obj/effect/decal/warning_stripes{ icon_state = "W" }, @@ -9090,7 +10320,7 @@ }, /area/adminlevel/chinook/engineering) "Hn" = ( -/obj/structure/machinery/power/fusion_engine, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -9144,7 +10374,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/obj/item/tool/weldingtool{ +/obj/item/tool/weldingtool/largetank{ pixel_x = 14; pixel_y = -14 }, @@ -9160,6 +10390,26 @@ name = "\improper carpet" }, /area/adminlevel/chinook/event) +"HA" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_ew_full_cap"; + layer = 3.5 + }, +/obj/structure/platform/strata/metal{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"HC" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 8; + name = "Freezer"; + req_access_txt = "30" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/event) "HE" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -9173,11 +10423,11 @@ }, /area/adminlevel/chinook) "HG" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) +/turf/open/floor/kutjevo, +/area/adminlevel/chinook/offices) "HH" = ( /obj/item/stack/sheet/metal/large_stack, /turf/open/floor/almayer, @@ -9193,6 +10443,36 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) +"HK" = ( +/obj/structure/surface/rack, +/obj/item/tool/minihoe{ + pixel_x = -4 + }, +/obj/item/tool/minihoe{ + pixel_x = 4 + }, +/obj/item/tool/minihoe{ + pixel_y = -4 + }, +/obj/item/tool/wirecutters/clippers{ + pixel_y = -4 + }, +/obj/item/tool/wirecutters/clippers{ + pixel_y = -2 + }, +/obj/item/tool/wirecutters/clippers, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) +"HL" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "HM" = ( /obj/structure/surface/table/reinforced/almayer_B, /turf/open/floor/almayer{ @@ -9243,11 +10523,19 @@ /area/adminlevel/chinook/cargo) "HR" = ( /obj/structure/largecrate/random/case/double, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"HT" = ( +/turf/closed/shuttle/elevator{ + dir = 4 + }, +/area/adminlevel/chinook/offices) "HU" = ( /obj/structure/surface/table/almayer, /obj/item/roller{ @@ -9269,6 +10557,12 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"HW" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) "HX" = ( /obj/structure/machinery/light{ dir = 8 @@ -9294,26 +10588,35 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"Ic" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookengilock"; + name = "Engineering Sector Lockdown" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/engineering) +"Id" = ( +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook/cargo) "Ie" = ( /turf/open/floor/prison{ icon_state = "kitchen" }, /area/adminlevel/chinook/event) +"If" = ( +/obj/structure/sign/safety/bathmens{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/adminlevel/chinook/offices) "Ig" = ( /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/engineering) "Ih" = ( -/turf/open/floor/almayer/uscm/directional{ - dir = 10 - }, +/turf/open/floor/almayer/uscm/directional, /area/adminlevel/chinook/shuttle) -"Ii" = ( -/obj/structure/machinery/light, -/obj/structure/machinery/disposal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/adminlevel/chinook/cargo) "Ij" = ( /obj/structure/bed/chair{ dir = 4 @@ -9373,16 +10676,12 @@ /area/adminlevel/chinook) "It" = ( /obj/structure/bed/chair/office/dark, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "Iu" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; - name = "\improper Bathroom" + name = "\improper Men's Bathroom" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -9423,10 +10722,6 @@ icon_state = "red" }, /area/adminlevel/chinook/event) -"IE" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/adminlevel/chinook/event) "IF" = ( /obj/structure/bed/chair, /obj/structure/sign/nosmoking_1{ @@ -9452,6 +10747,13 @@ icon_state = "rightengine_1" }, /area/adminlevel/chinook/shuttle/unpowered) +"IL" = ( +/obj/structure/machinery/disposal, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) "IM" = ( /obj/structure/bed/chair/comfy{ dir = 1; @@ -9466,17 +10768,14 @@ /obj/structure/closet/crate, /obj/item/storage/briefcase/inflatable, /obj/item/storage/briefcase/inflatable, +/obj/item/stack/cable_coil, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "IQ" = ( /obj/structure/bed/chair/office/dark{ dir = 4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "IR" = ( /turf/open/floor/almayer{ @@ -9489,11 +10788,7 @@ /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "IT" = ( /obj/structure/bed/chair/comfy{ @@ -9502,13 +10797,12 @@ /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) "IW" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "emerald" +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "chinookinnerairlock"; + name = "Chinook Interior Airlock" }, +/turf/open/floor/plating/almayer, /area/adminlevel/chinook/shuttle) "IX" = ( /obj/structure/machinery/light{ @@ -9519,6 +10813,25 @@ icon_state = "plating" }, /area/adminlevel/chinook/sec) +"IY" = ( +/obj/structure/surface/rack, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) +"IZ" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/kutjevo/tan/plate, +/area/adminlevel/chinook/event) "Jc" = ( /turf/open/floor/almayer_hull{ dir = 9; @@ -9559,13 +10872,6 @@ icon_state = "blue" }, /area/adminlevel/chinook) -"Jl" = ( -/obj/structure/cargo_container/grant/left, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook/cargo) "Jm" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/kutjevo/tan, @@ -9580,6 +10886,26 @@ icon_state = "red" }, /area/adminlevel/chinook) +"Jo" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookofficelock"; + name = "Command Office Lockdown"; + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) +"Jp" = ( +/obj/structure/sign/safety/bathwomens{ + pixel_x = 32 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) +"Jq" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "Jr" = ( /obj/structure/machinery/door_control{ id = "chinookbriglock"; @@ -9598,13 +10924,11 @@ }, /area/adminlevel/chinook/sec) "Ju" = ( -/obj/structure/machinery/sleep_console{ - dir = 8 - }, +/obj/structure/bed/chair/wheelchair, /turf/open/floor/almayer{ - icon_state = "sterile_green_side" + icon_state = "plate" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook/medical) "Jx" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -9614,28 +10938,37 @@ /area/adminlevel/chinook/sec) "Jy" = ( /obj/structure/surface/table/almayer, +/obj/item/tool/weldingtool/largetank, +/obj/item/tool/weldingtool/largetank, +/obj/item/tool/weldingtool/largetank, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/clothing/head/welding, +/obj/item/clothing/head/welding, +/obj/item/clothing/head/welding, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) "Jz" = ( -/obj/structure/sign/safety/coffee{ - pixel_x = 12; - pixel_y = 25 - }, -/obj/structure/sign/safety/west{ - pixel_y = 25 - }, -/obj/structure/sign/safety/conference_room{ - pixel_x = 24; - pixel_y = 25 +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" + dir = 8; + icon_state = "sterile_green_side" }, -/area/adminlevel/chinook/offices) +/area/adminlevel/chinook/medical) +"JA" = ( +/obj/structure/target{ + name = "punching bag" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "JB" = ( /obj/structure/platform_decoration{ dir = 8 @@ -9645,6 +10978,25 @@ icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"JC" = ( +/obj/structure/machinery/vending/hydroseeds, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) +"JD" = ( +/obj/structure/machinery/cm_vending/gear/synth, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) +"JE" = ( +/obj/structure/sign/safety/autodoc{ + pixel_x = 12; + pixel_y = 25 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "JG" = ( /obj/structure/surface/table/reinforced/black, /obj/item/storage/fancy/cigarettes/emeraldgreen, @@ -9653,6 +11005,13 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"JH" = ( +/obj/structure/machinery/cryopod, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/chinook/medical) "JI" = ( /obj/structure/platform, /obj/structure/stairs/perspective{ @@ -9671,6 +11030,28 @@ "JK" = ( /turf/open/floor/kutjevo/tan, /area/adminlevel/chinook/event) +"JM" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/offices) +"JN" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "\improper Women's Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "JO" = ( /obj/structure/surface/rack, /obj/item/device/lightreplacer, @@ -9685,6 +11066,24 @@ "JR" = ( /turf/open/floor/kutjevo/tan/alt_edge, /area/adminlevel/chinook/event) +"JS" = ( +/obj/structure/closet{ + name = "boxing attire" + }, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/under/shorts/green, +/obj/item/clothing/under/shorts/green, +/obj/item/clothing/under/shorts/black, +/obj/item/clothing/under/shorts/black, +/obj/item/clothing/under/shorts/grey, +/obj/item/clothing/under/shorts/grey, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "JU" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -9711,12 +11110,15 @@ dir = 8 }, /area/adminlevel/chinook/event) -"Kb" = ( -/obj/structure/closet/emcloset, +"JY" = ( +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 5; + icon_state = "plating" }, -/area/adminlevel/chinook) +/area/adminlevel/chinook/cargo) "Kd" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -9724,16 +11126,41 @@ /obj/structure/platform{ dir = 4 }, -/turf/open/floor/almayer, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, /area/adminlevel/chinook/cargo) "Ke" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook/cargo) +"Kf" = ( +/obj/structure/sign/safety/security{ + pixel_x = 32; + pixel_y = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Ki" = ( /obj/structure/barricade/handrail/strata, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"Kj" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Kl" = ( /obj/structure/platform_decoration{ dir = 1 @@ -9797,9 +11224,17 @@ "Ku" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm{ + pixel_x = -4; pixel_y = 6 }, -/obj/item/tool/pen, +/obj/item/tool/pen{ + pixel_x = -5 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 8; + pixel_y = 10 + }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "Kv" = ( @@ -9852,8 +11287,16 @@ /area/adminlevel/chinook/sec) "KD" = ( /obj/item/trash/cigbutt/cigarbutt, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"KE" = ( +/obj/effect/decal/medical_decals{ + icon_state = "cryocell1decal" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "KG" = ( /obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ @@ -9861,14 +11304,28 @@ icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) +"KH" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) +"KI" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + name = "\improper Misc Storage" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "KJ" = ( -/obj/structure/closet/emcloset, +/obj/structure/closet/secure_closet/personal, /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook) "KK" = ( /obj/structure/closet/crate, @@ -9892,10 +11349,10 @@ }, /area/adminlevel/chinook) "KN" = ( -/obj/structure/machinery/medical_pod/bodyscanner, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/medical_pod/bodyscanner, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -9911,10 +11368,10 @@ }, /area/adminlevel/chinook) "KP" = ( -/obj/structure/bed/chair, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/bed/sofa/south/grey/right, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "KT" = ( @@ -9923,12 +11380,46 @@ icon_state = "silver" }, /area/adminlevel/chinook) +"KV" = ( +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "chinookreq"; + name = "Requisitions Lockdown" + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "KW" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "green" }, /area/adminlevel/chinook/cargo) +"KX" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/spade{ + pixel_x = -4 + }, +/obj/item/tool/shovel/spade{ + pixel_x = 4 + }, +/obj/item/tool/shovel/spade, +/obj/item/reagent_container/glass/bucket{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/reagent_container/glass/bucket, +/obj/item/reagent_container/glass/watertank, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) "KY" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -9997,6 +11488,12 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"Lg" = ( +/obj/structure/machinery/cm_vending/sorted/medical/marinemed, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/chinook/medical) "Li" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/shuttle) @@ -10016,12 +11513,15 @@ }, /area/adminlevel/chinook/sec) "Ll" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler, -/obj/item/spacecash/c200, /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/door_control{ + id = "chinookreq"; + name = "Requisitions Lockdown"; + req_one_access_txt = "1;21" + }, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "Lm" = ( @@ -10042,6 +11542,19 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"Lp" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/drinks/golden_cup{ + name = "No. 1 Baller Award"; + desc = "A trophy given to the winner of the annual Baller competition. Such a competition has, in fact, nothing to do with basketball and is so elusive, nobody knows what it actually is or what winning it symbolizes. But at least it has a nice trophy." + }, +/turf/open/floor/almayer{ + icon_state = "ai_floors" + }, +/area/adminlevel/chinook/offices) "Ls" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ @@ -10069,6 +11582,17 @@ }, /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook) +"Lx" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/prop/tableflag/uscm{ + pixel_x = -9; + pixel_y = 6 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "Ly" = ( /obj/structure/machinery/light{ dir = 1 @@ -10104,6 +11628,16 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"LC" = ( +/obj/structure/sign/safety/cryo{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "LD" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/kutjevo/plate, @@ -10168,6 +11702,9 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -10205,6 +11742,12 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"LS" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Basketball Court" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "LT" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 @@ -10215,8 +11758,8 @@ }, /area/adminlevel/chinook/event) "LU" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/sign/safety/bathwomens{ + pixel_x = 32 }, /turf/open/floor/almayer{ dir = 4; @@ -10226,6 +11769,20 @@ "LV" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/event) +"LW" = ( +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/adminlevel/chinook) +"LX" = ( +/obj/structure/target{ + name = "punching bag" + }, +/obj/structure/sign/goldenplaque{ + pixel_y = 27 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "Mb" = ( /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) @@ -10292,6 +11849,18 @@ icon_state = "orange" }, /area/adminlevel/chinook/engineering) +"Mn" = ( +/obj/structure/sign/safety/fire_haz{ + pixel_y = 25 + }, +/obj/structure/sign/safety/biohazard{ + pixel_y = 25; + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Mp" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "chinook4"; @@ -10306,18 +11875,6 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) -"Mr" = ( -/obj/structure/machinery/door_control{ - id = "chinookcargo"; - name = "Shuttlebay Cargo Access"; - pixel_y = 25; - req_one_access_txt = "1;21" - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "cargo_arrow" - }, -/area/adminlevel/chinook/shuttle) "Ms" = ( /turf/closed/shuttle/ert{ icon_state = "stan5" @@ -10335,9 +11892,9 @@ }, /area/adminlevel/chinook/sec) "Mv" = ( -/obj/structure/surface/table/almayer, /obj/effect/spawner/random/tool, /obj/item/clothing/gloves/marine/insulated, +/obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "Mw" = ( @@ -10394,13 +11951,36 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) -"MG" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "cargo" +"MD" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/area/adminlevel/chinook/sec) +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/engineering) +"ME" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/book/manual/marine_law{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/folder/black, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) +"MF" = ( +/turf/closed/shuttle/elevator{ + dir = 5 + }, +/area/adminlevel/chinook/offices) +"MG" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook/sec) "MH" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ @@ -10431,9 +12011,8 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "MN" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Engineering Reception" +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "\improper Engineering" }, /obj/structure/machinery/door/poddoor/almayer/open{ id = "chinookengilock"; @@ -10441,6 +12020,12 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"MO" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "MQ" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ @@ -10486,6 +12071,13 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"Nb" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Nc" = ( /obj/structure/largecrate/supply/medicine/blood, /turf/open/floor/almayer{ @@ -10556,9 +12148,7 @@ }, /area/adminlevel/chinook/engineering) "Np" = ( -/obj/structure/cargo_container/arious/right{ - indestructible = 1 - }, +/obj/structure/cargo_container/seegson/right, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -10584,16 +12174,13 @@ /obj/structure/bed/chair/comfy{ dir = 1 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "Nt" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/plasteel/large_stack, /obj/item/stack/sheet/metal/medium_stack, +/obj/item/stack/sheet/metal/large_stack, /turf/open/floor/almayer{ icon_state = "cargo" }, @@ -10628,9 +12215,7 @@ }, /area/adminlevel/chinook/sec) "Ny" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, +/obj/structure/flora/pottedplant/random, /turf/open/floor/almayer{ dir = 1; icon_state = "blue" @@ -10657,11 +12242,13 @@ }, /area/adminlevel/chinook/medical) "ND" = ( -/obj/structure/closet/secure_closet/freezer/fridge/groceries, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/machinery/sleep_console{ + dir = 8 }, -/area/space) +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/chinook/offices) "NE" = ( /obj/structure/machinery/door/airlock/almayer/security{ dir = 1; @@ -10727,17 +12314,50 @@ icon_state = "sterile_green" }, /area/adminlevel/chinook/medical) -"NW" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/cameras/almayer_network{ +"NU" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/event) +"NV" = ( +/obj/structure/sink{ dir = 4; - network = list("almayer","vehicle") + pixel_x = 11 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "plate" }, -/area/adminlevel/chinook/sec) +/area/adminlevel/chinook/offices) +"NW" = ( +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/item/tool/lighter/zippo/gold{ + pixel_x = 10; + pixel_y = 11 + }, +/obj/item/device/flashlight/lamp/green{ + pixel_y = 7; + pixel_x = -5 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) +"NX" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) +"NZ" = ( +/turf/closed/shuttle/elevator{ + dir = 9 + }, +/area/adminlevel/chinook/offices) "Ob" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Event Corridor" @@ -10753,27 +12373,12 @@ }, /area/adminlevel/chinook/sec) "Od" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, -/obj/item/tool/weldingtool, -/obj/item/tool/weldingtool, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/clothing/head/welding, -/obj/item/clothing/head/welding, -/obj/item/clothing/head/welding, +/obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) -"Oe" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook) "Of" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -10824,6 +12429,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) +"Or" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Os" = ( /obj/structure/surface/table/almayer, /obj/item/tool/crowbar{ @@ -10844,13 +12455,6 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) -"Ou" = ( -/obj/structure/bed/sofa/south/grey/right, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook) "Ow" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -10886,11 +12490,18 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "OB" = ( -/obj/structure/machinery/cryopod, /turf/open/floor/almayer{ - icon_state = "sterile_green_corner" + icon_state = "plate" }, /area/adminlevel/chinook/medical) +"OC" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_y = -25 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) "OD" = ( /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."; @@ -10939,6 +12550,12 @@ icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"OK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "OL" = ( /obj/structure/reagent_dispensers/watertank, /obj/item/reagent_container/glass/bucket, @@ -10961,6 +12578,7 @@ /obj/item/trash/burger{ pixel_x = -20 }, +/obj/structure/machinery/seed_extractor, /turf/open/floor/almayer{ dir = 1; icon_state = "green" @@ -10977,18 +12595,28 @@ /area/adminlevel/chinook) "OR" = ( /obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "OS" = ( -/obj/structure/machinery/computer/shuttle/ert/broken, +/obj/structure/prop/pred_flight{ + icon_state = "syndishuttle"; + name = "shuttle control console" + }, /turf/open/shuttle/dropship{ icon_state = "rasputin15" }, /area/adminlevel/chinook/shuttle/unpowered) +"OT" = ( +/obj/structure/machinery/cm_vending/clothing/synth/snowflake, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/adminlevel/chinook) "OU" = ( -/obj/structure/sign/safety/reception{ +/obj/structure/sign/safety/debark_lounge{ pixel_x = 32 }, /turf/open/floor/almayer{ @@ -11034,7 +12662,7 @@ "OZ" = ( /obj/structure/platform, /obj/structure/barricade/handrail/strata{ - layer = 3.5 + layer = 4.5 }, /turf/open/floor/almayer{ dir = 5; @@ -11043,6 +12671,13 @@ /area/adminlevel/chinook/engineering) "Pa" = ( /obj/structure/surface/table/almayer, +/obj/item/storage/fancy/cigarettes/emeraldgreen{ + pixel_y = 10 + }, +/obj/item/tool/lighter/zippo{ + pixel_x = 4; + pixel_y = 7 + }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/sec) "Pb" = ( @@ -11065,11 +12700,25 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"Pe" = ( +/obj/structure/platform_decoration/strata/metal{ + dir = 4 + }, +/turf/open/gm/river{ + name = "pool" + }, +/area/adminlevel/chinook) "Pf" = ( /turf/open/floor/kutjevo/colors/blue/edge{ dir = 4 }, /area/adminlevel/chinook) +"Pg" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "Ph" = ( /obj/structure/filingcabinet/seeds, /turf/open/floor/almayer{ @@ -11078,12 +12727,9 @@ }, /area/adminlevel/chinook) "Pi" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22" - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, +/obj/structure/machinery/light, +/obj/structure/flora/pottedplant/random, +/turf/open/floor/almayer, /area/adminlevel/chinook/offices) "Pj" = ( /obj/effect/decal/warning_stripes{ @@ -11101,7 +12747,7 @@ "Pl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; - name = "\improper Bathroom" + name = "\improper Women's Bathroom" }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) @@ -11116,6 +12762,18 @@ icon_state = "plate" }, /area/adminlevel/chinook/engineering) +"Po" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Pp" = ( /obj/item/reagent_container/glass/bucket/janibucket, /turf/open/floor/almayer{ @@ -11139,6 +12797,16 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"Ps" = ( +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 16 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_y = 16 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Pt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/recharger, @@ -11162,11 +12830,23 @@ }, /area/adminlevel/chinook/sec) "Pw" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_x = -30 +/obj/structure/machinery/door/airlock/multi_tile/elevator/access{ + desc = "An elevator hatch to take you to different levels of the station. This elevator seems to be disabled."; + name = "\improper Elevator Hatch" + }, +/turf/open/floor/corsat{ + icon_state = "squares" }, -/turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"Px" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/cargo) "Pz" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -11191,6 +12871,11 @@ name = "\improper Cargo Bay"; req_one_access_txt = "1;26" }, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + id = "chinookreq"; + name = "Requisitions Lockdown" + }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) "PC" = ( @@ -11257,15 +12942,6 @@ icon_state = "green" }, /area/adminlevel/chinook) -"PO" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/adminlevel/chinook/engineering) "PP" = ( /turf/open/floor/almayer{ icon_state = "green" @@ -11275,6 +12951,9 @@ /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/toolbox/mechanical, /obj/item/circuitboard/apc, +/obj/item/stack/cable_coil{ + pixel_x = -8 + }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) "PT" = ( @@ -11287,13 +12966,6 @@ icon_state = "green" }, /area/adminlevel/chinook) -"PU" = ( -/obj/structure/surface/table/almayer, -/obj/item/pizzabox/meat{ - pixel_y = 8 - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "PV" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -11304,6 +12976,12 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"PX" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "PY" = ( /obj/structure/surface/table/almayer, /obj/structure/bedsheetbin{ @@ -11375,6 +13053,12 @@ icon_state = "plating" }, /area/adminlevel/chinook/offices) +"Qg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "Qh" = ( /obj/structure/largecrate/random, /turf/open/floor/almayer{ @@ -11437,14 +13121,21 @@ }, /area/adminlevel/chinook/engineering) "Qs" = ( -/obj/item/tool/pen, +/obj/item/tool/pen/fountain{ + pixel_x = 3; + pixel_y = -1 + }, /obj/item/paper_bin/uscm, /obj/structure/sign/prop1{ pixel_x = -32; pixel_y = 2 }, /obj/structure/surface/table/reinforced/black, -/turf/open/floor/almayer, +/obj/item/tool/pen/fountain{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "Qt" = ( /obj/structure/sign/prop1{ @@ -11489,17 +13180,45 @@ name = "\improper carpet" }, /area/adminlevel/chinook/sec) +"QA" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "QB" = ( -/obj/structure/cargo_container/wy/right, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/surface/table/reinforced/black, +/obj/structure/machinery/light{ + dir = 8 }, -/area/adminlevel/chinook/cargo) -"QD" = ( -/obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ - pixel_y = 6 + pixel_y = 8; + pixel_x = 12 + }, +/obj/item/prop/tableflag/uscm{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_y = 1; + pixel_x = 1 + }, +/obj/item/tool/pen/fountain{ + pixel_x = 10; + pixel_y = 6 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) +"QD" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/paper_bin/uscm{ + pixel_y = 6 }, /turf/open/floor/almayer{ dir = 8; @@ -11544,6 +13263,14 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"QJ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/cargo) "QL" = ( /obj/structure/bed/chair/comfy/black{ dir = 1 @@ -11587,6 +13314,20 @@ icon_state = "plate" }, /area/adminlevel/chinook) +"QS" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ + dir = 2; + name = "\improper Medical Bay"; + req_access = null; + req_one_access = null + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "chinookofficelock"; + name = "Command Office Lockdown"; + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook/offices) "QT" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/plating/plating_catwalk, @@ -11600,6 +13341,25 @@ icon_state = "green" }, /area/adminlevel/chinook) +"QV" = ( +/obj/structure/bed/chair/comfy{ + dir = 1 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) +"QW" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) +"Rc" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/event) "Rd" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/machinery/computer/emails{ @@ -11612,19 +13372,18 @@ name = "\improper carpet" }, /area/adminlevel/chinook/offices) -"Rf" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "Ri" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "orange" +/obj/structure/desertdam/decals/road_edge{ + pixel_x = 2; + pixel_y = -22 }, -/area/adminlevel/chinook/engineering) +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal6"; + pixel_x = 2; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "Rj" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bathroom" @@ -11659,6 +13418,15 @@ dir = 8 }, /area/adminlevel/chinook) +"Ro" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "Rp" = ( /obj/structure/platform{ dir = 4 @@ -11677,8 +13445,16 @@ icon_state = "plating" }, /area/adminlevel/chinook/sec) +"Rs" = ( +/obj/structure/sign/safety/bathwomens{ + pixel_y = 25 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Rt" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/platform{ dir = 8 }, @@ -11690,22 +13466,17 @@ pixel_x = -15; pixel_y = -7 }, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/engineering) "Rw" = ( -/obj/structure/machinery/door/airlock/almayer/medical/glass{ - dir = 1; - id = "medcryobeds"; - id_tag = "medcryobeds"; - name = "Medical Hypersleep Access"; - req_access = null; - req_one_access = null - }, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + dir = 4; + icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) "Rx" = ( @@ -11714,12 +13485,24 @@ icon_state = "cargo" }, /area/adminlevel/chinook/sec) +"Ry" = ( +/obj/structure/barricade/handrail/strata{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "blue" + }, +/area/adminlevel/chinook) "RA" = ( -/turf/closed/wall/almayer/outer{ - desc = "A heavily reinforced metal wall. Nothing gets through here."; - name = "ultra-reinforced hull" +/obj/structure/noticeboard{ + pixel_y = 27 }, -/area/adminlevel/chinook/engineering) +/obj/item/weapon/gun/rifle/sniper/XM43E1{ + pixel_y = 27 + }, +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "RB" = ( /obj/structure/sign/safety/storage{ pixel_x = 13; @@ -11731,14 +13514,27 @@ }, /area/adminlevel/chinook/sec) "RD" = ( -/obj/structure/machinery/power/fusion_engine, /obj/structure/machinery/light, /obj/structure/platform, +/obj/structure/prop/invuln/fusion_reactor, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/engineering) +"RE" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/engineering) +"RF" = ( +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/adminlevel/chinook/cargo) "RH" = ( /obj/structure/toilet{ dir = 8 @@ -11775,11 +13571,7 @@ pixel_x = 1; pixel_y = -4 }, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) "RM" = ( /turf/open/floor/almayer{ @@ -11794,6 +13586,17 @@ /obj/structure/machinery/photocopier, /turf/open/floor/kutjevo/tan/plate, /area/adminlevel/chinook/event) +"RP" = ( +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook/medical) +"RQ" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/obj/item/reagent_container/glass/bucket/mopbucket, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "RR" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -11859,27 +13662,15 @@ }, /area/adminlevel/chinook/cargo) "Se" = ( -/obj/structure/closet/secure_closet/guncabinet/blue{ - name = "sidearm storage" - }, -/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/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/structure/machinery/light{ dir = 4 }, +/obj/structure/closet/secure_closet/guncabinet/red{ + name = "provost armor rack" + }, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 5; + icon_state = "plating" }, /area/adminlevel/chinook/sec) "Sg" = ( @@ -11889,6 +13680,17 @@ icon_state = "tcomms" }, /area/adminlevel/chinook/engineering) +"Sh" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/toy/deck/uno{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook) "Si" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -11928,10 +13730,7 @@ /turf/open/floor/almayer, /area/adminlevel/chinook/sec) "So" = ( -/obj/structure/machinery/telecomms/bus/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455) - }, +/obj/structure/machinery/telecomms/bus, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -12022,18 +13821,18 @@ "SF" = ( /obj/structure/surface/rack, /obj/item/reagent_container/spray/cleaner, +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "green" }, /area/adminlevel/chinook) "SH" = ( -/obj/item/tool/pen, -/obj/item/paper_bin/uscm, -/obj/structure/surface/table/reinforced/black, -/turf/open/floor/carpet{ - desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; - name = "\improper carpet" +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/almayer{ + icon_state = "plate" }, /area/adminlevel/chinook/offices) "SI" = ( @@ -12058,11 +13857,28 @@ "SL" = ( /turf/open/floor/kutjevo, /area/adminlevel/chinook/event) +"SM" = ( +/obj/structure/sign/ROsign, +/turf/closed/wall/almayer/reinforced, +/area/adminlevel/chinook) +"SN" = ( +/obj/structure/sign/safety/debark_lounge{ + pixel_x = 32 + }, +/obj/structure/sign/safety/south{ + pixel_x = 32; + pixel_y = -12 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "SP" = ( /turf/closed/wall/almayer/outer, /area/adminlevel/chinook) "SQ" = ( -/obj/structure/machinery/telecomms/server/presets/centcomm, +/obj/structure/machinery/telecomms/server, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -12071,6 +13887,18 @@ /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook/event) +"SS" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -4 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/chinook/event) "ST" = ( /obj/structure/largecrate/supply/supplies/water, /obj/item/reagent_container/spray/cleaner{ @@ -12098,9 +13926,7 @@ }, /area/adminlevel/chinook) "SV" = ( -/obj/structure/platform{ - dir = 1 - }, +/obj/structure/platform/stair_cut/alt, /obj/structure/stairs/perspective{ icon_state = "p_stair_ew_full_cap"; layer = 3.5 @@ -12116,6 +13942,15 @@ icon_state = "test_floor5" }, /area/adminlevel/chinook/engineering) +"SY" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) "Ta" = ( /obj/structure/surface/table/almayer, /obj/item/folder/white, @@ -12143,6 +13978,13 @@ icon_state = "sterile_green_side" }, /area/adminlevel/chinook/medical) +"Tg" = ( +/obj/structure/machinery/door/airlock/multi_tile/elevator/freight, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/chinook/cargo) "Th" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -12157,6 +13999,12 @@ icon_state = "rasputin15" }, /area/adminlevel/chinook/shuttle/unpowered) +"Tj" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "bluecorner" + }, +/area/adminlevel/chinook) "Tl" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -12173,10 +14021,10 @@ }, /area/adminlevel/chinook/medical) "Tp" = ( -/obj/structure/machinery/medical_pod/autodoc, /obj/structure/sign/safety/autodoc{ pixel_x = -16 }, +/obj/structure/machinery/medical_pod/autodoc, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_side" @@ -12188,6 +14036,12 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/engineering) +"Tr" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/adminlevel/chinook) "Ts" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -12219,7 +14073,7 @@ }, /area/adminlevel/chinook/sec) "TA" = ( -/obj/structure/cargo_container/arious/leftmid, +/obj/structure/cargo_container/seegson/left, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -12251,9 +14105,9 @@ /area/adminlevel/chinook/engineering) "TG" = ( /obj/structure/machinery/door/airlock/almayer/command{ - name = "\improper General, 3rd Fleet 2nd Battlegroup" + name = "Office of Col. Samantha Maverick" }, -/turf/open/floor/almayer, +/turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/offices) "TH" = ( /obj/structure/machinery/light{ @@ -12263,6 +14117,20 @@ icon_state = "plating_striped" }, /area/adminlevel/chinook/sec) +"TJ" = ( +/turf/open/floor/corsat{ + icon_state = "squares" + }, +/area/adminlevel/chinook/offices) +"TK" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/sec) "TL" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ @@ -12274,8 +14142,11 @@ }, /area/adminlevel/chinook/engineering) "TM" = ( -/obj/structure/closet/emcloset, +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, /turf/open/floor/almayer{ + dir = 6; icon_state = "emerald" }, /area/adminlevel/chinook/shuttle) @@ -12291,14 +14162,38 @@ /turf/open/floor/almayer, /area/adminlevel/chinook) "TP" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/prison{ - icon_state = "kitchen" +/obj/structure/machinery/light{ + dir = 4 }, -/area/space) +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "sterile_green_corner" + }, +/area/adminlevel/chinook/offices) "TQ" = ( /turf/open/floor/kutjevo/plate, /area/adminlevel/chinook/event) +"TT" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "\improper Provost Offices" + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/adminlevel/chinook/sec) +"TU" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/snacks/monkeysdelight{ + pixel_y = 9; + desc = "Morbidly pickled and preserved as a conversation piece. Somehow, doesn't smell like anything." + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "TV" = ( /obj/structure/sign/safety/conference_room{ pixel_y = -24 @@ -12374,6 +14269,7 @@ /area/adminlevel/chinook/medical) "Uf" = ( /obj/structure/surface/table/almayer, +/obj/item/storage/surgical_tray, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -12395,9 +14291,6 @@ /area/adminlevel/chinook/sec) "Uj" = ( /obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, /obj/structure/machinery/door_control{ id = "chinookcargo"; name = "Shuttlebay Cargo Access"; @@ -12406,7 +14299,18 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) -"Ul" = ( +"Uk" = ( +/obj/structure/machinery/light, +/obj/structure/surface/table/almayer, +/obj/item/trash/USCMtray{ + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) +"Ul" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ pixel_y = 6 @@ -12432,12 +14336,6 @@ icon_state = "cargo" }, /area/adminlevel/chinook/sec) -"Us" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/adminlevel/chinook) "Ut" = ( /obj/structure/surface/rack, /obj/item/tool/shovel/spade{ @@ -12484,9 +14382,19 @@ icon_state = "plate" }, /area/adminlevel/chinook/cryo) +"Uy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silvercorner" + }, +/area/adminlevel/chinook) "Uz" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/hazardvest, +/obj/item/device/lightreplacer, /turf/open/floor/almayer{ icon_state = "cargo" }, @@ -12571,7 +14479,10 @@ }, /area/adminlevel/chinook/sec) "UQ" = ( -/obj/structure/machinery/optable, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -12609,18 +14520,22 @@ }, /area/adminlevel/chinook/shuttle/unpowered) "UW" = ( -/obj/structure/closet/secure_closet{ - name = "secure evidence locker"; - req_access_txt = "3" +/obj/structure/surface/table/reinforced/black, +/obj/item/reagent_container/food/drinks/coffeecup/uscm{ + pixel_y = 9; + pixel_x = -11 }, -/obj/item/ammo_magazine/rifle/l42a/abr40, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/item/device/flashlight/lamp{ + pixel_y = 12; + pixel_x = 3 }, -/area/adminlevel/chinook/sec) +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "UX" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/book/manual/surgery, +/obj/structure/machinery/disposal, /turf/open/floor/almayer{ dir = 8; icon_state = "sterile_green_corner" @@ -12669,6 +14584,16 @@ icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) +"Vd" = ( +/obj/structure/closet/crate{ + name = "prosthetics printer materials crate" + }, +/obj/item/stack/sheet/metal/large_stack, +/obj/item/stack/sheet/metal/large_stack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Ve" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ @@ -12712,6 +14637,11 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/offices) +"Vo" = ( +/turf/closed/shuttle/elevator{ + dir = 9 + }, +/area/adminlevel/chinook/cargo) "Vq" = ( /turf/open/floor/almayer, /area/adminlevel/chinook/cargo) @@ -12732,6 +14662,9 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook/sec) +"Vt" = ( +/turf/open/floor/kutjevo/plate, +/area/adminlevel/chinook/offices) "Vu" = ( /obj/structure/machinery/disposal, /turf/open/floor/almayer{ @@ -12754,6 +14687,12 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"Vx" = ( +/obj/structure/largecrate/supply/generator, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "Vz" = ( /turf/open/floor/almayer{ dir = 8; @@ -12787,12 +14726,14 @@ /area/adminlevel/chinook) "VH" = ( /obj/structure/target, -/turf/open/floor/strata{ - desc = "Faux wooden floor boards, certified fire resistant. Begrudgingly put in place of actual wood due to concerns about 'fire safety'. Whatever that means."; - icon = 'icons/turf/floors/floors.dmi'; - icon_state = "wood" - }, +/turf/open/floor/wood, /area/adminlevel/chinook/offices) +"VI" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/adminlevel/chinook/sec) "VJ" = ( /obj/structure/machinery/light{ dir = 4 @@ -12803,14 +14744,10 @@ }, /area/adminlevel/chinook/sec) "VK" = ( -/obj/structure/machinery/telecomms/receiver/preset_cent{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9 - }, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/telecomms/receiver, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -12825,6 +14762,27 @@ icon_state = "plating" }, /area/adminlevel/chinook/cargo) +"VO" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/prop/tableflag/uscm{ + pixel_y = 4 + }, +/obj/item/prop/tableflag/uscm2{ + pixel_y = 4; + pixel_x = 9 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) +"VP" = ( +/obj/structure/machinery/cm_vending/sorted/medical, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/medical) "VQ" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -12854,6 +14812,19 @@ }, /turf/open/floor/almayer, /area/adminlevel/chinook) +"VT" = ( +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = -9; + pixel_y = 4 + }, +/obj/structure/desertdam/decals/road_edge{ + icon_state = "road_edge_decal3"; + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/adminlevel/chinook) "VU" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -12889,15 +14860,30 @@ icon_state = "sterile_green" }, /area/adminlevel/chinook/medical) -"Wd" = ( +"Wc" = ( /obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E" + dir = 1 }, +/obj/structure/surface/table/reinforced/black, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, +/obj/item/device/binoculars, /turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) +/area/adminlevel/chinook) +"Wd" = ( +/obj/structure/sign/poster{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/chinook) "Wf" = ( /turf/open/space, /area/space) @@ -12971,25 +14957,42 @@ /obj/structure/window/reinforced/ultra, /obj/structure/machinery/door/window/ultra{ dir = 8; - name = "M4RA execution rifles"; + name = "L42A execution rifles"; req_access_txt = "2;3;12;19" }, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, -/obj/item/weapon/gun/rifle/m4ra, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, /area/adminlevel/chinook/sec) +"Wt" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/adminlevel/chinook/engineering) +"Wu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/emails{ + dir = 4; + pixel_x = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/chinook) "Ww" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_x = -32 +/obj/structure/machinery/disposal, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/almayer, /area/adminlevel/chinook) "Wx" = ( -/obj/structure/bed/sofa/south/grey/left, +/obj/structure/machinery/computer/arcade, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -13085,6 +15088,18 @@ /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/adminlevel/chinook/engineering) +"WM" = ( +/obj/structure/closet, +/obj/item/reagent_container/spray/cleaner, +/obj/item/reagent_container/spray/cleaner, +/obj/item/reagent_container/spray/cleaner, +/obj/item/tool/soap, +/obj/item/tool/soap, +/obj/item/tool/soap, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook/offices) "WN" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ @@ -13197,11 +15212,12 @@ }, /area/adminlevel/chinook/engineering) "Xe" = ( -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/closet/secure_closet/personal, +/obj/structure/sign/poster{ + pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/adminlevel/chinook/engineering) +/area/adminlevel/chinook) "Xf" = ( /obj/structure/machinery/door/poddoor/almayer{ id = "chinook_tcomms"; @@ -13342,11 +15358,6 @@ icon_state = "plating" }, /area/adminlevel/chinook/sec) -"XB" = ( -/obj/structure/surface/table/almayer, -/obj/item/ashtray/glass, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "XC" = ( /obj/structure/bed/chair/office/dark{ dir = 4 @@ -13371,15 +15382,11 @@ }, /area/adminlevel/chinook/offices) "XJ" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Reactor Bay" - }, +/obj/structure/largecrate/supply/medicine/optable, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "plate" }, -/area/adminlevel/chinook/engineering) +/area/adminlevel/chinook/medical) "XK" = ( /obj/vehicle/powerloader, /obj/structure/platform{ @@ -13403,14 +15410,6 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) -"XM" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/backpack/marine{ - pixel_y = 8 - }, -/obj/item/storage/firstaid/regular, -/turf/open/floor/almayer, -/area/adminlevel/chinook/cargo) "XN" = ( /obj/structure/surface/table/reinforced/black, /obj/item/paper{ @@ -13434,11 +15433,10 @@ pixel_x = 27; serial_number = 11 }, -/obj/structure/machinery/door/airlock/almayer/engineering{ - dir = 1; - name = "\improper Reactor Bay" +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" }, -/turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/engineering) "XP" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -13488,6 +15486,13 @@ icon_state = "red" }, /area/adminlevel/chinook/sec) +"XW" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/adminlevel/chinook) "XZ" = ( /obj/structure/machinery/chem_dispenser, /turf/open/floor/almayer{ @@ -13496,12 +15501,13 @@ }, /area/adminlevel/chinook/medical) "Ya" = ( -/obj/structure/machinery/light{ - dir = 4 - }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out" }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, /turf/open/floor/almayer{ dir = 4; icon_state = "red" @@ -13560,9 +15566,6 @@ /area/adminlevel/chinook/engineering) "Yh" = ( /obj/structure/surface/table/reinforced/black, -/obj/item/device/flashlight/lamp/green{ - pixel_y = 7 - }, /obj/item/reagent_container/food/snacks/monkeyburger{ pixel_x = -5; pixel_y = 5 @@ -13575,9 +15578,6 @@ "Yi" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/effect/spawner/random/tool, -/obj/item/fuelCell{ - pixel_y = 10 - }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -13601,6 +15601,9 @@ icon_state = "sterile_green_corner" }, /area/adminlevel/chinook/medical) +"Yn" = ( +/turf/closed/shuttle/elevator/gears, +/area/adminlevel/chinook/cargo) "Yo" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/storage/fancy/egg_box{ @@ -13610,12 +15613,20 @@ icon_state = "kitchen" }, /area/adminlevel/chinook/event) -"Yq" = ( +"Yp" = ( /turf/open/floor/almayer{ dir = 8; - icon_state = "cargo_arrow" + icon_state = "red" }, -/area/adminlevel/chinook/shuttle) +/area/adminlevel/chinook/sec) +"Yq" = ( +/obj/structure/machinery/door/airlock/almayer/command{ + name = "\improper Male Locker Room" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/chinook) "Yr" = ( /turf/open/floor/almayer_hull{ dir = 5; @@ -13638,20 +15649,13 @@ /obj/item/clothing/head/welding{ pixel_y = 7 }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/adminlevel/chinook/engineering) -"Yw" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/reagent_dispensers/water_cooler/stacks, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, -/area/adminlevel/chinook/medical) "Yx" = ( /obj/structure/machinery/smartfridge/chemistry, /turf/open/floor/almayer{ @@ -13806,12 +15810,7 @@ }, /area/adminlevel/chinook/medical) "YU" = ( -/obj/structure/machinery/telecomms/allinone{ - autolinkers = list("chinook"); - freq_listening = list(1353,1357,1359,1355,1469,1471,1354,1342,1344,1235,1340,1214,1358,1356,1236,1240,1449,1451,1453,1455); - listening_level = 9; - name = "Chinook Telecommunications Mainframe" - }, +/obj/structure/machinery/telecomms/allinone, /turf/open/floor/almayer{ icon_state = "tcomms" }, @@ -13869,7 +15868,7 @@ /obj/structure/machinery/door/airlock/almayer/medical/glass{ id = "medcryobeds"; id_tag = "medcryobeds"; - name = "Medical Hypersleep Access"; + name = "Medical Equipment Room"; req_access = null; req_one_access = null }, @@ -13877,6 +15876,25 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/medical) +"Zd" = ( +/obj/structure/surface/table/reinforced/black, +/obj/item/device/flashlight/lamp{ + pixel_y = 5; + pixel_x = -8 + }, +/obj/item/paper_bin/uscm{ + pixel_y = 8; + pixel_x = 5 + }, +/obj/item/tool/pen/fountain{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/chinook/offices) "Zf" = ( /obj/structure/sign/poster{ pixel_y = -32 @@ -13887,7 +15905,10 @@ /area/adminlevel/chinook/cryo) "Zg" = ( /obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/beaker/cryoxadone, +/obj/item/reagent_container/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 10 + }, /obj/item/reagent_container/glass/beaker/cryoxadone, /obj/structure/sign/nosmoking_1{ pixel_y = 30 @@ -13900,7 +15921,11 @@ "Zh" = ( /obj/structure/surface/table/reinforced/black, /obj/item/folder/black, -/turf/open/floor/almayer, +/obj/item/prop/tableflag{ + pixel_x = -9; + pixel_y = 10 + }, +/turf/open/floor/kutjevo, /area/adminlevel/chinook/offices) "Zi" = ( /turf/open/floor/plating/plating_catwalk, @@ -14050,9 +16075,16 @@ icon_state = "dark_sterile" }, /area/adminlevel/chinook/medical) +"ZF" = ( +/obj/structure/sign/prop1{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/commander, +/turf/open/floor/wood, +/area/adminlevel/chinook/offices) "ZH" = ( /obj/structure/machinery/power/port_gen/pacman, -/obj/item/tool/weldingtool, +/obj/item/tool/weldingtool/largetank, /obj/structure/sign/safety/high_voltage{ pixel_y = 25 }, @@ -14078,6 +16110,9 @@ /area/adminlevel/chinook/sec) "ZK" = ( /obj/structure/machinery/cryo_cell, +/obj/effect/decal/medical_decals{ + icon_state = "cryotop" + }, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -14113,7 +16148,18 @@ icon_state = "plating" }, /area/adminlevel/chinook/engineering) -"ZP" = ( +"ZO" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/reagentgrinder{ + pixel_y = 3 + }, +/obj/item/device/analyzer/plant_analyzer, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/adminlevel/chinook/event) +"ZP" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/almayer{ icon_state = "plate" @@ -14146,8 +16192,7 @@ /area/adminlevel/chinook/engineering) "ZV" = ( /turf/open/floor/almayer/uscm/directional{ - dir = 8; - icon_state = "logo_c" + dir = 4 }, /area/adminlevel/chinook/shuttle) "ZW" = ( @@ -14159,6 +16204,9 @@ pixel_x = 6; pixel_y = 4 }, +/obj/item/stack/cable_coil{ + pixel_x = -8 + }, /turf/open/floor/plating/plating_catwalk, /area/adminlevel/chinook/engineering) "ZX" = ( @@ -14377,34 +16425,9 @@ oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai -oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi oi oi @@ -14427,8 +16450,6 @@ oi oi oi oi -"} -(3,1,1) = {" oi oi oi @@ -14454,6 +16475,8 @@ oi oi oi oi +"} +(3,1,1) = {" oi oi oi @@ -14504,34 +16527,10 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi oi oi @@ -14554,8 +16553,6 @@ oi oi oi oi -"} -(4,1,1) = {" oi oi oi @@ -14605,6 +16602,8 @@ oi oi oi oi +"} +(4,1,1) = {" oi oi oi @@ -14631,34 +16630,6 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi oi oi @@ -14681,8 +16652,6 @@ oi oi oi oi -"} -(5,1,1) = {" oi oi oi @@ -14758,34 +16727,10 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi -Zu -af oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af +"} +(5,1,1) = {" oi oi oi @@ -14808,8 +16753,6 @@ oi oi oi oi -"} -(6,1,1) = {" oi oi oi @@ -14885,34 +16828,8 @@ oi oi oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi -Zu -af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi oi oi @@ -14935,12 +16852,12 @@ oi oi oi oi -"} -(7,1,1) = {" oi oi oi oi +"} +(6,1,1) = {" oi oi oi @@ -15024,10 +16941,23 @@ oi oi oi oi +Jc +Yt +Yt +Yt +ai oi -Zu -af +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi oi oi @@ -15053,6 +16983,8 @@ oi oi oi oi +"} +(7,1,1) = {" oi oi oi @@ -15062,8 +16994,6 @@ oi oi oi oi -"} -(8,1,1) = {" oi oi oi @@ -15138,35 +17068,26 @@ oi oi oi oi +Zu +Pk +Pk +Pk +af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af oi Zu +Pk +Pk +Pk af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +oi +oi oi oi oi @@ -15190,7 +17111,15 @@ oi oi oi "} -(9,1,1) = {" +(8,1,1) = {" +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -15270,26 +17199,15 @@ Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu af oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -15316,25 +17234,11 @@ oi oi oi oi -"} -(10,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi +"} +(9,1,1) = {" oi oi oi @@ -15390,6 +17294,31 @@ oi oi oi oi +Jc +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +ai oi oi oi @@ -15397,26 +17326,15 @@ Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -15443,11 +17361,11 @@ oi oi oi oi -"} -(11,1,1) = {" oi oi oi +"} +(10,1,1) = {" oi oi oi @@ -15492,24 +17410,6 @@ oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi oi oi @@ -15520,30 +17420,48 @@ oi oi oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi Zu +al +al +SP +fu +fu +fu +SP +SP +fu +fu +fu +SP +SP +fu +fu +SP +SP +fu +fu +fu +SP +SP +SP af oi +oi +oi Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk +af +oi +Zu Pk Pk Pk @@ -15570,8 +17488,11 @@ oi oi oi oi +oi +oi +oi "} -(12,1,1) = {" +(11,1,1) = {" oi oi oi @@ -15619,62 +17540,62 @@ oi oi oi oi -Zu -al -al -al -al -al -al -al -al -al -al -al -al -al +Jc +Yt +Yt +Yt +Yt +Yt +Yt +Yt al al al +SP +Wq +qZ +ZI +Tl +PX +ZZ +ek +gK +gK +bi +gK +gK +gK +gK +gK +gK +gK +gK +ZZ +SP af oi oi oi +Zu +Pk +Pk +Pk +af oi -oi -oi -oi -oi -oi -oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +Zu +Pk +Pk +Pk +af oi Zu +Pk +Pk +Pk af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi oi oi oi @@ -15698,7 +17619,7 @@ oi oi oi "} -(13,1,1) = {" +(12,1,1) = {" oi oi oi @@ -15748,27 +17669,57 @@ oi oi Zu al -SP -SP -SP -SP -SP -SP -SP -SP -SP -SP al al al al al +al +al +al +al +SP +Wq +qZ +ZZ +ow +lO +ZZ +CF +xq +wX +wX +wX +wX +wX +wX +wX +wX +wX +to +bY +fu af oi oi oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -15787,8 +17738,6 @@ oi oi oi oi -Zu -af oi oi oi @@ -15796,6 +17745,8 @@ oi oi oi oi +"} +(13,1,1) = {" oi oi oi @@ -15824,8 +17775,6 @@ oi oi oi oi -"} -(14,1,1) = {" oi oi oi @@ -15845,11 +17794,59 @@ oi oi oi oi +Zu +al +SP +SP +SP +SP +SP +SP +SP +SP +SP +SP +Wq +qZ +ZZ +ZZ +lO +ZZ +CF +pv +pX +pX +pX +pX +pX +pX +BJ +pX +pX +nk +bY +fu +af oi oi oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -15873,24 +17870,25 @@ oi oi oi oi -Zu -al -SP -pk -uz -wl -wl -ah -AP -ah -ah -SP -al -al -al -al -al -af +oi +oi +"} +(14,1,1) = {" +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -15912,18 +17910,6 @@ Yt Yt Yt Yt -ai -oi -Zu -af -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt Yt Yt Yt @@ -15935,11 +17921,59 @@ oi oi oi oi +Zu +al +SP +pk +uz +wl +wl +ah +AP +ah +ah +SP +Wq +qZ +ZZ +Tl +lO +qZ +qv +Pe +pX +pX +pX +pX +pX +pX +pX +pX +pX +nk +bY +fu +af oi oi oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -15951,12 +17985,6 @@ oi oi oi oi -"} -(15,1,1) = {" -oi -oi -oi -oi oi oi oi @@ -15971,6 +17999,8 @@ oi oi oi oi +"} +(15,1,1) = {" oi oi oi @@ -15993,7 +18023,25 @@ oi oi oi oi -Jc +Yc +Yc +Yc +Yc +Yc +Yc +Yc +Xm +Xm +Xm +Yc +Yc +Yc +Yc +Yc +Yc +Yc +al +al Yt Yt Yt @@ -16012,46 +18060,43 @@ ag ag EZ SP -al -al -al -al -al +Wq +qZ +ZZ +Tl +lO +qZ +Ep +mC +pX +pX +pX +pX +qu +pX +pX +pX +pX +nk +bY +SP af oi oi oi -oi -oi -oi -oi -oi -oi -oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk af oi Zu -af -oi -Zu -Pk -Pk -Pk -Pk Pk Pk Pk +af +oi +Zu Pk Pk Pk @@ -16078,26 +18123,11 @@ oi oi oi oi -"} -(16,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi +"} +(16,1,1) = {" oi oi oi @@ -16120,7 +18150,25 @@ oi oi oi oi -Zu +Yc +NZ +AD +AD +AD +qd +jF +sr +vl +Xx +jF +NZ +AD +AD +AD +qd +Yc +al +al al al al @@ -16139,19 +18187,27 @@ ag ag vn SP -al -al -al -al -al -af -oi -oi -oi -oi -oi -oi -oi +Wq +qZ +ZZ +ow +lO +ZZ +CF +pv +pX +BJ +pX +pX +pX +pX +pX +pX +pX +nk +fL +SP +af oi oi oi @@ -16159,26 +18215,15 @@ Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -16205,26 +18250,11 @@ oi oi oi oi -"} -(17,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi +"} +(17,1,1) = {" oi oi oi @@ -16247,74 +18277,84 @@ oi oi oi oi -Zu +Yc +Fx +DS +TJ +DS +Fx +jF +eu +Zi +eN +jF +Fx +DS +TJ +DS +Fx +Yc +al +al al SP -vD -vD -vD -vD -vD -vD -vD +Ys +Ys +Ys +Ys +Ys +Ys +Ys fu uD -vD -vD -vD -vD +Ys +Ys +Ys +Ys uD -vD -SP -SP -SP +Ys SP +Wq +qZ +ZZ +ZZ +lO +ZZ +CF +xf +eO +eO +eO +eO +eO +eO +mC +gM +eO +mD +bY SP -al -al -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai -oi -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu -af -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk af oi oi oi +Yr +au +al +au +WY oi +Yr +au +al +au +WY oi +Yr +au +al +au +WY oi oi oi @@ -16332,18 +18372,6 @@ oi oi oi oi -"} -(18,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi @@ -16352,6 +18380,8 @@ oi oi oi oi +"} +(18,1,1) = {" oi oi oi @@ -16374,7 +18404,25 @@ oi oi oi oi -Zu +Yc +HT +TJ +TJ +TJ +Pw +Pw +sr +Zi +vl +Pw +Pw +TJ +TJ +TJ +HT +Yc +al +al al SP mn @@ -16396,60 +18444,42 @@ fu Wq qZ ZI -SP -al -al -al -al -al -al -al -al -al +Tl +lO +Tr +Tj +Vb +Vb +Vb +oG +Vb +Vb +gj +HA +eq +Ry +Vb +ZZ +fu af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY -oi -Zu -af -oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi oi oi +al oi oi oi oi oi +al oi oi oi oi oi +al oi oi oi @@ -16459,8 +18489,6 @@ oi oi oi oi -"} -(19,1,1) = {" oi oi oi @@ -16479,6 +18507,8 @@ oi oi oi oi +"} +(19,1,1) = {" oi oi oi @@ -16501,7 +18531,25 @@ oi oi oi oi -Zu +Yc +HT +TJ +TJ +TJ +TJ +TJ +sr +Zi +vl +TJ +TJ +TJ +TJ +TJ +HT +Yc +al +al al SP mo @@ -16523,42 +18571,42 @@ fu Wq qZ Xv -SP -SP -fu -fu -fu -fu +WF +WF +WF +Tl +Tl +Tl +Tl +WF +WF +ZZ +ZZ +qZ +qZ +ZZ +ZZ +ZZ fu -SP -SP al -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -af -oi -oi -oi -oi -oi -oi -oi -oi +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al oi oi oi @@ -16610,25 +18658,25 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu +Yc +HT +TJ +TJ +TJ +TJ +TJ +sr +Zi +vl +TJ +TJ +TJ +TJ +TJ +HT +Yc +al +al al SP mv @@ -16647,63 +18695,45 @@ Be ZZ Fg Ys -Wq +lz qZ ZI -lO -SP +WF OE wz +wz vA oM sZ vJ -SP -al -af -oi -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai -oi -Zu -af -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi +WF +cT +ZZ +ZZ +ZZ +ZZ +ZZ +ZZ +fu +al +au +au +au +au +au +al +au +au +au +au +au +al +au +au +au +au +au +al oi oi oi @@ -16713,8 +18743,6 @@ oi oi oi oi -"} -(21,1,1) = {" oi oi oi @@ -16733,6 +18761,8 @@ oi oi oi oi +"} +(21,1,1) = {" oi oi oi @@ -16755,7 +18785,25 @@ oi oi oi oi -Zu +Yc +HT +TJ +TJ +TJ +TJ +TJ +sr +Zi +vl +TJ +TJ +TJ +TJ +TJ +HT +Yc +al +al al SP ZZ @@ -16768,8 +18816,8 @@ ZZ ZZ qZ UN -WF -Oe +Ys +yR Be ZZ Ff @@ -16777,62 +18825,42 @@ GH ZZ ZZ ZI -Sx Tl qb wz +wz OY OY OY wz -fu -al -af -oi -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu -af -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk +ow +qZ +lO +qZ +qZ +lO +qZ +lO +SP af oi oi oi oi oi +al oi oi oi oi oi +al oi oi oi oi oi +al oi oi oi @@ -16840,10 +18868,6 @@ oi oi oi oi -"} -(22,1,1) = {" -oi -oi oi oi oi @@ -16864,6 +18888,8 @@ oi oi oi oi +"} +(22,1,1) = {" oi oi oi @@ -16882,7 +18908,29 @@ oi oi oi oi -Zu +Jc +Yt +Yt +Yt +Yc +Fx +Fn +TJ +Fn +Fx +jF +eu +Zi +eN +jF +Fx +Fn +TJ +Fn +Fx +Yc +al +al al SP ZZ @@ -16895,61 +18943,53 @@ ZZ ZZ qZ ZZ -WF +Ys yV Be ZZ Ff -GH +ZZ ZZ ZZ ZI -Sx Tl -Wx +fA +wz wz Ow Ow OY wz -fu -al -af -oi -oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk +ZZ +qZ +lO +qZ +qZ +lO +qZ +KY +SP af oi oi oi +Jc +Yt +al +Yt +ai oi +Jc +Yt +al +Yt +ai oi +Jc +Yt +al +Yt +ai oi oi oi @@ -16967,22 +19007,6 @@ oi oi oi oi -"} -(23,1,1) = {" -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi @@ -16991,6 +19015,8 @@ oi oi oi oi +"} +(23,1,1) = {" oi oi oi @@ -17011,6 +19037,28 @@ oi oi Zu al +al +al +Yc +MF +AD +AD +AD +rp +jF +sr +Zi +Xx +jF +MF +AD +AD +AD +rp +Yc +al +al +al SP mn mn @@ -17031,43 +19079,40 @@ Ys Wq qZ ZI -KJ Tl -Ou +Wx wz +wV wB Yh -OY +gw wz fu -al +rK +ZZ +ZZ +Tr +ZZ +ZZ +Jp +SP af oi oi +oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu af oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -17094,12 +19139,11 @@ oi oi oi oi -"} -(24,1,1) = {" -oi oi oi oi +"} +(24,1,1) = {" oi oi oi @@ -17114,30 +19158,34 @@ oi oi oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi oi oi oi Zu al +al +Yc +Yc +jF +jF +jF +jF +jF +jF +sr +Zi +Xx +jF +jF +jF +jF +jF +Yc +Yc +al +al +al SP mo mo @@ -17159,46 +19207,46 @@ Wq qZ ZI WF -WF VE wz -RZ -RZ -OY -zd +wV +vt +Sh +gw +wz fu -al +WF +Yq +WF +WF +WF +mZ +WF +SP af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi oi oi oi @@ -17244,27 +19292,27 @@ oi Zu al al +Yc +aE +xY +Ck +Gz +HG +Ci +jF +sL +vl +Xx +jF +IY +RQ +HL +oy +Yc al al al al -al -al -al -al -al -al -al -al -al -al -af -oi -oi -oi -oi -Zu -al SP mv mv @@ -17289,40 +19337,40 @@ KM XP wz wz +RZ +RZ OY -OY -OY -tw -fu -al +wz +WF +AY +lO +dK +WF +AY +lO +dK +SP af oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi Zu +Pk +Pk +Pk af oi +Zu +Pk +Pk +Pk +af oi -oi -oi -oi -oi -oi -oi -oi -oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -17372,39 +19420,39 @@ Zu al al Yc +iF +xY +Ck +Gz +Em +dl +jF +sr +Zi +vl +cY +vl +Zi +Zi +Uk Yc -Yc -Yc -Yc -Yc -Yc -Yc -al -al al al al al -af -oi -oi -oi -oi -Zu -al Yc -xi -xi -xi -xi -xi -xi -xi +YC +YC +YC +YC +YC +YC +YC Xm Xm -xi -xi -jF +YC +YC +YC Xm Dt YC @@ -17419,40 +19467,40 @@ wz OY OY OY -Ep -fu -al +lS +WF +Xe +qZ +dK +WF +dK +lO +dK +SP af oi oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai oi Zu +Pk +Pk +Pk af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +oi +oi oi oi oi @@ -17499,31 +19547,31 @@ Zu al al Yc -aE Et Et Et -Pw -dl +Et +Em +ME +jF +sr +vl +Xx +jF +Ro +NV +zJ +zJ Yc al al al al -al -al -al -Yt -Yt -Yt -Yt -al -al Yc vl vl vl -pt +Pi jF rU Qm @@ -17545,37 +19593,34 @@ LN wV Cd Mj -ag -wz +vA +yT +WF +dK +lO +KJ +WF +tw +lO +KJ SP -al af oi oi +oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af -oi -Zu af oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -17602,6 +19647,9 @@ oi oi oi oi +oi +oi +oi "} (28,1,1) = {" oi @@ -17630,18 +19678,18 @@ vI bD vI Et -vl +Em dp +jF +sr +Zi +Xx +jF +jF +jF +jF +er Yc -Yc -Yc -Yc -Yc -Yc -Yc -Yc -al -al al al al @@ -17649,17 +19697,17 @@ al Yc mz mz -vl +Zi vl PW sr XI RU -uN +xa RU RU RU -uN +xa RU YC GJ @@ -17667,6 +19715,14 @@ Wq qZ ZI lO +WF +WF +WF +WF +WF +WF +WF +SP SP SP SP @@ -17675,34 +19731,23 @@ SP SP SP SP -al af oi oi +oi Zu Pk Pk Pk +af +oi +Zu Pk Pk Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk +af +oi +Zu Pk Pk Pk @@ -17729,6 +19774,9 @@ oi oi oi oi +oi +oi +oi "} (29,1,1) = {" oi @@ -17757,26 +19805,26 @@ aJ bF di Et -vl +Em ds jF -eL +eu Zi Xx jF Am go +jF +WM Yc al al al al -al -al Yc mF nt -vl +Zi vl vl sr @@ -17788,7 +19836,7 @@ jF jF jF jF -jF +YC YC Wq ZZ @@ -17803,33 +19851,30 @@ QT QT SP al -af +al +au +au +au +au +au +au +WY +oi oi oi Zu Pk Pk Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk af oi Zu -af -oi -Zu -Pk -Pk -Pk -Pk Pk Pk Pk +af +oi +Zu Pk Pk Pk @@ -17856,6 +19901,9 @@ oi oi oi oi +oi +oi +oi "} (30,1,1) = {" oi @@ -17884,23 +19932,23 @@ aU bG ck Et -vl -vl +Em +Vt dU vl Zi Xx jF fx -vl -Yc -Yc +Zi +jF +jF Yc Xm Xm Xm Yc -jF +Yc mH mH vl @@ -17920,7 +19968,7 @@ YC Gk ZZ ZI -Nu +eW Tl OG ZZ @@ -17933,34 +19981,34 @@ al af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi +oi +oi +oi +oi +oi oi Zu +Pk +Pk +Pk af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +oi +oi oi oi oi @@ -18011,15 +20059,15 @@ GX GX GX Et -vl -dw +Em +bq jF ex vl vl fq vl -vl +Zi jF hp sr @@ -18028,9 +20076,9 @@ aM aA kM jF -cG -Et -Et +eo +uq +uq VH Ix sr @@ -18068,23 +20116,23 @@ oi oi oi oi -oi -oi -oi -oi -oi Zu +Pk +Pk +Pk af oi +Zu +Pk +Pk +Pk +af oi -oi -oi -oi -oi -oi -oi -oi -oi +Zu +Pk +Pk +Pk +af oi oi oi @@ -18134,25 +20182,25 @@ al al al Yc -aW +aE Et Et Et -vl +CA xR jF sr Zi -Xx +ug jF jF jF jF hq sr -Et -Et -Et +uq +uq +uq Xx jF mI @@ -18186,35 +20234,35 @@ fu al af oi -oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +oi +oi +oi +oi +oi +oi +oi +oi +oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af oi Zu +Pk +Pk +Pk af oi -Jc -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +oi +oi oi oi oi @@ -18277,7 +20325,7 @@ vl jF hB sr -xY +uu iO Ns Xx @@ -18287,7 +20335,7 @@ qj qj pB jF -eL +eu sC jF dw @@ -18296,7 +20344,7 @@ xu zE Bj DH -vl +tJ YC Wq qZ @@ -18314,34 +20362,34 @@ al af oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi -Zu -af oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af +oi +oi +oi +oi +oi +oi +Yr +au +au +au +WY +oi +Yr +au +au +au +WY +oi +Yr +au +au +au +WY +oi +oi +oi oi oi oi @@ -18399,12 +20447,12 @@ sr Zi eN jF -fy +JM gs jF hC sr -xY +uu iV Ns eN @@ -18441,34 +20489,34 @@ al af oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -al -al -al -al -al -al -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -18512,8 +20560,8 @@ oi Zu al al -Xm -zJ +Yc +RA Et qj qj @@ -18531,21 +20579,21 @@ jF jF hD sr -xY -Ck +uu +bv Ns Xx jF mU nv qj -Et +kf Ix sr Xx Xm vb -nW +wr Vz Vz Vz @@ -18568,34 +20616,34 @@ al af oi oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af oi -Zu -af oi -Zu -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -Pk -af +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -18652,23 +20700,23 @@ jF sr vl vl -Pl +EG vl vl jF hG sr -Et -Et -Et +uq +uq +uq Xx jF mW EB qj -Et +uq jF -sr +fm Xx Xm Wq @@ -18682,8 +20730,8 @@ qZ ZZ ZZ ZI -gl -Tl +aW +WF Ph PT QU @@ -18695,34 +20743,34 @@ al af oi oi -Yr -au -au -au -au -au -au -au -au -au -au -WY oi -Zu -af oi -Yr -au -au -au -au -au -au -au -au -au -au -WY +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi +oi oi oi oi @@ -18778,9 +20826,9 @@ Et jF sr Zi -Xx +If jF -fy +JM gs jF hI @@ -18793,7 +20841,7 @@ jF mY ny qj -Et +uq PW vl Xx @@ -18804,7 +20852,7 @@ jY zH zH zH -tY +Ft zH zH zH @@ -18835,8 +20883,8 @@ oi oi oi oi -Zu -af +oi +oi oi oi oi @@ -18903,7 +20951,7 @@ GX qj dD jF -ZS +sr Zi Xx jF @@ -18918,9 +20966,9 @@ Ix jF jF nd -Et -Et -Et +uq +uq +uq vl vl eN @@ -18928,12 +20976,12 @@ YC Wq qZ ZI -zW -zW -zW -zW -zW -zW +UK +UK +UK +UK +UK +UK UK UK La @@ -18942,7 +20990,7 @@ Pn PY UK SI -Us +ge Wz SP al @@ -18962,26 +21010,6 @@ oi oi oi oi -Zu -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi oi oi oi @@ -18994,9 +21022,29 @@ oi oi oi oi +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi +Jc +Yt +Yt +Yt +ai oi oi "} @@ -19035,10 +21083,10 @@ vl eR cR Qm -Qm -Qm +rG +Zi hJ -Qm +eR Qm Qm Qm @@ -19055,7 +21103,7 @@ tV ZZ ZZ ZI -zW +UK Bn DL Fu @@ -19089,8 +21137,6 @@ XH XH XH XH -Zu -af oi oi oi @@ -19101,29 +21147,31 @@ oi oi oi oi -Jc -Yt -Yt -Yt -ai oi -Jc -Yt -Yt -Yt -ai oi -Jc -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af oi -Jc -Yt -Yt -Yt -ai +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af oi oi "} @@ -19148,13 +21196,13 @@ Zu al al Xm -GJ -zJ +Ci +Vt uw bR -Vm -vl -vl +QV +Em +Em CA jF ez @@ -19162,11 +21210,11 @@ vl XI RU RU -RU -RU -RU -RU -uN +rD +Zi +Zi +XI +xa RU rD Xx @@ -19194,15 +21242,15 @@ Ld Ig Il Qa -UK -UK -UK -UK +zW +zW +zW +zW XH XH Zp Zp -RA +zW YU VK So @@ -19216,8 +21264,8 @@ Lc Lc Lc XH -Zu -af +oi +oi oi oi oi @@ -19275,16 +21323,16 @@ Zu al al Xm -zJ -zJ +Vt +Vt bh bV -Vm +QV ct -vl +Em he jF -kL +sr Zi Xx jF @@ -19309,7 +21357,7 @@ Xm Wq qZ ZI -zW +UK Bt zC zC @@ -19321,7 +21369,7 @@ Lf MS Pp Qd -UK +zW SX Uu SX @@ -19329,8 +21377,8 @@ SX XH Zr xh -RA -am +zW +xA am am am @@ -19343,8 +21391,8 @@ pN Ig xC XH -Zu -af +oi +oi oi oi oi @@ -19403,8 +21451,8 @@ al Yc Yc tq -jF -jF +YC +YC jF jF jF @@ -19416,11 +21464,11 @@ Zi Xx jF fz -qj -qj -Cm -Et -ks +fK +QB +DE +uq +eo jF sr vl @@ -19428,7 +21476,7 @@ vl RU RU RU -uN +xa RU RU sE @@ -19436,19 +21484,19 @@ Xm Wq qZ ZI -zW +UK Bz DR Fy GL GW -UK -UK -UK -UK -UK +zW +zW +zW +zW +zW Qi -UK +zW Th Th Th @@ -19456,7 +21504,7 @@ Th XH Zp Zp -RA +zW gT am am @@ -19470,8 +21518,8 @@ LH Fb qU XH -Zu -af +oi +oi oi oi oi @@ -19530,11 +21578,11 @@ al Yc kj vl -jF -nS -vl -vl -vl +YC +xg +Vt +Em +Em qj qj jF @@ -19542,12 +21590,12 @@ sr Zi Xx jF -qa -qj -jI -Zy -Ns -Xx +fR +CC +Kx +DE +uq +uq jF sr eN @@ -19563,27 +21611,27 @@ YC Wq qZ Xv -UK -UK -UK -UK -UK -UK -UK +zW +zW +zW +zW +zW +zW +zW HP Lo MX -UK -UK -UK -Ts +zW +zW +zW +zi Ts Ts Ts Yg Zx Hg -RA +zW SQ am Ds @@ -19597,8 +21645,8 @@ Ug Ig Ap XH -al -al +Yt +Yt Yt Yt Yt @@ -19657,9 +21705,9 @@ al Yc fy gs -jF -nS -vl +YC +Fa +Vt si Zh qj @@ -19669,37 +21717,37 @@ sr Zi Xx jF -fA +ZF qj -CC -hK -Ns -Xx +UW +DE +uq +uq jc vl Xx jF wE -Et +uq qj Cm qj YC ir Ys -Wq +vw ZZ ZI -UK +zW BF Ei FR GM UK Hl -qL -qL -qL +HW +HW +HW GP Qn UK @@ -19710,18 +21758,18 @@ SX UK ZA gm -RA -RA +zW +zW WL WL WL WL -RA -RA +zW +zW zO Lc Lc -Lc +RE Lc XH al @@ -19785,8 +21833,8 @@ Yc Yc Yc Yc -jF -fx +YC +bZ qz ss qj @@ -19796,18 +21844,18 @@ vl vl Xx jF -fB -qj -Rd -hL -Ns -Xx +cE +uq +uq +uq +uq +uq jF sr Xx jF fm -Et +uq vI vI qj @@ -19819,8 +21867,8 @@ ZZ ZI Ay BG -qL -qL +HW +HW GP Ha bz @@ -19835,21 +21883,21 @@ UK UK UK UK -bz +SY Ig -RA +zW fJ rY rY rY rY Sl -RA -RA +zW +zW Mx TE -RA -RA +zW +zW XH WL WL @@ -19924,17 +21972,17 @@ Zi eS jF kU -qj -qj -Cw -Et -Pi +uq +fE +Cu +Ek +fS jF sr vl lf vl -Et +uq Zy MA qj @@ -19981,7 +22029,7 @@ Nq yf sT NA -qL +HW sl XH al @@ -20061,17 +22109,17 @@ sr Xx jF hE -Et +uq oe UI qj YC Iw -Iu +JN Wq ZZ ZI -UK +zW BK Mm Mm @@ -20167,38 +22215,38 @@ al al Yc bl -qj -qj -Cm -Et -ks +fK +bu +DE +uq +eo jF eB Zi Sj jF fC -gw -qj -Cm -Et -ks +fK +NW +DE +uq +eo jF sr Xx jF Ny -Et +uq hK Zb qk YC Xu Ys -Wq +Rs ZZ ZI -UK +zW UK Ha Ha @@ -20224,7 +22272,7 @@ UK UK UK UK -sW +iw yO ZX Ig @@ -20294,24 +22342,24 @@ al al Yc bm -qj -jI -cE -Ns -Xx +CC +Kx +DE +uq +uq jF sr Zi -Xx +ks jF -fE -qj -jI -pA -Ns -Xx +fR +CC +Kx +DE +uq +uq jF -jS +sr Xx jF YC @@ -20327,10 +22375,10 @@ lO mK MN BY -qL -qL +HW +HW GS -tj +rO zC zC zC @@ -20371,29 +22419,29 @@ af oi oi oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +al +au +WY oi oi "} @@ -20420,30 +22468,30 @@ Zu al al Yc -bn +ZF qj -CC -Kx -Ns -Xx -dZ +xZ +DE +uq +uq +jg vl vl Xx jF -fI +ZF qj -CC -Kx -Ns -Xx +TU +DE +uq +yi ki vl Xx hp YC nC -Et +uq RL qo It @@ -20452,12 +22500,12 @@ YC fV lO mK -MN +Ic Mm Mm Mm Mm -tj +zC zC IJ LI @@ -20473,11 +22521,11 @@ YG bz Ki Gi -PO +MD +no no no no -BZ UE OZ jk @@ -20490,7 +22538,7 @@ vT je pm Ig -Ri +Pu XH al al @@ -20498,29 +22546,29 @@ af oi oi oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af +al +oi +oi +oi +oi +oi +al +oi +oi +oi +oi +oi +al +oi +oi +oi +oi +oi +al +oi oi -Zu -Pk -Pk -Pk -af oi oi "} @@ -20547,47 +22595,47 @@ Zu al al Yc -Bh -qj -SH -cN -Ns -Xx -jF -sr -Zi -Xx -jF -fB -qj -SH -cN -Ns +jA +uq +uq +uq +uq +uq +jF +sr +Zi Xx jF -eL +bv +uq +uq +uq +uq +uq +jF +eu Xx jm YC Fq -Et +uq AE qj qj sR YC -iY +Wq qZ vd -WF -WF -WF -WF -WF -WF -WF -WF -WF +Ys +Ys +Ys +Ys +Ys +Ys +Ys +Ys +Ys bz RM wQ @@ -20608,9 +22656,9 @@ mA iP zX UK -Ig +jS RM -rO +zC zC Mm UH @@ -20621,33 +22669,33 @@ RM WL al al -af -oi -oi -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al +Yt +Yt +Yt +Yt +Yt +al oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi oi "} @@ -20674,23 +22722,23 @@ Zu al al Yc -fK -qj -qj +fS +uq +Lp Cw -Et -Pi +up +eo jF -Jz +sr Zi Xx jF -fK -qj -qj -Cw -Et -Pi +fS +uq +fE +NX +bn +VO jF sr Xx @@ -20703,27 +22751,27 @@ qj qj sS YC -Wq +ad qZ Xv WF vb Vz Vz -nW +wr Vz Vz IR -WF -bz +Ys +SY Pq -qL -GS -qL -qL +HW +Db +HW +HW Xd -XJ -qL +HW +HW ZB Il Rl @@ -20743,38 +22791,38 @@ UK UK bz nU -nU +gU RM WL al al -af -oi -oi -oi -Yr -au +al +al +al +al +al +al +al +al al au -WY -oi -Yr +au au al au -WY -oi -Yr au -al au -WY -oi -Yr +au au al au -WY +au +au +au +au +al +oi +oi oi oi "} @@ -20824,7 +22872,7 @@ Xx on YC nF -Et +uq qj qp qj @@ -20841,14 +22889,14 @@ Ir Ir Ho ZI -WF -BK -Mm -Ig -Ig -Ig +Ys +fb +zC +zC Ig -Xe +Mm +Mm +kn XO Mm Nv @@ -20875,15 +22923,15 @@ RM WL al al -af -oi -oi -oi -oi -oi al -oi -oi +al +al +al +al +al +al +al +af oi oi oi @@ -20928,30 +22976,30 @@ Zu al al Yc -bu -qj -qj -Cm -Et -ks +bv +fK +aV +DE +uq +eo jF sr Zi Xx jF -bu -qj -qj -Cm -Et -ks +Bh +fK +hf +DE +uq +eo jF sr Xx -jF YC -zJ -Et +YC +SH +uq Zy EB qj @@ -20968,15 +23016,15 @@ Zk Zk Be ZI -WF -UA -UA -UA -UA -UA -UA -UA -UA +Ys +gh +gO +dB +gh +gh +gh +gh +gh et bz Ig @@ -20989,46 +23037,46 @@ lV iP zX UK -Ig +lH RM sG Ig Ig UK bz -nU +jI pp RM -WL -al -al -al -Yt -Yt -Yt -Yt -Yt -al -Yt -Yt -Yt -Yt -Yt -al -Yt -Yt -Yt -Yt +XH +df +df +df +df +df +df +df +df +df +df +af +oi +Jc Yt al Yt +ai +oi +Jc Yt +al Yt -Yt +ai +oi +Jc Yt al -oi -oi +Yt +ai oi oi "} @@ -21056,29 +23104,29 @@ al al Yc bv -qj -jI -cT -Ns -Xx +CC +Kx +DE +uq +uq jF sr Zi Xx jF fO -qj -Bx -tp -Ns -Xx +CC +Kx +DE +uq +uq jF sr Xx xH zJ vl -Et +uq Bx qr qj @@ -21097,13 +23145,13 @@ Be Xv WF WB -Yj -UB +ta +ta WB WB UB oQ -UA +gh YI bz Ki @@ -21117,45 +23165,45 @@ UE OZ jK Ig -RM +OC UK Tq dd UK mj -Mm +Wt kn la XH -al -al -al -au -au -au -au -au -al -au -au -au -au -au -al -au -au -au -au -au -al -au -au -au -au -au -al +Bi +Bi +Bi +Bi +Bi +Bi +Bi +Bi +Bi +df +af oi +Zu +Pk +Pk +Pk +af +oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi oi "} @@ -21182,34 +23230,34 @@ Zu al al Yc -fI +ZF qj -CC -cU -Ns -Xx +Zd +DE +uq +uq rX vl vl Xx jF -fI +ZF qj -CC -hN -Ns -Xx -jg +Lx +DE +uq +uq +pA vl Xx Ix ne vl -Et +uq AE qj qj -qj +aP YC Wq qZ @@ -21230,7 +23278,7 @@ ve ve UB oQ -UA +gh UF bz Ki @@ -21240,7 +23288,7 @@ eG pT eG eG -PO +MD OZ cv zC @@ -21254,35 +23302,35 @@ UK UK UK XH -al -al +Iv +hl +pq +iC +tu +tu +tu +tu +Bi +df af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi -oi -oi -al -oi -oi -oi -oi -oi -al -oi -oi -oi -oi -oi -al -oi -oi -oi -oi -oi -al -oi -oi +Zu +Pk +Pk +Pk +af oi oi "} @@ -21310,22 +23358,22 @@ al al Yc fR -qj uq -cV -Ns -Xx +uq +uq +uq +uq jF sr Zi Xx jF -fR -qj -SH -gj -Ns -Xx +qa +uq +uq +uq +uq +uq jF sL Xx @@ -21333,10 +23381,10 @@ Ix ni vl IQ -Et -Et +uq +uq IQ -dD +lg YC Wq qZ @@ -21357,7 +23405,7 @@ UB UB UB bp -UA +gh YK bz Ki @@ -21380,36 +23428,36 @@ Iv Iv Iv Iv +Iv +Iv +hl +OB +RP +RP +RP +RP +aQ +Bi df -al -al af oi +Zu +Pk +Pk +Pk +af oi +Zu +Pk +Pk +Pk +af oi -Jc -Yt -al -Yt -ai -oi -Jc -Yt -al -Yt -ai -oi -Jc -Yt -al -Yt -ai -oi -Jc -Yt -al -Yt -ai +Zu +Pk +Pk +Pk +af oi oi "} @@ -21437,22 +23485,22 @@ al al Yc bB -qj -qj -Cw -Et -Pi +uq +fE +uq +uq +up jF ZS Zi Xx jF fS -qj -qj -Cw -Et -Pi +uq +Hd +fe +xi +fR jF sr Xx @@ -21484,16 +23532,16 @@ WB WB UB Yj -UA +gh hQ bz zC Ig Ig -qL -qL -qL -qL +HW +HW +HW +HW zC zC zC @@ -21503,21 +23551,21 @@ UK Iv cW Kv -tu wd Ta Iv +Or +OB +Iv +hl +OB +RP +RP +RP +RP +RP +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21560,8 +23608,8 @@ oi oi oi Yr -au -au +al +al Yc Yc jF @@ -21583,14 +23631,14 @@ jF jF sr eN -jF -jF +YC +YC nI Ix -jF +YC Ix Ix -jF +YC YC Wq lO @@ -21607,11 +23655,11 @@ WF TD Yj UB -ve TD +ve UB Yj -UA +gh YN BK kn @@ -21630,21 +23678,21 @@ Iv Iv wW uF -uF ZE rk Iv +Or +lZ +Iv +Iv +xv +FK +FK +FK +FK +FK +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21687,9 +23735,9 @@ oi oi oi oi -oi -oi Zu +al +al Yc ku cl @@ -21738,16 +23786,16 @@ UA UA Ux Ux -UA -UA -UK -UK +gh +gh +zW +zW UL -UK -UK -UK -UK -wN +zW +zW +zW +zW +DN wN wN wN @@ -21756,22 +23804,22 @@ UK Iv NT rx -ph -rx +uF uF NF Iv +Dq +OB +Vx +Iv +Mn +tu +tu +tu +tu +tu +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21814,13 +23862,13 @@ oi oi oi oi -oi -oi Zu -Yc -kl -VY +al +al +Xm +cf VY +tL dj dN Ix @@ -21836,7 +23884,7 @@ XI RU vl jT -uN +xa RU RU RU @@ -21845,7 +23893,7 @@ zJ sr Zi Vm -jF +YC Wq qZ ZI @@ -21873,7 +23921,7 @@ UE UE CJ Kw -UK +zW sJ UE UE @@ -21883,22 +23931,22 @@ UK Iv oq rx -ph -rx +uF uF Xp Iv +iK +OB +Ju +Iv +OB +RP +RP +RP +RP +RP +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -21941,11 +23989,11 @@ oi oi oi oi -oi -oi Zu -Yc -cf +al +al +Xm +zl VY VY VY @@ -21958,12 +24006,12 @@ jF fU fU gQ -xi -xi -xi +YC +YC +YC ji -xi -xi +YC +YC li Ix Ix @@ -21998,9 +24046,9 @@ ZH fQ UE Sr -CJ +mt Ss -UK +zW CQ CQ mp @@ -22012,20 +24060,20 @@ Wb rx uF uF -uF AM Iv +GE +OB +Vd +Iv +OB +RP +RP +RP +RP +aQ +Bi df -al -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -22068,15 +24116,15 @@ oi oi oi oi -oi -oi Zu +al +al Yc UQ VY +cZ VY -VY -Ju +dN jF eK Zi @@ -22085,20 +24133,20 @@ jF jF jF jF -xi +YC ia ix Si jU -xi +YC vl nm zY YC IS -Et -Et -dD +uq +uq +lg YC Gg qZ @@ -22127,7 +24175,7 @@ UK UK UK UK -UK +zW UK UK UK @@ -22138,21 +24186,21 @@ Iv wF yW uF -pX us xV Iv +VP +OB +XJ +Iv +eF +eF +OB +gD +FK +FK +Bi df -df -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -22195,16 +24243,16 @@ oi oi oi oi -oi -oi Zu -Yc +al +al +Xm cj -cp +VY cZ -dk -en -jF +VY +dN +Ix sr Zi fg @@ -22212,12 +24260,12 @@ jF fW gA gV -xi +YC uQ Qf Si -uQ -xi +sw +YC lm nn Ac @@ -22225,7 +24273,7 @@ Ix qj qj qj -Et +uq YC Wq qZ @@ -22269,17 +24317,17 @@ Iv Iv Iv Iv +KI Iv +Iv +Iv +Iv +yn +Bi +Bi +Bi +Bi df -al -af -oi -oi -oi -Zu -Pk -Pk -Pk af oi Zu @@ -22322,29 +24370,29 @@ oi oi oi oi -oi -oi Zu -Yc -Yc -Xm -Xm +al +al Xm -Yc -Yc -eL +eb +VY +VY +VY +ND +Ix +sr Zi fk fr vl vl gX -xi +YC hT Qf Si -uQ -xi +sw +YC lu nn oO @@ -22352,7 +24400,7 @@ Ix pJ qC qj -Et +uq Xm Wq qZ @@ -22369,8 +24417,8 @@ WF TD Yj UB -ve TD +ve UB Yj TD @@ -22390,42 +24438,42 @@ Ot Uf Iv By +BB uF -dH -Iv -Db -mt -bY -Iv +BB +BB +BB +BB +BB +se +nL +Jz +id +uF +Bi +df +df +df df -al -al -Yt -ai -oi -Zu -Pk -Pk -Pk af oi -Zu -Pk -Pk -Pk -af +Yr +au +au +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +au +au +WY oi -Zu -Pk -Pk -Pk -af +Yr +au +au +au +WY oi oi "} @@ -22449,16 +24497,16 @@ oi oi oi oi -oi -oi -Yr -au -au -au -au -au +Zu +al al Yc +en +gi +VY +VY +TP +jF uK Ve fp @@ -22466,12 +24514,12 @@ jF fX gB gZ -xi +YC ic Qf jl jW -xi +YC xP vl nN @@ -22479,7 +24527,7 @@ Ix pK qD qj -Et +uq tX Wq lO @@ -22517,46 +24565,30 @@ uF HU Iv ZK +KE uF uF -Rw -rx uF -ph -Iv +uF +uF +uF +uF +uF +uF +uF +BR +Bi df al al al af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi oi -"} -(67,1,1) = {" oi oi oi @@ -22571,6 +24603,8 @@ oi oi oi oi +"} +(67,1,1) = {" oi oi oi @@ -22584,21 +24618,35 @@ oi oi oi oi -Zu -Yc -Xm -Xm -Xm +oi +oi +oi +SP +SP +fu +fu +fu SP +Yc +YC +YC +Jo +QS +YC +YC +YC Ys Ys Ys -vD -vD -vD -vD -vD -xi +Ys +Ys +Ys +Ys +Ys +Ys +Ys +Ys +YC lw vl Ae @@ -22606,7 +24654,7 @@ YC pM qF qj -Et +uq tW Wq lO @@ -22645,45 +24693,29 @@ vX Iv Zg uF -pq -Iv -OB -aQ -eF -Iv -df -df +uF +sY +us +Mi +us +us +us +us +zd +uF +Rw +Bi df al +al +al af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi -Zu -Pk -Pk -Pk -af oi oi -"} -(68,1,1) = {" oi oi oi @@ -22698,6 +24730,11 @@ oi oi oi oi +"} +(68,1,1) = {" +oi +oi +oi oi oi oi @@ -22711,17 +24748,28 @@ oi oi oi oi -Zu -al -al -al -al SP +oF +PM +PM +PM +PM +PM +PM +PM +ZZ +ZZ +PM +PM +Fi +WF +qB +Wu fY Ww hk tz -Ys +WF Su Sx Ys @@ -22733,7 +24781,7 @@ xr qj qj qj -Ns +uq Xm Wq qZ @@ -22771,8 +24819,9 @@ uF KG Iv ZK +mV uF -ph +vS Iv Iv Iv @@ -22780,40 +24829,25 @@ Iv Iv Iv Iv +or +Iv +Bi df al -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -oi -"} -(69,1,1) = {" -oi -oi -oi +al +al +al +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +ai oi oi oi @@ -22823,6 +24857,8 @@ oi oi oi oi +"} +(69,1,1) = {" oi oi oi @@ -22838,16 +24874,28 @@ oi oi oi oi -Yr -au -al -al -al -SP +oi +fu fZ +ZZ +UN +WF +tZ +yN +fI +yN +md +WF +yR +ZZ +Wy +WF +cA +QW +ZZ +ZZ qZ -qZ -qZ +ZZ dq ZZ Xv @@ -22857,12 +24905,12 @@ RS np Al YC -cG -Et -Et -Ns +eo +up +NX +NX YC -jQ +Wq qZ Xv WF @@ -22907,42 +24955,27 @@ Ko To UX Iv +CS +uF +CS +Bi df al +al +df +df +df +df +df +df +bC +bC +bC +bC +bC +al af oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -Zu -Pk -Pk -Pk -af -oi -oi -"} -(70,1,1) = {" -oi -oi -oi -oi -oi oi oi oi @@ -22951,6 +24984,8 @@ oi oi oi oi +"} +(70,1,1) = {" oi oi oi @@ -22967,15 +25002,28 @@ oi oi oi oi -Zu -al -al -SP +fu +fZ ga +ga +bY +FE +yQ +ee +Bd +wm +LW +vR +vR +PP +WF +Dx +qZ ZZ ZZ -bL -Ys +qZ +ZZ +WF bk ZI Ys @@ -23011,7 +25059,7 @@ Qv UA UA Iv -Yw +By mQ ma Kv @@ -23034,42 +25082,27 @@ uF uF ph Iv +yM +uF +JH +Bi +df +al +al df +Vo +Ch +Ch +Ch +Dv +bC +OK +Vq +Vq +bC al af oi -Yr -au -au -au -WY -oi -Yr -au -au -au -WY -oi -Yr -au -au -au -WY -oi -Yr -au -au -au -WY -oi -oi -"} -(71,1,1) = {" -oi -oi -oi -oi -oi oi oi oi @@ -23078,6 +25111,8 @@ oi oi oi oi +"} +(71,1,1) = {" oi oi oi @@ -23094,19 +25129,32 @@ oi oi oi oi -Zu -al -al SP +fZ +ga +ga +bY +aY +uy +wz +Gu +xU +LW +vR +vR +PP +WF +qI +OT gb -ZZ -ZZ -tL -Ys +JD +MO +MO +WF Wq tU Vz -nW +wr Vz Vz Vz @@ -23127,12 +25175,12 @@ Vz Vz EA Jf -nW +wr Cj ZZ ZZ Vz -nW +wr ZZ ZZ Cj @@ -23142,7 +25190,7 @@ rx uF uF uF -MQ +ph Iv ru YT @@ -23161,8 +25209,25 @@ uF AB MQ Iv +CS +us +CS +Bi df al +al +df +Yn +bd +qq +bd +gg +bC +Px +Vq +Vq +Ke +al af oi oi @@ -23173,23 +25238,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (72,1,1) = {" oi @@ -23208,28 +25256,28 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP -ge -qZ -hl -bx -Ys +tp +ga +ga +bY +iA +bL +wz +bN +jD +LW +vR +vR +PP +WF +WF +WF +WF +WF +WF +WF +WF Wq qZ ZZ @@ -23269,7 +25317,7 @@ uF uF uF uF -uF +CT YR uF uF @@ -23286,43 +25334,28 @@ YP uF uF uF -FL -Iv -df -al -al -Yt -Yt -Yt -Yt -ai -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -"} -(73,1,1) = {" -oi -oi -oi -oi +FL +aw +aw +aw +aw +Bi +df +al +al +df +gg +qq +yL +qq +Gc +Tg +ry +Go +Vq +Ke +al +af oi oi oi @@ -23332,6 +25365,8 @@ oi oi oi oi +"} +(73,1,1) = {" oi oi oi @@ -23348,16 +25383,29 @@ oi oi oi oi -Zu -al -al SP -gh +fZ +ga +ga +bY +iA +Ri +bE +fB +jD +LW +vR +vR ZZ -hm -qu -Ys -Wq +LS +Uy +Vz +Vz +wr +Vz +Vz +Vz +rN qZ jY zH @@ -23365,17 +25413,17 @@ zH zH zH zH -tY +Ft zH zH zH zH zH rf -vg -zH +LC +iY zH -tY +Ft ZZ zH ZZ @@ -23396,7 +25444,7 @@ uF uF uF uF -uF +CT uF sY us @@ -23414,14 +25462,26 @@ tF oA Mi uT -Iv -bC -bC +aw +As +As +As +As bC Ke -Ke bC bC +gg +qq +yJ +qq +qq +pw +ry +Go +Vq +Ke +al af oi oi @@ -23432,18 +25492,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (74,1,1) = {" oi @@ -23462,29 +25510,29 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -Ys -Ys -Ys -Ys -Ys -Gg +fu +fZ +ga +ga +bY +iA +wz +wz +wz +jD +LW +vR +vR +ZZ +ZZ +rC +zH +zH +zH +zH +zH +zH +Xw qZ ZI Tm @@ -23535,20 +25583,32 @@ uF uF uF uF -jr -Iv +BR Iv Iv Iv Iv Iv +aw Dc As eV -XB -uk -Ii +Vq +Vq +Vq +ox +As +gg +qq +dz +qq +qq +pw +ry +Go +Vq bC +al af oi oi @@ -23559,18 +25619,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (75,1,1) = {" oi @@ -23589,37 +25637,37 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -gi -tJ -ho -tJ -Tl -KT +fu +fZ +ZZ +ZZ +bY +iA +wz +wz +wz +jD +LW +ZZ +ZZ +Wy +WF +WF +WF +WF +WF +WF +WF +WF +kX ZZ jZ Tm -BE -TQ +NU TQ og SL +SL kA SL SL @@ -23630,7 +25678,7 @@ NJ JK CE Tm -Oe +yR qZ ZZ WF @@ -23662,20 +25710,32 @@ rx WN rE uF -xZ +ph YP zT Ko To UX -Iv +aw Ng As KP -PU -uk +Vq +Vq +Vq tP -Ke +As +gg +qq +jr +qq +RF +pw +ry +Go +Vq +bC +al af oi oi @@ -23686,18 +25746,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (76,1,1) = {" oi @@ -23716,37 +25764,37 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP +tp +ZZ +ZZ +WF +nb +ho +cp +ho +ht +lO +ZZ +ZZ +PP +dk +WF +JA dY -qZ -qZ -qZ -Ys +Jq +JS +Jq +WF Tl ju Tl Tm TQ TQ -TQ oh ld +SL wj wj wj @@ -23783,7 +25831,7 @@ vv uF ph Iv -uF +JE zf uF WN @@ -23795,27 +25843,27 @@ uF uF uF ph -Iv +aw gd Pc Vq -Vq +ly +ly Vq tP -Ke -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi +As +Yn +QJ +qq +QJ +gg +bC +Px +Vq +Vq +bC +al +af oi oi oi @@ -23843,28 +25891,28 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -gk +fu +fZ +ZZ +ZZ +EV +iA +wz +wz +wz +jD +Ff +ZZ +ZZ +Wy +WF +WF +lO +lO ZZ ZZ ZZ -ie +PX ZZ ZZ kd @@ -23872,8 +25920,8 @@ Tm Vr Vr Vr -Vr BP +SL wj wj wj @@ -23900,7 +25948,7 @@ Wq qZ ZI YP -YZ +Lg ZR ZR ZR @@ -23922,14 +25970,26 @@ uF uF AB MQ -Iv +aw As As +hF +mc +nG Vq +oI +As +wS +Ch +Ch +Ch +pQ +bC +OK Vq Vq -aP -Ke +bC +al af oi oi @@ -23940,18 +26000,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (78,1,1) = {" oi @@ -23970,23 +26018,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP +fu +fZ +ga +ga +EV +iA +wz +wz +wz +jD +Ff +vR +vR +PP +Tl +ZZ +lO lO gC gC @@ -23994,13 +26042,13 @@ gC ZZ ZZ ZZ -iC +lO Tm lD Vr -WQ -ol +Vr BP +SL wj wj wj @@ -24017,9 +26065,9 @@ ZI WF WF WF +cU ZZ -ZZ -ZZ +rF ZZ pC WF @@ -24049,14 +26097,26 @@ uF uF uF FL -Iv +aw wP tP Vq +mw +mw +Vq +pz +As +bC +bC +bC +bC +bC +bC +Vq Vq Vq -sx bC +al af oi oi @@ -24067,18 +26127,6 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi "} (79,1,1) = {" oi @@ -24097,23 +26145,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP +fZ +ga +ga +EV +iA +uS +Dz +BZ +jD +Ff +vR +vR +PP +Tl +ZZ +lO lO hr hr @@ -24125,7 +26173,6 @@ gl Tm WU Vr -Vr om pP Vr @@ -24133,13 +26180,14 @@ Vr Vr Vr Vr +Vr mr Vr Vr Vr mr ZZ -ZZ +lO Xv WF dJ @@ -24148,7 +26196,7 @@ ZZ ZZ zH zH -zH +Wd WF Wq qZ @@ -24176,27 +26224,27 @@ tF oA Mi uT -Iv +aw aG Cs Vq Vq Vq -uX +Vq +ql +As +pw +JY +pw +qS +pw +gp +pw +pw +pw bC al -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt -ai +af oi oi oi @@ -24224,23 +26272,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -fu +SP +tp +ga +ga +EV +iA +VT +wz +bN +jD +Ff +vR +vR +PP +Tl +ZZ +lO Ev gL ZZ @@ -24252,8 +26300,7 @@ kg Tm kG Vr -Vr -or +om pP Vr Vr @@ -24265,8 +26312,9 @@ Vr Vr Vr Vr +Vr ZZ -ZZ +lO ZI WF WF @@ -24298,47 +26346,32 @@ uF uF uF CM -Iv -Iv -Iv -Iv -Iv -Iv +aw +aw +aw +aw +aw +aw lQ lQ pU JI As lQ -bC -bC -bC -Ke -Ke -Ke -bC -Ke -Ke -Ke -bC -bC -al -af -oi -oi -oi -oi -oi -oi -oi -oi -oi -"} -(81,1,1) = {" -oi -oi -oi -oi +As +As +pw +pw +Kj +ay +pw +pw +pw +pw +pw +bC +al +af oi oi oi @@ -24348,6 +26381,8 @@ oi oi oi oi +"} +(81,1,1) = {" oi oi oi @@ -24364,24 +26399,37 @@ oi oi oi oi -Zu -al -al -fu +SP +fZ +ga +ga +EV +aY +bx +wz +FW +xU +Ff +vR +vR +PP +Tl +ZZ +lO Ev ZZ ZZ ZZ -uZ +lO vR ZZ ko Tm Qt Vr -WQ -ow +Vr BP +SL wj wj wj @@ -24393,11 +26441,11 @@ TQ TQ MU Wq -ZZ +lO ZZ aT ZZ -Vb +aB Vb WF WF @@ -24412,7 +26460,7 @@ uF uF uF uF -uF +CT YR Ue BB @@ -24425,7 +26473,7 @@ uF uF uF ph -Iv +aw Vq dn FX @@ -24441,13 +26489,13 @@ OH As XK WV -HG -pw -Gz +hi +ar pw pw pw pw +Nb bC al af @@ -24478,23 +26526,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al fu +fZ +ga +ga +EV +Ps +cN +sP +dZ +hg +Ff +vR +vR +PP +Tl +ZZ +lO Ev gP ZZ @@ -24507,8 +26555,8 @@ Tm Vr Vr Vr -Vr BP +SL wj wj wj @@ -24520,12 +26568,12 @@ JK wj MU Wq -ZZ +lO ZZ ZZ ZZ LU -NN +XW WF WF WF @@ -24539,7 +26587,7 @@ uF uF uF uF -uF +CT uF uF uF @@ -24552,7 +26600,7 @@ uF uF uF pe -Iv +aw Vq dn qS @@ -24568,14 +26616,14 @@ dg As MB Vq -HG -pw +hi +ar pw pw pw pw pw -bC +Ke al af oi @@ -24605,24 +26653,24 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al -SP -dY +fu +fZ +ZZ +UN +WF +wY +yN +hN +yN +md +WF +yR +ZZ +Wy +WF +Wc +lO +lO tM tM tM @@ -24633,9 +26681,9 @@ kq Tm TQ TQ -TQ oz BV +SL wj wj wj @@ -24648,7 +26696,7 @@ wj MU Wq qZ -ZI +xk WF WF WF @@ -24679,7 +26727,7 @@ uF uF uF qf -Iv +aw Nw BU uC @@ -24688,7 +26736,7 @@ pw Vq pw pw -uS +pw pw pw Nc @@ -24696,13 +26744,13 @@ As UY WV Kd -JB -pw -pw +Cp pw +Ex +BC pw dW -bC +Ke al af Wf @@ -24732,38 +26780,38 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al SP +Fi +ge +ge +ge +ge +ge +ge +ge +ge +ge +ge +ge +Fi +WF +LX +lO gl -qZ -qZ -qZ +rb +rb +rb ih -iC +lO lO QR Tm -BE -TQ +NU TQ oH SL -qJ +SL +kI SL SL SL @@ -24771,7 +26819,7 @@ vk Tm IA JK -CE +hv Tm Gg qZ @@ -24797,7 +26845,7 @@ Ym Iv WT Zo -Mi +fs Oz Oz Zq @@ -24806,7 +26854,7 @@ qA es Oz zR -Iv +aw cs hi pw @@ -24815,7 +26863,7 @@ pw AX pw pw -Gu +pw ST pw op @@ -24829,7 +26877,7 @@ pw TA pw kv -bC +Ke al af Wf @@ -24859,22 +26907,22 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu -al -al +SP +SP +fu +fu +SP +SP +fu +fu +fu +SP +SP +fu +fu +SP +SP +SP SP SP WF @@ -24891,7 +26939,7 @@ Tm Tm Tm Tm -rV +oY tb ej sb @@ -24906,9 +26954,9 @@ ZI WF WF WF +cU ZZ -ZZ -ZZ +Jp ZZ pC WF @@ -24928,12 +26976,12 @@ Iv Iv Iv Iv -Iv -Iv -Iv -Iv -Iv -Iv +aw +aw +aw +aw +aw +aw cQ jb JB @@ -24942,12 +26990,12 @@ pw me pw pw -QB +pw pw pw pw zL -Yk +Po Yk Yk uC @@ -24991,19 +27039,19 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi Zu al al al -df +al +al +al +al +al +al +al +al +Qx jw gz EQ @@ -25029,7 +27077,7 @@ SL Tm Gq qZ -GY +ZI WF Jn YH @@ -25042,7 +27090,7 @@ WF Wq qZ tU -nW +wr Vz ZZ ZZ @@ -25074,7 +27122,7 @@ VN pw pw zL -pw +ar pw pw pw @@ -25083,7 +27131,7 @@ pw Np pw Sc -Ke +bC al af Wf @@ -25118,23 +27166,23 @@ oi oi oi oi -oi -oi -oi -oi -oi -oi -oi -oi -Zu +Yr +au +au +au +au +au +au +au al al al -df -eb -eb -eb -eb +al +Qx +Ie +Ie +Ie +Ie Oy tG Ie @@ -25201,7 +27249,7 @@ lb pw pw lG -pw +ar pw pw pw @@ -25210,7 +27258,7 @@ pw cg pw pw -Ke +bC al af Wf @@ -25257,16 +27305,16 @@ Yr au au au -df -gK -TP -wY -ND +Qx +KH +Ie +Ie +Ie Tm jy Ie kS -Ie +AC Ie hA oW @@ -25274,7 +27322,7 @@ BX qP qP qP -qP +JK qP qP qP @@ -25287,7 +27335,7 @@ ZI WF Jn YH -ZZ +Es WF Qw NN @@ -25296,30 +27344,30 @@ WF Xk NN NN +Ea zH +SN zH zH -zH -zH -tY -zH +Ft +Ea NN NN zH Xw qZ Xv -As +Id km -Vq -Vq -Vq +Go +Go +Go cz Vq Vq -tP +Go dT -tP +Go Vq Vq Vq @@ -25329,15 +27377,15 @@ JB pw Ke pw -pw -pw -pw -pw -pw -pw -pw -pw -Ke +cg +cg +qO +ty +ty +ty +ty +ty +bC al al Yt @@ -25384,12 +27432,12 @@ oi oi oi oi -df -df -df -df -df Qx +Ie +Ie +Ie +Qg +Tm jz Ie xj @@ -25399,9 +27447,9 @@ Au oW BX qT -ra +zM tn -kf +JK vo wx ra @@ -25449,20 +27497,20 @@ ka XC Ll Mv -XM +Vq Go YM qS Cn -As +Id vU pw -Jl pw -Wd -Rf -Rf -Rf +sx +mP +Vq +Vq +Vq Uj bC al @@ -25511,16 +27559,16 @@ oi oi oi oi -oi -oi -oi -Zu -al Qx +Pg +dL +QA +Ie +Tm jC Ie Yo -Ie +AC Ie Au oW @@ -25528,7 +27576,7 @@ BX ra rW tr -tZ +JK vK wA ra @@ -25568,25 +27616,25 @@ yZ KW KW ce -As +Id Ke -As +Id Di eD cC -As -As +Id uj Vq +Vq bA Oj Sc -As +Id BC pw -FB +pw HR -iT +tT sF sF sF @@ -25638,24 +27686,24 @@ Yt Yt ai oi -oi -oi -oi -Zu -al Qx -jE +Tm +Tm +Tm +HC +Tm +jG Ie kT +js Ie -Ie -Au +SS oW BX rj rj rj -rj +JK rj rj rj @@ -25690,35 +27738,35 @@ Br WX qZ ZI -As +Id Ke Ke PB -As -As -Kb -gh -CN -WF -CN -Vz -As +Id +Id +Su +Ys +KV +SM +KV +Ys +Id Ke PB Ke Ke -As -As -As -As -As -As -iT -Mr -Yq -Yq +Id +Id +Id +Id +Id +Id +tT +Li +Li +Li vH -iT +tC Li hX Li @@ -25765,13 +27813,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al Qx -jG +jE +JC +Eq +LV +Oy +tG Ie Ie Ie @@ -25807,13 +27855,13 @@ Ul RN jo RI -FE +RI RI Ag gc Yb YL -Br +PV Wq qZ tU @@ -25821,7 +27869,7 @@ Vz Vz Vz Vz -nW +wr Vz ZZ ZZ @@ -25829,13 +27877,13 @@ ZZ ZZ ZZ ZZ -nW +wr Vz Vz ZZ Vz Vz -nW +wr Vz Vz Vz @@ -25892,12 +27940,12 @@ Pk Pk af oi -oi -oi -oi -Zu -al -Qx +SR +tG +LV +tG +yp +Tm jJ jv kY @@ -25934,13 +27982,13 @@ gc gc WJ RI -FE +RI RI oJ gc Vw YL -Br +PV Wq qZ qZ @@ -26019,13 +28067,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -Qx -Qx +SR +Cq +LV +Cq +eM +Tm +Tm Tm Tm Tm @@ -26049,11 +28097,11 @@ ZI WF Br ZQ -Cf -Cf +Yp +Yp ZQ -Cf -Cf +Yp +Yp ZJ ZQ YL @@ -26070,7 +28118,8 @@ YL Br KT zH -tY +Ft +SN zH zH zH @@ -26079,10 +28128,9 @@ zH zH zH zH -zH -tY +Ft Ks -zH +Kf OU ZZ ZZ @@ -26146,13 +28194,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al -Qx +SR +Cq +LV +Cq +LV +IL +Tm kx Mc lM @@ -26192,8 +28240,8 @@ kF Km Fl gc -Yb -YL +TT +gF Br Br Br @@ -26223,7 +28271,7 @@ iT Td iT FD -BS +Li Li tB uB @@ -26273,13 +28321,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al -SR +Qx +xm +LV +Cq +LV +De +Tm SL hh EJ @@ -26331,11 +28379,11 @@ ok RK gc gN -Cf -Cf +Yp +Yp bb -Cf -Cf +Yp +Yp Br EM Li @@ -26350,10 +28398,10 @@ BA Wi Wi Cx -Li -Li +fh +Bu vB -iT +tC Li sA Li @@ -26400,13 +28448,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al SR +tG +LV +tG +LV +KX +Tm SL hh lN @@ -26414,7 +28462,7 @@ yo SL Tm SL -Au +ha sg tK Au @@ -26440,10 +28488,10 @@ Yb GA YY Ej -Cf -Cf +Yp +Yp bb -Cf +Yp ZQ Ub Yb @@ -26480,7 +28528,7 @@ ou vu Ih VQ -iT +tC tC tC tC @@ -26527,13 +28575,13 @@ Pk Pk af oi -oi -oi -oi -Zu -al -al SR +Cq +LV +Cq +LV +hm +Tm SL hh lP @@ -26654,13 +28702,13 @@ Pk Pk af oi -Jc -Yt -Yt -al -al -al SR +Cq +LV +Cq +LV +HK +Tm SL hh EJ @@ -26718,22 +28766,22 @@ Vk Vk ZQ Br -FD -Li -Li -Li -Li -BS -Li -Li -Li -Li -BS -Li +cx +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE +EE EE -jd -bP -Li TM eQ al @@ -26781,13 +28829,13 @@ Pk Pk af oi -Zu -al -al -al -al -al Qx +Cq +LV +Rc +LV +ZO +Tm kx Yz Mc @@ -26818,7 +28866,7 @@ dS Br SE Yb -YL +dH gc vz Zw @@ -26845,24 +28893,24 @@ Mh Mh Mh Br -uV -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx -nx IW -eQ +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +IW +tC af Wf Wf @@ -26908,15 +28956,15 @@ Pk Pk af oi -Zu -al -Qx -Qx Qx Qx Qx Tm Tm +Tm +Tm +Tm +Tm lW Tm Tm @@ -26989,7 +29037,7 @@ Xl Xl Xl uR -eQ +tC af Wf Wf @@ -27050,9 +29098,9 @@ zw zw pW du -rV Fc Fc +sm vM Tm IC @@ -27065,10 +29113,10 @@ Ff HJ Jr bb -Cf -Cf -Cf -Cf +Yp +Yp +Yp +Yp ZQ Vh ZQ @@ -27084,20 +29132,20 @@ zD Yb ZQ CW -Cf +Yp bb -Cf -Cf -Cf +Yp +Yp +Yp Cf ZQ -Cf +Yp bb ng GA -Cf -Cf -Cf +Yp +Yp +Yp Br Xl Xl @@ -27116,7 +29164,7 @@ oD ri Xl Xl -eQ +hM af Wf Wf @@ -27165,7 +29213,7 @@ oi Zu al Qx -BE +NU il iD jN @@ -27175,9 +29223,9 @@ Mc Mc zw zw -zw +rM du -rV +Fc Fc Fc TQ @@ -27243,7 +29291,7 @@ DJ Ad Xl Xl -tC +hM af Wf Wf @@ -27295,16 +29343,16 @@ SR TQ in iG -Hz +dQ kB IB Mc Mc nP pf -zw -du -sm +rM +rV +Fc Fc Fc TQ @@ -27315,7 +29363,7 @@ Da Tm Gw qZ -ZI +gG Br gc gc @@ -27325,7 +29373,7 @@ PV gc gc gc -Yb +pI XU gc gc @@ -27346,7 +29394,7 @@ Mh Mh vE pY -Mh +YQ Mh Mh Mh @@ -27370,7 +29418,7 @@ Ti fw Xl Xl -tC +hM af Wf Wf @@ -27429,9 +29477,9 @@ Mc Mc nV pf -zw +rM du -rV +Fc Fc Fc TQ @@ -27446,7 +29494,7 @@ ZI PV Js Mg -NW +Gx Pt QD oE @@ -27456,12 +29504,12 @@ Yb YL SK hw -Cf +Yp LB gc Pb -dM -Cf +VI +Yp ZJ YL gc @@ -27497,7 +29545,7 @@ Zt Ai Xl Xl -tC +hM af Wf Wf @@ -27546,7 +29594,7 @@ Yt al al Qx -BE +NU BX JR Vr @@ -27566,7 +29614,7 @@ ut Vr Vr Vr -ut +AR ZZ qZ ZI @@ -27624,7 +29672,7 @@ Ti fw Xl Xl -eQ +hM af Wf Wf @@ -27751,7 +29799,7 @@ Ms jR Xl Xl -eQ +hM af Wf Wf @@ -27800,7 +29848,7 @@ oi Zu al Qx -BE +NU BX JR Vr @@ -27820,9 +29868,9 @@ ut Vr Vr Vr -ut -ZZ +AR ZZ +lO ZI PV Jx @@ -27878,7 +29926,7 @@ Dy IK Xl Xl -eQ +hM af Wf Wf @@ -27937,19 +29985,19 @@ Mc Mc nX cL -zw +rM du -rV +Fc Fc Fc TQ Tm yC -AJ -De +TQ +Df Tm Bb -ZZ +lO ZI PV JJ @@ -27969,7 +30017,7 @@ ZQ HX ZQ gc -Vw +Yb lh ZQ Ub @@ -28057,22 +30105,22 @@ SR TQ iu iL -Hz +dQ kB IB Mc Mc nY cL -zw +rM du -rV +Fc Fc Fc TQ MU -LV -LV +AJ +TQ Df Tm Wq @@ -28090,7 +30138,7 @@ gc Vw YL gc -yS +TK yS sn sn @@ -28110,9 +30158,9 @@ Le gc Rx Rx -uy +yy Se -uy +yy kk Br jq @@ -28181,7 +30229,7 @@ oi Zu al Qx -BE +NU il iN jO @@ -28191,16 +30239,16 @@ Mc Mc zw zw -zw +rM du -rV +Fc Fc Fc TQ MU -xF +Dg KD -IE +CH Tm Wq qZ @@ -28225,7 +30273,7 @@ Qz RN Yb lh -YL +Iq gc gc gc @@ -28312,7 +30360,7 @@ TQ il SL SL -qJ +kI SL Mc Mc @@ -28320,14 +30368,14 @@ zw zw qc du -rV Fc -ug +Fc +xF Gv Tm -xF -LV -Dg +xG +TQ +oY Tm Wq qZ @@ -28352,7 +30400,7 @@ Qz RN Yb lh -YL +dH gc HX ZQ @@ -28576,9 +30624,9 @@ Tm Mb Zm Mb -Mb -Mb -Mb +EJ +EJ +EJ Mb Zm Mb @@ -28606,7 +30654,7 @@ gc gc Yb lh -Iq +YL RN Qz cw @@ -28717,7 +30765,7 @@ Br JV ZQ ew -UW +ew ew ZQ gc @@ -28726,8 +30774,8 @@ lh ZQ Ub ZQ -Cf -Cf +Yp +Yp ZQ Ub ZQ @@ -28829,11 +30877,11 @@ Qx Qx rq Mc -Vr -ui -ui -ui -Vr +Mc +Mc +Mc +Mc +Mc AK Mc LV @@ -28846,7 +30894,7 @@ ZQ lh lh lh -ZQ +qm gc dt lh @@ -28956,14 +31004,14 @@ al SR qN Mc -WQ -Hz -Hz -Hz -zq +Vr +ui +ui +ui +Vr Mc Dh -Qx +Tm GF qZ ZI @@ -29085,12 +31133,12 @@ rr Mc WQ Hz -kB -wK +ol +Hz zq Mc -EJ -Qx +sD +Tm Gq qZ ZI @@ -29115,10 +31163,10 @@ Br Br lh Gb -Cf +Yp bb -Cf -Cf +Yp +Yp ZJ Bp DO @@ -29208,16 +31256,16 @@ oi Zu al SR -EJ +IZ Mc WQ -Hz +zg Hz xe zq Mc EJ -Qx +Tm Gg ZZ ZI @@ -29227,7 +31275,7 @@ dS Br JW dS -Bc +Br Ud rl lh @@ -29340,7 +31388,7 @@ Mc WQ Hz vP -Hz +Bk zq Mc RO @@ -29348,7 +31396,7 @@ Qx fu fu fu -Br +Bc lh Mw PV @@ -29367,7 +31415,7 @@ PV lh Mw Br -fs +lh ZQ ZQ GA @@ -29465,8 +31513,8 @@ SR rJ Mc WQ -up -Hz +uv +kB Hz zq Mc @@ -29481,7 +31529,7 @@ Xs Br lh Xs -Bc +Br Ul Yb lh @@ -29592,8 +31640,8 @@ SR EJ Mc WQ -uv -kB +Hz +we Hz zq Mc @@ -29608,7 +31656,7 @@ PV Br GC PV -Bc +Br gc Tb lh @@ -29631,7 +31679,7 @@ gc gc gc gc -gc +uX gc gc Bc @@ -29718,11 +31766,11 @@ al SR Mb Mc -WQ -Hz -we -Hz -zq +Vr +ux +ux +ux +Vr Mc Dj Qx @@ -29731,25 +31779,25 @@ al al Bc ZQ -Cf -Cf +Yp +Yp ZQ -Cf -Cf -Cf +Yp +Yp +Yp ZJ lh Gb -Cf +Yp ZQ -Cf -Cf +Yp +Yp ZQ -Cf -Cf +Yp +Yp gc -Bu -YL +lh +dH gc gc gc @@ -29757,7 +31805,7 @@ gc gc xL bb -Cf +Yp Qz Qz Fr @@ -29845,11 +31893,11 @@ al Qx rq Mc -Vr -ux -ux -ux -Vr +Mc +Mc +Mc +Mc +Mc Mc Dk Qx @@ -30384,7 +32432,7 @@ lh MC Br Yb -Iq +xI gc qG RH @@ -30511,7 +32559,7 @@ Kz dS Br Yb -YL +Iq Bc Bc Bc @@ -30620,7 +32668,7 @@ Zu al Bc Bc -Bc +Br Br Br Br @@ -30756,14 +32804,14 @@ bb ZJ GA Gb -Cf -Cf -Cf +Yp +Yp +Yp XL -Cf +Yp bb -Cf -Cf +Yp +Yp ZJ YL Tx @@ -30883,7 +32931,7 @@ Mh VB Xq Ya -Mh +zS ZQ Mh po @@ -31134,8 +33182,8 @@ PK Bc RR Oi -dM -Cf +VI +Yp HX gc Tb diff --git a/maps/templates/baseone.dmm b/maps/templates/baseone.dmm index 2d51be77280c..471478fb17e5 100644 --- a/maps/templates/baseone.dmm +++ b/maps/templates/baseone.dmm @@ -1589,6 +1589,9 @@ dir = 1; icon_state = "term" }, +/obj/structure/closet/hydrant{ + pixel_x = -32 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "orange" @@ -1683,10 +1686,10 @@ /turf/open/mars_cave, /area/adminlevel/bunker01/mainroom) "eg" = ( -/obj/structure/closet/firecloset, /obj/structure/machinery/light/small{ dir = 8 }, +/obj/structure/machinery/fuelcell_recycler/full, /turf/open/floor/almayer{ dir = 9; icon_state = "orange" @@ -1801,7 +1804,6 @@ /area/adminlevel/bunker01/mainroom) "et" = ( /obj/structure/surface/table/reinforced, -/obj/item/clothing/gloves/yellow, /obj/structure/pipes/vents/pump{ dir = 4 }, @@ -1813,6 +1815,9 @@ dir = 8; pixel_x = -25 }, +/obj/item/fuel_cell, +/obj/item/fuel_cell, +/obj/item/fuel_cell, /turf/open/floor/almayer{ dir = 8; icon_state = "orange" @@ -1884,16 +1889,13 @@ /obj/structure/surface/table/reinforced, /obj/effect/spawner/random/toolbox, /obj/structure/disposalpipe/segment, +/obj/item/clothing/gloves/yellow, /turf/open/floor/almayer{ icon_state = "orangefull" }, /area/adminlevel/bunker01/engineering) "eB" = ( -/obj/structure/machinery/power/geothermal{ - buildstate = 4; - icon_state = "on100"; - is_on = 1 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/almayer{ icon_state = "orangefull" }, @@ -1902,11 +1904,7 @@ /obj/structure/machinery/light/small{ pixel_y = 0 }, -/obj/structure/machinery/power/geothermal{ - buildstate = 4; - icon_state = "on100"; - is_on = 1 - }, +/obj/structure/machinery/power/reactor/colony, /turf/open/floor/almayer{ icon_state = "orangefull" }, diff --git a/maps/templates/freelancer_ert_station.dmm b/maps/templates/freelancer_ert_station.dmm deleted file mode 100644 index 44d47c7952ef..000000000000 --- a/maps/templates/freelancer_ert_station.dmm +++ /dev/null @@ -1,1722 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/space/basic, -/area/space) -"r" = ( -/obj/docking_port/stationary/emergency_response/idle_port1, -/turf/open/floor/plating, -/area/space) -"t" = ( -/turf/closed/wall/r_wall/unmeltable, -/area/space) -"u" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/plating/almayer, -/area/space) -"x" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, -/turf/open/floor/plating/almayer, -/area/space) -"E" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N" - }, -/turf/open/floor/plating/almayer, -/area/space) -"U" = ( -/turf/open/floor/plating/almayer, -/area/space) -"V" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/almayer, -/area/space) -"X" = ( -/turf/open/floor/plating, -/area/space) - -(1,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(3,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(4,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(5,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(6,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(7,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(8,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(9,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(10,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(11,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(12,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(13,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(14,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(15,1,1) = {" -a -a -a -a -a -a -a -a -a -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(16,1,1) = {" -a -a -a -a -a -a -a -a -a -t -U -x -x -x -x -x -x -x -x -x -x -x -x -x -x -x -U -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(17,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(18,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -r -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(19,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(20,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(21,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(22,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(23,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(24,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(25,1,1) = {" -a -a -a -a -a -a -a -a -a -t -V -X -X -X -X -X -X -X -X -X -X -X -X -X -X -X -E -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(26,1,1) = {" -a -a -a -a -a -a -a -a -a -t -U -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -U -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(27,1,1) = {" -a -a -a -a -a -a -a -a -a -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -t -a -a -a -a -a -a -a -a -a -a -a -a -"} -(28,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(29,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(30,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(31,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(32,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(33,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(34,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(35,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(36,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(37,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(38,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(39,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} -(40,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -"} diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/lazy_templates/clf_ert_station.dmm similarity index 100% rename from maps/templates/clf_ert_station.dmm rename to maps/templates/lazy_templates/clf_ert_station.dmm diff --git a/maps/templates/lazy_templates/freelancer_ert_station.dmm b/maps/templates/lazy_templates/freelancer_ert_station.dmm new file mode 100644 index 000000000000..bf9709e2150d --- /dev/null +++ b/maps/templates/lazy_templates/freelancer_ert_station.dmm @@ -0,0 +1,2379 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ae" = ( +/obj/structure/machinery/cm_vending/gear/antag{ + hacked = 1; + name = "\improper Response Team Automated Gear Rack"; + use_snowflake_points = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/ert_station) +"aj" = ( +/obj/structure/machinery/cryopod, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"aA" = ( +/obj/structure/machinery/autolathe/full, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/adminlevel/ert_station) +"bd" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/snacks/pastatomato, +/obj/item/ashtray/bronze{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -7; + pixel_y = 16 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"bk" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/recharger, +/obj/item/device/defibrillator/upgraded, +/obj/item/clothing/glasses/hud/health, +/obj/item/roller, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"bT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"cw" = ( +/obj/structure/machinery/chem_dispenser/soda{ + density = 0; + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"cL" = ( +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"cR" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"cS" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -11 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"de" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"dj" = ( +/obj/structure/machinery/bioprinter{ + stored_metal = 1000 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"dz" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Bathroom" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"dI" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"dJ" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"dL" = ( +/obj/structure/sign/safety, +/turf/closed/wall, +/area/adminlevel/ert_station) +"dS" = ( +/obj/structure/machinery/washing_machine, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"ee" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"em" = ( +/obj/structure/machinery/cm_vending/sorted/walkman, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"eG" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"eH" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "Restroom" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"eN" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"fX" = ( +/obj/structure/machinery/medical_pod/sleeper, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"fY" = ( +/obj/structure/window/framed/colony/reinforced/hull, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/adminlevel/ert_station) +"gi" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/book/manual/chef_recipes, +/obj/item/clothing/head/chefhat, +/obj/item/storage/box/drinkingglasses, +/obj/item/reagent_container/food/drinks/shaker, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"gm" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/ert_station) +"gI" = ( +/obj/structure/sign/poster/clf, +/turf/closed/wall, +/area/adminlevel/ert_station) +"gS" = ( +/obj/structure/sign/safety/debark_lounge, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"gU" = ( +/obj/docking_port/stationary/emergency_response/idle_port2, +/turf/open/floor/plating, +/area/adminlevel/ert_station) +"ha" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 6 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = -9; + pixel_y = -4 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"hl" = ( +/obj/structure/machinery/chem_dispenser, +/obj/item/reagent_container/glass/beaker/bluespace, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"hr" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/ert_station) +"hs" = ( +/obj/structure/sign/safety/maint, +/turf/closed/wall, +/area/adminlevel/ert_station) +"hx" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 8; + name = "Secure Storage" + }, +/obj/structure/machinery/door/poddoor/almayer{ + dir = 4; + unacidable = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/ert_station) +"hE" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"ij" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/paper_bin/wy, +/obj/item/tool/pen, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"in" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"io" = ( +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"ju" = ( +/obj/structure/machinery/cm_vending/sorted/boozeomat/chess, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"jF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"jJ" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"jZ" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + damage_cap = 50000; + name = "\improper Hangar"; + no_panel = 1 + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "tcomms" + }, +/area/adminlevel/ert_station) +"kn" = ( +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"kZ" = ( +/obj/item/prop/helmetgarb/rosary, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/ert_station) +"lp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"lx" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/adminlevel/ert_station) +"lP" = ( +/obj/structure/machinery/cm_vending/sorted/medical/blood{ + req_access = null + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"lQ" = ( +/obj/structure/sign/safety/debark_lounge{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"mw" = ( +/obj/structure/sign/nosmoking_1, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"mM" = ( +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"mR" = ( +/obj/structure/sign/poster{ + pixel_x = -32; + serial_number = 16 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"mX" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"nx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"nU" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Engineering Storage" + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"oc" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/reagent_container/food/snacks/soylentgreen, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = 11; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"oj" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/adminlevel/ert_station) +"ou" = ( +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"oE" = ( +/obj/structure/bed/chair/comfy, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"oL" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"pj" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + dir = 1; + name = "Detention Cell"; + req_access = null + }, +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/adminlevel/ert_station) +"pK" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/reagent_dispensers/beerkeg{ + density = 0 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"pX" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/obj/effect/spider/stickyweb, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"qt" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "plating_striped" + }, +/area/adminlevel/ert_station) +"qV" = ( +/obj/structure/sign/poster/music, +/turf/closed/wall, +/area/adminlevel/ert_station) +"qX" = ( +/obj/structure/machinery/iv_drip, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"rN" = ( +/turf/closed/wall/mineral/gold, +/area/adminlevel/ert_station) +"rS" = ( +/obj/structure/sign/goldenplaque{ + pixel_y = 27 + }, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/ert_station) +"su" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"sy" = ( +/obj/structure/machinery/vending/security, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"tx" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"tA" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"tD" = ( +/obj/structure/machinery/cm_vending/sorted/boozeomat, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"tW" = ( +/obj/structure/machinery/chem_dispenser/soda/beer{ + density = 0; + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"um" = ( +/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" + }, +/obj/item/storage/box/monkeycubes, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"uq" = ( +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"vo" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/clothing/suit/chef/classic, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/head/chefhat, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"vM" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/item/reagent_container/food/condiment/enzyme, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"vO" = ( +/obj/structure/sign/poster{ + desc = "You are becoming hysterical."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "plating_striped" + }, +/area/adminlevel/ert_station) +"vS" = ( +/obj/structure/machinery/chem_master, +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"wd" = ( +/obj/structure/window/framed/colony, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"wv" = ( +/obj/structure/surface/table/almayer, +/obj/structure/bedsheetbin{ + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"wF" = ( +/obj/structure/closet{ + name = "boxing attire" + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"xn" = ( +/obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access{ + req_access = null + }, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"xN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"xR" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"yq" = ( +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"yw" = ( +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"yP" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 2; + name = "Lounge" + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"zy" = ( +/obj/structure/mirror, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"zz" = ( +/obj/structure/machinery/medical_pod/bodyscanner, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"zR" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"Aw" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med/souto, +/turf/closed/wall, +/area/adminlevel/ert_station) +"AD" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"AJ" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"AV" = ( +/obj/structure/machinery/newscaster/security_unit, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"BI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"BL" = ( +/obj/structure/target{ + name = "punching bag" + }, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Cm" = ( +/obj/structure/closet/secure_closet/freezer/fridge/groceries, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"CF" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 28 + }, +/obj/structure/bed/sofa/south/grey/right, +/obj/item/trash/buritto, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"CJ" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"CP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"Ea" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"Ef" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"Es" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/antag_guns{ + hacked = 1; + name = "\improper Response Team Automated Guns Rack"; + use_power = 0; + use_snowflake_points = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/ert_station) +"Ey" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Dormitories" + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"EK" = ( +/obj/structure/janitorialcart, +/obj/item/reagent_container/glass/bucket/janibucket, +/obj/item/reagent_container/spray/cleaner, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign, +/obj/item/tool/mop, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"Fg" = ( +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"Fo" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"FB" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/ert_station) +"FQ" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"FZ" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Gh" = ( +/obj/structure/bed/stool, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Gk" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"Gu" = ( +/obj/structure/machinery/vending/dinnerware, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Hg" = ( +/obj/structure/closet/secure_closet/brig, +/obj/item/book/manual/marine_law, +/obj/item/handcuffs, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Hj" = ( +/obj/structure/sign/safety/medical, +/obj/structure/sign/safety/autodoc{ + pixel_x = 15 + }, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"Hy" = ( +/obj/item/newspaper, +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/ert_station) +"HI" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"HN" = ( +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/adminlevel/ert_station) +"HR" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"HS" = ( +/obj/item/trash/cigbutt/cigarbutt, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"Ih" = ( +/obj/structure/noticeboard{ + pixel_y = 34 + }, +/obj/structure/machinery/computer/arcade, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Im" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"IG" = ( +/obj/structure/toilet, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"IP" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Jg" = ( +/obj/structure/sign/safety/galley{ + pixel_x = -17 + }, +/obj/structure/machinery/door/window/southleft, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"Jn" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_x = -17 + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"JD" = ( +/obj/structure/surface/table/gamblingtable, +/obj/item/device/flashlight/lamp/green{ + pixel_y = 10 + }, +/obj/item/storage/fancy/cigar, +/obj/item/storage/box/matches{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/item/coin/uranium, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"JW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 27 + }, +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Kp" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Kq" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/processor{ + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"Kt" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" + }, +/area/adminlevel/ert_station) +"KK" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray, +/obj/item/tool/kitchen/knife{ + pixel_x = 3 + }, +/obj/item/tool/kitchen/knife/butcher{ + pixel_x = -8 + }, +/obj/item/tool/kitchen/rollingpin, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"KN" = ( +/obj/structure/machinery/autodoc_console, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"Lh" = ( +/turf/open/space/basic, +/area/space) +"Li" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Lt" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"LN" = ( +/turf/open/floor/almayer{ + icon_state = "plating_striped" + }, +/area/adminlevel/ert_station) +"Mj" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/snacks/milosoup{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/snacks/meatsteak{ + pixel_y = -2 + }, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"Ns" = ( +/obj/structure/machinery/optable, +/obj/item/tank/anesthetic, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Of" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Os" = ( +/obj/structure/machinery/faxmachine, +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"OA" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"Pb" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Pd" = ( +/obj/structure/machinery/sleep_console, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"Pn" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "Restroom" + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"PC" = ( +/turf/open/floor/carpet{ + desc = "Plush, waterproof carpet. Apparently it's fire resistant while remaining quite soft."; + name = "\improper carpet" + }, +/area/adminlevel/ert_station) +"PP" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Qc" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"Qi" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"Qv" = ( +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/ert_station) +"QQ" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/almayer{ + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Rb" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Rk" = ( +/obj/structure/sign/poster/art, +/turf/closed/wall/r_wall/unmeltable, +/area/adminlevel/ert_station) +"Rz" = ( +/obj/structure/machinery/medical_pod/autodoc/unskilled, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"RC" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"RG" = ( +/obj/structure/machinery/cm_vending/sorted/medical/no_access{ + req_access = null + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"RO" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/adminlevel/ert_station) +"RW" = ( +/obj/structure/disposalpipe/junction, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Sh" = ( +/turf/closed/wall, +/area/adminlevel/ert_station) +"Sk" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"Su" = ( +/obj/structure/closet/cabinet, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"Sy" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/bed/sofa/south/grey, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"SH" = ( +/obj/structure/sign/poster{ + pixel_x = -32; + serial_number = 16 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"SL" = ( +/obj/structure/machinery/body_scanconsole, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/ert_station) +"SP" = ( +/obj/structure/machinery/gibber{ + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"Ta" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Th" = ( +/turf/open/floor/plating, +/area/adminlevel/ert_station) +"TM" = ( +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"TV" = ( +/obj/structure/sign/poster/hunk, +/obj/structure/window/framed/colony/reinforced/hull, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/adminlevel/ert_station) +"Un" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "sterile_green_side" + }, +/area/adminlevel/ert_station) +"Ux" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"UT" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Vd" = ( +/obj/structure/surface/table/woodentable, +/obj/item/pizzabox/meat{ + pixel_y = 8 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/adminlevel/ert_station) +"Vz" = ( +/obj/structure/sign/nosmoking_2, +/turf/closed/wall, +/area/adminlevel/ert_station) +"VF" = ( +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"VJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"VR" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/plating/almayer, +/area/adminlevel/ert_station) +"VU" = ( +/obj/item/trash/barcardine, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"VV" = ( +/obj/structure/machinery/cm_vending/clothing/antag{ + name = "\improper Response Team Automated Equipment Rack" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/adminlevel/ert_station) +"VZ" = ( +/obj/structure/barricade/handrail{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"Wf" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/adminlevel/ert_station) +"Wl" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/adminlevel/ert_station) +"Wn" = ( +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/adminlevel/ert_station) +"WR" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -11 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"Xb" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/adminlevel/ert_station) +"Xx" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station) +"XN" = ( +/obj/structure/transmitter/hidden{ + dir = 8; + name = "Station Telephone"; + phone_id = "Unknown Signal"; + pixel_x = 14 + }, +/turf/open/floor/almayer{ + icon_state = "floor" + }, +/area/adminlevel/ert_station) +"XQ" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21" + }, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) +"Yk" = ( +/obj/structure/sign/safety/med_life_support, +/turf/closed/wall, +/area/adminlevel/ert_station) +"YD" = ( +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "greencorner" + }, +/area/adminlevel/ert_station) +"YM" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/item/reagent_container/food/snacks/sandwich{ + layer = 4; + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/reagent_container/food/snacks/popcorn{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/reagent_container/food/snacks/appletart, +/obj/item/reagent_container/food/condiment/peppermill, +/obj/item/reagent_container/food/condiment/saltshaker, +/turf/open/floor/carpet, +/area/adminlevel/ert_station) +"YT" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/microwave{ + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station) +"Zp" = ( +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + dir = 1; + name = "\improper Medbay"; + req_access = null; + req_one_access = null + }, +/obj/structure/sign/safety/med_cryo{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station) +"ZS" = ( +/obj/structure/machinery/vending/cigarette/colony, +/turf/open/floor/wood/ship, +/area/adminlevel/ert_station) + +(1,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +"} +(2,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +cL +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +VR +cL +Fg +"} +(3,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(4,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +gU +Th +bT +Fg +"} +(5,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(6,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(7,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(8,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(9,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(10,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(11,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +CP +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +Th +bT +Fg +"} +(12,1,1) = {" +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Lh +Fg +cL +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +Ea +cL +Fg +"} +(13,1,1) = {" +Fg +Fg +Fg +Fg +zy +Fg +Fg +Fg +Fg +Fg +Fg +Fg +lQ +Fg +Fg +Fg +Fg +Fg +AV +Fg +lQ +Fg +jZ +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +"} +(14,1,1) = {" +Fg +IG +dz +kn +WR +wv +dS +Sh +Su +uq +uq +oE +ij +Sh +Ta +Rb +mR +Ux +CJ +UT +Rb +Rb +Rb +yq +yq +SH +yq +yq +yq +yq +SH +BI +Xb +pj +IP +HI +HR +"} +(15,1,1) = {" +Fg +Sh +Sh +kn +kn +kn +jF +Pn +AD +AD +AD +AD +AD +Ey +nx +tx +OA +mM +lp +mM +yq +BI +xR +YD +VZ +VZ +VZ +RO +xR +eG +eG +eN +Qv +fY +dJ +hr +Fg +"} +(16,1,1) = {" +Fg +IG +dz +kn +kn +kn +VJ +Sh +aj +tA +tA +tA +tA +gI +dI +mM +Lt +mX +RW +mX +xR +FQ +yq +hE +FB +FB +gm +VF +yq +HN +Of +Hg +sy +TV +Li +oc +Fg +"} +(17,1,1) = {" +Fg +Sh +Sh +Sh +Sh +kn +EK +Sh +Sh +Sh +qV +Sh +Sh +Sh +JW +mM +io +Hy +PC +PC +dI +lp +yq +hE +gm +FB +FB +VF +yq +wF +Sh +Sh +Sh +Fg +Fg +Fg +Fg +"} +(18,1,1) = {" +Fg +Cm +zR +vM +Sh +kn +RC +Sh +Ih +ou +ou +ou +de +Sh +Sy +mM +io +PC +PC +PC +dI +lp +yq +hE +FB +FB +FB +VF +yq +QQ +Sh +xn +cS +kn +AJ +Ns +Fg +"} +(19,1,1) = {" +Fg +KK +TM +TM +Sh +eH +Sh +Aw +XQ +ou +ou +ou +JD +Sh +CF +yq +io +PC +rN +rS +dI +xN +HS +Kt +Xx +Xx +Xx +lx +yq +BL +Yk +RG +Pb +kn +yw +um +Fg +"} +(20,1,1) = {" +Fg +Kq +TM +TM +Jg +ou +Jn +ou +uq +Ef +Ef +uq +Im +wd +Vd +mM +io +PC +PC +kZ +dI +lp +HN +in +in +in +in +in +in +FZ +Zp +Kp +Un +zz +Kp +bk +Fg +"} +(21,1,1) = {" +Fg +SP +TM +TM +gi +Gh +ou +ou +uq +Mj +bd +uq +ou +wd +dI +mM +io +PC +PC +PC +dI +lp +io +Sh +hs +nU +Vz +Fg +hx +Fg +Hj +hl +kn +SL +kn +fX +Fg +"} +(22,1,1) = {" +Fg +YT +TM +TM +vo +Gh +ou +ou +uq +Fo +Fo +uq +ou +yP +dI +mM +yq +Rb +Rb +Rb +yq +lp +io +Sh +pX +cR +Wf +Fg +vO +VV +Fg +vS +Wn +Wn +Wn +Pd +Fg +"} +(23,1,1) = {" +Fg +cw +TM +TM +YM +Gh +ou +VU +ou +ou +ou +ou +ou +wd +dI +yq +yq +su +mM +su +yq +xN +io +Sh +Sk +yq +oj +Fg +qt +ae +mw +Rz +kn +Wn +qX +dj +Fg +"} +(24,1,1) = {" +Fg +tW +TM +TM +pK +Gh +ou +PP +Gu +ZS +em +tD +ju +wd +oL +yq +Os +ee +XN +ha +jJ +Gk +FZ +dL +Wl +Qc +aA +Fg +LN +Es +Fg +KN +kn +Qi +Qi +lP +Fg +"} +(25,1,1) = {" +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +gS +Fg +gS +Fg +Fg +Rk +Fg +gS +Fg +gS +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +Fg +"} diff --git a/maps/templates/twe_ert_station.dmm b/maps/templates/lazy_templates/twe_ert_station.dmm similarity index 100% rename from maps/templates/twe_ert_station.dmm rename to maps/templates/lazy_templates/twe_ert_station.dmm diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/lazy_templates/upp_ert_station.dmm similarity index 100% rename from maps/templates/upp_ert_station.dmm rename to maps/templates/lazy_templates/upp_ert_station.dmm diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/lazy_templates/weyland_ert_station.dmm similarity index 100% rename from maps/templates/weyland_ert_station.dmm rename to maps/templates/lazy_templates/weyland_ert_station.dmm diff --git a/sound/machines/pda_ping.ogg b/sound/machines/pda_ping.ogg new file mode 100644 index 000000000000..2f3135bc3c22 Binary files /dev/null and b/sound/machines/pda_ping.ogg differ diff --git a/sound/weapons/gun_vulture_mark.ogg b/sound/weapons/gun_vulture_mark.ogg new file mode 100644 index 000000000000..6c7ae7b27797 Binary files /dev/null and b/sound/weapons/gun_vulture_mark.ogg differ diff --git a/strings/metatips.txt b/strings/metatips.txt index a28c90239593..00bb827de69f 100644 --- a/strings/metatips.txt +++ b/strings/metatips.txt @@ -12,6 +12,7 @@ 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. +As an observer, you can quickly follow someone by ctrl-clicking on their sprite. 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. diff --git a/tgui/docs/component-reference.md b/tgui/docs/component-reference.md index d814fc343a72..3789016447cc 100644 --- a/tgui/docs/component-reference.md +++ b/tgui/docs/component-reference.md @@ -250,6 +250,7 @@ A button with an extra confirmation step, using native button component. - See inherited props: [Button](#button) - `confirmContent: string` - Text to display after first click; defaults to "Confirm?" - `confirmColor: string` - Color to display after first click; defaults to "bad" +- `onConfirmChange: function` - Called when the clickedOnce state changes: When the element is clicked the first time or unfocused. ### `Button.Input` diff --git a/tgui/packages/common/ping.js b/tgui/packages/common/ping.js new file mode 100644 index 000000000000..e8f52882b6ae --- /dev/null +++ b/tgui/packages/common/ping.js @@ -0,0 +1,108 @@ +/** + * Adapted pinging library based on: + * @file https://www.jsdelivr.com/package/npm/ping.js + * @copyright 2021 Alfred Gutierrez + * @license MIT + */ + +/** + * Creates a Ping instance. + * @returns {Ping} + * @constructor + */ +export class Ping { + constructor(opt) { + this.opt = opt || {}; + this.favicon = this.opt.favicon || '/favicon.ico'; + this.timeout = this.opt.timeout || 10000; + this.logError = this.opt.logError || false; + this.abort = false; + } + + /** + * Pings source after a delay and triggers a callback when completed. + * @param source Source of the website or server, including protocol and port. + * @param callback Callback function to trigger when completed. Returns error and ping value. + * @param delay Optional number of milliseconds to wait before starting. + */ + ping(source, callback, delay = 1000) { + this.abort = false; + let timer; + if (delay > 0) { + timer = setTimeout(() => { + if (this.abort) { + return; + } + this.pingNow(source, callback); + }, delay); + return; + } + this.pingNow(source, callback); + } + + /** + * Pings source immediately and triggers a callback when completed. + * @param source Source of the website or server, including protocol and port. + * @param callback Callback function to trigger when completed. Returns error and ping value. + */ + pingNow(source, callback) { + let self = this; + self.abort = false; + self.wasSuccess = false; + self.img = new Image(); + self.img.onload = (e) => { + self.wasSuccess = true; + pingCheck.call(self, e); + }; + self.img.onerror = (e) => { + self.wasSuccess = false; + pingCheck.call(self, e); + }; + + let timer; + let start = new Date(); + + if (self.timeout) { + timer = setTimeout(() => { + self.wasSuccess = false; + pingCheck.call(self, undefined); + }, self.timeout); + } + + /** + * Times ping and triggers callback. + */ + const pingCheck = function (e) { + if (timer) { + clearTimeout(timer); + } + if (this.abort) { + return; + } + let pong = new Date() - start; + + if (typeof callback === 'function') { + // When operating in timeout mode, the timeout callback doesn't pass [event] as e. + // Notice [this] instead of [self], since .call() was used with context + if (!this.wasSuccess) { + if (self.logError) { + console.error('error loading resource: ' + e.error); + } + return callback(e ? 'Error' : 'Timed Out', pong); + } + return callback(null, pong); + } else { + throw new Error('Callback is not a function.'); + } + }; + + self.img.src = source + self.favicon + '?' + +new Date(); // Trigger image load with cache buster + } + + /** + * Aborts any pending ping request. + */ + cancel() { + this.abort = true; + } +} diff --git a/tgui/packages/tgfont/config.cjs b/tgui/packages/tgfont/config.cjs index 4f6b58f1061e..73d96ac6ce90 100644 --- a/tgui/packages/tgfont/config.cjs +++ b/tgui/packages/tgfont/config.cjs @@ -7,8 +7,12 @@ module.exports = { name: 'tgfont', inputDir: './icons', + normalize: true, outputDir: './dist', fontTypes: ['woff2', 'eot'], assetTypes: ['css'], prefix: 'tg', + formatOptions: { + preserveAspectRatio: true, + }, }; diff --git a/tgui/packages/tgfont/icons/image-minus.svg b/tgui/packages/tgfont/icons/image-minus.svg new file mode 100644 index 000000000000..8c3231917ff9 --- /dev/null +++ b/tgui/packages/tgfont/icons/image-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/icons/image-plus.svg b/tgui/packages/tgfont/icons/image-plus.svg new file mode 100644 index 000000000000..1658509429e3 --- /dev/null +++ b/tgui/packages/tgfont/icons/image-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/icons/sound-minus.svg b/tgui/packages/tgfont/icons/sound-minus.svg new file mode 100644 index 000000000000..df51179d4b53 --- /dev/null +++ b/tgui/packages/tgfont/icons/sound-minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/icons/sound-plus.svg b/tgui/packages/tgfont/icons/sound-plus.svg new file mode 100644 index 000000000000..c5f40d53b560 --- /dev/null +++ b/tgui/packages/tgfont/icons/sound-plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tgui/packages/tgfont/static/tgfont.css b/tgui/packages/tgfont/static/tgfont.css index 992f088913c4..49e59cdd6959 100644 --- a/tgui/packages/tgfont/static/tgfont.css +++ b/tgui/packages/tgfont/static/tgfont.css @@ -1,7 +1,7 @@ @font-face { font-family: "tgfont"; - src: url("./tgfont.woff2?b809fa4bdd4aff7084540f130e4e524b") format("woff2"), -url("./tgfont.eot?b809fa4bdd4aff7084540f130e4e524b#iefix") format("embedded-opentype"); + src: url("./tgfont.woff2?0843e2c3dacddd319720859dcaeda508") format("woff2"), +url("./tgfont.eot?0843e2c3dacddd319720859dcaeda508#iefix") format("embedded-opentype"); } i[class^="tg-"]:before, i[class*=" tg-"]:before { @@ -15,39 +15,15 @@ i[class^="tg-"]:before, i[class*=" tg-"]:before { -moz-osx-font-smoothing: grayscale; } -.tg-air-tank-slash:before { - content: "\f101"; -} -.tg-air-tank:before { - content: "\f102"; -} -.tg-bad-touch:before { - content: "\f103"; -} .tg-image-minus:before { - content: "\f104"; + content: "\f101"; } .tg-image-plus:before { - content: "\f105"; -} -.tg-nanotrasen-logo:before { - content: "\f106"; -} -.tg-non-binary:before { - content: "\f107"; -} -.tg-prosthetic-full:before { - content: "\f108"; -} -.tg-prosthetic-leg:before { - content: "\f109"; + content: "\f102"; } .tg-sound-minus:before { - content: "\f10a"; + content: "\f103"; } .tg-sound-plus:before { - content: "\f10b"; -} -.tg-syndicate-logo:before { - content: "\f10c"; + content: "\f104"; } diff --git a/tgui/packages/tgfont/static/tgfont.eot b/tgui/packages/tgfont/static/tgfont.eot index e879c327d3f1..17e3790d026c 100644 Binary files a/tgui/packages/tgfont/static/tgfont.eot and b/tgui/packages/tgfont/static/tgfont.eot differ diff --git a/tgui/packages/tgfont/static/tgfont.woff2 b/tgui/packages/tgfont/static/tgfont.woff2 index 6a3be3d2cb40..a4cc01a984a1 100644 Binary files a/tgui/packages/tgfont/static/tgfont.woff2 and b/tgui/packages/tgfont/static/tgfont.woff2 differ diff --git a/tgui/packages/tgui-panel/ping/PingIndicator.js b/tgui/packages/tgui-panel/ping/PingIndicator.js index b2355820e58a..4e64207d115c 100644 --- a/tgui/packages/tgui-panel/ping/PingIndicator.js +++ b/tgui/packages/tgui-panel/ping/PingIndicator.js @@ -6,11 +6,12 @@ import { Color } from 'common/color'; import { toFixed } from 'common/math'; -import { useSelector } from 'tgui/backend'; -import { Box } from 'tgui/components'; +import { useSelector, useBackend } from 'tgui/backend'; +import { Button, Box } from 'tgui/components'; import { selectPing } from './selectors'; export const PingIndicator = (props) => { + const { act } = useBackend(); const ping = useSelector(selectPing); const color = Color.lookup(ping.networkQuality, [ new Color(220, 40, 40), @@ -19,9 +20,19 @@ export const PingIndicator = (props) => { ]); const roundtrip = ping.roundtrip ? toFixed(ping.roundtrip) : '--'; return ( -
+
+ ); }; diff --git a/tgui/packages/tgui/components/Button.jsx b/tgui/packages/tgui/components/Button.jsx index 4264b0767115..dbffb6a72c95 100644 --- a/tgui/packages/tgui/components/Button.jsx +++ b/tgui/packages/tgui/components/Button.jsx @@ -172,6 +172,9 @@ export class ButtonConfirm extends Component { } else { window.removeEventListener('click', this.handleClick); } + if (this.props.onConfirmChange) { + this.props.onConfirmChange(clickedOnce); + } } render() { @@ -183,6 +186,7 @@ export class ButtonConfirm extends Component { color, content, onClick, + onConfirmChange, ...rest } = this.props; return ( diff --git a/tgui/packages/tgui/components/RestrictedInput.jsx b/tgui/packages/tgui/components/RestrictedInput.jsx index 082fc606d998..f61025039f34 100644 --- a/tgui/packages/tgui/components/RestrictedInput.jsx +++ b/tgui/packages/tgui/components/RestrictedInput.jsx @@ -1,48 +1,56 @@ -import { classes } from 'common/react'; +import { KEY_ENTER, KEY_ESCAPE } from 'common/keycodes'; import { clamp } from 'common/math'; +import { classes } from 'common/react'; import { Component, createRef } from 'react'; + import { Box } from './Box'; -import { KEY_ESCAPE, KEY_ENTER } from 'common/keycodes'; -const DEFAULT_MIN = -16777216; -const DEFAULT_MAX = 16777216; +const DEFAULT_MIN = 0; +const DEFAULT_MAX = 10000; /** - * Takes a string input and parses integers from it. + * Takes a string input and parses integers or floats from it. * If none: Minimum is set. * Else: Clamps it to the given range. */ -const getClampedNumber = (value, minValue, maxValue) => { +const getClampedNumber = (value, minValue, maxValue, allowFloats) => { const minimum = minValue || DEFAULT_MIN; const maximum = maxValue || maxValue === 0 ? maxValue : DEFAULT_MAX; - const defaultValue = maximum < 0 ? minimum : minimum > 0 ? minimum : 0; if (!value || !value.length) { - return String(defaultValue); + return String(minimum); } - let parsedValue = parseFloat(value.replace(/[^\-.\d]/g, ''), 10); + let parsedValue = allowFloats + ? parseFloat(value.replace(/[^\-\d.]/g, '')) + : parseInt(value.replace(/[^\-\d]/g, ''), 10); if (isNaN(parsedValue)) { - return String(defaultValue); + return String(minimum); } else { return String(clamp(parsedValue, minimum, maximum)); } }; export class RestrictedInput extends Component { - constructor() { - super(); + constructor(props) { + super(props); this.inputRef = createRef(); this.state = { editing: false, }; this.handleBlur = (e) => { + const { maxValue, minValue, allowFloats } = this.props; const { editing } = this.state; if (editing) { + e.target.value = getClampedNumber( + e.target.value, + minValue, + maxValue, + allowFloats + ); this.setEditing(false); } }; this.handleChange = (e) => { - const { maxValue, minValue, onChange } = this.props; - e.target.value = getClampedNumber(e.target.value, minValue, maxValue); + const { onChange } = this.props; if (onChange) { onChange(e, +e.target.value); } @@ -64,9 +72,14 @@ export class RestrictedInput extends Component { } }; this.handleKeyDown = (e) => { - const { maxValue, minValue, onChange, onEnter } = this.props; + const { maxValue, minValue, onChange, onEnter, allowFloats } = this.props; if (e.keyCode === KEY_ENTER) { - const safeNum = getClampedNumber(e.target.value, minValue, maxValue); + const safeNum = getClampedNumber( + e.target.value, + minValue, + maxValue, + allowFloats + ); this.setEditing(false); if (onChange) { onChange(e, +safeNum); @@ -91,11 +104,16 @@ export class RestrictedInput extends Component { } componentDidMount() { - const { maxValue, minValue } = this.props; + const { maxValue, minValue, allowFloats } = this.props; const nextValue = this.props.value?.toString(); const input = this.inputRef.current; if (input) { - input.value = getClampedNumber(nextValue, minValue, maxValue); + input.value = getClampedNumber( + nextValue, + minValue, + maxValue, + allowFloats + ); } if (this.props.autoFocus || this.props.autoSelect) { setTimeout(() => { @@ -109,14 +127,19 @@ export class RestrictedInput extends Component { } componentDidUpdate(prevProps, _) { - const { maxValue, minValue } = this.props; + const { maxValue, minValue, allowFloats } = this.props; const { editing } = this.state; const prevValue = prevProps.value?.toString(); const nextValue = this.props.value?.toString(); const input = this.inputRef.current; if (input && !editing) { if (nextValue !== prevValue && nextValue !== input.value) { - input.value = getClampedNumber(nextValue, minValue, maxValue); + input.value = getClampedNumber( + nextValue, + minValue, + maxValue, + allowFloats + ); } } } diff --git a/tgui/packages/tgui/interfaces/AresAdmin.js b/tgui/packages/tgui/interfaces/AresAdmin.js new file mode 100644 index 000000000000..4f19cf452b17 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AresAdmin.js @@ -0,0 +1,1946 @@ +import { useBackend } from '../backend'; +import { Flex, Box, Section, Button, Stack } from '../components'; +import { Window } from '../layouts'; + +const PAGES = { + 'login': () => Login, + 'main': () => MainMenu, + 'announcements': () => AnnouncementLogs, + 'bioscans': () => BioscanLogs, + 'bombardments': () => BombardmentLogs, + 'apollo': () => ApolloLog, + 'access_log': () => AccessLogs, + 'delete_log': () => DeletionLogs, + 'flight_log': () => FlightLogs, + 'talking': () => ARESTalk, + 'deleted_talks': () => DeletedTalks, + 'read_deleted': () => ReadingTalks, + 'security': () => Security, + 'requisitions': () => Requisitions, + 'emergency': () => Emergency, + 'admin_access_log': () => AdminAccessLogs, + 'access_management': () => AccessManagement, + 'maintenance_management': () => MaintManagement, +}; + +export const AresAdmin = (props, context) => { + const { data } = useBackend(context); + const { current_menu, sudo } = data; + const PageComponent = PAGES[current_menu](); + + let themecolor = 'crtyellow'; + if (sudo >= 1) { + themecolor = 'crtred'; + } + + return ( + + + + + + ); +}; + +const Login = (props, context) => { + const { act } = useBackend(context); + + return ( + + ARES v3.2 Remote Interface + + WY-DOS Executive + + Version 4.5.2 + Copyright © 2182, Weyland Yutani Corp. + +