diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4dfa55a79231..e969d1aa7447 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,8 +24,13 @@ /tools/docker/ @Fira /Dockerfile @Fira +# Nanu + +/maps @Nanu308 + # Zonespace -/code/modules/gear_presets/survivors.dm @zonespace27 +/code/datums/tutorial/ @Zonespace27 +/maps/tutorial/ @Zonespace27 # MULTIPLE OWNERS diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cb1790053744..14cf6001058f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,6 +16,9 @@ Remember: something that is self-evident to you might not be to others. Explain # Testing Photographs and Procedure + + +
Screenshots & Videos diff --git a/.github/alternate_byond_versions.txt b/.github/alternate_byond_versions.txt index 005803964cca..c96908590dac 100644 --- a/.github/alternate_byond_versions.txt +++ b/.github/alternate_byond_versions.txt @@ -6,4 +6,4 @@ # Example: # 500.1337: runtimestation -515.1610: lv624 +515.1630: lv624 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/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 0488055312f7..e76e224522a0 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -63,30 +63,16 @@ jobs: odlint: name: Lint with OpenDream - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 - - name: Get OpenDream Version - run: | - source dependencies.sh - echo "OPENDREAM_VERSION=$OPENDREAM_VERSION" >> $GITHUB_ENV - - name: Restore OpenDream cache - uses: actions/cache@v3 - id: cache-od + - uses: actions/checkout@v4 + - uses: robinraju/release-downloader@v1.9 with: - path: ~/OpenDream - key: ${{ runner.os }}-opendream-${{ env.OPENDREAM_VERSION }} - - name: Download OpenDream - if: steps.cache-od.outputs.cache-hit != 'true' - run: | - bash tools/ci/download_od.sh - - name: Setup OpenDream - if: steps.cache-od.outputs.cache-hit != 'true' - run: | - bash tools/ci/setup_od.sh - - name: Run OpenDream - run: | - bash tools/ci/run_od.sh + repository: "OpenDreamProject/OpenDream" + tag: "latest" + fileName: "DMCompiler_linux-x64.tar.gz" + extract: true + - run: ./DMCompiler_linux-x64/DMCompiler --suppress-unimplemented colonialmarines.dme compile_all_maps: if: "!contains(github.event.head_commit.message, '[ci skip]')" 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..7eee073aca51 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" @@ -27,6 +28,7 @@ #define ARES_RECORD_MAINTENANCE "Maintenance Ticket" #define ARES_RECORD_ACCESS "Access Ticket" #define ARES_RECORD_FLIGHT "Flight Record" +#define ARES_RECORD_TECH "Tech Control Record" /// Not by ARES logged through marine_announcement() #define ARES_LOG_NONE 0 @@ -67,6 +69,15 @@ #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 + +/// Time until someone can respawn as Working Joe +#define JOE_JOIN_DEAD_TIME (15 MINUTES) diff --git a/code/__DEFINES/__game.dm b/code/__DEFINES/__game.dm index ead4c9665c7c..6a9e9f1d4623 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. @@ -108,6 +102,7 @@ block( \ #define SOUND_ADMIN_MEME (1<<6) #define SOUND_ADMIN_ATMOSPHERIC (1<<7) #define SOUND_ARES_MESSAGE (1<<8) +#define SOUND_OBSERVER_ANNOUNCEMENTS (1<<9) //toggles_chat #define CHAT_OOC (1<<0) @@ -162,7 +157,7 @@ block( \ #define TOGGLES_LANGCHAT_DEFAULT (LANGCHAT_SEE_EMOTES) -#define TOGGLES_SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_INTERNET|SOUND_ADMIN_MEME|SOUND_ADMIN_ATMOSPHERIC) +#define TOGGLES_SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_INTERNET|SOUND_ADMIN_MEME|SOUND_ADMIN_ATMOSPHERIC|SOUND_OBSERVER_ANNOUNCEMENTS) #define TOGGLES_FLASHING_DEFAULT (FLASH_ROUNDSTART|FLASH_ROUNDEND|FLASH_CORPSEREVIVE|FLASH_ADMINPM|FLASH_UNNEST) @@ -283,7 +278,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 +374,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 +532,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/chat.dm b/code/__DEFINES/chat.dm index f2db3980e887..1edc2bd7b5a1 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -21,6 +21,7 @@ #define MESSAGE_TYPE_ADMINLOG "adminlog" #define MESSAGE_TYPE_ATTACKLOG "attacklog" #define MESSAGE_TYPE_DEBUG "debug" +#define MESSAGE_TYPE_NICHE "niche" /// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. #define examine_block(str) ("
" + str + "
") diff --git a/code/__DEFINES/conflict.dm b/code/__DEFINES/conflict.dm index d69f0891ffa0..a6a7aa53f182 100644 --- a/code/__DEFINES/conflict.dm +++ b/code/__DEFINES/conflict.dm @@ -141,8 +141,8 @@ #define WIELD_DELAY_VERY_SLOW 10 #define WIELD_DELAY_HORRIBLE 12 -///This is how long you must wait after throwing something to throw again -#define THROW_DELAY (0.4 SECONDS) +///This is how long you must wait to throw again after throwing two things +#define THROW_DELAY (1.5 SECONDS) //Explosion level thresholds. Upper bounds #define EXPLOSION_THRESHOLD_VLOW 50 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 e9862be49dd5..e6e1e64e9c7e 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm @@ -62,3 +62,19 @@ /// For any additional things that should happen when a xeno's melee_attack_additional_effects_self() proc is called #define COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF "xeno_slash_additional_effects_self" + +/// From /datum/action/xeno_action/onclick/plant_weeds/use_ability(): (atom/A) +#define COMSIG_XENO_PLANT_RESIN_NODE "xeno_plant_resin_node" + +/// From //mob/living/carbon/xenomorph/proc/emit_pheromones(): (pheromone, emit_cost) +#define COMSIG_XENO_START_EMIT_PHEROMONES "xeno_start_emit_pheromones" + +/// 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 58021ba564a2..f4df347c62db 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm @@ -59,6 +59,9 @@ #define COMSIG_MOB_WEED_SLOWDOWN "mob_weeds_slowdown" #define COMSIG_MOB_TAKE_DAMAGE "mob_take_damage" // TODO: move COMSIG_XENO_TAKE_DAMAGE & COMSIG_HUMAN_TAKE_DAMAGE to this + +///From /mob/living/carbon/human/attack_alien(): (mob/living/carbon/xenomorph/M, dam_bonus) +#define COMSIG_MOB_TACKLED_DOWN "mob_tackled_down" ///called in /client/change_view() #define COMSIG_MOB_CHANGE_VIEW "mob_change_view" #define COMPONENT_OVERRIDE_VIEW (1<<0) @@ -72,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) @@ -106,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() @@ -170,3 +183,5 @@ #define COMSIG_MOB_EFFECT_CLOAK_CANCEL "mob_effect_cloak_cancel" #define COMSIG_MOB_END_TUTORIAL "mob_end_tutorial" + +#define COMSIG_MOB_NESTED "mob_nested" 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_item.dm b/code/__DEFINES/dcs/signals/atom/signals_item.dm index 7b3b218e658a..f0456f8dd9f6 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_item.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_item.dm @@ -77,3 +77,4 @@ #define COMSIG_CAMERA_SET_TARGET "camera_manager_set_target" #define COMSIG_CAMERA_SET_AREA "camera_manager_set_area" #define COMSIG_CAMERA_CLEAR "camera_manager_clear_target" +#define COMSIG_CAMERA_REFRESH "camera_manager_refresh" 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/flags.dm b/code/__DEFINES/flags.dm index e790bddb233c..fc3772e66ff2 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -33,3 +33,9 @@ #define EMOTE_IMPORTANT (1<<2) /// Does the emote not have a message? #define EMOTE_NO_MESSAGE (1<<3) + +// Bitflags for Working Joe emotes +/// Working Joe emote +#define WORKING_JOE_EMOTE (1<<0) +/// Hazard Joe emote +#define HAZARD_JOE_EMOTE (1<<1) diff --git a/code/__DEFINES/human.dm b/code/__DEFINES/human.dm index ebf08f495752..f2d60983b74c 100644 --- a/code/__DEFINES/human.dm +++ b/code/__DEFINES/human.dm @@ -182,11 +182,12 @@ //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" +#define SYNTH_HAZARD_JOE "Hazard Joe" #define SYNTH_GEN_ONE "First Generation Synthetic" #define SYNTH_GEN_TWO "Second Generation Synthetic" #define SYNTH_GEN_THREE "Third Generation Synthetic" diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index ad3b9fe3af32..1b2907cf57ce 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -75,14 +75,15 @@ GLOBAL_LIST_INIT(job_squad_roles, JOB_SQUAD_ROLES_LIST) GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) #define JOB_AUXILIARY_OFFICER "Auxiliary Support Officer" -#define JOB_PILOT "Pilot Officer" +#define JOB_CAS_PILOT "Gunship Pilot" +#define JOB_DROPSHIP_PILOT "Dropship Pilot" #define JOB_DROPSHIP_CREW_CHIEF "Dropship Crew Chief" #define JOB_CREWMAN "Vehicle Crewman" #define JOB_INTEL "Intelligence Officer" #define JOB_DROPSHIP_ROLES /datum/timelock/dropship -#define JOB_DROPSHIP_ROLES_LIST list(JOB_DROPSHIP_CREW_CHIEF, JOB_PILOT) +#define JOB_DROPSHIP_ROLES_LIST list(JOB_DROPSHIP_CREW_CHIEF, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT) #define JOB_AUXILIARY_ROLES /datum/timelock/auxiliary -#define JOB_AUXILIARY_ROLES_LIST list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL) +#define JOB_AUXILIARY_ROLES_LIST list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL) #define JOB_POLICE "Military Police" #define JOB_WARDEN "Military Warden" 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/layers.dm b/code/__DEFINES/layers.dm index 5628395d7ffb..63e79cdf676d 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -219,6 +219,8 @@ #define FLOOR_PLANE -7 /// Game Plane, where most of the game objects reside #define GAME_PLANE -6 +/// Above Game Plane. For things which are above game objects, but below screen effects. +#define ABOVE_GAME_PLANE -5 /// Roof plane, disappearing when entering buildings #define ROOF_PLANE -4 diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 097a0f5d5e71..3fd2e3caa64b 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(emissive_color, EMISSIVE_COLOR) GLOBAL_LIST_INIT(em_block_color, EM_BLOCK_COLOR) /// A set of appearance flags applied to all emissive and emissive blocker overlays. #define EMISSIVE_APPEARANCE_FLAGS (KEEP_APART|KEEP_TOGETHER|RESET_COLOR|RESET_TRANSFORM) -/// The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of [EMISSIVE_COLOR], and be independant of the RGB value of [EM_BLOCK_COLOR]. +/// The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of [EMISSIVE_COLOR], and be independent of the RGB value of [EM_BLOCK_COLOR]. #define EM_MASK_MATRIX list(0,0,0,1/3, 0,0,0,1/3, 0,0,0,1/3, 0,0,0,0, 1,1,1,0) /// A globaly cached version of [EM_MASK_MATRIX] for quick access. GLOBAL_LIST_INIT(em_mask_matrix, EM_MASK_MATRIX) 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..97fbc64a9da4 100644 --- a/code/__DEFINES/mob_hud.dm +++ b/code/__DEFINES/mob_hud.dm @@ -25,6 +25,7 @@ #define STATUS_HUD_XENO_CULTIST "24" // Whether they are a xeno cultist or not #define HUNTER_CLAN "25" //Displays a colored icon to represent ingame Hunter Clans #define HUNTER_HUD "26" //Displays various statuses on mobs for Hunters to identify targets +#define HOLOCARD_HUD "27" //Displays the holocards set by medical personnel //data HUD (medhud, sechud) defines #define MOB_HUD_SECURITY_BASIC 1 @@ -35,7 +36,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 9cd69e61c8b2..e2bd868f9a80 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -89,6 +89,8 @@ #define DAZE "daze" #define SLOW "slow" #define SUPERSLOW "superslow" +#define ROOT "root" + //================================================= //I hate adding defines like this but I'd much rather deal with bitflags than lists and string searches @@ -100,7 +102,7 @@ //Bitflags defining which status effects could be or are inflicted on a mob -#define STATUS_FLAGS_DEBILITATE (CANSTUN|CANKNOCKOUT|CANDAZE|CANSLOW) +#define STATUS_FLAGS_DEBILITATE (CANSTUN|CANKNOCKOUT|CANDAZE|CANSLOW|CANROOT) #define CANSTUN (1<<0) #define CANKNOCKDOWN (1<<1) @@ -108,6 +110,7 @@ #define CANPUSH (1<<3) #define LEAPING (1<<4) #define PASSEMOTES (1<<5) //holders inside of mob that need to see emotes. +#define CANROOT (1<<6) #define GODMODE (1<<12) #define FAKEDEATH (1<<13) //Replaces stuff like changeling.changeling_fakedeath #define DISFIGURED (1<<14) //I'll probably move this elsewhere if I ever get wround to writing a bitflag mob-damage system @@ -134,7 +137,9 @@ #define XENO_HIVE_YAUTJA "xeno_hive_yautja" #define XENO_HIVE_RENEGADE "xeno_hive_renegade" -#define ALL_XENO_HIVES list(XENO_HIVE_NORMAL, XENO_HIVE_CORRUPTED, XENO_HIVE_ALPHA, XENO_HIVE_BRAVO, XENO_HIVE_CHARLIE, XENO_HIVE_DELTA, XENO_HIVE_FERAL, XENO_HIVE_TAMED, XENO_HIVE_MUTATED, XENO_HIVE_FORSAKEN, XENO_HIVE_YAUTJA, XENO_HIVE_RENEGADE) +#define XENO_HIVE_TUTORIAL "xeno_hive_tutorial" + +#define ALL_XENO_HIVES list(XENO_HIVE_NORMAL, XENO_HIVE_CORRUPTED, XENO_HIVE_ALPHA, XENO_HIVE_BRAVO, XENO_HIVE_CHARLIE, XENO_HIVE_DELTA, XENO_HIVE_FERAL, XENO_HIVE_TAMED, XENO_HIVE_MUTATED, XENO_HIVE_FORSAKEN, XENO_HIVE_YAUTJA, XENO_HIVE_RENEGADE, XENO_HIVE_TUTORIAL) //================================================= @@ -304,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', @@ -447,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 0f04006859e9..28471f3a5ea1 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -72,6 +72,7 @@ #define MODE_HARDCORE_PERMA (1<<9) /// Toggles Hardcore for all marines, meaning they instantly perma upon death #define MODE_DISPOSABLE_MOBS (1<<10) // Toggles if mobs fit in disposals or not. Off by default. #define MODE_BYPASS_JOE (1<<11) // Toggles if ghosts can bypass Working Joe spawn limitations, does NOT bypass WL requirement. Off by default. +#define MODE_DISABLE_JOE_RESPAWN (1<<12) // Toggles if ghosts can respawn as Working Joes after dying as one when 15 minutes have passed. Off by default #define ROUNDSTATUS_FOG_DOWN 1 #define ROUNDSTATUS_PODDOORS_OPEN 2 @@ -109,12 +110,12 @@ //================================================= //Role defines, specifically lists of roles for job bans, crew manifests and the like. -GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN)) +GLOBAL_LIST_INIT(ROLES_COMMAND, list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_POLICE, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_CHIEF_REQUISITION, JOB_CHIEF_ENGINEER, JOB_CMO, JOB_CHIEF_POLICE, JOB_SEA, JOB_SYNTH, JOB_WARDEN)) //Marine roles -#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) +#define ROLES_OFFICERS list(JOB_CO, JOB_XO, JOB_SO, JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_SYNTH, JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE) GLOBAL_LIST_INIT(ROLES_CIC, list(JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO)) -GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT)) +GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT)) GLOBAL_LIST_INIT(ROLES_MISC, list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH)) GLOBAL_LIST_INIT(ROLES_POLICE, list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE)) GLOBAL_LIST_INIT(ROLES_ENGINEERING, list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH)) @@ -140,7 +141,7 @@ GLOBAL_LIST_INIT(ROLES_UNASSIGNED, list(JOB_SQUAD_MARINE)) //Role lists used for switch() checks in show_blurb_uscm(). Cosmetic, determines ex. "Engineering, USS Almayer", "2nd Bat. 'Falling Falcons'" etc. #define BLURB_USCM_COMBAT JOB_CO, JOB_XO, JOB_SO, JOB_WO_CO, JOB_WO_XO, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_SEA,\ JOB_SQUAD_LEADER, JOB_SQUAD_TEAM_LEADER, JOB_SQUAD_SPECIALIST, JOB_SQUAD_SMARTGUN, JOB_SQUAD_MEDIC, JOB_SQUAD_ENGI, JOB_SQUAD_MARINE -#define BLURB_USCM_FLIGHT JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF +#define BLURB_USCM_FLIGHT JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF #define BLURB_USCM_MP JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE #define BLURB_USCM_ENGI JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH, JOB_WO_PILOT #define BLURB_USCM_MEDICAL JOB_CMO, JOB_RESEARCHER, JOB_DOCTOR, JOB_NURSE, JOB_WO_CMO, JOB_WO_RESEARCHER, JOB_WO_DOCTOR @@ -156,6 +157,7 @@ GLOBAL_LIST_INIT(ROLES_UNASSIGNED, list(JOB_SQUAD_MARINE)) GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, WHITELIST_LEADER)) //================================================= + #define WHITELIST_YAUTJA (1<<0) ///Old holders of YAUTJA_ELDER #define WHITELIST_YAUTJA_LEGACY (1<<1) @@ -170,15 +172,20 @@ GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, ///Old holders of COMMANDER_COUNCIL for 3 months #define WHITELIST_COMMANDER_COUNCIL_LEGACY (1<<7) #define WHITELIST_COMMANDER_LEADER (1<<8) +///Former CO senator/whitelist overseer award +#define WHITELIST_COMMANDER_COLONEL (1<<9) -#define WHITELIST_JOE (1<<9) -#define WHITELIST_SYNTHETIC (1<<10) -#define WHITELIST_SYNTHETIC_COUNCIL (1<<11) +#define WHITELIST_JOE (1<<10) +#define WHITELIST_SYNTHETIC (1<<11) +#define WHITELIST_SYNTHETIC_COUNCIL (1<<12) ///Old holders of SYNTHETIC_COUNCIL for 3 months -#define WHITELIST_SYNTHETIC_COUNCIL_LEGACY (1<<12) -#define WHITELIST_SYNTHETIC_LEADER (1<<13) +#define WHITELIST_SYNTHETIC_COUNCIL_LEGACY (1<<13) +#define WHITELIST_SYNTHETIC_LEADER (1<<14) + +///Senior Enlisted Advisor, auto granted by R_MENTOR +#define WHITELIST_MENTOR (1<<15) + -#define WHITELIST_MENTOR (1<<14) #define WHITELISTS_GENERAL (WHITELIST_YAUTJA|WHITELIST_COMMANDER|WHITELIST_SYNTHETIC|WHITELIST_MENTOR|WHITELIST_JOE) #define WHITELISTS_COUNCIL (WHITELIST_YAUTJA_COUNCIL|WHITELIST_COMMANDER_COUNCIL|WHITELIST_SYNTHETIC_COUNCIL) #define WHITELISTS_LEGACY_COUNCIL (WHITELIST_YAUTJA_COUNCIL_LEGACY|WHITELIST_COMMANDER_COUNCIL_LEGACY|WHITELIST_SYNTHETIC_COUNCIL_LEGACY) @@ -186,7 +193,29 @@ GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, #define WHITELIST_EVERYTHING (WHITELISTS_GENERAL|WHITELISTS_COUNCIL|WHITELISTS_LEADER) -#define isCouncil(A) (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_YAUTJA_COUNCIL) || (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_SYNTHETIC_COUNCIL) || (GLOB.RoleAuthority.roles_whitelist[A.ckey] & WHITELIST_COMMANDER_COUNCIL) +#define COUNCIL_LIST list(WHITELIST_COMMANDER_COUNCIL, WHITELIST_SYNTHETIC_COUNCIL, WHITELIST_YAUTJA_COUNCIL) +#define SENATOR_LIST list(WHITELIST_COMMANDER_LEADER, WHITELIST_SYNTHETIC_LEADER, WHITELIST_YAUTJA_LEADER) +#define isCouncil(A) (A.check_whitelist_status_list(COUNCIL_LIST)) +#define isSenator(A) (A.check_whitelist_status_list(SENATOR_LIST)) + +DEFINE_BITFIELD(whitelist_status, list( + "WHITELIST_YAUTJA" = WHITELIST_YAUTJA, + "WHITELIST_YAUTJA_LEGACY" = WHITELIST_YAUTJA_LEGACY, + "WHITELIST_YAUTJA_COUNCIL" = WHITELIST_YAUTJA_COUNCIL, + "WHITELIST_YAUTJA_COUNCIL_LEGACY" = WHITELIST_YAUTJA_COUNCIL_LEGACY, + "WHITELIST_YAUTJA_LEADER" = WHITELIST_YAUTJA_LEADER, + "WHITELIST_COMMANDER" = WHITELIST_COMMANDER, + "WHITELIST_COMMANDER_COUNCIL" = WHITELIST_COMMANDER_COUNCIL, + "WHITELIST_COMMANDER_COUNCIL_LEGACY" = WHITELIST_COMMANDER_COUNCIL_LEGACY, + "WHITELIST_COMMANDER_COLONEL" = WHITELIST_COMMANDER_COLONEL, + "WHITELIST_COMMANDER_LEADER" = WHITELIST_COMMANDER_LEADER, + "WHITELIST_JOE" = WHITELIST_JOE, + "WHITELIST_SYNTHETIC" = WHITELIST_SYNTHETIC, + "WHITELIST_SYNTHETIC_COUNCIL" = WHITELIST_SYNTHETIC_COUNCIL, + "WHITELIST_SYNTHETIC_COUNCIL_LEGACY" = WHITELIST_SYNTHETIC_COUNCIL_LEGACY, + "WHITELIST_SYNTHETIC_LEADER" = WHITELIST_SYNTHETIC_LEADER, + "WHITELIST_MENTOR" = WHITELIST_MENTOR, +)) //================================================= @@ -251,6 +280,7 @@ GLOBAL_LIST_INIT(whitelist_hierarchy, list(WHITELIST_NORMAL, WHITELIST_COUNCIL, #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/paygrade_defs/civilian.dm b/code/__DEFINES/paygrade_defs/civilian.dm index ed99a363dedd..ed25a3f50af5 100644 --- a/code/__DEFINES/paygrade_defs/civilian.dm +++ b/code/__DEFINES/paygrade_defs/civilian.dm @@ -19,9 +19,12 @@ /// SYN, Synthetic #define PAY_SHORT_SYN "SYN" -/// OPR, Operative +/// OPR, Operator #define PAY_SHORT_OPR "OPR" +/// CDNM, Operative (intended for codenamed people IE Operative Theta) +#define PAY_SHORT_CDNM "CDNM" + /// CPO, Officer #define PAY_SHORT_CPO "CPO" diff --git a/code/__DEFINES/paygrade_defs/mercs.dm b/code/__DEFINES/paygrade_defs/mercs.dm new file mode 100644 index 000000000000..4cad90496e24 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/mercs.dm @@ -0,0 +1,45 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// MERCENARIES +/// FL-S, Standard +#define PAY_SHORT_FL_S "FL-S" + +/// FL-M, Medic +#define PAY_SHORT_FL_M "FL-M" + +/// FL-WL, Warlord +#define PAY_SHORT_FL_WL "FL-WL" + +/// EFL-S, Elite Standard +#define PAY_SHORT_EFL_S "EFL-S" + +/// EFL-M, Elite Medic +#define PAY_SHORT_EFL_M "EFL-M" + +/// EFL-E, Elite Engineer +#define PAY_SHORT_EFL_E "EFL-E" + +/// EFL-H, Elite Heavy +#define PAY_SHORT_EFL_H "EFL-H" + +/// EFL-WL, Elite Warlord +#define PAY_SHORT_EFL_TL "EFL-TL" + +// VANGUARD'S ARROW INC +/// VAI-S, Standard +#define PAY_SHORT_VAI_S "VAI-S" + +/// VAI-M, Medic +#define PAY_SHORT_VAI_M "VAI-M" + +/// VAI-E, Engineer +#define PAY_SHORT_VAI_E "VAI-E" + +/// VAI-G, Machinegunner +#define PAY_SHORT_VAI_G "VAI-G" + +/// VAI-SN, Synthetic +#define PAY_SHORT_VAI_SN "VAI-SN" + +/// VAI-L, Team Leader +#define PAY_SHORT_VAI_L "VAI-L" diff --git a/code/__DEFINES/paygrade_defs/paygrade.dm b/code/__DEFINES/paygrade_defs/paygrade.dm new file mode 100644 index 000000000000..5bf9a58d7447 --- /dev/null +++ b/code/__DEFINES/paygrade_defs/paygrade.dm @@ -0,0 +1,6 @@ +/// Paygrade is equivalent to or is an enlisted position. +#define GRADE_ENLISTED 0 +/// Paygrade is equivalent to or is an officer. +#define GRADE_OFFICER 1 +/// Paygrade is for high command or senior leadership. Military flag officers. +#define GRADE_FLAG 2 diff --git a/code/__DEFINES/paygrade_defs/twe.dm b/code/__DEFINES/paygrade_defs/twe.dm new file mode 100644 index 000000000000..da1c6a5fa4fb --- /dev/null +++ b/code/__DEFINES/paygrade_defs/twe.dm @@ -0,0 +1,38 @@ +// Paygrade shorthand defines, to allow clearer designation. + +// THREE WORLD EMPIRE +/// RMC1, Heitai-Marine +#define PAY_SHORT_RMC1 "RMC1" + +/// RMC2, Santo-Lance Corporal +#define PAY_SHORT_RMC2 "RMC2" + +/// RMC3, Nito-Corporal +#define PAY_SHORT_RMC3 "RMC3" + +/// RMC4, Itto-Sergeant +#define PAY_SHORT_RMC4 "RMC4" + +/// RNOW, Warrant Officer +#define PAY_SHORT_RNOW "RNOW" + +/// RNO1, Second Lieutenant +#define PAY_SHORT_RNO1 "RNO1" + +/// RNO2, First Lieutenant +#define PAY_SHORT_RNO2 "RNO2" + +/// RNO3, Standing Officer +#define PAY_SHORT_RNO3 "RNO3" + +/// RNO4, Captain +#define PAY_SHORT_RNO4 "RNO4" + +/// RNO5, Admiral +#define PAY_SHORT_RNO5 "RNO5" + +/// RNO6, Grand Admiral +#define PAY_SHORT_RNO6 "RNO6" + +/// EMP, Emperor +#define PAY_SHORT_EMP "EMP" diff --git a/code/__DEFINES/paygrade_defs/weyland.dm b/code/__DEFINES/paygrade_defs/weyland.dm index 1b6c168e9b6e..dd65caa6db00 100644 --- a/code/__DEFINES/paygrade_defs/weyland.dm +++ b/code/__DEFINES/paygrade_defs/weyland.dm @@ -1,6 +1,6 @@ // Paygrade shorthand defines, to allow clearer designation. -// Weyland Yutani +// Weyland Yutani Corporate /// WYC1, Trainee #define PAY_SHORT_WYC1 "WYC1" @@ -30,3 +30,49 @@ /// WYC10, Director #define PAY_SHORT_WYC10 "WYC10" + +// Weyland Yutani Private Military +/// PMC-OP, Operator, standard PMC. +#define PAY_SHORT_PMC_OP "PMC-OP" + +/// PMC-EN, Enforcer +#define PAY_SHORT_PMC_EN "PMC-EN" + +/// PMC-SS, Support Specialist +#define PAY_SHORT_PMC_SS "PMC-SS" + +/// PMC-MS, Medical Specialist +#define PAY_SHORT_PMC_MS "PMC-MS" + +/// PMC-WS, Weapons Specialist +#define PAY_SHORT_PMC_WS "PMC-WS" + +/// PMC-VS, Vehicle Specialist +#define PAY_SHORT_PMC_VS "PMC-VS" + +/// PMC-XS, Xeno Specialist (Handler) +#define PAY_SHORT_PMC_XS "PMC-XS" + +/// PMC-TL, Team Leader +#define PAY_SHORT_PMC_TL "PMC-TL" + +/// PMC-DOC, Trauma Surgeon +#define PAY_SHORT_PMC_DOC "PMC-DOC" + +/// PMC-ENG, Technician +#define PAY_SHORT_PMC_TEC "PMC-TEC" + +/// PMC-ELR, Elite Responder +#define PAY_SHORT_PMC_ELR "PMC-ELR" + +/// PMC-ELM, Elite Medic +#define PAY_SHORT_PMC_ELM "PMC-ELM" + +/// PMC-ELG, Elite Gunner +#define PAY_SHORT_PMC_ELG "PMC-ELG" + +/// PMC-ETL, Elite Team Leader +#define PAY_SHORT_PMC_ETL "PMC-ETL" + +/// PMC-DIR, PMC Director +#define PAY_SHORT_PMC_DIR "PMC-DIR" 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 9cb67e1e0de1..47aa0e732c76 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -89,13 +89,13 @@ //! ### SS initialization hints /** * Negative values incidate a failure or warning of some kind, positive are good. - * 0 and 1 are unused so that TRUE and FALSE are guarenteed to be invalid values. + * 0 and 1 are unused so that TRUE and FALSE are guaranteed to be invalid values. */ /// Subsystem failed to initialize entirely. Print a warning, log, and disable firing. #define SS_INIT_FAILURE -2 -/// The default return value which must be overriden. Will succeed with a warning. +/// The default return value which must be overridden. Will succeed with a warning. #define SS_INIT_NONE -1 /// Subsystem initialized sucessfully. @@ -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..e2c89df90e9b 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.2" // 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. @@ -305,6 +312,7 @@ var/datum/tgs_chat_embed/structure/embed /datum/tgs_message_content/New(text) + ..() if(!istext(text)) TGS_ERROR_LOG("[/datum/tgs_message_content] created with no text!") text = null @@ -347,6 +355,7 @@ var/proxy_url /datum/tgs_chat_embed/media/New(url) + ..() if(!istext(url)) CRASH("[/datum/tgs_chat_embed/media] created with no url!") @@ -360,6 +369,7 @@ var/proxy_icon_url /datum/tgs_chat_embed/footer/New(text) + ..() if(!istext(text)) CRASH("[/datum/tgs_chat_embed/footer] created with no text!") @@ -376,6 +386,7 @@ var/proxy_icon_url /datum/tgs_chat_embed/provider/author/New(name) + ..() if(!istext(name)) CRASH("[/datum/tgs_chat_embed/provider/author] created with no name!") @@ -388,6 +399,7 @@ var/is_inline /datum/tgs_chat_embed/field/New(name, value) + ..() if(!istext(name)) CRASH("[/datum/tgs_chat_embed/field] created with no name!") @@ -490,10 +502,20 @@ /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 -Copyright (c) 2017-2023 Jordan Brown +Copyright (c) 2017-2024 Jordan Brown Permission is hereby granted, free of charge, to any person obtaining a copy of this software and diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index c2abe21a26ad..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 @@ -169,7 +171,7 @@ #define TRAIT_FOREIGN_BIO "t_foreign_bio" /// Eye color changes on intent. (G1 Synths and WJs) #define TRAIT_INTENT_EYES "t_intent_eyes" -/// Masked synthetic biology. Basic medHUDs will percieve the mob as human. (Infiltrator Synths) +/// Masked synthetic biology. Basic medHUDs will perceive the mob as human. (Infiltrator Synths) #define TRAIT_INFILTRATOR_SYNTH "t_infiltrator_synth" /// Makes it impossible to strip the inventory of this mob. #define TRAIT_UNSTRIPPABLE "t_unstrippable" @@ -177,7 +179,7 @@ // HIVE TRAITS /// If the Hive is a Xenonid Hive #define TRAIT_XENONID "t_xenonid" -/// If the Hive delays round end (this is overriden for some hives). Does not occur naturally. Must be applied in events. +/// If the Hive delays round end (this is overridden for some hives). Does not occur naturally. Must be applied in events. #define TRAIT_NO_HIVE_DELAY "t_no_hive_delay" /// If the Hive uses it's colors on the mobs. Does not occur naturally, excepting the Mutated hive. #define TRAIT_NO_COLOR "t_no_color" @@ -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/typecheck/humanoids.dm b/code/__DEFINES/typecheck/humanoids.dm index 7076cf67c95c..76f561e5fa1f 100644 --- a/code/__DEFINES/typecheck/humanoids.dm +++ b/code/__DEFINES/typecheck/humanoids.dm @@ -14,7 +14,8 @@ #define isSEA(A) (ishuman(A) && A.job == "Senior Enlisted Advisor") #define issynth(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic)) #define iscolonysynthetic(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial)) -#define isworkingjoe(A) (iscolonysynthetic(A) && A.job == JOB_WORKING_JOE) +#define isworkingjoe(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial/working_joe)) +#define ishazardjoe(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial/working_joe/hazard)) #define isinfiltratorsynthetic(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/infiltrator)) //Specic group checks, use instead of typechecks (but use traits instead) 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 7eea79742148..f8a9292d3806 100644 --- a/code/__HELPERS/#maths.dm +++ b/code/__HELPERS/#maths.dm @@ -8,8 +8,8 @@ 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 Ceiling(x) (-round(-(x))) +#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 Root(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 @@ -84,53 +84,6 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, return "[round((powerused * 0.000001),0.001)] MW" return "[round((powerused * 0.000000001),0.0001)] GW" -/** - * Get a list of turfs in a line from `starting_atom` to `ending_atom`. - * - * Uses the ultra-fast [Bresenham Line-Drawing Algorithm](https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm). - */ -/proc/get_line(atom/starting_atom, atom/ending_atom) - var/current_x_step = starting_atom.x//start at x and y, then add 1 or -1 to these to get every turf from starting_atom to ending_atom - var/current_y_step = starting_atom.y - var/starting_z = starting_atom.z - - var/list/line = list(get_turf(starting_atom))//get_turf(atom) is faster than locate(x, y, z) - - var/x_distance = ending_atom.x - current_x_step //x distance - var/y_distance = ending_atom.y - current_y_step - - var/abs_x_distance = abs(x_distance)//Absolute value of x distance - var/abs_y_distance = abs(y_distance) - - var/x_distance_sign = SIGN(x_distance) //Sign of x distance (+ or -) - var/y_distance_sign = SIGN(y_distance) - - var/x = abs_x_distance >> 1 //Counters for steps taken, setting to distance/2 - var/y = abs_y_distance >> 1 //Bit-shifting makes me l33t. It also makes get_line() unnessecarrily fast. - - if(abs_x_distance >= abs_y_distance) //x distance is greater than y - for(var/distance_counter in 0 to (abs_x_distance - 1))//It'll take abs_x_distance steps to get there - y += abs_y_distance - - if(y >= abs_x_distance) //Every abs_y_distance steps, step once in y direction - y -= abs_x_distance - current_y_step += y_distance_sign - - current_x_step += x_distance_sign //Step on in x direction - line += locate(current_x_step, current_y_step, starting_z)//Add the turf to the list - else - for(var/distance_counter in 0 to (abs_y_distance - 1)) - x += abs_x_distance - - if(x >= abs_y_distance) - x -= abs_y_distance - current_x_step += x_distance_sign - - current_y_step += y_distance_sign - line += locate(current_x_step, current_y_step, starting_z) - return line - - ///chances are 1:value. anyprob(1) will always return true /proc/anyprob(value) return (rand(1,value)==value) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 8b11a3797627..64f4515396f6 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -263,7 +263,7 @@ continue // Mods with larva protection cannot be drafted - if((cur_obs.client.admin_holder && (cur_obs.client.admin_holder.rights & R_MOD)) && !cur_obs.adminlarva) + if(check_client_rights(cur_obs.client, R_MOD, FALSE) && cur_obs.admin_larva_protection) continue if(hive) diff --git a/code/__HELPERS/job.dm b/code/__HELPERS/job.dm index 220236c6f7e3..ec36a485333c 100644 --- a/code/__HELPERS/job.dm +++ b/code/__HELPERS/job.dm @@ -31,7 +31,8 @@ JOB_XO, JOB_SO, JOB_INTEL, - JOB_PILOT, + JOB_CAS_PILOT, + JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, 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/sorts/_Main.dm b/code/__HELPERS/sorts/_Main.dm index 5d6f5210be47..55af258b81d2 100644 --- a/code/__HELPERS/sorts/_Main.dm +++ b/code/__HELPERS/sorts/_Main.dm @@ -393,7 +393,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) var/count1 = 0 //# of times in a row that first run won var/count2 = 0 // " " " " " " second run won - //do the straightfoward thin until one run starts winning consistently + //do the straightforward thin until one run starts winning consistently do //ASSERT(len1 > 1 && len2 > 0) @@ -493,7 +493,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new()) var/count1 = 0 //# of times in a row that first run won var/count2 = 0 // " " " " " " second run won - //do the straightfoward thing until one run starts winning consistently + //do the straightforward thing until one run starts winning consistently do //ASSERT(len1 > 0 && len2 > 1) if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) 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 14d5217eacd9..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()) @@ -893,103 +903,103 @@ GLOBAL_DATUM(action_purple_power_up, /image) if(!GLOB.busy_indicator_clock) GLOB.busy_indicator_clock = image('icons/mob/mob.dmi', null, "busy_generic", "pixel_y" = 22) GLOB.busy_indicator_clock.layer = FLY_LAYER - GLOB.busy_indicator_clock.plane = ABOVE_HUD_PLANE + GLOB.busy_indicator_clock.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_clock else if(busy_type == BUSY_ICON_MEDICAL) if(!GLOB.busy_indicator_medical) GLOB.busy_indicator_medical = image('icons/mob/mob.dmi', null, "busy_medical", "pixel_y" = 0) //This shows directly on top of the mob, no offset! GLOB.busy_indicator_medical.layer = FLY_LAYER - GLOB.busy_indicator_medical.plane = ABOVE_HUD_PLANE + GLOB.busy_indicator_medical.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_medical else if(busy_type == BUSY_ICON_BUILD) if(!GLOB.busy_indicator_build) GLOB.busy_indicator_build = image('icons/mob/mob.dmi', null, "busy_build", "pixel_y" = 22) GLOB.busy_indicator_build.layer = FLY_LAYER - GLOB.busy_indicator_build.plane = ABOVE_HUD_PLANE + GLOB.busy_indicator_build.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_build else if(busy_type == BUSY_ICON_FRIENDLY) if(!GLOB.busy_indicator_friendly) GLOB.busy_indicator_friendly = image('icons/mob/mob.dmi', null, "busy_friendly", "pixel_y" = 22) GLOB.busy_indicator_friendly.layer = FLY_LAYER - GLOB.busy_indicator_friendly.plane = ABOVE_HUD_PLANE + GLOB.busy_indicator_friendly.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_friendly else if(busy_type == BUSY_ICON_HOSTILE) if(!GLOB.busy_indicator_hostile) GLOB.busy_indicator_hostile = image('icons/mob/mob.dmi', null, "busy_hostile", "pixel_y" = 22) GLOB.busy_indicator_hostile.layer = FLY_LAYER - GLOB.busy_indicator_hostile.plane = ABOVE_HUD_PLANE + GLOB.busy_indicator_hostile.plane = ABOVE_GAME_PLANE return GLOB.busy_indicator_hostile else if(busy_type == EMOTE_ICON_HIGHFIVE) if(!GLOB.emote_indicator_highfive) GLOB.emote_indicator_highfive = image('icons/mob/mob.dmi', null, "emote_highfive", "pixel_y" = 22) GLOB.emote_indicator_highfive.layer = FLY_LAYER - GLOB.emote_indicator_highfive.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_highfive.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_highfive else if(busy_type == EMOTE_ICON_FISTBUMP) if(!GLOB.emote_indicator_fistbump) GLOB.emote_indicator_fistbump = image('icons/mob/mob.dmi', null, "emote_fistbump", "pixel_y" = 22) GLOB.emote_indicator_fistbump.layer = FLY_LAYER - GLOB.emote_indicator_fistbump.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_fistbump.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_fistbump else if(busy_type == EMOTE_ICON_ROCK_PAPER_SCISSORS) if(!GLOB.emote_indicator_rock_paper_scissors) GLOB.emote_indicator_rock_paper_scissors = image('icons/mob/mob.dmi', null, "emote_rps", "pixel_y" = 22) GLOB.emote_indicator_rock_paper_scissors.layer = FLY_LAYER - GLOB.emote_indicator_rock_paper_scissors.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_rock_paper_scissors.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_rock_paper_scissors else if(busy_type == EMOTE_ICON_ROCK) if(!GLOB.emote_indicator_rock) GLOB.emote_indicator_rock = image('icons/mob/mob.dmi', null, "emote_rock", "pixel_y" = 22) GLOB.emote_indicator_rock.layer = FLY_LAYER - GLOB.emote_indicator_rock.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_rock.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_rock else if(busy_type == EMOTE_ICON_PAPER) if(!GLOB.emote_indicator_paper) GLOB.emote_indicator_paper = image('icons/mob/mob.dmi', null, "emote_paper", "pixel_y" = 22) GLOB.emote_indicator_paper.layer = FLY_LAYER - GLOB.emote_indicator_paper.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_paper.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_paper else if(busy_type == EMOTE_ICON_SCISSORS) if(!GLOB.emote_indicator_scissors) GLOB.emote_indicator_scissors = image('icons/mob/mob.dmi', null, "emote_scissors", "pixel_y" = 22) GLOB.emote_indicator_scissors.layer = FLY_LAYER - GLOB.emote_indicator_scissors.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_scissors.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_scissors else if(busy_type == EMOTE_ICON_HEADBUTT) if(!GLOB.emote_indicator_headbutt) GLOB.emote_indicator_headbutt = image('icons/mob/mob.dmi', null, "emote_headbutt", "pixel_y" = 22) GLOB.emote_indicator_headbutt.layer = FLY_LAYER - GLOB.emote_indicator_headbutt.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_headbutt.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_headbutt else if(busy_type == EMOTE_ICON_TAILSWIPE) if(!GLOB.emote_indicator_tailswipe) GLOB.emote_indicator_tailswipe = image('icons/mob/mob.dmi', null, "emote_tailswipe", "pixel_y" = 22) GLOB.emote_indicator_tailswipe.layer = FLY_LAYER - GLOB.emote_indicator_tailswipe.plane = ABOVE_HUD_PLANE + GLOB.emote_indicator_tailswipe.plane = ABOVE_GAME_PLANE return GLOB.emote_indicator_tailswipe else if(busy_type == ACTION_RED_POWER_UP) if(!GLOB.action_red_power_up) GLOB.action_red_power_up = image('icons/effects/effects.dmi', null, "anger", "pixel_x" = 16) GLOB.action_red_power_up.layer = FLY_LAYER - GLOB.action_red_power_up.plane = ABOVE_HUD_PLANE + GLOB.action_red_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_red_power_up else if(busy_type == ACTION_GREEN_POWER_UP) if(!GLOB.action_green_power_up) GLOB.action_green_power_up = image('icons/effects/effects.dmi', null, "vitality", "pixel_x" = 16) GLOB.action_green_power_up.layer = FLY_LAYER - GLOB.action_green_power_up.plane = ABOVE_HUD_PLANE + GLOB.action_green_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_green_power_up else if(busy_type == ACTION_BLUE_POWER_UP) if(!GLOB.action_blue_power_up) GLOB.action_blue_power_up = image('icons/effects/effects.dmi', null, "shock", "pixel_x" = 16) GLOB.action_blue_power_up.layer = FLY_LAYER - GLOB.action_blue_power_up.plane = ABOVE_HUD_PLANE + GLOB.action_blue_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_blue_power_up else if(busy_type == ACTION_PURPLE_POWER_UP) if(!GLOB.action_purple_power_up) GLOB.action_purple_power_up = image('icons/effects/effects.dmi', null, "pain", "pixel_x" = 16) GLOB.action_purple_power_up.layer = FLY_LAYER - GLOB.action_purple_power_up.plane = ABOVE_HUD_PLANE + GLOB.action_purple_power_up.plane = ABOVE_GAME_PLANE return GLOB.action_purple_power_up @@ -1494,88 +1504,47 @@ GLOBAL_LIST_INIT(WALLITEMS, list( /proc/format_text(text) return replacetext(replacetext(text,"\proper ",""),"\improper ","") -/proc/getline(atom/M, atom/N, include_from_atom = TRUE)//Ultra-Fast Bresenham Line-Drawing Algorithm - var/px=M.x //starting x - var/py=M.y - var/line[] = list(locate(px,py,M.z)) - var/dx=N.x-px //x distance - var/dy=N.y-py - var/dxabs=abs(dx)//Absolute value of x distance - var/dyabs=abs(dy) - var/sdx=sign(dx) //Sign of x distance (+ or -) - var/sdy=sign(dy) - var/x=dxabs>>1 //Counters for steps taken, setting to distance/2 - var/y=dyabs>>1 //Bit-shifting makes me l33t. It also makes getline() unnessecarrily fast. - var/j //Generic integer for counting - if(dxabs>=dyabs) //x distance is greater than y - for(j=0;j=dxabs) //Every dyabs steps, step once in y direction - y-=dxabs - py+=sdy - px+=sdx //Step on in x direction - if(j > 0 || include_from_atom) - line+=locate(px,py,M.z)//Add the turf to the list - else - for(j=0;j=dyabs) - x-=dyabs - px+=sdx - py+=sdy - if(j > 0 || include_from_atom) - line+=locate(px,py,M.z) - return line +/** + * Get a list of turfs in a line from `start_atom` to `end_atom`. + * + * Based on a linear interpolation method from [Red Blob Games](https://www.redblobgames.com/grids/line-drawing/#optimization). + * + * Arguments: + * * start_atom - starting point of the line + * * end_atom - ending point of the line + * * include_start_atom - when truthy includes start_atom in the list, default TRUE + * + * Returns: + * list - turfs from start_atom (in/exclusive) to end_atom (inclusive) + */ +/proc/get_line(atom/start_atom, atom/end_atom, include_start_atom = TRUE) + var/turf/start_turf = get_turf(start_atom) + var/turf/end_turf = get_turf(end_atom) + var/start_z = start_turf.z -//Bresenham's algorithm. This one deals efficiently with all 8 octants. -//Just don't ask me how it works. -/proc/getline2(atom/from_atom, atom/to_atom, include_from_atom = TRUE) - if(!from_atom || !to_atom) return 0 - var/list/turf/turfs = list() - - var/cur_x = from_atom.x - var/cur_y = from_atom.y - - var/w = to_atom.x - from_atom.x - var/h = to_atom.y - from_atom.y - var/dx1 = 0 - var/dx2 = 0 - var/dy1 = 0 - var/dy2 = 0 - if(w < 0) - dx1 = -1 - dx2 = -1 - else if(w > 0) - dx1 = 1 - dx2 = 1 - if(h < 0) dy1 = -1 - else if(h > 0) dy1 = 1 - var/longest = abs(w) - var/shortest = abs(h) - if(!(longest > shortest)) - longest = abs(h) - shortest = abs(w) - if(h < 0) dy2 = -1 - else if (h > 0) dy2 = 1 - dx2 = 0 - - var/numerator = longest >> 1 - var/i - for(i = 0; i <= longest; i++) - if(i > 0 || include_from_atom) - turfs += locate(cur_x,cur_y,from_atom.z) - numerator += shortest - if(!(numerator < longest)) - numerator -= longest - cur_x += dx1 - cur_y += dy1 - else - cur_x += dx2 - cur_y += dy2 + var/list/line = list() + if(include_start_atom) + line += start_turf + var/step_count = get_dist(start_turf, end_turf) + if(!step_count) + return line - return turfs + //as step_count and step size (1) are known can pre-calculate a lerp step, tiny number (1e-5) for rounding consistency + var/step_x = (end_turf.x - start_turf.x) / step_count + 1e-5 + var/step_y = (end_turf.y - start_turf.y) / step_count + 1e-5 + + //locate() truncates the fraction, adding 0.5 so its effectively rounding to nearest coords for free + var/x = start_turf.x + 0.5 + var/y = start_turf.y + 0.5 + for(var/step in 1 to (step_count - 1)) //increment then locate() skips start_turf (in 1), since end_turf is known can skip that step too (step_count - 1) + x += step_x + y += step_y + line += locate(x, y, start_z) + line += end_turf + + return line //Key thing that stops lag. Cornerstone of performance in ss13, Just sitting here, in unsorted.dm. @@ -1621,8 +1590,8 @@ GLOBAL_LIST_INIT(WALLITEMS, list( /proc/explosive_antigrief_check(obj/item/explosive/explosive, mob/user) var/turf/Turf = get_turf(explosive) if(!(Turf.loc.type in GLOB.explosive_antigrief_exempt_areas)) - var/crash_occured = (SSticker?.mode?.is_in_endgame) - if((Turf.z in SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP, ZTRAIT_RESERVED))) && (GLOB.security_level < SEC_LEVEL_RED) && !crash_occured) + var/crash_occurred = (SSticker?.mode?.is_in_endgame) + if((Turf.z in SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP, ZTRAIT_RESERVED))) && (GLOB.security_level < SEC_LEVEL_RED) && !crash_occurred) switch(CONFIG_GET(number/explosive_antigrief)) if(ANTIGRIEF_DISABLED) return FALSE @@ -1946,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..616c88c47a9d 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, @@ -425,6 +431,7 @@ DEFINE_BITFIELD(toggleable_flags, list( "MODE_HARDCORE_PERMA" = MODE_HARDCORE_PERMA, "MODE_DISPOSABLE_MOBS" = MODE_DISPOSABLE_MOBS, "MODE_BYPASS_JOE" = MODE_BYPASS_JOE, + "MODE_DISABLE_JOE_RESPAWN" = MODE_DISABLE_JOE_RESPAWN, )) DEFINE_BITFIELD(state, list( diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 6e1b229e562f..64bf4ba7c901 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -3,6 +3,9 @@ GLOBAL_LIST_EMPTY(WYFaxes) //Departmental faxes GLOBAL_LIST_EMPTY(USCMFaxes) GLOBAL_LIST_EMPTY(ProvostFaxes) GLOBAL_LIST_EMPTY(CMBFaxes) +GLOBAL_LIST_EMPTY(UPPFaxes) +GLOBAL_LIST_EMPTY(TWEFaxes) +GLOBAL_LIST_EMPTY(CLFFaxes) GLOBAL_LIST_EMPTY(GeneralFaxes) //Inter-machine faxes GLOBAL_LIST_EMPTY(fax_contents) //List of fax contents to maintain it even if source paper is deleted @@ -34,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')) @@ -163,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(), @@ -180,6 +183,7 @@ GLOBAL_LIST_INIT_TYPED(hive_datum, /datum/hive_status, list( XENO_HIVE_FORSAKEN = new /datum/hive_status/forsaken(), XENO_HIVE_YAUTJA = new /datum/hive_status/yautja(), XENO_HIVE_RENEGADE = new /datum/hive_status/corrupted/renegade(), + XENO_HIVE_TUTORIAL = new /datum/hive_status/tutorial() )) GLOBAL_LIST_INIT(xeno_evolve_times, setup_xeno_evolve_times()) @@ -272,6 +276,15 @@ GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living)) GLOBAL_LIST_INIT(emote_list, init_emote_list()) +/// list of categories for working joes +GLOBAL_LIST_EMPTY(wj_categories) +/// dict ("category" : (emotes)) of every wj emote typepath +GLOBAL_LIST_INIT(wj_emotes, setup_working_joe_emotes()) +/// list of categories for hazard joes +GLOBAL_LIST_EMPTY(hj_categories) +/// dict ("category" : (emotes)) of every hj emote typepath +GLOBAL_LIST_INIT(hj_emotes, setup_hazard_joe_emotes()) + /proc/cached_params_decode(params_data, decode_proc) . = GLOB.paramslist_cache[params_data] if(!.) @@ -513,6 +526,32 @@ GLOBAL_LIST_INIT(available_specialist_kit_boxes, list( else .[E.key_third_person] |= E +/// Setup for Working joe emotes and category list, returns data for wj_emotes +/proc/setup_working_joe_emotes() + var/list/emotes_to_add = list() + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in subtypesof(/datum/emote/living/carbon/human/synthetic/working_joe)) + if(!(initial(emote.joe_flag) & WORKING_JOE_EMOTE) || !initial(emote.key) || !initial(emote.say_message)) + continue + + if(!(initial(emote.category) in GLOB.wj_categories)) + GLOB.wj_categories += initial(emote.category) + + emotes_to_add += emote + return emotes_to_add + +/// Setup for Hazard joe emotes and category list, returns data for hj_emotes +/proc/setup_hazard_joe_emotes() + var/list/emotes_to_add = list() + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in subtypesof(/datum/emote/living/carbon/human/synthetic/working_joe)) + if(!(initial(emote.joe_flag) & HAZARD_JOE_EMOTE) || !initial(emote.key) || !initial(emote.say_message)) + continue + + if(!(initial(emote.category) in GLOB.hj_categories)) + GLOB.hj_categories += initial(emote.category) + + emotes_to_add += emote + return emotes_to_add + GLOBAL_LIST_EMPTY(topic_tokens) GLOBAL_PROTECT(topic_tokens) 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/adjacent.dm b/code/_onclick/adjacent.dm index 6504db0d9f0c..c60f7ceed628 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -294,7 +294,7 @@ Quick adjacency (to turf): var/turf/curT = get_turf(A) var/is_turf = isturf(A) - for(var/turf/T in getline2(A, src)) + for(var/turf/T in get_line(A, src)) if(curT == T) continue if(T.density) diff --git a/code/_onclick/click_hold.dm b/code/_onclick/click_hold.dm index 996f7ed2bf3b..2a766580e366 100644 --- a/code/_onclick/click_hold.dm +++ b/code/_onclick/click_hold.dm @@ -95,11 +95,11 @@ // Add the hovered atom to the trace LAZYADD(mouse_trace_history, over_obj) -/client/MouseDrop(datum/over_object, datum/src_location, over_location, src_control, over_control, params) +/client/MouseDrop(datum/src_object, datum/over_object, src_location, over_location, src_control, over_control, params) . = ..() - if(src_location) - SEND_SIGNAL(src_location, COMSIG_ATOM_DROPPED_ON, over_object, src) - if(over_object) - SEND_SIGNAL(over_object, COMSIG_ATOM_DROP_ON, src_location, src) + SEND_SIGNAL(over_object, COMSIG_ATOM_DROPPED_ON, src_object, src) + + if(src_object) + SEND_SIGNAL(src_object, COMSIG_ATOM_DROP_ON, over_object, src) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index f5f61424daac..7277c74b2fd3 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -46,7 +46,7 @@ var/atom/movable/screen/toggle_burst var/atom/movable/screen/unique_action - var/atom/movable/screen/zone_sel + var/atom/movable/screen/zone_sel/zone_sel var/atom/movable/screen/pull_icon var/atom/movable/screen/throw_icon var/atom/movable/screen/oxygen_icon 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/rendering/plane_master.dm b/code/_onclick/hud/rendering/plane_master.dm index d4181d7e9953..6625120d1514 100644 --- a/code/_onclick/hud/rendering/plane_master.dm +++ b/code/_onclick/hud/rendering/plane_master.dm @@ -49,6 +49,12 @@ if(istype(mymob) && mymob?.client?.prefs?.toggle_prefs & TOGGLE_AMBIENT_OCCLUSION) add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA")) +/atom/movable/screen/plane_master/game_world_above + name = "above game world plane master" + plane = ABOVE_GAME_PLANE + appearance_flags = PLANE_MASTER //should use client color + blend_mode = BLEND_OVERLAY + /atom/movable/screen/plane_master/ghost name = "ghost plane master" plane = GHOST_PLANE diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index e4e8ff64c19c..17f06987cd3b 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" @@ -146,7 +148,6 @@ /atom/movable/screen/zone_sel/update_icon(mob/living/user) overlays.Cut() overlays += image('icons/mob/hud/zone_sel.dmi', "[selecting]") - user.zone_selected = selecting /atom/movable/screen/zone_sel/clicked(mob/user, list/mods) if (..()) @@ -208,57 +209,57 @@ selecting = "eyes" if(old_selecting != selecting) + user.zone_selected = selecting 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) @@ -505,7 +506,11 @@ name = "queen locator" icon = 'icons/mob/hud/alien_standard.dmi' icon_state = "trackoff" - var/list/track_state = list(TRACKER_QUEEN, 0) + /// A weak reference to the atom currently being tracked. + /// (Note: This is null for `TRACKER_QUEEN` and `TRACKER_HIVE`, as those are accessed through the user's hive datum.) + var/datum/weakref/tracking_ref = null + /// The 'category' of the atom currently being tracked. (Defaults to `TRACKER_QUEEN`) + var/tracker_type = TRACKER_QUEEN /atom/movable/screen/queen_locator/clicked(mob/living/carbon/xenomorph/user, mods) if(!istype(user)) @@ -520,28 +525,26 @@ if(mods["alt"]) var/list/options = list() if(user.hive.living_xeno_queen) - options["Queen"] = list(TRACKER_QUEEN, 0) + // Don't need weakrefs to this or the hive core, since there's only one possible target. + options["Queen"] = list(null, TRACKER_QUEEN) if(user.hive.hive_location) - options["Hive Core"] = list(TRACKER_HIVE, 0) + options["Hive Core"] = list(null, TRACKER_HIVE) - var/xeno_leader_index = 1 - for(var/xeno in user.hive.xeno_leader_list) - var/mob/living/carbon/xenomorph/xeno_lead = user.hive.xeno_leader_list[xeno_leader_index] - if(xeno_lead) - options["Xeno Leader [xeno_lead]"] = list(TRACKER_LEADER, xeno_leader_index) - xeno_leader_index++ + for(var/mob/living/carbon/xenomorph/leader in user.hive.xeno_leader_list) + options["Xeno Leader [leader]"] = list(leader, TRACKER_LEADER) var/list/sorted_tunnels = sort_list_dist(user.hive.tunnels, get_turf(user)) - var/tunnel_index = 1 - for(var/obj/structure/tunnel/tunnel in sorted_tunnels) - options["Tunnel [tunnel.tunnel_desc]"] = list(TRACKER_TUNNEL, tunnel_index) - tunnel_index++ + for(var/obj/structure/tunnel/tunnel as anything in sorted_tunnels) + options["Tunnel [tunnel.tunnel_desc]"] = list(tunnel, TRACKER_TUNNEL) - var/selected = tgui_input_list(user, "Select what you want the locator to track.", "Locator Options", options) + var/list/selected = tgui_input_list(user, "Select what you want the locator to track.", "Locator Options", options) if(selected) - track_state = options[selected] + var/selected_data = options[selected] + tracking_ref = WEAKREF(selected_data[1]) // Weakref to the tracked atom (or null) + tracker_type = selected_data[2] // Tracker category return + if(!user.hive.living_xeno_queen) to_chat(user, SPAN_WARNING("Our hive doesn't have a living queen!")) return FALSE @@ -549,6 +552,12 @@ return FALSE user.overwatch(user.hive.living_xeno_queen) +// Reset to the defaults +/atom/movable/screen/queen_locator/proc/reset_tracking() + icon_state = "trackoff" + tracking_ref = null + tracker_type = TRACKER_QUEEN + /atom/movable/screen/xenonightvision icon = 'icons/mob/hud/alien_standard.dmi' name = "toggle night vision" @@ -577,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/_onclick/observer.dm b/code/_onclick/observer.dm index 21dd804f09c4..04c70bbe1112 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -49,7 +49,7 @@ var/message = "You have been dead for [DisplayTimeText(deathtime)]." message = SPAN_WARNING("[message]") to_chat(src, message) - to_chat(src, SPAN_WARNING("You must wait atleast 2.5 minutes before rejoining the game!")) + to_chat(src, SPAN_WARNING("You must wait at least 2.5 minutes before rejoining the game!")) do_observe(target) return FALSE diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 0bfa0a759287..8176f9e5247c 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -11,7 +11,10 @@ if (mods["middle"]) if (isStructure(A) && get_dist(src, A) <= 1) var/obj/structure/S = A - S.do_climb(src, mods) + if(S.climbable) + S.do_climb(src, mods) + else if(S.can_buckle) + S.buckle_mob(src, src) return TRUE else if(!(isitem(A) && get_dist(src, A) <= 1) && (client && (client.prefs.toggle_prefs & TOGGLE_MIDDLE_MOUSE_SWAP_HANDS))) swap_hand() diff --git a/code/_onclick/xeno.dm b/code/_onclick/xeno.dm index ad4ba9d72546..453539ff1c3f 100644 --- a/code/_onclick/xeno.dm +++ b/code/_onclick/xeno.dm @@ -88,7 +88,7 @@ return UnarmedAttack(get_step(src, Get_Compass_Dir(src, A)), tile_attack = TRUE, ignores_resin = TRUE) return FALSE -/**The parent proc, will default to UnarmedAttack behaviour unless overriden +/**The parent proc, will default to UnarmedAttack behaviour unless overridden Return XENO_ATTACK_ACTION if it does something and the attack should have full attack delay. Return XENO_NONCOMBAT_ACTION if it did something and should have some delay. Return XENO_NO_DELAY_ACTION if it gave an error message or should have no delay at all, ex. "You can't X that, it's Y!" @@ -131,6 +131,6 @@ so that it doesn't double up on the delays) so that it applies the delay immedia return ..() -//Larva attack, will default to attack_alien behaviour unless overriden +//Larva attack, will default to attack_alien behaviour unless overridden /atom/proc/attack_larva(mob/living/carbon/xenomorph/larva/user) return attack_alien(user) 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/mc/globals.dm b/code/controllers/mc/globals.dm index 7b5cc94d3620..724f58010699 100644 --- a/code/controllers/mc/globals.dm +++ b/code/controllers/mc/globals.dm @@ -13,7 +13,11 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) GLOB = src var/datum/controller/exclude_these = new - gvars_datum_in_built_vars = exclude_these.vars + list(NAMEOF(src, gvars_datum_protected_varlist), NAMEOF(src, gvars_datum_in_built_vars), NAMEOF(src, gvars_datum_init_order)) + // I know this is dumb but the nested vars list hangs a ref to the datum. This fixes that + var/list/controller_vars = exclude_these.vars.Copy() + controller_vars["vars"] = null + gvars_datum_in_built_vars = controller_vars + list(NAMEOF(src, gvars_datum_protected_varlist), NAMEOF(src, gvars_datum_in_built_vars), NAMEOF(src, gvars_datum_init_order)) + QDEL_IN(exclude_these, 0) //signal logging isn't ready log_world("[vars.len - gvars_datum_in_built_vars.len] global variables") diff --git a/code/controllers/mc/subsystem.dm b/code/controllers/mc/subsystem.dm index 24af320aeb62..e25402c28610 100644 --- a/code/controllers/mc/subsystem.dm +++ b/code/controllers/mc/subsystem.dm @@ -260,7 +260,7 @@ /datum/controller/subsystem/proc/OnConfigLoad() /** - * Used to initialize the subsystem. This is expected to be overriden by subtypes. + * Used to initialize the subsystem. This is expected to be overridden by subtypes. */ /datum/controller/subsystem/Initialize() return SS_INIT_NONE diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 3d544dca1390..f0d5ee14363e 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(atoms) flags = SS_NO_FIRE var/old_initialized - /// A count of how many initalize changes we've made. We want to prevent old_initialize being overriden by some other value, breaking init code + /// A count of how many initalize changes we've made. We want to prevent old_initialize being overridden by some other value, breaking init code var/initialized_changed = 0 var/init_start_time var/processing_late_loaders = FALSE @@ -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) @@ -183,7 +187,7 @@ SUBSYSTEM_DEF(atoms) /datum/controller/subsystem/atoms/proc/map_loader_stop() clear_tracked_initalize() -/// Use this to set initialized to prevent error states where old_initialized is overriden. It keeps happening and it's cheesing me off +/// Use this to set initialized to prevent error states where old_initialized is overridden. It keeps happening and it's cheesing me off /datum/controller/subsystem/atoms/proc/set_tracked_initalized(value) if(!initialized_changed) old_initialized = initialized 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/decorator.dm b/code/controllers/subsystem/decorator.dm index e0e2c91022bc..6194b05d561b 100644 --- a/code/controllers/subsystem/decorator.dm +++ b/code/controllers/subsystem/decorator.dm @@ -1,4 +1,4 @@ -// our atom declaration should not be hardcoded for this SS existance. +// our atom declaration should not be hardcoded for this SS existence. // if this subsystem is deleted, stuff still works // That's why we define this here /atom/proc/Decorate(deferable = FALSE) diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 83cd822725ca..f4dd544784f0 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(events) var/list/running = list() var/list/currentrun = list() - ///The next world.time that a naturally occuring random event can be selected. + ///The next world.time that a naturally occurring random event can be selected. var/scheduled = 0 ///Lower bound for how frequently events will occur var/frequency_lower = 5 MINUTES 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 b196f5a49e8e..478848906047 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -182,7 +182,7 @@ SUBSYSTEM_DEF(minimaps) * the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through * WARNING! * There is a byond bug: http://www.byond.com/forum/post/2661309 - * That that forces us to use a seperate list ref when accessing the lists of this datum + * That that forces us to use a separate list ref when accessing the lists of this datum * Yea it hurts me too */ /datum/hud_displays @@ -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/objectives_controller.dm b/code/controllers/subsystem/objectives_controller.dm index a858dff07475..38accda46004 100644 --- a/code/controllers/subsystem/objectives_controller.dm +++ b/code/controllers/subsystem/objectives_controller.dm @@ -96,6 +96,7 @@ SUBSYSTEM_DEF(objectives) ai_silent_announcement(message, ":v", TRUE) ai_silent_announcement(message, ":t", TRUE) + log_ares_tech(MAIN_AI_SYSTEM, FALSE, "TECH REPORT", "[round(tree.points, 0.1)] points available.", 0) tree.total_points_last_sitrep = tree.total_points next_sitrep = world.time + SITREP_INTERVAL 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 2e11ba8a96cb..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 @@ -172,7 +180,27 @@ SUBSYSTEM_DEF(ticker) CHECK_TICK if(!mode.can_start(bypass_checks)) - to_chat(world, "Reverting to pre-game lobby.") + to_chat(world, "Requirements to start [GLOB.master_mode] not met. Reverting to pre-game lobby.") + // Make only one more attempt + if(world.time - 2 * wait > CONFIG_GET(number/lobby_countdown) SECONDS) + flash_clients() + delay_start = TRUE + var/active_admins = 0 + for(var/client/admin_client in GLOB.admins) + if(!admin_client.is_afk() && check_client_rights(admin_client, R_SERVER, FALSE)) + active_admins = TRUE + break + if(active_admins) + to_chat(world, SPAN_CENTERBOLD("The game start has been delayed.")) + message_admins(SPAN_ADMINNOTICE("Alert: Insufficent players ready to start [GLOB.master_mode].\nEither change mode and map or start round and bypass checks.")) + else + var/fallback_mode = CONFIG_GET(string/gamemode_default) + SSticker.save_mode(fallback_mode) + GLOB.master_mode = fallback_mode + to_chat(world, SPAN_BOLDNOTICE("Notice: The Gamemode for next round has been set to [fallback_mode]")) + handle_map_reboot() + else + to_chat(world, "Attempting again...") QDEL_NULL(mode) GLOB.RoleAuthority.reset_roles() return FALSE @@ -187,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 104bb838bbcf..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) @@ -273,12 +273,14 @@ SUBSYSTEM_DEF(vote) question = "Gamemode vote" randomize_entries = TRUE for(var/mode_type in config.gamemode_cache) - var/datum/game_mode/M = mode_type - if(initial(M.config_tag)) - var/vote_cycle_met = !initial(M.vote_cycle) || (text2num(SSperf_logging?.round?.id) % initial(M.vote_cycle) == 0) - var/min_players_met = length(GLOB.clients) >= M.required_players - if(initial(M.votable) && vote_cycle_met && min_players_met) - choices += initial(M.config_tag) + var/datum/game_mode/cur_mode = mode_type + if(initial(cur_mode.config_tag)) + cur_mode = new mode_type + var/vote_cycle_met = !initial(cur_mode.vote_cycle) || (text2num(SSperf_logging?.round?.id) % initial(cur_mode.vote_cycle) == 0) + var/min_players_met = length(GLOB.clients) >= cur_mode.required_players + if(initial(cur_mode.votable) && vote_cycle_met && min_players_met) + choices += initial(cur_mode.config_tag) + qdel(cur_mode) if("groundmap") question = "Ground map vote" vote_sound = 'sound/voice/start_your_voting.ogg' @@ -371,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 @@ -523,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/ASRS.dm b/code/datums/ASRS.dm index 57eff892fa58..dc5ebc362fd1 100644 --- a/code/datums/ASRS.dm +++ b/code/datums/ASRS.dm @@ -66,6 +66,14 @@ reference_package = /datum/supply_packs/ammo_shell_box_flechette cost = ASRS_VERY_LOW_WEIGHT +/datum/supply_packs_asrs/ammo_shell_box_breaching + reference_package = /datum/supply_packs/ammo_shell_box_breaching + cost = ASRS_VERY_LOW_WEIGHT + +/datum/supply_packs_asrs/ammo_xm51 + reference_package = /datum/supply_packs/ammo_xm51 + cost = ASRS_VERY_LOW_WEIGHT + /datum/supply_packs_asrs/ammo_smartgun reference_package = /datum/supply_packs/ammo_smartgun diff --git a/code/datums/agents/tools/stunbaton.dm b/code/datums/agents/tools/stunbaton.dm index b00f4e56f846..5e020aea8114 100644 --- a/code/datums/agents/tools/stunbaton.dm +++ b/code/datums/agents/tools/stunbaton.dm @@ -5,14 +5,3 @@ hitcost = 500 stunforce = 40 has_user_lock = FALSE - -/obj/item/weapon/baton/antag/check_user_auth(mob/user) - if(!skillcheckexplicit(user, SKILL_ANTAG, SKILL_ANTAG_AGENT)) - user.visible_message(SPAN_NOTICE("[src] beeps as [user] picks it up"), SPAN_DANGER("WARNING: Unauthorized user detected. Denying access...")) - user.apply_effect(10, DAZE) - user.visible_message(SPAN_WARNING("[src] beeps and sends a shock through [user]'s body!")) - deductcharge(hitcost) - - return FALSE - - return TRUE 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/shotgun.dm b/code/datums/ammo/bullet/shotgun.dm index 96ac4cb6ba04..e71114dc24de 100644 --- a/code/datums/ammo/bullet/shotgun.dm +++ b/code/datums/ammo/bullet/shotgun.dm @@ -311,6 +311,32 @@ penetration = ARMOR_PENETRATION_TIER_10 scatter = SCATTER_AMOUNT_TIER_4 +/* + 16 GAUGE SHOTGUN AMMO +*/ + +/datum/ammo/bullet/shotgun/light/breaching + name = "light breaching shell" + icon_state = "flechette" + handful_state = "breaching_shell" + multiple_handful_name = TRUE + bonus_projectiles_type = /datum/ammo/bullet/shotgun/light/breaching/spread + + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + damage = 55 + max_range = 5 + bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3 + penetration = ARMOR_PENETRATION_TIER_1 + +/datum/ammo/bullet/shotgun/light/breaching/spread + name = "additional light breaching fragments" + bonus_projectiles_amount = 0 + accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 + accuracy_var_high = PROJECTILE_VARIANCE_TIER_6 + scatter = SCATTER_AMOUNT_TIER_3 + damage = 10 + //Enormous shell for Van Bandolier's superheavy double-barreled hunting gun. /datum/ammo/bullet/shotgun/twobore name = "two bore bullet" 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 27d2b7d4e0c5..1f48806d2d52 100644 --- a/code/datums/ammo/energy.dm +++ b/code/datums/ammo/energy.dm @@ -28,16 +28,16 @@ icon_state = "stun" damage_type = OXY flags_ammo_behavior = AMMO_ENERGY|AMMO_IGNORE_RESIST|AMMO_ALWAYS_FF //Not that ignoring will do much right now. - stamina_damage = 45 accuracy = HIT_ACCURACY_TIER_8 shell_speed = AMMO_SPEED_TIER_1 // Slightly faster hit_effect_color = "#FFFF00" -/datum/ammo/energy/taser/on_hit_mob(mob/M, obj/projectile/P) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.disable_special_items() // Disables scout cloak +/datum/ammo/energy/taser/on_hit_mob(mob/mobs, obj/projectile/P) + if(ishuman(mobs)) + var/mob/living/carbon/human/humanus = mobs + humanus.disable_special_items() // Disables scout cloak + humanus.make_jittery(40) /datum/ammo/energy/taser/precise name = "precise taser bolt" @@ -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 3aaba8443efb..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 @@ -113,7 +113,7 @@ /datum/ammo/flare/set_bullet_traits() . = ..() LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary, stacks = 2.5) )) /datum/ammo/flare/on_hit_mob(mob/M,obj/projectile/P) @@ -156,11 +156,13 @@ name = "starshell ash" icon_state = "starshell_bullet" max_range = 5 + damage = 2.5 flare_type = /obj/item/device/flashlight/flare/on/starshell_ash /datum/ammo/flare/starshell/set_bullet_traits() LAZYADD(traits_to_give, list( - BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff, /datum/element/bullet_trait_incendiary) + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff), + BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary, stacks = 1) )) /datum/ammo/souto diff --git a/code/datums/ammo/rocket.dm b/code/datums/ammo/rocket.dm index 66a9f65bdcdd..7581d434c4b4 100644 --- a/code/datums/ammo/rocket.dm +++ b/code/datums/ammo/rocket.dm @@ -28,26 +28,26 @@ smoke = null . = ..() -/datum/ammo/rocket/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(get_turf(M), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(M)) - if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. - M.ex_act(350, P.dir, P.weapon_cause_data, 100) +/datum/ammo/rocket/on_hit_mob(mob/mob, obj/projectile/projectile) + cell_explosion(get_turf(mob), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, get_turf(mob)) + if(ishuman_strict(mob)) // No yautya or synths. Makes humans gib on direct hit. + mob.ex_act(350, projectile.dir, projectile.weapon_cause_data, 100) smoke.start() -/datum/ammo/rocket/on_hit_obj(obj/O, obj/projectile/P) - cell_explosion(get_turf(O), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(O)) +/datum/ammo/rocket/on_hit_obj(obj/object, obj/projectile/projectile) + cell_explosion(get_turf(object), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, get_turf(object)) smoke.start() -/datum/ammo/rocket/on_hit_turf(turf/T, obj/projectile/P) - cell_explosion(T, 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) +/datum/ammo/rocket/on_hit_turf(turf/turf, obj/projectile/projectile) + cell_explosion(turf, 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/do_at_max_range(obj/projectile/P) - cell_explosion(get_turf(P), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, get_turf(P)) +/datum/ammo/rocket/do_at_max_range(obj/projectile/projectile) + cell_explosion(get_turf(projectile), 150, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, get_turf(projectile)) smoke.start() /datum/ammo/rocket/ap @@ -62,62 +62,65 @@ damage = 10 penetration= ARMOR_PENETRATION_TIER_10 -/datum/ammo/rocket/ap/on_hit_mob(mob/M, obj/projectile/P) - var/turf/T = get_turf(M) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - M.apply_effect(2, PARALYZE) - if(ishuman_strict(M)) // No yautya or synths. Makes humans gib on direct hit. - M.ex_act(300, P.dir, P.weapon_cause_data, 100) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) + +/datum/ammo/rocket/ap/on_hit_mob(mob/mob, obj/projectile/projectile) + var/turf/turf = get_turf(mob) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + mob.apply_effect(3, WEAKEN) + mob.apply_effect(3, PARALYZE) + if(ishuman_strict(mob)) // No yautya or synths. Makes humans gib on direct hit. + mob.ex_act(300, projectile.dir, projectile.weapon_cause_data, 100) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/ap/on_hit_obj(obj/O, obj/projectile/P) - var/turf/T = get_turf(O) - O.ex_act(150, P.dir, P.weapon_cause_data, 100) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) +/datum/ammo/rocket/ap/on_hit_obj(obj/object, obj/projectile/projectile) + var/turf/turf = get_turf(object) + object.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/ap/on_hit_turf(turf/T, obj/projectile/P) +/datum/ammo/rocket/ap/on_hit_turf(turf/turf, obj/projectile/projectile) var/hit_something = 0 - for(var/mob/M in T) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - M.apply_effect(4, PARALYZE) + for(var/mob/mob in turf) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + mob.apply_effect(3, WEAKEN) + mob.apply_effect(3, PARALYZE) hit_something = 1 continue if(!hit_something) - for(var/obj/O in T) - if(O.density) - O.ex_act(150, P.dir, P.weapon_cause_data, 100) + for(var/obj/object in turf) + if(object.density) + object.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) hit_something = 1 continue if(!hit_something) - T.ex_act(150, P.dir, P.weapon_cause_data, 200) + turf.ex_act(150, projectile.dir, projectile.weapon_cause_data, 200) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() -/datum/ammo/rocket/ap/do_at_max_range(obj/projectile/P) - var/turf/T = get_turf(P) +/datum/ammo/rocket/ap/do_at_max_range(obj/projectile/projectile) + var/turf/turf = get_turf(projectile) var/hit_something = 0 - for(var/mob/M in T) - M.ex_act(250, P.dir, P.weapon_cause_data, 100) - M.apply_effect(2, WEAKEN) - M.apply_effect(2, PARALYZE) + for(var/mob/mob in turf) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + mob.apply_effect(3, WEAKEN) + mob.apply_effect(3, PARALYZE) hit_something = 1 - continue + break if(!hit_something) - for(var/obj/O in T) - if(O.density) - O.ex_act(250, P.dir, P.weapon_cause_data, 100) + for(var/obj/object in turf) + if(object.density) + object.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) hit_something = 1 - continue + break if(!hit_something) - T.ex_act(250, P.dir, P.weapon_cause_data) - cell_explosion(T, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - smoke.set_up(1, T) + turf.ex_act(150, projectile.dir, projectile.weapon_cause_data) + cell_explosion(turf, 100, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + smoke.set_up(1, turf) smoke.start() /datum/ammo/rocket/ap/anti_tank @@ -127,16 +130,16 @@ shrapnel_chance = 5 shrapnel_type = /obj/item/large_shrapnel/at_rocket_dud -/datum/ammo/rocket/ap/anti_tank/on_hit_obj(obj/O, obj/projectile/P) - if(istype(O, /obj/vehicle/multitile)) - var/obj/vehicle/multitile/M = O - M.next_move = world.time + vehicle_slowdown_time - playsound(M, 'sound/effects/meteorimpact.ogg', 35) - M.at_munition_interior_explosion_effect(cause_data = create_cause_data("Anti-Tank Rocket")) - M.interior_crash_effect() - var/turf/T = get_turf(M.loc) - M.ex_act(150, P.dir, P.weapon_cause_data, 100) - smoke.set_up(1, T) +/datum/ammo/rocket/ap/anti_tank/on_hit_obj(obj/object, obj/projectile/projectile) + if(istype(object, /obj/vehicle/multitile)) + var/obj/vehicle/multitile/mob = object + mob.next_move = world.time + vehicle_slowdown_time + playsound(mob, 'sound/effects/meteorimpact.ogg', 35) + mob.at_munition_interior_explosion_effect(cause_data = create_cause_data("Anti-Tank Rocket")) + mob.interior_crash_effect() + var/turf/turf = get_turf(mob.loc) + mob.ex_act(150, projectile.dir, projectile.weapon_cause_data, 100) + smoke.set_up(1, turf) smoke.start() return return ..() @@ -153,21 +156,21 @@ damage = 25 shell_speed = AMMO_SPEED_TIER_3 -/datum/ammo/rocket/ltb/on_hit_mob(mob/M, obj/projectile/P) - cell_explosion(get_turf(M), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(M), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/on_hit_mob(mob/mob, obj/projectile/projectile) + cell_explosion(get_turf(mob), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(mob), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) -/datum/ammo/rocket/ltb/on_hit_obj(obj/O, obj/projectile/P) - cell_explosion(get_turf(O), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(O), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/on_hit_obj(obj/object, obj/projectile/projectile) + cell_explosion(get_turf(object), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(object), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) -/datum/ammo/rocket/ltb/on_hit_turf(turf/T, obj/projectile/P) - cell_explosion(get_turf(T), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(T), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/on_hit_turf(turf/turf, obj/projectile/projectile) + cell_explosion(get_turf(turf), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(turf), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) -/datum/ammo/rocket/ltb/do_at_max_range(obj/projectile/P) - cell_explosion(get_turf(P), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) - cell_explosion(get_turf(P), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, P.weapon_cause_data) +/datum/ammo/rocket/ltb/do_at_max_range(obj/projectile/projectile) + cell_explosion(get_turf(projectile), 220, 50, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) + cell_explosion(get_turf(projectile), 200, 100, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, projectile.weapon_cause_data) /datum/ammo/rocket/wp name = "white phosphorous rocket" @@ -185,30 +188,30 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) )) -/datum/ammo/rocket/wp/drop_flame(turf/T, datum/cause_data/cause_data) - playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) - if(!istype(T)) return - smoke.set_up(1, T) +/datum/ammo/rocket/wp/drop_flame(turf/turf, datum/cause_data/cause_data) + playsound(turf, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) + if(!istype(turf)) return + smoke.set_up(1, turf) smoke.start() - var/datum/reagent/napalm/blue/R = new() - new /obj/flamer_fire(T, cause_data, R, 3) + var/datum/reagent/napalm/blue/reagent = new() + new /obj/flamer_fire(turf, cause_data, reagent, 3) var/datum/effect_system/smoke_spread/phosphorus/landingSmoke = new /datum/effect_system/smoke_spread/phosphorus - landingSmoke.set_up(3, 0, T, null, 6, cause_data) + landingSmoke.set_up(3, 0, turf, null, 6, cause_data) landingSmoke.start() landingSmoke = null -/datum/ammo/rocket/wp/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) +/datum/ammo/rocket/wp/on_hit_mob(mob/mob, obj/projectile/projectile) + drop_flame(get_turf(mob), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) +/datum/ammo/rocket/wp/on_hit_obj(obj/object, obj/projectile/projectile) + drop_flame(get_turf(object), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) +/datum/ammo/rocket/wp/on_hit_turf(turf/turf, obj/projectile/projectile) + drop_flame(turf, projectile.weapon_cause_data) -/datum/ammo/rocket/wp/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) +/datum/ammo/rocket/wp/do_at_max_range(obj/projectile/projectile) + drop_flame(get_turf(projectile), projectile.weapon_cause_data) /datum/ammo/rocket/wp/upp name = "extreme-intensity incendiary rocket" @@ -226,25 +229,25 @@ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary) )) -/datum/ammo/rocket/wp/upp/drop_flame(turf/T, datum/cause_data/cause_data) - playsound(T, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) - if(!istype(T)) return - smoke.set_up(1, T) +/datum/ammo/rocket/wp/upp/drop_flame(turf/turf, datum/cause_data/cause_data) + playsound(turf, 'sound/weapons/gun_flamethrower3.ogg', 75, 1, 7) + if(!istype(turf)) return + smoke.set_up(1, turf) smoke.start() - var/datum/reagent/napalm/upp/R = new() - new /obj/flamer_fire(T, cause_data, R, 3) + var/datum/reagent/napalm/upp/reagent = new() + new /obj/flamer_fire(turf, cause_data, reagent, 3) -/datum/ammo/rocket/wp/upp/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/on_hit_mob(mob/mob, obj/projectile/projectile) + drop_flame(get_turf(mob), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/upp/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/on_hit_obj(obj/object, obj/projectile/projectile) + drop_flame(get_turf(object), projectile.weapon_cause_data) -/datum/ammo/rocket/wp/upp/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/on_hit_turf(turf/turf, obj/projectile/projectile) + drop_flame(turf, projectile.weapon_cause_data) -/datum/ammo/rocket/wp/upp/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) +/datum/ammo/rocket/wp/upp/do_at_max_range(obj/projectile/projectile) + drop_flame(get_turf(projectile), projectile.weapon_cause_data) /datum/ammo/rocket/wp/quad name = "thermobaric rocket" @@ -254,45 +257,45 @@ max_range = 32 shell_speed = AMMO_SPEED_TIER_3 -/datum/ammo/rocket/wp/quad/on_hit_mob(mob/M, obj/projectile/P) - drop_flame(get_turf(M), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/on_hit_mob(mob/mob, obj/projectile/projectile) + drop_flame(get_turf(mob), projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) -/datum/ammo/rocket/wp/quad/on_hit_obj(obj/O, obj/projectile/P) - drop_flame(get_turf(O), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/on_hit_obj(obj/object, obj/projectile/projectile) + drop_flame(get_turf(object), projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) -/datum/ammo/rocket/wp/quad/on_hit_turf(turf/T, obj/projectile/P) - drop_flame(T, P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/on_hit_turf(turf/turf, obj/projectile/projectile) + drop_flame(turf, projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) -/datum/ammo/rocket/wp/quad/do_at_max_range(obj/projectile/P) - drop_flame(get_turf(P), P.weapon_cause_data) - explosion(P.loc, -1, 2, 4, 5, , , ,P.weapon_cause_data) +/datum/ammo/rocket/wp/quad/do_at_max_range(obj/projectile/projectile) + drop_flame(get_turf(projectile), projectile.weapon_cause_data) + explosion(projectile.loc, -1, 2, 4, 5, , , ,projectile.weapon_cause_data) /datum/ammo/rocket/custom name = "custom rocket" -/datum/ammo/rocket/custom/proc/prime(atom/A, obj/projectile/P) - var/obj/item/weapon/gun/launcher/rocket/launcher = P.shot_from +/datum/ammo/rocket/custom/proc/prime(atom/atom, obj/projectile/projectile) + var/obj/item/weapon/gun/launcher/rocket/launcher = projectile.shot_from var/obj/item/ammo_magazine/rocket/custom/rocket = launcher.current_mag if(rocket.locked && rocket.warhead && rocket.warhead.detonator) if(rocket.fuel && rocket.fuel.reagents.get_reagent_amount(rocket.fuel_type) >= rocket.fuel_requirement) - rocket.forceMove(P.loc) - rocket.warhead.cause_data = P.weapon_cause_data + rocket.forceMove(projectile.loc) + rocket.warhead.cause_data = projectile.weapon_cause_data rocket.warhead.prime() qdel(rocket) - smoke.set_up(1, get_turf(A)) + smoke.set_up(1, get_turf(atom)) smoke.start() -/datum/ammo/rocket/custom/on_hit_mob(mob/M, obj/projectile/P) - prime(M, P) +/datum/ammo/rocket/custom/on_hit_mob(mob/mob, obj/projectile/projectile) + prime(mob, projectile) -/datum/ammo/rocket/custom/on_hit_obj(obj/O, obj/projectile/P) - prime(O, P) +/datum/ammo/rocket/custom/on_hit_obj(obj/object, obj/projectile/projectile) + prime(object, projectile) -/datum/ammo/rocket/custom/on_hit_turf(turf/T, obj/projectile/P) - prime(T, P) +/datum/ammo/rocket/custom/on_hit_turf(turf/turf, obj/projectile/projectile) + prime(turf, projectile) -/datum/ammo/rocket/custom/do_at_max_range(obj/projectile/P) - prime(null, P) +/datum/ammo/rocket/custom/do_at_max_range(obj/projectile/projectile) + prime(null, projectile) 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/ammo/xeno.dm b/code/datums/ammo/xeno.dm index 654ab88c7abc..7fec3cf3b9a3 100644 --- a/code/datums/ammo/xeno.dm +++ b/code/datums/ammo/xeno.dm @@ -363,7 +363,7 @@ name = "tail hook" icon_state = "none" ping = null - flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER|AMMO_IGNORE_ARMOR + flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_STOPPED_BY_COVER damage_type = BRUTE damage = XENO_DAMAGE_TIER_5 @@ -386,7 +386,8 @@ target.overlays += tail_image new /datum/effects/xeno_slow(target, fired_proj.firer, ttl = 0.5 SECONDS) - target.apply_effect(0.5, STUN) + + target.apply_effect(0.5, ROOT) INVOKE_ASYNC(target, TYPE_PROC_REF(/atom/movable, throw_atom), fired_proj.firer, get_dist(fired_proj.firer, target)-1, SPEED_VERY_FAST) qdel(tail_beam) diff --git a/code/datums/autocells/explosion.dm b/code/datums/autocells/explosion.dm index 970e5618bae3..367567a6d40d 100644 --- a/code/datums/autocells/explosion.dm +++ b/code/datums/autocells/explosion.dm @@ -23,7 +23,7 @@ That's it. There are some special rules, though, namely: - * If the explosion occured in a wall, the wave is strengthened + * If the explosion occurred in a wall, the wave is strengthened with power *= reflection_multiplier and reflected back in the direction it came from 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/connect_mob_behalf.dm b/code/datums/components/connect_mob_behalf.dm index 1c1a8a652342..2eeee78bf28b 100644 --- a/code/datums/components/connect_mob_behalf.dm +++ b/code/datums/components/connect_mob_behalf.dm @@ -1,6 +1,6 @@ /// This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc /// To be clear, we hook into a signal on a tracked client's mob -/// We retain the ability to react to that signal on a seperate listener, which makes this quite powerful +/// We retain the ability to react to that signal on a separate listener, which makes this quite powerful /datum/component/connect_mob_behalf dupe_mode = COMPONENT_DUPE_UNIQUE diff --git a/code/datums/components/temporary_mute.dm b/code/datums/components/temporary_mute.dm new file mode 100644 index 000000000000..a875287d487e --- /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) + msg_admin_niche("[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]) (AREA: [get_area_name(user)])") + 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 + + msg_admin_niche("[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]) (AREA: [get_area_name(user)])") + 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 + + msg_admin_niche("[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]) (AREA: [get_area_name(user)])") + 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 + + msg_admin_niche("[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]) (AREA: [get_area_name(user)])") + if(on_emote_message) + to_chat(parent, SPAN_BOLDNOTICE(on_emote_message)) + return COMPONENT_OVERRIDE_POINT diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index 8b8d46c90a61..cd7f9a1b974e 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -3,7 +3,7 @@ Coughing - Noticable. + Noticeable. Little Resistance. Doesn't increase stage speed much. Transmittable. diff --git a/code/datums/diseases/advance/symptoms/hallucigen.dm b/code/datums/diseases/advance/symptoms/hallucigen.dm index f14f94dd2167..2802f6ebfaf2 100644 --- a/code/datums/diseases/advance/symptoms/hallucigen.dm +++ b/code/datums/diseases/advance/symptoms/hallucigen.dm @@ -3,7 +3,7 @@ Hallucigen - Very noticable. + Very noticeable. Lowers resistance considerably. Decreases stage speed. Reduced transmittable. diff --git a/code/datums/diseases/advance/symptoms/headache.dm b/code/datums/diseases/advance/symptoms/headache.dm index 169085fe5911..b4a3d5939962 100644 --- a/code/datums/diseases/advance/symptoms/headache.dm +++ b/code/datums/diseases/advance/symptoms/headache.dm @@ -3,7 +3,7 @@ Headache - Noticable. + Noticeable. Highly resistant. Increases stage speed. Not transmittable. diff --git a/code/datums/diseases/advance/symptoms/itching.dm b/code/datums/diseases/advance/symptoms/itching.dm index a8f9cb210396..8b79fd1d6052 100644 --- a/code/datums/diseases/advance/symptoms/itching.dm +++ b/code/datums/diseases/advance/symptoms/itching.dm @@ -3,7 +3,7 @@ Itching - Not noticable or unnoticable. + Not noticeable or unnoticeable. Resistant. Increases stage speed. Little transmittable. diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index 63f29eff93a4..74a6c3ab66c2 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -3,7 +3,7 @@ Sneezing - Very Noticable. + Very Noticeable. Increases resistance. Doesn't increase stage speed. Very transmittable. diff --git a/code/datums/diseases/advance/symptoms/voice_change.dm b/code/datums/diseases/advance/symptoms/voice_change.dm index e5af4a8eaab4..c5003ea772fb 100644 --- a/code/datums/diseases/advance/symptoms/voice_change.dm +++ b/code/datums/diseases/advance/symptoms/voice_change.dm @@ -3,7 +3,7 @@ Voice Change - Very Very noticable. + Very Very noticeable. Lowers resistance considerably. Decreases stage speed. Reduced transmittable. diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm index cb30a2aff818..47ba6625c98b 100644 --- a/code/datums/diseases/advance/symptoms/vomit.dm +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -3,7 +3,7 @@ Vomiting - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Doesn't increase stage speed. Little transmittable. @@ -51,7 +51,7 @@ Bonus Vomiting Blood - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Decreases stage speed. Little transmittable. diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm index aebf8575e004..1e0dc978e392 100644 --- a/code/datums/diseases/advance/symptoms/weight.dm +++ b/code/datums/diseases/advance/symptoms/weight.dm @@ -3,7 +3,7 @@ Weight Gain - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Decreases stage speed. Reduced transmittable. @@ -43,7 +43,7 @@ Bonus Weight Loss - Very Very Noticable. + Very Very Noticeable. Decreases resistance. Decreases stage speed. Reduced Transmittable. @@ -84,7 +84,7 @@ Bonus Weight Even - Very Noticable. + Very Noticeable. Decreases resistance. Decreases stage speed. Reduced transmittable. diff --git a/code/datums/diseases/black_goo.dm b/code/datums/diseases/black_goo.dm index 183cdadf17aa..5d6d96fcc57c 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 @@ -141,6 +148,8 @@ human.make_jittery(500) sleep(30) if(human && human.loc) + if(human.buckled) + human.buckled.unbuckle() if(human.stat == DEAD) human.revive(TRUE) human.remove_language(LANGUAGE_ENGLISH) // You lose the ability to understand english. Language processing is handled in the mind not the body. @@ -149,7 +158,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 +259,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 +318,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/elements/bullet_trait/damage_boost.dm b/code/datums/elements/bullet_trait/damage_boost.dm index a0370f2d36b6..eee4a8e80f4b 100644 --- a/code/datums/elements/bullet_trait/damage_boost.dm +++ b/code/datums/elements/bullet_trait/damage_boost.dm @@ -1,5 +1,7 @@ GLOBAL_LIST_INIT(damage_boost_turfs, typecacheof(/turf)) +GLOBAL_LIST_INIT(damage_boost_turfs_xeno, typecacheof(/turf/closed/wall/resin)) + GLOBAL_LIST_INIT(damage_boost_breaching, typecacheof(list( /obj/structure/machinery/door, /obj/structure/mineral_door, 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 837ecb340dda..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 @@ -45,7 +46,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are a Cell Leader of the local resistance group, the Colonial Liberation Front!")) arm_equipment(H, /datum/equipment_preset/clf/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Multi-Purpose Synthetic for the local resistance group, the Colonial Liberation Front!")) arm_equipment(H, /datum/equipment_preset/clf/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/cmb.dm b/code/datums/emergency_calls/cmb.dm index 5dba3ee8fc7d..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 @@ -35,7 +36,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!")) arm_equipment(mob, /datum/equipment_preset/cmb/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Investigative Synthetic!")) arm_equipment(mob, /datum/equipment_preset/cmb/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/contractor.dm b/code/datums/emergency_calls/contractor.dm index 0e0c975f0d13..05d6ab7b4671 100644 --- a/code/datums/emergency_calls/contractor.dm +++ b/code/datums/emergency_calls/contractor.dm @@ -29,7 +29,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Team Leader of Vanguard's Arrow Incorporated!")) arm_equipment(mob, /datum/equipment_preset/contractor/duty/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a Contractor Support Synthetic of Vanguard's Arrow Incorporated!")) arm_equipment(mob, /datum/equipment_preset/contractor/duty/synth, TRUE, TRUE) @@ -123,7 +123,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are a Covert Contractor Team Leader of Vanguard's Arrow Incorporated!")) arm_equipment(H, /datum/equipment_preset/contractor/covert/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Contractor Support Synthetic of Vanguard's Arrow Incorporated!")) arm_equipment(H, /datum/equipment_preset/contractor/covert/synth, TRUE, TRUE) diff --git a/code/datums/emergency_calls/deathsquad.dm b/code/datums/emergency_calls/deathsquad.dm index 1cd5bdef6713..649f40c8cb83 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 @@ -87,82 +88,44 @@ //################################################################################################ // Marine commandos - USCM Deathsquad. Event only /datum/emergency_call/marsoc - name = "Marine Raider Strike Team (!DEATHSQUAD!)" + name = "Marine Raider Operatives (!DEATHSQUAD!)" 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 + var/leader_preset = /datum/equipment_preset/uscm/marsoc/sl + var/member_preset = /datum/equipment_preset/uscm/marsoc -/datum/emergency_call/marsoc/create_member(datum/mind/M, turf/override_spawn_loc) +/datum/emergency_call/marsoc/create_member(datum/mind/player, turf/override_spawn_loc) var/turf/spawn_loc = override_spawn_loc ? override_spawn_loc : get_spawn_point() if(!istype(spawn_loc)) return //Didn't find a useable spawn point. - var/mob/living/carbon/human/H = new(spawn_loc) - M.transfer_to(H, TRUE) + var/mob/living/carbon/human/member = new(spawn_loc) + player.transfer_to(member, TRUE) - if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. - leader = H - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc/sl, TRUE, TRUE) + if(!leader && HAS_FLAG(member.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(member.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. + leader = member + to_chat(member, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) + arm_equipment(member, leader_preset, TRUE, TRUE) else - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider Operative, the best of the best."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc, TRUE, TRUE) - to_chat(H, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) - to_chat(H, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) + to_chat(member, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider Operative, the best of the best."))) + arm_equipment(member, member_preset, TRUE, TRUE) + to_chat(member, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) + to_chat(member, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) return -/datum/emergency_call/marsoc_covert +/datum/emergency_call/marsoc/covert name = "Marine Raider Operatives (!DEATHSQUAD! Covert)" - mob_max = 8 - mob_min = 5 - probability = 0 - shuttle_id = "Distress_PMC" - name_of_spawn = /obj/effect/landmark/ert_spawns/distress_pmc - -/datum/emergency_call/marsoc_covert/create_member(datum/mind/M) - - var/turf/spawn_loc = get_spawn_point() - - if(!istype(spawn_loc)) - return //Didn't find a useable spawn point. - - var/mob/living/carbon/human/H = new(spawn_loc) - M.transfer_to(H, TRUE) - if(!leader && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(H.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. - leader = H - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc/sl/covert, TRUE, TRUE) - else - to_chat(H, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider, the best of the best."))) - arm_equipment(H, /datum/equipment_preset/uscm/marsoc/covert, TRUE, TRUE) - to_chat(H, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) - to_chat(H, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) - return + leader_preset = /datum/equipment_preset/uscm/marsoc/sl/covert + member_preset = /datum/equipment_preset/uscm/marsoc/covert /datum/emergency_call/marsoc/low_threat name = "Marine Raider Operatives" - -/datum/emergency_call/marsoc/low_threat/create_member(datum/mind/MIND) - - var/turf/spawn_loc = get_spawn_point() - - if(!istype(spawn_loc)) - return //Didn't find a useable spawn point. - - var/mob/living/carbon/human/player = new(spawn_loc) - MIND.transfer_to(player, TRUE) - if(!leader && HAS_FLAG(player.client.prefs.toggles_ert, PLAY_LEADER) && check_timelock(player.client, JOB_SQUAD_LEADER, time_required_for_job)) //First one spawned is always the leader. - leader = player - to_chat(player, SPAN_WARNING(FONT_SIZE_BIG("You are a Marine Raider Team Leader, better than all the rest."))) - arm_equipment(player, /datum/equipment_preset/uscm/marsoc/low_threat/sl, TRUE, TRUE) - else - to_chat(player, SPAN_WARNING(FONT_SIZE_BIG("You are an elite Marine Raider, the best of the best."))) - arm_equipment(player, /datum/equipment_preset/uscm/marsoc/low_threat, TRUE, TRUE) - to_chat(player, SPAN_BOLDNOTICE("You are absolutely loyal to High Command and must follow their directives.")) - to_chat(player, SPAN_BOLDNOTICE("Execute the mission assigned to you with extreme prejudice!")) - return + leader_preset = /datum/equipment_preset/uscm/marsoc/low_threat/sl + member_preset = /datum/equipment_preset/uscm/marsoc/low_threat 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..312ceeaf9eed --- /dev/null +++ b/code/datums/emergency_calls/ert_stations.dm @@ -0,0 +1,17 @@ +/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" + +/datum/lazy_template/ert/pizza_station + map_name = "pizza_ert_station" diff --git a/code/datums/emergency_calls/feral_xenos.dm b/code/datums/emergency_calls/feral_xenos.dm index 5d9f14a4680c..ad1935ccefb9 100644 --- a/code/datums/emergency_calls/feral_xenos.dm +++ b/code/datums/emergency_calls/feral_xenos.dm @@ -39,7 +39,7 @@ else if(medics < max_medics) medics++ - var/picked = pick(/mob/living/carbon/xenomorph/drone, /mob/living/carbon/xenomorph/hivelord, /mob/living/carbon/xenomorph/burrower) + var/picked = pick(/mob/living/carbon/xenomorph/drone, /mob/living/carbon/xenomorph/hivelord) new_xeno = new picked(spawn_loc) else if(engineers < max_engineers) 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 2cd121093ea4..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 @@ -202,7 +240,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are the Colonial Marshal!")) arm_equipment(mob, /datum/equipment_preset/cmb/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob?.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a CMB Investigative Synthetic!")) arm_equipment(mob, /datum/equipment_preset/cmb/synth, TRUE, TRUE) @@ -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/mercs.dm b/code/datums/emergency_calls/mercs.dm index 67e09e8992f0..33a261a1da5e 100644 --- a/code/datums/emergency_calls/mercs.dm +++ b/code/datums/emergency_calls/mercs.dm @@ -13,9 +13,9 @@ hostility = pick(75;FALSE,25;TRUE) arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." if(hostility) - objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." + objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Warlord says. Ensure your survival at all costs." else - objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Captain says. Ensure your survival at all costs." + objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Warlord says. Ensure your survival at all costs." /datum/emergency_call/mercs/friendly //if admins want to specifically call in friendly ones name = "Friendly Freelancers (Squad)" @@ -26,7 +26,7 @@ . = ..() hostility = FALSE arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." - objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Captain says. Ensure your survival at all costs." + objectives = "Help the crew of the [MAIN_SHIP_NAME] in exchange for payment, and choose your payment well. Do what your Warlord says. Ensure your survival at all costs." /datum/emergency_call/mercs/hostile //ditto name = "Hostile Freelancers (Squad)" @@ -37,7 +37,7 @@ . = ..() hostility = TRUE arrival_message = "[MAIN_SHIP_NAME], this is Freelancer shuttle [pick(GLOB.alphabet_lowercase)][pick(GLOB.alphabet_lowercase)]-[rand(1, 99)] responding to your distress call. Prepare for boarding." - objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Captain says. Ensure your survival at all costs." + objectives = "Ransack the [MAIN_SHIP_NAME] and kill anyone who gets in your way. Do what your Warlord says. Ensure your survival at all costs." /datum/emergency_call/mercs/print_backstory(mob/living/carbon/human/H) to_chat(H, SPAN_BOLD("You started off in the Neroid Sector as a colonist seeking work at one of the established colonies.")) diff --git a/code/datums/emergency_calls/pizza.dm b/code/datums/emergency_calls/pizza.dm index a35ce584c68d..a0d710f455f9 100644 --- a/code/datums/emergency_calls/pizza.dm +++ b/code/datums/emergency_calls/pizza.dm @@ -6,9 +6,10 @@ 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 + home_base = /datum/lazy_template/ert/pizza_station + 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 +33,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 2d21dc768f4a..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 @@ -34,7 +35,7 @@ leader = mob to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani PMC Squad Leader!")) arm_equipment(mob, /datum/equipment_preset/pmc/pmc_leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[mob.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(mob.client.prefs.toggles_ert, PLAY_SYNTH) && mob.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(mob, SPAN_ROLE_HEADER("You are a Weyland-Yutani PMC Support Synthetic!")) arm_equipment(mob, /datum/equipment_preset/pmc/synth, TRUE, TRUE) 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 80ef111be3e4..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 @@ -35,13 +36,16 @@ else to_chat(M, SPAN_BOLD("You were brought online in a UPP engineering facility, knowing only your engineers for the first few weeks for your pseudo-life.")) to_chat(M, SPAN_BOLD("You were programmed with all of the medical and combat experience a military fighting force support asset required.")) - to_chat(M, SPAN_BOLD("Throughout your career, your engineers, and later, your UPP compatriots, treated you like a tool, and only that.")) + to_chat(M, SPAN_BOLD("Throughout your career, your engineers, and later, your UPP compatriots, treated you like [pick(75;"a tool, and only that.", 25;"a person, despite your purpose.")]")) to_chat(M, SPAN_BOLD("Some weeks after your unit integration, you were assigned to the 17th 'Smoldering Sons' battalion (six hundred strong) under the command of Colonel Ganbaatar.")) to_chat(M, SPAN_BOLD("You were shipped off with the battalion to one of the UPP's most remote territories, a gas giant designated MV-35 in the Anglo-Japanese Arm, in the Neroid Sector.")) to_chat(M, SPAN_BOLD("For the past 14 months, you and the rest of the Smoldering Sons have been stationed at MV-35's only facility, the helium refinery, Altai Station.")) to_chat(M, SPAN_BOLD("As MV-35 and Altai Station are the only UPP-held zones in the Neroid Sector for many lightyears, you have spent most of your military career holed up in crammed quarters in near darkness, waiting for supply shipments and transport escort deployments.")) - to_chat(M, SPAN_BOLD("With the recent arrival of the enemy USCM battalion the 'Falling Falcons' and their flagship, the [MAIN_SHIP_NAME], the UPP has felt threatened in the sector.")) - to_chat(M, SPAN_BOLD("In an effort to protect the vulnerable MV-35 from the encroaching UA/USCM imperialists, the leadership of your battalion has opted this to be the best opportunity to strike at the Falling Falcons to catch them off guard.")) + to_chat(M, SPAN_BOLD("With the recent arrival of the USCM battalion the 'Falling Falcons' and their flagship, the [MAIN_SHIP_NAME], the UPP has felt threatened in the sector.")) + if(hostility) + to_chat(M, SPAN_BOLD("In an effort to protect the vulnerable MV-35 from the encroaching UA/USCM imperialists, the leadership of your battalion has opted this to be the best opportunity to strike at the Falling Falcons to catch them off guard.")) + else + to_chat(M, SPAN_BOLD("Despite this, the leadership of your battalion questions what may have prompted the distress signal from their rivals. Your squad is to find out why and to render aid to the beleaguered UA forces.")) to_chat(M, SPAN_WARNING(FONT_SIZE_BIG("Glory to Colonel Ganbaatar."))) to_chat(M, SPAN_WARNING(FONT_SIZE_BIG("Glory to the Smoldering Sons."))) to_chat(M, SPAN_WARNING(FONT_SIZE_BIG("Glory to the UPP."))) @@ -61,7 +65,7 @@ leader = H arm_equipment(H, /datum/equipment_preset/upp/leader, TRUE, TRUE) to_chat(H, SPAN_ROLE_HEADER("You are an Officer of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are a Combat Synthetic of the Union of Progressive People, a powerful socialist state that rivals the United Americas!")) arm_equipment(H, /datum/equipment_preset/upp/synth, TRUE, TRUE) @@ -96,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/emergency_calls/xeno_cultists.dm b/code/datums/emergency_calls/xeno_cultists.dm index 5da5c9c17e59..f112511b5e22 100644 --- a/code/datums/emergency_calls/xeno_cultists.dm +++ b/code/datums/emergency_calls/xeno_cultists.dm @@ -25,7 +25,7 @@ leader = H to_chat(H, SPAN_ROLE_HEADER("You are the leader of this xeno cult! Bring glory to Queen Mother!")) arm_equipment(H, /datum/equipment_preset/other/xeno_cultist/leader, TRUE, TRUE) - else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && GLOB.RoleAuthority.roles_whitelist[H.ckey] & WHITELIST_SYNTHETIC) + else if(synths < max_synths && HAS_FLAG(H.client.prefs.toggles_ert, PLAY_SYNTH) && H.client.check_whitelist_status(WHITELIST_SYNTHETIC)) synths++ to_chat(H, SPAN_ROLE_HEADER("You are the xeno cult's synthetic! Tend to the Hive and the captured hosts, make sure the Hive grows!")) arm_equipment(H, /datum/equipment_preset/synth/survivor/cultist_synth, TRUE, TRUE) diff --git a/code/datums/entities/player.dm b/code/datums/entities/player.dm index e5fa811002a2..aefa81672b54 100644 --- a/code/datums/entities/player.dm +++ b/code/datums/entities/player.dm @@ -5,6 +5,9 @@ var/last_known_ip var/last_known_cid + var/whitelist_status + var/whitelist_flags + var/discord_link_id var/last_login @@ -26,6 +29,9 @@ var/stickyban_whitelisted = FALSE + var/byond_account_age + var/first_join_date + // UNTRACKED FIELDS var/name // Used for NanoUI statistics menu @@ -63,6 +69,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player) "is_permabanned" = DB_FIELDTYPE_INT, "permaban_reason" = DB_FIELDTYPE_STRING_MAX, "permaban_date" = DB_FIELDTYPE_STRING_LARGE, + "whitelist_status" = DB_FIELDTYPE_STRING_MAX, "discord_link_id" = DB_FIELDTYPE_BIGINT, "permaban_admin_id" = DB_FIELDTYPE_BIGINT, "is_time_banned" = DB_FIELDTYPE_INT, @@ -74,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 @@ -301,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 @@ -321,20 +360,6 @@ BSQL_PROTECT_DATUM(/datum/entity/player) value.delete() job_bans -= value -/datum/entity/player/proc/load_refs() - if(refs_loaded) - return - while(!notes_loaded || !jobbans_loaded) - stoplag() - for(var/key in job_bans) - var/datum/entity/player_job_ban/value = job_bans[key] - if(istype(value)) - value.load_refs() - for(var/datum/entity/player_note/note in notes) - if(istype(note)) - note.load_refs() - refs_loaded = TRUE - /datum/entity_meta/player/on_read(datum/entity/player/player) player.job_bans = list() player.notes = list() @@ -391,7 +416,12 @@ BSQL_PROTECT_DATUM(/datum/entity/player) if(discord_link_id) discord_link = DB_ENTITY(/datum/entity/discord_link, discord_link_id) + if(whitelist_status) + var/list/whitelists = splittext(whitelist_status, "|") + for(var/whitelist in whitelists) + if(whitelist in GLOB.bitfields["whitelist_status"]) + whitelist_flags |= GLOB.bitfields["whitelist_status"]["[whitelist]"] /datum/entity/player/proc/on_read_notes(list/datum/entity/player_note/_notes) notes_loaded = TRUE @@ -424,6 +454,35 @@ 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/list/http_request = world.Export("http://byond.com/members/[ckey]?format=text") + if(!http_request) + log_admin("Could not check BYOND account age for [ckey] - no response from server.") + return + + var/body = file2text(http_request["CONTENT"]) + if(!body) + log_admin("Could not check BYOND account age for [ckey] - invalid response.") + return + + var/static/regex/regex = regex("joined = \"(\\d{4}-\\d{2}-\\d{2})\"") + if(!regex.Find(body)) + log_admin("Could not check BYOND account age for [ckey] - no valid date in response.") + 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) @@ -445,61 +504,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) @@ -514,8 +570,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 . @@ -657,6 +714,23 @@ BSQL_PROTECT_DATUM(/datum/entity/player) stat.stat_number += num stat.save() +/datum/entity/player/proc/check_whitelist_status(flag_to_check) + if(whitelist_flags & flag_to_check) + return TRUE + + return FALSE + +/datum/entity/player/proc/set_whitelist_status(field_to_set) + whitelist_flags = field_to_set + + var/list/output = list() + for(var/bitfield in GLOB.bitfields["whitelist_status"]) + if(field_to_set & GLOB.bitfields["whitelist_status"]["[bitfield]"]) + output += bitfield + whitelist_status = output.Join("|") + + save() + /datum/entity_link/player_to_banning_admin parent_entity = /datum/entity/player child_entity = /datum/entity/player @@ -669,7 +743,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 @@ -685,6 +758,7 @@ BSQL_PROTECT_DATUM(/datum/entity/player) var/last_known_cid var/last_known_ip var/discord_link_id + var/whitelist_status /datum/entity_view_meta/players root_record_type = /datum/entity/player @@ -702,4 +776,5 @@ BSQL_PROTECT_DATUM(/datum/entity/player) "last_known_ip", "last_known_cid", "discord_link_id", + "whitelist_status" ) 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/factions/uscm.dm b/code/datums/factions/uscm.dm index 0a9b0cff40b9..a19faba32d81 100644 --- a/code/datums/factions/uscm.dm +++ b/code/datums/factions/uscm.dm @@ -22,7 +22,8 @@ if(JOB_XO) marine_rk = "xo" if(JOB_CO) marine_rk = "co" if(JOB_GENERAL) marine_rk = "general" - if(JOB_PILOT) marine_rk = "po" + if(JOB_CAS_PILOT) marine_rk = "gp" + if(JOB_DROPSHIP_PILOT) marine_rk = "dp" if(JOB_INTEL) marine_rk = "io" if(JOB_DROPSHIP_CREW_CHIEF) marine_rk = "dcc" if(JOB_CREWMAN) marine_rk = "tc" @@ -85,8 +86,10 @@ border_rk = "command" if(JOB_INTEL) marine_rk = "io" - if(JOB_PILOT) - marine_rk = "po" + if(JOB_CAS_PILOT) + marine_rk = "gp" + if(JOB_DROPSHIP_PILOT) + marine_rk = "dp" if(JOB_DROPSHIP_CREW_CHIEF) marine_rk = "dcc" if(JOB_CHIEF_POLICE) diff --git a/code/datums/keybinding/human.dm b/code/datums/keybinding/human.dm index 6d7037eac398..810ee828880b 100644 --- a/code/datums/keybinding/human.dm +++ b/code/datums/keybinding/human.dm @@ -120,11 +120,18 @@ if(.) return + // Get the user's marine helmet (if they're wearing one) var/mob/living/carbon/human/human_user = user.mob - var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user?.head - var/cycled_hud = marine_helmet?.cycle_huds(human_user) + var/obj/item/clothing/head/helmet/marine/marine_helmet = human_user.head + if(!istype(marine_helmet)) + // If their hat isn't a marine helmet, or is null, return. + return + + // Cycle the HUD on the helmet. + var/cycled_hud = marine_helmet.cycle_huds(human_user) + // Update the helmet's 'cycle hud' action button var/datum/action/item_action/cycle_helmet_huds/cycle_action = locate() in marine_helmet.actions - cycle_action.set_action_overlay(cycled_hud) + cycle_action?.set_action_overlay(cycled_hud) return TRUE diff --git a/code/datums/keybinding/mob.dm b/code/datums/keybinding/mob.dm index b7b83249b335..100f546ba590 100644 --- a/code/datums/keybinding/mob.dm +++ b/code/datums/keybinding/mob.dm @@ -2,16 +2,6 @@ category = CATEGORY_HUMAN weight = WEIGHT_MOB -/datum/keybinding/mob/down(client/user) - . = ..() - if(isobserver(user.mob)) - return TRUE - -/datum/keybinding/mob/up(client/user) - . = ..() - if(isobserver(user.mob)) - return TRUE - /datum/keybinding/mob/stop_pulling hotkey_keys = list("H", "Delete") classic_keys = list("Delete") @@ -83,7 +73,22 @@ user.mob.drop_held_item(I) return TRUE -/datum/keybinding/mob/target_head_cycle +// Parent type of the bodypart targeting keybinds +/datum/keybinding/mob/target + +/datum/keybinding/mob/target/down(client/user) + . = ..() + if(. || !user.mob) + return + + user.mob.select_body_zone(get_target_zone(user)) + return TRUE + +/// Returns the body zone which should be targeted when pressing this keybind. +/datum/keybinding/mob/target/proc/get_target_zone(client/user) + return + +/datum/keybinding/mob/target/head_cycle hotkey_keys = list("Numpad8") classic_keys = list("Numpad8") name = "target_head_cycle" @@ -91,14 +96,16 @@ description = "Pressing this key targets the head, and continued presses will cycle to the eyes and mouth. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETCYCLEHEAD_DOWN -/datum/keybinding/mob/target_head_cycle/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("head", user) - return TRUE +/datum/keybinding/mob/target/head_cycle/get_target_zone(client/user) + switch(user.mob.zone_selected) + if("head") + return "eyes" + if("eyes") + return "mouth" + else // including if("mouth") + return "head" -/datum/keybinding/mob/target_r_arm +/datum/keybinding/mob/target/r_arm hotkey_keys = list("Numpad4") classic_keys = list("Numpad4") name = "target_r_arm" @@ -106,14 +113,12 @@ description = "Pressing this key targets the right arm. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETRIGHTARM_DOWN -/datum/keybinding/mob/target_r_arm/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("rarm", user) - return TRUE +/datum/keybinding/mob/target/r_arm/get_target_zone(client/user) + if(user.mob.zone_selected == "r_arm") + return "r_hand" + return "r_arm" -/datum/keybinding/mob/target_body_chest +/datum/keybinding/mob/target/body_chest hotkey_keys = list("Numpad5") classic_keys = list("Numpad5") name = "target_body_chest" @@ -121,14 +126,10 @@ description = "Pressing this key targets the body. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETBODYCHEST_DOWN -/datum/keybinding/mob/target_body_chest/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("chest", user) - return TRUE +/datum/keybinding/mob/target/body_chest/get_target_zone(client/user) + return "chest" -/datum/keybinding/mob/target_left_arm +/datum/keybinding/mob/target/left_arm hotkey_keys = list("Numpad6") classic_keys = list("Numpad6") name = "target_left_arm" @@ -136,14 +137,12 @@ description = "Pressing this key targets the body. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETLEFTARM_DOWN -/datum/keybinding/mob/target_left_arm/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("larm", user) - return TRUE +/datum/keybinding/mob/target/left_arm/get_target_zone(client/user) + if(user.mob.zone_selected == "l_arm") + return "l_hand" + return "l_arm" -/datum/keybinding/mob/target_right_leg +/datum/keybinding/mob/target/right_leg hotkey_keys = list("Numpad1") classic_keys = list("Numpad1") name = "target_right_leg" @@ -151,14 +150,12 @@ description = "Pressing this key targets the right leg. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETRIGHTLEG_DOWN -/datum/keybinding/mob/target_right_leg/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("rleg", user) - return TRUE +/datum/keybinding/mob/target/right_leg/get_target_zone(client/user) + if(user.mob.zone_selected == "r_leg") + return "r_foot" + return "r_leg" -/datum/keybinding/mob/target_body_groin +/datum/keybinding/mob/target/body_groin hotkey_keys = list("Numpad2") classic_keys = list("Numpad2") name = "target_body_groin" @@ -166,14 +163,10 @@ description = "Pressing this key targets the groin. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETBODYGROIN_DOWN -/datum/keybinding/mob/target_body_groin/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("groin", user) - return TRUE +/datum/keybinding/mob/target/body_groin/get_target_zone(client/user) + return "groin" -/datum/keybinding/mob/target_left_leg +/datum/keybinding/mob/target/left_leg hotkey_keys = list("Numpad3") classic_keys = list("Numpad3") name = "target_left_leg" @@ -181,14 +174,12 @@ description = "Pressing this key targets the left leg. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETLEFTLEG_DOWN -/datum/keybinding/mob/target_left_leg/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("lleg", user) - return TRUE +/datum/keybinding/mob/target/left_leg/get_target_zone(client/user) + if(user.mob.zone_selected == "l_leg") + return "l_foot" + return "l_leg" -/datum/keybinding/mob/target_next +/datum/keybinding/mob/target/next hotkey_keys = list("Numpad7") classic_keys = list("Numpad7") name = "target_next" @@ -196,14 +187,10 @@ description = "Pressing this key targets the next body part, cycling forward through all of them. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETNEXT_DOWN -/datum/keybinding/mob/target_next/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("next", user) - return TRUE +/datum/keybinding/mob/target/next/get_target_zone(client/user) + return next_in_list(user.mob.zone_selected, DEFENSE_ZONES_LIVING) -/datum/keybinding/mob/target_prev +/datum/keybinding/mob/target/prev hotkey_keys = list("Numpad9") classic_keys = list("Numpad9") name = "target_prev" @@ -211,12 +198,8 @@ description = "Pressing this key targets the previous body part, cycling backward through all of them. This will impact where you hit people, and can be used for surgery." keybind_signal = COMSIG_KB_MOB_TARGETPREV_DOWN -/datum/keybinding/mob/target_prev/down(client/user) - . = ..() - if(.) - return - user.mob.a_select_zone("prev", user) - return TRUE +/datum/keybinding/mob/target/prev/get_target_zone(client/user) + return prev_in_list(user.mob.zone_selected, DEFENSE_ZONES_LIVING) /datum/keybinding/mob/prevent_movement hotkey_keys = list("Ctrl", "Alt") 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/map_config.dm b/code/datums/map_config.dm index 3bf5c601cec9..9bcf4d677b6e 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -65,7 +65,7 @@ var/nightmare_path - /// If truthy this is config for a round overriden map: search for override maps in data/, instead of using a path in maps/ + /// If truthy this is config for a round overridden map: search for override maps in data/, instead of using a path in maps/ var/override_map /datum/map_config/New() diff --git a/code/datums/medal_awards.dm b/code/datums/medal_awards.dm index a3041c622bd6..818d623033d2 100644 --- a/code/datums/medal_awards.dm +++ b/code/datums/medal_awards.dm @@ -259,7 +259,7 @@ GLOBAL_LIST_INIT(human_medals, list(MARINE_CONDUCT_MEDAL, MARINE_BRONZE_HEART_ME to_chat(user, SPAN_WARNING("You must have an authenticated ID Card to award medals.")) return - if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.highcom_paygrades))) + if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.uscm_highcom_paygrades))) to_chat(user, SPAN_WARNING("Only a Senior Officer can award medals!")) return @@ -582,7 +582,7 @@ GLOBAL_DATUM_INIT(ic_medals_panel, /datum/ic_medal_panel, new) to_chat(user, SPAN_WARNING("You must have an authenticated ID Card to award medals.")) return - if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.highcom_paygrades))) + if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.uscm_highcom_paygrades))) to_chat(user, SPAN_WARNING("Only a Senior Officer can award medals!")) return diff --git a/code/datums/mob_hud.dm b/code/datums/mob_hud.dm index 778ec2b75a36..5e57b8f5616c 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(), @@ -185,7 +185,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( //Factions /datum/mob_hud/faction - hud_icons = list(FACTION_HUD, ORDER_HUD) + hud_icons = list(FACTION_HUD, ORDER_HUD, HOLOCARD_HUD) var/faction_to_check = FACTION_MARINE /datum/mob_hud/faction/add_to_single_hud(mob/user, mob/target) @@ -209,7 +209,7 @@ GLOBAL_LIST_INIT_TYPED(huds, /datum/mob_hud, list( faction_to_check = FACTION_PMC /datum/mob_hud/faction/observer - hud_icons = list(FACTION_HUD, ORDER_HUD, HUNTER_CLAN) + hud_icons = list(FACTION_HUD, ORDER_HUD, HUNTER_CLAN, HOLOCARD_HUD) ///////// MOB PROCS //////////////////////////////: @@ -753,7 +753,13 @@ GLOBAL_DATUM(hud_icon_hudfocus, /image) holder.overlays += GLOB.hud_icon_hudfocus hud_list[ORDER_HUD] = holder +/mob/proc/hud_set_holocard() + return +// HOLOCARD HUD +/mob/living/carbon/human/hud_set_holocard() + var/image/holder = hud_list[HOLOCARD_HUD] + holder.icon_state = holo_card_color ? "holo_card_[holo_card_color]" : "hudblank" // Xeno "hostile" HUD /mob/living/carbon/human/proc/update_xeno_hostile_hud() diff --git a/code/datums/paygrades/factions/other/civilian.dm b/code/datums/paygrades/factions/other/civilian.dm index 6587a82a54d6..95213542f33b 100644 --- a/code/datums/paygrades/factions/other/civilian.dm +++ b/code/datums/paygrades/factions/other/civilian.dm @@ -23,6 +23,7 @@ name = "Professor" prefix = "Prof." pay_multiplier = 1 + officer_grade = GRADE_OFFICER /datum/paygrade/civillian/representative paygrade = PAY_SHORT_CREP @@ -41,6 +42,7 @@ name = "Senior Officer" prefix = "Sr. Off." pay_multiplier = 0.8 + officer_grade = GRADE_OFFICER /datum/paygrade/civilian/rebel paygrade = PAY_SHORT_REB @@ -50,3 +52,4 @@ paygrade = PAY_SHORT_REBC name = "Rebel Commander" prefix = "CMDR." + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/cmb.dm b/code/datums/paygrades/factions/other/cmb.dm index eeeb061ea335..88af3f9ef78c 100644 --- a/code/datums/paygrades/factions/other/cmb.dm +++ b/code/datums/paygrades/factions/other/cmb.dm @@ -11,6 +11,7 @@ paygrade = PAY_SHORT_CMBM name = "CMB Marshal" prefix = "Marshal" + officer_grade = GRADE_OFFICER /datum/paygrade/cmb/syn paygrade = PAY_SHORT_CMBS diff --git a/code/datums/paygrades/factions/other/contractors.dm b/code/datums/paygrades/factions/other/contractors.dm index c83a5cb10870..a63e46bb47f2 100644 --- a/code/datums/paygrades/factions/other/contractors.dm +++ b/code/datums/paygrades/factions/other/contractors.dm @@ -1,38 +1,39 @@ /datum/paygrade/contractors name = "Contractor Paygrade" + fprefix = "VAI" pay_multiplier = 1.5 /datum/paygrade/contractors/standard - paygrade = "VAI" + paygrade = PAY_SHORT_VAI_S name = "VAI Mercenary" - prefix = "VAI" + prefix = "Merc." /datum/paygrade/contractors/med - paygrade = "VAI-M" + paygrade = PAY_SHORT_VAI_M name = "VAI Medical Specialist" - prefix = "VAI MED" + prefix = "Med." pay_multiplier = 1.75 /datum/paygrade/contractors/mg - paygrade = "VAI-G" + paygrade = PAY_SHORT_VAI_G name = "VAI Machinegunner" - prefix = "VAI MG" + prefix = "MG." pay_multiplier = 1.75 /datum/paygrade/contractors/engi - paygrade = "VAI-E" + paygrade = PAY_SHORT_VAI_E name = "VAI Engineering Specialist" - prefix = "VAI ENG" + prefix = "Eng." pay_multiplier = 1.75 /datum/paygrade/contractors/syn - paygrade = "VAI-S" + paygrade = PAY_SHORT_VAI_SN name = "VAI Synthetic" - prefix = "VAI Syn" pay_multiplier = 0 /datum/paygrade/contractors/lead - paygrade = "VAI-L" + paygrade = PAY_SHORT_VAI_L name = "VAI Team Leader" - prefix = "VAI TL" + prefix = "TL." pay_multiplier = 2.25 + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/dutch_dozen.dm b/code/datums/paygrades/factions/other/dutch_dozen.dm index 8877bd11afbb..2927d6b80d29 100644 --- a/code/datums/paygrades/factions/other/dutch_dozen.dm +++ b/code/datums/paygrades/factions/other/dutch_dozen.dm @@ -30,4 +30,5 @@ name = "Major" prefix = "LDR." pay_multiplier = 9 + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/freelancer.dm b/code/datums/paygrades/factions/other/freelancer.dm index 6de82b5bb344..2d7db7b0e042 100644 --- a/code/datums/paygrades/factions/other/freelancer.dm +++ b/code/datums/paygrades/factions/other/freelancer.dm @@ -1,49 +1,53 @@ /datum/paygrade/freelancer name = "Freelancer Paygrade" + fprefix = "Frl." pay_multiplier = 0.75 //these are shitty mercs. /datum/paygrade/freelancer/standard - paygrade = "Freelancer Standard" - name = "Freelancer Standard" + name = "Freelancer" + paygrade = PAY_SHORT_FL_S prefix = "Merc." /datum/paygrade/freelancer/medic - paygrade = "Freelancer Medic" name = "Freelancer Medic" + paygrade = PAY_SHORT_FL_M prefix = "Med." /datum/paygrade/freelancer/leader - paygrade = "Freelancer Leader" name = "Freelancer Leader" + paygrade = PAY_SHORT_FL_WL prefix = "Warlord" pay_multiplier = 1 + officer_grade = GRADE_OFFICER /datum/paygrade/freelancer/elite name = "Elite Freelancer Paygrade" + fprefix = "Elt." pay_multiplier = 1.25 /datum/paygrade/freelancer/elite/standard - paygrade = "Elite Freelancer Standard" - name = "Elite Freelancer Standard" - prefix = "MRC." + name = "Elite Freelancer" + paygrade = PAY_SHORT_EFL_S + prefix = "Merc." /datum/paygrade/freelancer/elite/heavy - paygrade = "Elite Freelancer Heavy" name = "Elite Freelancer Heavy" - prefix = "HVY." + paygrade = PAY_SHORT_EFL_H + prefix = "Hvy." /datum/paygrade/freelancer/elite/engineer - paygrade = "Elite Freelancer Engineer" name = "Elite Freelancer Engineer" - prefix = "ENGI." + paygrade = PAY_SHORT_EFL_E + prefix = "Eng." /datum/paygrade/freelancer/elite/medic - paygrade = "Elite Freelancer Medic" name = "Elite Freelancer Medic" - prefix = "MED." + paygrade = PAY_SHORT_EFL_M + prefix = "Med." /datum/paygrade/freelancer/elite/leader - paygrade = "Elite Freelancer Leader" name = "Elite Freelancer Leader" + paygrade = PAY_SHORT_EFL_TL prefix = "Warlord" pay_multiplier = 1.5 + officer_grade = GRADE_OFFICER diff --git a/code/datums/paygrades/factions/other/misc.dm b/code/datums/paygrades/factions/other/misc.dm index 04e522580b50..cc07e97b94da 100644 --- a/code/datums/paygrades/factions/other/misc.dm +++ b/code/datums/paygrades/factions/other/misc.dm @@ -1,8 +1,14 @@ /datum/paygrade/misc/operative - name = "Operative" + name = "Operator" + prefix = "OPR." paygrade = PAY_SHORT_OPR pay_multiplier = 1 //???? +/datum/paygrade/misc/codenamed + name = "Operative" + paygrade = PAY_SHORT_CDNM + pay_multiplier = 1 //???? + /datum/paygrade/misc/synth name = "Synthetic" paygrade = PAY_SHORT_SYN diff --git a/code/datums/paygrades/factions/twe/twe.dm b/code/datums/paygrades/factions/twe/twe.dm index 9707e89e6171..582030f9f80a 100644 --- a/code/datums/paygrades/factions/twe/twe.dm +++ b/code/datums/paygrades/factions/twe/twe.dm @@ -1,85 +1,86 @@ /datum/paygrade/twe name = "TWE Paygrade" pay_multiplier = 2 // less people = more to pay them + default_faction = FACTION_TWE //RMC Emlisted /datum/paygrade/twe/e1 - paygrade = "RMC E1" + paygrade = PAY_SHORT_RMC1 name = "Heitai-Marine" prefix = "Hti-Mne." /datum/paygrade/twe/e2 - paygrade = "RMC E2" + paygrade = PAY_SHORT_RMC2 name = "Santo-Lance Corporal" prefix = "St-LCpl." pay_multiplier = 2.1 /datum/paygrade/twe/e3 - paygrade = "RMC E3" + paygrade = PAY_SHORT_RMC3 name = "Nito-Corporal" prefix = "Nt-Cpl." pay_multiplier = 2.2 /datum/paygrade/twe/e4 - paygrade = "RMC E4" + paygrade = PAY_SHORT_RMC4 name = "Itto-Sergeant" prefix = "Sgt." pay_multiplier = 2.3 -//RMC Officer - -/datum/paygrade/twe/o1/rmc - paygrade = "RMC O1" - name = "Second Lieutenant" - prefix = "2nd LT." - pay_multiplier = 3 - //TWE Warrent Officer /datum/paygrade/twe/wo1 - paygrade = "TWE WO." + paygrade = PAY_SHORT_RNOW name = "Warrant Officer" prefix = "WO." pay_multiplier = 3.5 + officer_grade = GRADE_OFFICER //TWE Naval Officers /datum/paygrade/twe/o1 - paygrade = "TWE O1" + paygrade = PAY_SHORT_RNO1 name = "Second Lieutenant" prefix = "2nd LT" pay_multiplier = 3 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o2 - paygrade = "RMC O2" + paygrade = PAY_SHORT_RNO2 name = "First Lieutenant" prefix = "1st LT" pay_multiplier = 3.25 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o3 - paygrade = "TO3" - name = "Standing Officer" - prefix = "SO." + paygrade = PAY_SHORT_RNO3 + name = "Commander" + prefix = "Cdr." pay_multiplier = 3.5 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o4 - paygrade = "TO4" + paygrade = PAY_SHORT_RNO4 name = "Captain" prefix = "Cpt." pay_multiplier = 5 + officer_grade = GRADE_OFFICER /datum/paygrade/twe/o5 - paygrade = "TO5" + paygrade = PAY_SHORT_RNO5 name = "Admiral" - prefix = "ADM." + prefix = "Adm." pay_multiplier = 7 + officer_grade = GRADE_FLAG /datum/paygrade/twe/o6 - paygrade = "TO6" + paygrade = PAY_SHORT_RNO6 name = "Grand Admiral" - prefix = "GADM." + prefix = "GAdm." pay_multiplier = 9 + officer_grade = GRADE_FLAG /datum/paygrade/twe/o7 - paygrade = "TO7" + paygrade = PAY_SHORT_EMP name = "Emperor" - prefix = "ER." + prefix = "HRH." pay_multiplier = 1000 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/upp/upp.dm b/code/datums/paygrades/factions/upp/upp.dm index 8670f99269dc..b9ce691fdb8d 100644 --- a/code/datums/paygrades/factions/upp/upp.dm +++ b/code/datums/paygrades/factions/upp/upp.dm @@ -1,6 +1,7 @@ /datum/paygrade/upp name = "UPP Paygrade" pay_multiplier = 0.1 //lol. lmao + default_faction = FACTION_UPP //UPP Enlisted @@ -56,12 +57,14 @@ name = "2nd Kommando" prefix = "2ndKdo." pay_multiplier = 2 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uc3 paygrade = PAY_SHORT_UC3 name = "1st Kommando" prefix = "1stKdo." pay_multiplier = 2.5 + officer_grade = GRADE_OFFICER //UPP Officers /datum/paygrade/upp/uo1 @@ -69,51 +72,60 @@ name = "Leytenant" prefix = "Lt." pay_multiplier = 1.25 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo2 paygrade = PAY_SHORT_UO2 name = "Senior Leytenant" prefix = "Sr. LT." pay_multiplier = 1.5 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo3 paygrade = PAY_SHORT_UO3 name = "Kapitan" prefix = "Kpt." pay_multiplier = 2 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo4 paygrade = PAY_SHORT_UO4 name = "Mayjor" prefix = "May." pay_multiplier = 2.5 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo5 paygrade = PAY_SHORT_UO5 name = "Leytenant Kolonel" prefix = "Lt. Kol." pay_multiplier = 3 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo6 paygrade = PAY_SHORT_UO6 name = "Kolonel" prefix = "Kol." pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/upp/uo7 paygrade = PAY_SHORT_UO7 name = "Mayjor General" prefix = "May. Gen." pay_multiplier = 5 + officer_grade = GRADE_FLAG /datum/paygrade/upp/uo8 paygrade = PAY_SHORT_UO8 name = "Leytenant General" prefix = "Lt. Gen." pay_multiplier = 6 + officer_grade = GRADE_FLAG /datum/paygrade/upp/uo9 paygrade = PAY_SHORT_UO9 name = "Army General" prefix = "Gen." pay_multiplier = 7 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/uscm/marine.dm b/code/datums/paygrades/factions/uscm/marine.dm index 7d315f364025..6a1446dd6b60 100644 --- a/code/datums/paygrades/factions/uscm/marine.dm +++ b/code/datums/paygrades/factions/uscm/marine.dm @@ -2,6 +2,7 @@ name = "Marine Paygrade" rank_pin = /obj/item/clothing/accessory/ranks/marine pay_multiplier = 1.6 + default_faction = FACTION_MARINE // ENLISTED PAYGRADES @@ -110,6 +111,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o1 ranking = 12 pay_multiplier = 3 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o2 paygrade = PAY_SHORT_MO2 @@ -118,6 +120,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o2 ranking = 13 pay_multiplier = 3.2 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o3 paygrade = PAY_SHORT_MO3 @@ -126,6 +129,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o3 ranking = 14 pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o4 paygrade = PAY_SHORT_MO4 @@ -134,6 +138,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o4 ranking = 15 pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o5 paygrade = PAY_SHORT_MO5 @@ -142,6 +147,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o5 ranking = 16 pay_multiplier = 4.2 + officer_grade = GRADE_OFFICER //Platoon Commander /datum/paygrade/marine/o6 @@ -151,6 +157,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o6 ranking = 17 pay_multiplier = 4.4 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o6e paygrade = PAY_SHORT_MO6E @@ -159,6 +166,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o6e ranking = 18 pay_multiplier = 4.6 + officer_grade = GRADE_OFFICER /datum/paygrade/marine/o6c paygrade = PAY_SHORT_MO6C @@ -167,6 +175,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o6c ranking = 19 pay_multiplier = 4.8 + officer_grade = GRADE_OFFICER //High Command /datum/paygrade/marine/o7 @@ -176,6 +185,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o7 ranking = 20 pay_multiplier = 6 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o8 paygrade = PAY_SHORT_MO8 @@ -184,6 +194,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o8 ranking = 21 pay_multiplier = 6.2 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o9 paygrade = PAY_SHORT_MO9 @@ -192,6 +203,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o9 ranking = 22 pay_multiplier = 6.4 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o10 paygrade = PAY_SHORT_MO10 @@ -200,6 +212,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o10 ranking = 23 pay_multiplier = 6.6 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o10c paygrade = PAY_SHORT_MO10C @@ -208,6 +221,7 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c ranking = 24 pay_multiplier = 6.8 + officer_grade = GRADE_FLAG /datum/paygrade/marine/o10s paygrade = PAY_SHORT_MO10S @@ -216,3 +230,4 @@ rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c ranking = 25 pay_multiplier = 7 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/uscm/navy.dm b/code/datums/paygrades/factions/uscm/navy.dm index 9e22c72fe566..69fb63676bce 100644 --- a/code/datums/paygrades/factions/uscm/navy.dm +++ b/code/datums/paygrades/factions/uscm/navy.dm @@ -1,6 +1,7 @@ /datum/paygrade/navy name = "Navy Paygrade" rank_pin = /obj/item/clothing/accessory/ranks/navy + default_faction = FACTION_MARINE //someone else can do the multipliers for this one // ENLISTED PAYGRADES @@ -90,6 +91,7 @@ prefix = "ENS." rank_pin = /obj/item/clothing/accessory/ranks/navy/o1 ranking = 11 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o2 paygrade = PAY_SHORT_NO2 @@ -97,6 +99,7 @@ prefix = "LTJG." rank_pin = /obj/item/clothing/accessory/ranks/navy/o2 ranking = 12 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o3 paygrade = PAY_SHORT_NO3 @@ -104,6 +107,7 @@ prefix = "LT." rank_pin = /obj/item/clothing/accessory/ranks/navy/o3 ranking = 13 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o4 paygrade = PAY_SHORT_NO4 @@ -111,6 +115,7 @@ prefix = "LCDR." rank_pin = /obj/item/clothing/accessory/ranks/navy/o4 ranking = 14 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o5 paygrade = PAY_SHORT_NO5 @@ -118,6 +123,7 @@ prefix = "CDR." rank_pin = /obj/item/clothing/accessory/ranks/navy/o5 ranking = 15 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o6 paygrade = PAY_SHORT_NO6 @@ -125,6 +131,7 @@ prefix = "CAPT." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6 ranking = 16 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o6e paygrade = PAY_SHORT_NO6E @@ -132,6 +139,7 @@ prefix = "CDRE." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6e ranking = 17 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o6c paygrade = PAY_SHORT_NO6C @@ -139,6 +147,7 @@ prefix = "Snr CDRE." rank_pin = /obj/item/clothing/accessory/ranks/navy/o6e ranking = 18 + officer_grade = GRADE_OFFICER /datum/paygrade/navy/o7 paygrade = PAY_SHORT_NO7 @@ -146,6 +155,7 @@ prefix = "RDML." rank_pin = /obj/item/clothing/accessory/ranks/navy/o7 ranking = 19 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o8 paygrade = PAY_SHORT_NO8 @@ -153,6 +163,7 @@ prefix = "RADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o8 ranking = 20 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o9 paygrade = PAY_SHORT_NO9 @@ -160,6 +171,7 @@ prefix = "VADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o9 ranking = 21 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o10 paygrade = PAY_SHORT_NO10 @@ -167,6 +179,7 @@ prefix = "ADM." rank_pin = /obj/item/clothing/accessory/ranks/navy/o10 ranking = 22 + officer_grade = GRADE_FLAG /datum/paygrade/navy/o10c paygrade = PAY_SHORT_NO10C @@ -174,3 +187,4 @@ prefix = "CNO." rank_pin = /obj/item/clothing/accessory/ranks/navy/o10c ranking = 23 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/uscm/provost.dm b/code/datums/paygrades/factions/uscm/provost.dm index e378bd7beb61..c7e529d9fcb4 100644 --- a/code/datums/paygrades/factions/uscm/provost.dm +++ b/code/datums/paygrades/factions/uscm/provost.dm @@ -1,24 +1,29 @@ /datum/paygrade/provost name = "Provost Paygrade" pay_multiplier = 2 + default_faction = FACTION_MARINE /datum/paygrade/provost/inspector paygrade = PAY_SHORT_PVI name = "Provost Inspector" prefix = "Insp." rank_pin = /obj/item/clothing/accessory/ranks/special/insp + officer_grade = GRADE_FLAG //Not really a flag officer, but they have special access to things for their job. /datum/paygrade/provost/marshal paygrade = PAY_SHORT_PVM name = "Provost Marshal" prefix = "Marshal" + officer_grade = GRADE_FLAG /datum/paygrade/provost/sectormarshal paygrade = PAY_SHORT_PVSM name = "Provost Sector Marshal" prefix = "S. Marshal" + officer_grade = GRADE_FLAG /datum/paygrade/provost/chiefmarshal paygrade = PAY_SHORT_PVCM name = "Provost Chief Marshal" prefix = "Chief Marshal" + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/wy/pmc.dm b/code/datums/paygrades/factions/wy/pmc.dm index fc8e55f5eee2..b6acf2864578 100644 --- a/code/datums/paygrades/factions/wy/pmc.dm +++ b/code/datums/paygrades/factions/wy/pmc.dm @@ -2,96 +2,106 @@ name = "PMC Paygrade" fprefix = "PMC." pay_multiplier = 2.5 // they have money. but they sold their soul to the company. is it really worth it + default_faction = FACTION_PMC //Standard PMCs /datum/paygrade/pmc/standard - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP name = "Operator" prefix = "OPR." /datum/paygrade/pmc/enforcer - paygrade = "PMC-EN" + paygrade = PAY_SHORT_PMC_EN name = "Enforcer" prefix = "ENF." pay_multiplier = 2.6 //PMC Field Specialists /datum/paygrade/pmc/vehicle - paygrade = "PMC-VS" + paygrade = PAY_SHORT_PMC_VS name = "Vehicle Specialist" - prefix = "CRW." + prefix = "SPV." pay_multiplier = 2.8 /datum/paygrade/pmc/support - paygrade = "PMC-SS" + paygrade = PAY_SHORT_PMC_SS name = "Support Specialist" prefix = "SPS." pay_multiplier = 2.8 /datum/paygrade/pmc/medic - paygrade = "PMC-MS" + paygrade = PAY_SHORT_PMC_MS name = "Medical Specialist" prefix = "SPM." pay_multiplier = 2.8 /datum/paygrade/pmc/spec - paygrade = "PMC-WS" + paygrade = PAY_SHORT_PMC_WS name = "Weapon Specialist" prefix = "SPW." pay_multiplier = 3 /datum/paygrade/pmc/handler - paygrade = "PMC-XS" + paygrade = PAY_SHORT_PMC_XS name = "Xeno Specialist" prefix = "SPX." pay_multiplier = 4 + officer_grade = GRADE_OFFICER + +//PMC Support Staff +/datum/paygrade/pmc/doctor + paygrade = PAY_SHORT_PMC_DOC + name = "Trauma Surgeon" + prefix = "Dr." + pay_multiplier = 4 + officer_grade = GRADE_OFFICER + +/datum/paygrade/pmc/engineer + paygrade = PAY_SHORT_PMC_TEC + name = "Corporate Technician" + prefix = "TEC." + pay_multiplier = 4 //PMC Elite /datum/paygrade/pmc/elite - paygrade = "PMC-ELR" + paygrade = PAY_SHORT_PMC_ELR name = "Elite Responder" prefix = "ELR." pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/medic/elite - paygrade = "PMC-ELM" + paygrade = PAY_SHORT_PMC_ELM name = "Elite Medic" prefix = "ELM." pay_multiplier = 4.5 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/spec/elite - paygrade = "PMC-ELG" + paygrade = PAY_SHORT_PMC_ELG name = "Elite Gunner" prefix = "ELG." pay_multiplier = 5 + officer_grade = GRADE_OFFICER //PMC Command /datum/paygrade/pmc/teamlead - paygrade = "PMC-TL" + paygrade = PAY_SHORT_PMC_TL name = "Team Leader" prefix = "TML." pay_multiplier = 3.5 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/elitelead - paygrade = "PMC-ETL" + paygrade = PAY_SHORT_PMC_ETL name = "Elite Team Leader" prefix = "ETML." pay_multiplier = 5.5 - -/datum/paygrade/pmc/doctor - paygrade = "PMC-DOC" - name = "Trauma Surgeon" - prefix = "TRI." - pay_multiplier = 4 - -/datum/paygrade/pmc/engineer - paygrade = "PMC-TECH" - name = "Corporate Technician" - prefix = "TEC." - pay_multiplier = 4 + officer_grade = GRADE_OFFICER /datum/paygrade/pmc/director - paygrade = "PMC-DIR" + paygrade = PAY_SHORT_PMC_DIR name = "Site Director" prefix = "DIR." pay_multiplier = 10 //it's a corpo director. money is what they care about. + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/wy/wy.dm b/code/datums/paygrades/factions/wy/wy.dm index 58ec9eb3f197..b3ff70830603 100644 --- a/code/datums/paygrades/factions/wy/wy.dm +++ b/code/datums/paygrades/factions/wy/wy.dm @@ -1,6 +1,7 @@ /datum/paygrade/wy_ranks name = "WYC Paygrade" pay_multiplier = 1 + default_faction = FACTION_WEYLAND /datum/paygrade/wy_ranks/wyc1 paygrade = PAY_SHORT_WYC1 @@ -35,6 +36,7 @@ prefix = "Exec. Spc." ranking = 4 pay_multiplier = 5 + officer_grade = GRADE_OFFICER /datum/paygrade/wy_ranks/wyc6 paygrade = PAY_SHORT_WYC6 @@ -42,6 +44,7 @@ prefix = "Exec. Suvp." ranking = 5 pay_multiplier = 6 + officer_grade = GRADE_OFFICER /datum/paygrade/wy_ranks/wyc7 paygrade = PAY_SHORT_WYC7 @@ -49,6 +52,7 @@ prefix = "Assis. Mng." ranking = 6 pay_multiplier = 7 + officer_grade = GRADE_OFFICER /datum/paygrade/wy_ranks/wyc8 paygrade = PAY_SHORT_WYC8 @@ -56,6 +60,7 @@ prefix = "Div. Mng." ranking = 7 pay_multiplier = 8 + officer_grade = GRADE_FLAG /datum/paygrade/wy_ranks/wyc9 paygrade = PAY_SHORT_WYC9 @@ -63,6 +68,7 @@ prefix = "Chief. Exec." ranking = 8 pay_multiplier = 9 + officer_grade = GRADE_FLAG /datum/paygrade/wy_ranks/wyc10 paygrade = PAY_SHORT_WYC10 @@ -70,3 +76,4 @@ prefix = "Director" ranking = 9 pay_multiplier = 10 + officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/paygrade.dm b/code/datums/paygrades/paygrade.dm index cc336319278a..862dce0dfb0c 100644 --- a/code/datums/paygrades/paygrade.dm +++ b/code/datums/paygrades/paygrade.dm @@ -1,10 +1,13 @@ +GLOBAL_LIST_EMPTY(uscm_highcom_paygrades) +GLOBAL_LIST_EMPTY(uscm_officer_paygrades) +GLOBAL_LIST_EMPTY(wy_highcom_paygrades) GLOBAL_LIST_INIT_TYPED(paygrades, /datum/paygrade, setup_paygrades()) /datum/paygrade var/paygrade var/name var/prefix - ///Factional prefix, currently only used by PMCs. In essence, a pre-prefix. + /// Factional prefix, currently only used by PMCs. In essence, a pre-prefix. var/fprefix var/rank_pin @@ -13,33 +16,10 @@ GLOBAL_LIST_INIT_TYPED(paygrades, /datum/paygrade, setup_paygrades()) /// Actually gives you the fucking money from your paygrade in your ATM account. Multiplier of 1 equals PFC pay. var/pay_multiplier = 1 -/proc/setup_paygrades() - . = list() - for(var/I in subtypesof(/datum/paygrade)) - var/datum/paygrade/PG = I - var/pg_id = initial(PG.paygrade) - if(pg_id) - if(pg_id in .) - log_debug("Duplicate paygrade: '[pg_id]'.") - else - .[pg_id] = new PG - -GLOBAL_LIST_INIT(highcom_paygrades, list( - "PvI", - PAY_SHORT_NO7, - PAY_SHORT_MO7, - PAY_SHORT_NO8, - PAY_SHORT_MO8, - PAY_SHORT_NO9, - PAY_SHORT_MO9, - PAY_SHORT_NO10, - PAY_SHORT_MO10, - PAY_SHORT_NO10C, - PAY_SHORT_MO10C, - "PvO8", - "PvO9", - "PvCM" -)) + /// The faction this paygrade is usually assigned to. + var/default_faction + /// If the grade refers to an officer equivalent or not. + var/officer_grade = GRADE_ENLISTED GLOBAL_LIST_INIT(co_paygrades, list( PAY_SHORT_NO6, @@ -54,8 +34,24 @@ GLOBAL_LIST_INIT(co_paygrades, list( PAY_SHORT_MO4 )) -GLOBAL_LIST_INIT(wy_paygrades, list( - PAY_SHORT_WYC8, - PAY_SHORT_WYC9, - PAY_SHORT_WYC10 -)) +/datum/paygrade/New() + . = ..() + switch(default_faction) + if(FACTION_MARINE) + if(officer_grade) + GLOB.uscm_officer_paygrades += paygrade + if(officer_grade >= GRADE_FLAG) + GLOB.uscm_highcom_paygrades += paygrade + if(FACTION_WEYLAND,FACTION_PMC) + if(officer_grade >= GRADE_FLAG) + GLOB.wy_highcom_paygrades += paygrade + +/proc/setup_paygrades() + . = list() + for(var/datum/paygrade/PG as anything in subtypesof(/datum/paygrade)) + var/pg_id = initial(PG.paygrade) + if(pg_id) + if(pg_id in .) + log_debug("Duplicate paygrade: '[pg_id]'.") + else + .[pg_id] = new PG diff --git a/code/datums/redis/callbacks/_redis_callback.dm b/code/datums/redis/callbacks/_redis_callback.dm index fd786db056c3..af63f53bd0b3 100644 --- a/code/datums/redis/callbacks/_redis_callback.dm +++ b/code/datums/redis/callbacks/_redis_callback.dm @@ -19,7 +19,7 @@ * * message - The message received on the redis channel. */ /datum/redis_callback/proc/on_message(message) - CRASH("on_message not overriden for [type]!") + CRASH("on_message not overridden for [type]!") /datum/redis_callback/vv_edit_var(var_name, var_value) return FALSE 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/statistics/entities/medal_stats.dm b/code/datums/statistics/entities/medal_stats.dm index 8a428e2d3cf4..c5684e3cd9a4 100644 --- a/code/datums/statistics/entities/medal_stats.dm +++ b/code/datums/statistics/entities/medal_stats.dm @@ -57,7 +57,7 @@ return var/datum/entity/statistic/medal/new_medal = DB_ENTITY(/datum/entity/statistic/medal) - var/datum/entity/player/player_entity = get_player_from_key(new_recipient.ckey) + var/datum/entity/player/player_entity = get_player_from_key(new_recipient.persistent_ckey) if(player_entity) new_medal.player_id = player_entity.id diff --git a/code/datums/status_effects/stacking_effect.dm b/code/datums/status_effects/stacking_effect.dm index 3ef5855938f7..5812bcaacd48 100644 --- a/code/datums/status_effects/stacking_effect.dm +++ b/code/datums/status_effects/stacking_effect.dm @@ -7,7 +7,7 @@ /// How many stacks are currently accumulated. /// Also, the default stacks number given on application. var/stacks = 0 - // Deciseconds until ticks start occuring, which removes stacks + // Deciseconds until ticks start occurring, which removes stacks /// (first stack will be removed at this time plus tick_interval) var/delay_before_decay /// How many stacks are lost per tick (decay trigger) @@ -74,7 +74,7 @@ return FALSE stacks += stacks_added if(stacks > 0) - if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occuring if changing from above threshold to still above threshold + if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occurring if changing from above threshold to still above threshold threshold_crossed = TRUE on_threshold_cross() if(consumed_on_threshold) diff --git a/code/datums/supply_packs/ammo.dm b/code/datums/supply_packs/ammo.dm index 164511c25cc0..0929f24f7c95 100644 --- a/code/datums/supply_packs/ammo.dm +++ b/code/datums/supply_packs/ammo.dm @@ -240,6 +240,16 @@ containername = "\improper shotgun flechette crate" group = "Ammo" +/datum/supply_packs/ammo_shell_box_breaching + name = "Shell box (16g) (120x breaching shells)" + contains = list( + /obj/item/ammo_box/magazine/shotgun/light/breaching, + ) + cost = 40 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper shotgun breaching crate" + group = "Ammo" + //------------------------For 88M4 ---------------- /datum/supply_packs/ammo_mod88_mag_box_ap @@ -296,6 +306,18 @@ containername = "\improper M41AE2 HPR holo-target magazines crate" group = "Ammo" +/datum/supply_packs/ammo_xm51 + contains = list( + /obj/item/ammo_magazine/rifle/xm51, + /obj/item/ammo_magazine/rifle/xm51, + /obj/item/ammo_magazine/shotgun/light/breaching, + ) + name = "XM51 Ammo (2x mags) (1x small breaching shell box)" + cost = 20 + containertype = /obj/structure/closet/crate/ammo + containername = "\improper XM51 ammo crate" + group = "Ammo" + //------------------------Smartgunner stuff---------------- /datum/supply_packs/ammo_smartgun_battery_pack @@ -324,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 @@ -346,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---------------- @@ -397,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/black_market.dm b/code/datums/supply_packs/black_market.dm index 43e0358a96f9..14ad047c7edb 100644 --- a/code/datums/supply_packs/black_market.dm +++ b/code/datums/supply_packs/black_market.dm @@ -642,7 +642,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted . = ..() var/obj/item/paper/nope = new(src) nope.name = "automated ASRS note" - nope.info = "Sorry! Your requested order of USCM PONCHO (X2) was not succesfully delivered because: 'No items of that type found in storage.'" + nope.info = "Sorry! Your requested order of USCM PONCHO (X2) was not successfully delivered because: 'No items of that type found in storage.'" nope.color = "green" nope.update_icon() @@ -656,7 +656,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted . = ..() var/obj/item/paper/nope = new(src) nope.name = "automated ASRS note" - nope.info = "Sorry! Your requested order of HIGH-EXPLOSIVE ARMOR-PIERCING M41A MAGAZINE (X3) was not succesfully delivered because: 'ERROR: UNABLE TO ENTER COMPARTMENT EXIT CODE 2342: EXPLOSION HAZARD'" + nope.info = "Sorry! Your requested order of HIGH-EXPLOSIVE ARMOR-PIERCING M41A MAGAZINE (X3) was not successfully delivered because: 'ERROR: UNABLE TO ENTER COMPARTMENT EXIT CODE 2342: EXPLOSION HAZARD'" nope.color = "green" nope.update_icon() diff --git a/code/datums/supply_packs/explosives.dm b/code/datums/supply_packs/explosives.dm index 22458ef3fa6b..032ef047c78a 100644 --- a/code/datums/supply_packs/explosives.dm +++ b/code/datums/supply_packs/explosives.dm @@ -1,7 +1,7 @@ // Group to populate with all the explosives exept OB and mortar shell /datum/supply_packs/explosives - name = "surplus explosives crate (claymore mine x5, M40 HIDP x2, M40 HEDP x2, M15 Frag x2, M12 Blast x2)" + name = "surplus explosives crate (claymore mine x5, M40 HIDP x2, M40 HEDP x2, M15 Frag x2, M12 Blast x2, M40 MFHS x2)" contains = list( /obj/item/storage/box/explosive_mines, /obj/item/explosive/grenade/high_explosive, @@ -12,6 +12,8 @@ /obj/item/explosive/grenade/high_explosive/m15, /obj/item/explosive/grenade/high_explosive/pmc, /obj/item/explosive/grenade/high_explosive/pmc, + /obj/item/explosive/grenade/metal_foam, + /obj/item/explosive/grenade/metal_foam, ) cost = 40 containertype = /obj/structure/closet/crate/explosives diff --git a/code/datums/supply_packs/medical.dm b/code/datums/supply_packs/medical.dm index 05cb4d2f34c0..097642eb163f 100644 --- a/code/datums/supply_packs/medical.dm +++ b/code/datums/supply_packs/medical.dm @@ -22,8 +22,33 @@ containername = "medical crate" group = "Medical" +/datum/supply_packs/pillbottle + name = "pill bottle crate (x2 each)" + contains = list( + /obj/item/storage/pill_bottle/inaprovaline, + /obj/item/storage/pill_bottle/antitox, + /obj/item/storage/pill_bottle/bicaridine, + /obj/item/storage/pill_bottle/dexalin, + /obj/item/storage/pill_bottle/kelotane, + /obj/item/storage/pill_bottle/tramadol, + /obj/item/storage/pill_bottle/peridaxon, + /obj/item/storage/pill_bottle/inaprovaline, + /obj/item/storage/pill_bottle/antitox, + /obj/item/storage/pill_bottle/bicaridine, + /obj/item/storage/pill_bottle/dexalin, + /obj/item/storage/pill_bottle/kelotane, + /obj/item/storage/pill_bottle/tramadol, + /obj/item/storage/pill_bottle/peridaxon, + /obj/item/storage/box/pillbottles, + /obj/item/storage/box/pillbottles, + ) + cost = 20 + containertype = /obj/structure/closet/crate/medical + containername = "medical crate" + group = "Medical" + /datum/supply_packs/firstaid - name = "first aid kit crate (2x each)" + name = "first aid kit crate (x2 each)" contains = list( /obj/item/storage/firstaid/regular, /obj/item/storage/firstaid/regular, @@ -36,7 +61,7 @@ /obj/item/storage/firstaid/adv, /obj/item/storage/firstaid/adv, ) - cost = 20 + cost = 16 containertype = /obj/structure/closet/crate/medical containername = "medical crate" group = "Medical" @@ -49,7 +74,7 @@ /obj/item/storage/box/bodybags, /obj/item/storage/box/bodybags, ) - cost = 20 + cost = 12 containertype = /obj/structure/closet/crate/medical containername = "body bag crate" group = "Medical" @@ -61,7 +86,7 @@ /obj/item/bodybag/cryobag, /obj/item/bodybag/cryobag, ) - cost = 40 + cost = 20 containertype = /obj/structure/closet/crate/medical containername = "stasis bag crate" group = "Medical" 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/supply_packs/weapons.dm b/code/datums/supply_packs/weapons.dm index 927db853e9fd..8939b80e52d6 100644 --- a/code/datums/supply_packs/weapons.dm +++ b/code/datums/supply_packs/weapons.dm @@ -60,7 +60,18 @@ ) cost = 30 containertype = /obj/structure/closet/crate/weapon - containername = "MOU-53 Breack Action Shotgun Crate" + containername = "MOU-53 Break Action Shotgun Crate" + group = "Weapons" + +/datum/supply_packs/xm51 + name = "XM51 Breaching Scattergun Crate (x2)" + contains = list( + /obj/item/storage/box/guncase/xm51, + /obj/item/storage/box/guncase/xm51, + ) + cost = 30 + containertype = /obj/structure/closet/crate/weapon + containername = "XM51 Breaching Scattergun Crate" group = "Weapons" /datum/supply_packs/smartpistol diff --git a/code/datums/tutorial/_tutorial.dm b/code/datums/tutorial/_tutorial.dm index 5423453bbdb9..f228c051a77d 100644 --- a/code/datums/tutorial/_tutorial.dm +++ b/code/datums/tutorial/_tutorial.dm @@ -28,6 +28,8 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) var/parent_path = /datum/tutorial /// A dictionary of "bind_name" : "keybind_button". The inverse of `key_bindings` on a client's prefs var/list/player_bind_dict = list() + /// If the tutorial has been completed. This doesn't need to be modified if you call end_tutorial() with a param of TRUE + var/completion_marked = FALSE /datum/tutorial/Destroy(force, ...) GLOB.ongoing_tutorials -= src @@ -50,11 +52,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 @@ -82,7 +85,7 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) if(tutorial_mob) remove_action(tutorial_mob, /datum/action/tutorial_end) // Just in case to make sure the client can't try and leave the tutorial while it's mid-cleanup - if(tutorial_mob.client?.prefs && completed) + if(tutorial_mob.client?.prefs && (completed || completion_marked)) tutorial_mob.client.prefs.completed_tutorials |= tutorial_id tutorial_mob.client.prefs.save_character() var/mob/new_player/new_player = new @@ -97,11 +100,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, @@ -213,6 +212,10 @@ GLOBAL_LIST_EMPTY_TYPED(ongoing_tutorials, /datum/tutorial) return player_bind_dict[action_name][1] +/// When called, will make anything that ends the tutorial mark it as completed. Does not need to be called if end_tutorial(TRUE) is called instead +/datum/tutorial/proc/mark_completed() + completion_marked = TRUE + /datum/action/tutorial_end name = "Stop Tutorial" action_icon_state = "hologram_exit" 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/creating_a_tutorial.md b/code/datums/tutorial/creating_a_tutorial.md index 96a7cb886820..4ed1a379f348 100644 --- a/code/datums/tutorial/creating_a_tutorial.md +++ b/code/datums/tutorial/creating_a_tutorial.md @@ -1,17 +1,15 @@ # Tutorial Creation -[ToC] - ## Step 1: Identifying the Goal Your first objective when making a tutorial should be to have a clear and concise vision of what you want the tutorial to convey to the user. People absorb information better in smaller chunks, so you should ideally keep a tutorial to one section of information at a time. For example, if you are making a tutorial for new CM players, it should be split into multiple parts like: -- Basics -- Medical -- Weaponry -- Requisitions/Communication +- Basics +- Medical +- Weaponry +- Requisitions/Communication ## Step 2: Coding @@ -20,47 +18,65 @@ For an example of the current code standards for tutorials, see [this](https://g The API for tutorials is designed to be very simple, so I'll go over all the base `/datum/tutorial` procs and some vars here: ### Variables -- `name` - - This is the player-facing name of the tutorial. -- `tutorial_id` - - This is the back-end ID of the tutorial, used for save files. Try not to change a tutorial's ID after it's on the live server. -- `category` - - This is what category the tutorial should be under. Use the `TUTORIAL_CATEGORY_XXXX` macros. -- `tutorial_template` - - This is what type the map template of the tutorial should be. The default space is 12x12; ideally make it so it fits the given scale of the tutorial with some wiggle room for the player to move around. -- `parent_path` - - This is the top-most parent `/datum/tutorial` path, used to exclude abstract parents from the tutorial menu. For example, `/datum/tutorial/marine/basic` would have a `parent_path` of `/datum/tutorial/marine`, since that path is the top-most abstract path. + +- `name` + - This is the player-facing name of the tutorial. +- `tutorial_id` + - This is the back-end ID of the tutorial, used for save files. Try not to change a tutorial's ID after it's on the live server. +- `category` + - This is what category the tutorial should be under. Use the `TUTORIAL_CATEGORY_XXXX` macros. +- `tutorial_template` + - This is what type the map template of the tutorial should be. The default space is 12x12; ideally make it so it fits the given scale of the tutorial with some wiggle room for the player to move around. +- `parent_path` + - This is the top-most parent `/datum/tutorial` path, used to exclude abstract parents from the tutorial menu. For example, `/datum/tutorial/marine/basic` would have a `parent_path` of `/datum/tutorial/marine`, since that path is the top-most abstract path. +- `completion_marked` + - If this is `TRUE`, the tutorial will be marked as completed if ended in any way. You can modify this with `mark_completed()` but is not necessary if `end_tutorial(TRUE)` is called. ### Procs -- `start_tutorial(mob/starting_mob)` - - This proc starts the tutorial, setting up the map template and player. This should be overridden with a parent call before any overridden code. -- `end_tutorial(completed = FALSE)` - - This proc ends the tutorial, sending the player back to the lobby and deleting the tutorial itself. A parent call on any subtypes should be at the end of the overridden segment. If `completed` is `TRUE`, then the tutorial will save as a completed one for the user. -- `add_highlight(atom/target, color = "#d19a02")` - - This proc adds a highlight filter around an atom, by default this color. Successive calls of highlight on the same atom will override the last. -- `remove_highlight(atom/target)` - - This proc removes the tutorial highlight from a target. -- `add_to_tracking_atoms(atom/reference)` - - This proc will add a reference to the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. -- `remove_from_tracking_atoms(atom/reference)` - - This proc will remove a reference from the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. -- `message_to_player(message)` - - This proc is the ideal way to communicate to a player. It is visually similar to overwatch messages or weather alerts, but appears and disappears much faster. The messages sent should be consise, but can have a degree of dialogue to them. -- `update_objective(message)` - - This proc is used to update the player's objective in their status panel. This should be only what is required and how to do it without any dialogue or extra text. -- `init_mob()` - - This proc is used to initialize the mob and set them up correctly. -- `init_map()` - - This proc does nothing by default, but can be overriden to spawn any atoms necessary for the tutorial from the very start. -- `tutorial_end_in(time = 5 SECONDS, completed = TRUE)` - - This proc will end the tutorial in the given time, defaulting to 5 seconds. Once the proc is called, the player will be booted back to the menu screen after the time is up. Will mark the tutorial as completed if `completed` is `TRUE` -- `loc_from_corner(offset_x = 0, offset_y = 0)` - - This proc will return a turf offset from the bottom left corner of the tutorial zone. Keep in mind, the bottom left corner is NOT on a wall, it is on the first floor on the bottom left corner. `offset_x` and `offset_y` are used to offset what turf you want to get, and should never be negative. + +- `start_tutorial(mob/starting_mob)` + - This proc starts the tutorial, setting up the map template and player. This should be overridden with a parent call before any overridden code. +- `end_tutorial(completed = FALSE)` + - This proc ends the tutorial, sending the player back to the lobby and deleting the tutorial itself. A parent call on any subtypes should be at the end of the overridden segment. If `completed` is `TRUE`, then the tutorial will save as a completed one for the user. If `mark_completed()` was called previously, the tutorial will count as completed regardless of if this is called with an argument of `TRUE` or `FALSE`. +- `add_highlight(atom/target, color = "#d19a02")` + - This proc adds a highlight filter around an atom, by default this color. Successive calls of highlight on the same atom will override the last. +- `remove_highlight(atom/target)` + - This proc removes the tutorial highlight from a target. +- `add_to_tracking_atoms(atom/reference)` + - This proc will add a reference to the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. +- `remove_from_tracking_atoms(atom/reference)` + - This proc will remove a reference from the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1. +- `message_to_player(message)` + - This proc is the ideal way to communicate to a player. It is visually similar to overwatch messages or weather alerts, but appears and disappears much faster. The messages sent should be consise, but can have a degree of dialogue to them. +- `update_objective(message)` + - This proc is used to update the player's objective in their status panel. This should be only what is required and how to do it without any dialogue or extra text. +- `init_mob()` + - This proc is used to initialize the mob and set them up correctly. +- `init_map()` + - This proc does nothing by default, but can be overriden to spawn any atoms necessary for the tutorial from the very start. +- `tutorial_end_in(time = 5 SECONDS, completed = TRUE)` + - This proc will end the tutorial in the given time, defaulting to 5 seconds. Once the proc is called, the player will be booted back to the menu screen after the time is up. Will mark the tutorial as completed if `completed` is `TRUE` +- `loc_from_corner(offset_x = 0, offset_y = 0)` + - This proc will return a turf offset from the bottom left corner of the tutorial zone. Keep in mind, the bottom left corner is NOT on a wall, it is on the first floor on the bottom left corner. `offset_x` and `offset_y` are used to offset what turf you want to get, and should never be negative. +- `on_ghost(datum/source, mob/dead/observer/ghost)` + - This proc is used to properly end and clean up the tutorial should a player ghost out. You shouldn't need to override or modify this when making a tutorial. +- `signal_end_tutorial(datum/source)` + - This proc is used to call `end_tutorial()` via signals. If something (e.g. a player dying) should send a signal that ends the tutorial, have the signal call this proc. +- `on_logout(datum/source)` + - This proc is called when a player logs out, disconnecting their client from the server. As with `on_ghost()` and similar procs, it cleans up and ends the tutorial. +- `generate_binds()` + - This proc generates a dictionary of the player's keybinds, in the form of {"action_name" : "key_to_press"}. This is used for the `retrieve_bind()` proc to be able to tell the user what buttons to press. +- `retrieve_bind(action_name)` + - This proc will be one you'll get a fair amount of use from. Whenever you tell the user to do something like "drop an item", you should tell them what button to press by calling `retrieve_bind("drop_item")` in the string telling them to drop an item. +- `mark_completed()` + - This proc can be used as an alternative to calling `end_tutorial(TRUE)`. Calling this proc means any method of exiting the tutorial (ghosting, dying, pressing the exit button) will mark the tutorial as completed. ## Step 2.1: Tracking Atoms + Naturally, you will need to keep track of certain objects or mobs for signal purposes, so the tracking system exists to fill that purpose. When you add a reference to the tracking atom list with `add_to_tracking_atoms()`, it gets put into a dictionary of `{path : reference}`. Because of this limitation, you should not track more than 1 object of the same type. To get a tracked atom, use of the `TUTORIAL_ATOM_FROM_TRACKING(path, varname)` macro is recommended. `path` should be replaced with the precise typepath of the tracked atom, and `varname` should be replaced with the variable name you wish to use. If an object is going to be deleted, remove it with `remove_from_tracking_atoms()` first. ## Step 2.2: Scripting Format + Any proc whose main purpose is to advance the tutorial will be hereon referred to as a "script proc", as part of the entire "script". In the vast majority of cases, a script proc should hand off to the next using signals. Here is an example from `basic_marine.dm`: ```javascript @@ -69,8 +85,8 @@ Any proc whose main purpose is to advance the tutorial will be hereon referred t UnregisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT) message_to_player("Good. You may notice the yellow \"food\" icon on the right side of your screen. Proceed to the outlined Food Vendor and vend the USCM Protein Bar.") - update_objective("Vend a USCM Protein Bar from the outlined ColMarTech Food Vendor.") - TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) + update_objective("Vend a USCM Protein Bar from the outlined ColMarTech Food Vendor.") + TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor) add_highlight(food_vendor) food_vendor.req_access = list() RegisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_food_vend)) @@ -78,19 +94,19 @@ Any proc whose main purpose is to advance the tutorial will be hereon referred t ``` Line-by-line: - - `SIGNAL_HANDLER` is necessary as this proc was called via signal. - - Here we are unregistering the signal we registered in the previous proc to call this one, which in this case was waiting for the player to leave the tracked cryopod. - - Now, we tell the user the next step in the script, which is sent to their screen. - - Here we update the player's status panel with similar info to the above line, but far more condensed. - - Since we need to access the food vendor, we use the `TUTORIAL_ATOM_FROM_TRACKING()` macro to get a ref to it. - - We add a yellow outline to the food vendor to make it more clear what is wanted of the player - - The tutorial food vendors are locked to `ACCESS_TUTORIAL_LOCKED` by default, so here we remove that access requirement - - And finally, we register a signal for the next script proc, waiting for the user to vend something from the food vendor. - +- `SIGNAL_HANDLER` is necessary as this proc was called via signal. +- Here we are unregistering the signal we registered in the previous proc to call this one, which inthis case was waiting for the player to leave the tracked cryopod. +- Now, we tell the user the next step in the script, which is sent to their screen. +- Here we update the player's status panel with similar info to the above line, but far morecondensed. +- Since we need to access the food vendor, we use the `TUTORIAL_ATOM_FROM_TRACKING()` macro to get aref to it. +- We add a yellow outline to the food vendor to make it more clear what is wanted of the player +- The tutorial food vendors are locked to `ACCESS_TUTORIAL_LOCKED` by default, so here we remove thataccess requirement +- And finally, we register a signal for the next script proc, waiting for the user to vend something from the food vendor. ## Step 2.3: Quirks & Tips -- Generally speaking, you will want to create `/tutorial` subtypes of anything you add in the tutorial, should it need any special functions or similar. -- Restrict access from players as much as possible. As seen in the example above, restricting access to vendors and similar machines is recommended to prevent sequence breaking. Additionally, avoid adding anything that detracts from the tutorial itself. -- Attempt to avoid softlocks when possible. If someone could reasonably do something (e.g. firing every bullet they have at a ranged target and missing, now unable to kill them and progress) that could softlock them, then there should be a fallback of some sort. However, accomodations don't need to be made for people who purposefully cause a softlock; there's a "stop tutorial" button for a reason. -- When calling `message_to_player()` or `update_objective()`, **bold** the names of objects, items, and keybinds. -- Attempt to bind as many scripting signals to the `tutorial_mob` as possible. The nature of SS13 means something as sequence-heavy as this will always be fragile, so keeping the fragility we can affect to a minimum is imperative. + +- Generally speaking, you will want to create `/tutorial` subtypes of anything you add in the tutorial, should it need any special functions or similar. +- Restrict access from players as much as possible. As seen in the example above, restricting access to vendors and similar machines is recommended to prevent sequence breaking. Additionally, avoid adding anything that detracts from the tutorial itself. +- Attempt to avoid softlocks when possible. If someone could reasonably do something (e.g. firing every bullet they have at a ranged target and missing, now unable to kill them and progress) that could softlock them, then there should be a fallback of some sort. However, accomodations don't need to be made for people who purposefully cause a softlock; there's a "stop tutorial" button for a reason. +- When calling `message_to_player()` or `update_objective()`, **bold** the names of objects, items, and keybinds. +- Attempt to bind as many scripting signals to the `tutorial_mob` as possible. The nature of SS13 means something as sequence-heavy as this will always be fragile, so keeping the fragility we can affect to a minimum is imperative. diff --git a/code/datums/tutorial/xenomorph/_xenomorph.dm b/code/datums/tutorial/xenomorph/_xenomorph.dm new file mode 100644 index 000000000000..caa33d8eed43 --- /dev/null +++ b/code/datums/tutorial/xenomorph/_xenomorph.dm @@ -0,0 +1,35 @@ +/datum/tutorial/xenomorph + category = TUTORIAL_CATEGORY_XENO + parent_path = /datum/tutorial/xenomorph + icon_state = "xeno" + ///Starting xenomorph type (caste) of type /mob/living/carbon/xenomorph/... + var/mob/living/carbon/xenomorph/starting_xenomorph_type = /mob/living/carbon/xenomorph/drone + ///Reference to the actual xenomorph mob + var/mob/living/carbon/xenomorph/xeno + ///If TRUE remove all actions from the tutorial xenomorph. If FALSE none will be removed. You can give actions back in the tutorial with give_action() + var/remove_all_actions = TRUE + +/datum/tutorial/xenomorph/init_mob() + var/mob/living/carbon/xenomorph/new_character = new starting_xenomorph_type(bottom_left_corner, null, XENO_HIVE_TUTORIAL) + new_character.lastarea = get_area(bottom_left_corner) + + //Remove all actions from the tutorial xenomorph if remove_all_actions is TRUE + if(remove_all_actions) + for(var/datum/action/action_path as anything in new_character.base_actions) + remove_action(new_character, action_path) + + setup_xenomorph(new_character, tutorial_mob, is_late_join = FALSE) + + // 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 + RegisterSignal(tutorial_mob, COMSIG_LIVING_GHOSTED, PROC_REF(on_ghost)) + RegisterSignal(tutorial_mob, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH, COMSIG_MOB_END_TUTORIAL), PROC_REF(signal_end_tutorial)) + RegisterSignal(tutorial_mob, COMSIG_MOB_LOGOUT, PROC_REF(on_logout)) + return ..() diff --git a/code/datums/tutorial/xenomorph/xenomorph_basic.dm b/code/datums/tutorial/xenomorph/xenomorph_basic.dm new file mode 100644 index 000000000000..965f7b55d3c0 --- /dev/null +++ b/code/datums/tutorial/xenomorph/xenomorph_basic.dm @@ -0,0 +1,233 @@ +#define WAITING_HEALTH_THRESHOLD 300 + +/datum/tutorial/xenomorph/basic + 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 + +// START OF SCRITPING + +/datum/tutorial/xenomorph/basic/start_tutorial(mob/starting_mob) + . = ..() + if(!.) + return + + init_mob() + + xeno.plasma_stored = 0 + 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.") + + addtimer(CALLBACK(src, PROC_REF(on_stretch_legs)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_stretch_legs() + message_to_player("As a drone you can perform most basic functions of the Xenomorph Hive. Such as weeding, building, planting eggs and nesting captured humans.") + addtimer(CALLBACK(src, PROC_REF(on_inform_health)), 5 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_inform_health() + message_to_player("The green icon on the right of your screen and green bar next to your character represents your health.") + addtimer(CALLBACK(src, PROC_REF(on_give_plasma)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_give_plasma() + message_to_player("You have been given plasma, a resource used for casting your abilities. This is represented by the blue icon at the right of your screen and the blue bar next to your character.") + xeno.plasma_max = 200 + xeno.plasma_stored = 200 + addtimer(CALLBACK(src, PROC_REF(on_damage_xenomorph)), 15 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/on_damage_xenomorph() + xeno.apply_damage(350) + xeno.emote("hiss") + message_to_player("Oh no! You've been damaged. Notice your green health bars have decreased. Xenomorphs can recover their health by standing or resting on weeds.") + addtimer(CALLBACK(src, PROC_REF(request_player_plant_weed)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/request_player_plant_weed() + update_objective("Plant a weed node using the new ability Plant Weeds you've just been given.") + give_action(xeno, /datum/action/xeno_action/onclick/plant_weeds) + message_to_player("Plant a weed node to spread weeds using your new ability at the top of the screen. Weeds heal xenomorphs and regenerate their plasma. They also slow humans, making them easier to fight.") + RegisterSignal(xeno, COMSIG_XENO_PLANT_RESIN_NODE, PROC_REF(on_plant_resinode)) + +/datum/tutorial/xenomorph/basic/proc/on_plant_resinode() + SIGNAL_HANDLER + UnregisterSignal(xeno, COMSIG_XENO_PLANT_RESIN_NODE) + message_to_player("Well done. You can rest on the weeds to heal faster using the Rest ability or with the [retrieve_bind("rest")] key.") + message_to_player("We have increased your plasma reserves. Notice also your plasma will regenerate while you are on weeds.") + give_action(xeno, /datum/action/xeno_action/onclick/xeno_resting) + update_objective("Rest or wait until you are at least [WAITING_HEALTH_THRESHOLD] health.") + xeno.plasma_max = 500 + RegisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS, PROC_REF(on_xeno_gain_health)) + +/datum/tutorial/xenomorph/basic/proc/on_xeno_gain_health() + SIGNAL_HANDLER + UnregisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS) + message_to_player("Even on weeds. Healing is a slow process. This can be sped up using pheromones. Emit \"Recovery\" pheromones now using your new ability to speed up your healing.") + give_action(xeno, /datum/action/xeno_action/onclick/emit_pheromones) + update_objective("Emit recovery pheromones.") + RegisterSignal(xeno, COMSIG_XENO_START_EMIT_PHEROMONES, PROC_REF(on_xeno_emit_pheromone)) + +/datum/tutorial/xenomorph/basic/proc/on_xeno_emit_pheromone(emitter, pheromone) + SIGNAL_HANDLER + if(!(pheromone == "recovery")) + message_to_player("These are not recovery pheromones. Click your ability again to stop emitting, and choose Recovery instead.") + else if(xeno.health > WAITING_HEALTH_THRESHOLD) + reach_health_threshold() + UnregisterSignal(xeno, COMSIG_XENO_START_EMIT_PHEROMONES) + else + UnregisterSignal(xeno, COMSIG_XENO_START_EMIT_PHEROMONES) + message_to_player("Well done. Recovery Pheromones will significantly speed up your health regeneration. Rest or wait until your health is at least [WAITING_HEALTH_THRESHOLD].") + message_to_player("Pheromones also provide their effects to other xenomorph sisters nearby!") + RegisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS, PROC_REF(reach_health_threshold)) + +/datum/tutorial/xenomorph/basic/proc/reach_health_threshold() + SIGNAL_HANDLER + if(xeno.health < WAITING_HEALTH_THRESHOLD) + return + + UnregisterSignal(xeno, COMSIG_XENO_ON_HEAL_WOUNDS) + + message_to_player("Good. Well done.") + message_to_player("A hostile human or \"tallhost\" has appeared. Use your harm intent to kill it in melee!") + update_objective("Kill the human!") + + var/mob/living/carbon/human/human_dummy = new(loc_from_corner(7,7)) + add_to_tracking_atoms(human_dummy) + add_highlight(human_dummy, COLOR_RED) + RegisterSignal(human_dummy, COMSIG_MOB_DEATH, PROC_REF(on_human_death_phase_one)) + +/datum/tutorial/xenomorph/basic/proc/on_human_death_phase_one() + SIGNAL_HANDLER + + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + + 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!") + addtimer(CALLBACK(human_dummy, TYPE_PROC_REF(/mob/living, rejuvenate)), 8 SECONDS) + addtimer(CALLBACK(src, PROC_REF(proceed_to_tackle_phase)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/proceed_to_tackle_phase() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + remove_highlight(human_dummy) + RegisterSignal(human_dummy, COMSIG_MOB_TAKE_DAMAGE, PROC_REF(on_tackle_phase_human_damage)) + RegisterSignal(human_dummy, COMSIG_MOB_TACKLED_DOWN, PROC_REF(proceed_to_cap_phase)) + message_to_player("Tackle the human to the ground using your disarm intent. This can take up to four tries as a drone.") + update_objective("Tackle the human to the ground!") + +/datum/tutorial/xenomorph/basic/proc/on_tackle_phase_human_damage(source, damagedata) + SIGNAL_HANDLER + if(damagedata["damage"] <= 0) + return + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + // Rejuvenate the dummy if it's less than half health so our player can't kill it and softlock themselves. + if(human_dummy.health < (human_dummy.maxHealth / 2)) + message_to_player("Don't harm the human!") + human_dummy.rejuvenate() + +/datum/tutorial/xenomorph/basic/proc/proceed_to_cap_phase() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + + UnregisterSignal(human_dummy, COMSIG_MOB_TACKLED_DOWN) + + ADD_TRAIT(human_dummy, TRAIT_KNOCKEDOUT, TRAIT_SOURCE_TUTORIAL) + ADD_TRAIT(human_dummy, TRAIT_FLOORED, TRAIT_SOURCE_TUTORIAL) + xeno.melee_damage_lower = 0 + xeno.melee_damage_upper = 0 + message_to_player("Well done. Under normal circumstances, you would have to keep tackling the human to keep them down, but for the purposes of this tutorial they will stay down forever.") + addtimer(CALLBACK(src, PROC_REF(cap_phase)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/cap_phase() + var/obj/effect/alien/resin/special/eggmorph/morpher = new(loc_from_corner(2,2), GLOB.hive_datum[XENO_HIVE_TUTORIAL]) + morpher.stored_huggers = 1 + add_to_tracking_atoms(morpher) + add_highlight(morpher, COLOR_YELLOW) + message_to_player("In the south west is an egg morpher. Click the egg morpher to take a facehugger.") + RegisterSignal(xeno, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER, PROC_REF(take_facehugger_phase)) + +/datum/tutorial/xenomorph/basic/proc/take_facehugger_phase(source, hugger) + SIGNAL_HANDLER + UnregisterSignal(xeno, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER) + TUTORIAL_ATOM_FROM_TRACKING(/obj/effect/alien/resin/special/eggmorph, morpher) + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + add_to_tracking_atoms(hugger) + remove_highlight(morpher) + + add_highlight(hugger, COLOR_YELLOW) + message_to_player("This is a facehugger, highlighted in yellow. Pick up the facehugger by clicking it.") + message_to_player("Stand next to the downed human and click them to apply the facehugger. Or drop the facehugger near them to see it leap onto their face automatically.") + RegisterSignal(human_dummy, COMSIG_HUMAN_IMPREGNATE, PROC_REF(nest_cap_phase)) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase() + SIGNAL_HANDLER + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + TUTORIAL_ATOM_FROM_TRACKING(/obj/item/clothing/mask/facehugger, hugger) + UnregisterSignal(human_dummy, COMSIG_MOB_TAKE_DAMAGE) + UnregisterSignal(human_dummy, COMSIG_HUMAN_IMPREGNATE) + remove_highlight(hugger) + + message_to_player("We should nest the infected human to make sure they don't get away.") + message_to_player("Humans cannot escape nests without help, and the nest will keep them alive long enough for our new sister to burst forth.") + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_two)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_two() + + loc_from_corner(8,0).ChangeTurf(/turf/closed/wall/resin/tutorial) + loc_from_corner(8,1).ChangeTurf(/turf/closed/wall/resin/tutorial) + loc_from_corner(9,1).ChangeTurf(/turf/closed/wall/resin/tutorial) + + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_three)), 5 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_three() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + message_to_player("Grab the human using your grab intent. Or use control + click.") + RegisterSignal(human_dummy, COMSIG_MOVABLE_XENO_START_PULLING, PROC_REF(nest_cap_phase_four)) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_four() + SIGNAL_HANDLER + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + UnregisterSignal(human_dummy, COMSIG_MOVABLE_XENO_START_PULLING) + message_to_player("Well done. Now devour the human by clicking on your character with the grab selected in your hand. You must not move during this process.") + RegisterSignal(human_dummy, COMSIG_MOB_DEVOURED, PROC_REF(nest_cap_phase_five)) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_five() + SIGNAL_HANDLER + message_to_player("Well done, you can reguritate the human using the new ability you have gained.") + message_to_player("Be careful. Real humans may put up a fight and can try to cut out of you from inside!") + give_action(xeno, /datum/action/xeno_action/onclick/regurgitate) + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_six)), 15 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_six() + message_to_player("Humans can only be nested on hive weeds. These are special weeds created by structures such as the hive core, or hive clusters.") + message_to_player("We have set up hive weeds and walls for you in the south east.") + addtimer(CALLBACK(src, PROC_REF(nest_cap_phase_seven)), 10 SECONDS) + +/datum/tutorial/xenomorph/basic/proc/nest_cap_phase_seven() + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + UnregisterSignal(human_dummy, COMSIG_MOB_DEVOURED) + RegisterSignal(human_dummy, COMSIG_MOB_NESTED, PROC_REF(on_mob_nested)) + message_to_player("Nest the captive human!") + update_objective("Nest the captive human!") + message_to_player("Drag the human next to the wall so both you and human are directly adjacent to the wall.") + message_to_player("With the grab selected in your hand. Click on the wall. Or click and drag the mouse from the human onto the wall. You must not move during this process.") + new /obj/effect/alien/resin/special/cluster(loc_from_corner(9,0), GLOB.hive_datum[XENO_HIVE_TUTORIAL]) + +/datum/tutorial/xenomorph/basic/proc/on_mob_nested() + SIGNAL_HANDLER + TUTORIAL_ATOM_FROM_TRACKING(/mob/living/carbon/human, human_dummy) + UnregisterSignal(human_dummy, COMSIG_MOB_NESTED) + + message_to_player("Well done, this concludes the basic Xenomorph tutorial.") + message_to_player("This tutorial will end shortly.") + tutorial_end_in(10 SECONDS) + +// END OF SCRIPTING + +/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/defines/procs/announcement.dm b/code/defines/procs/announcement.dm index 3eae6076f610..2ebba6a774e8 100644 --- a/code/defines/procs/announcement.dm +++ b/code/defines/procs/announcement.dm @@ -90,7 +90,7 @@ //AI announcement that uses talking into comms /proc/ai_announcement(message, sound_to_play = sound('sound/misc/interference.ogg'), logging = ARES_LOG_MAIN) for(var/mob/M in (GLOB.human_mob_list + GLOB.dead_mob_list)) - if(isobserver(M) || ishuman(M) && is_mainship_level(M.z)) + if((isobserver(M) && M.client?.prefs?.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS) || ishuman(M) && is_mainship_level(M.z)) playsound_client(M.client, sound_to_play, M, vol = 45) for(var/mob/living/silicon/decoy/ship_ai/AI in GLOB.ai_mob_list) @@ -161,4 +161,6 @@ continue to_chat_spaced(T, html = "[SPAN_ANNOUNCEMENT_HEADER(title)]

[SPAN_ANNOUNCEMENT_BODY(message)]", type = MESSAGE_TYPE_RADIO) + if(isobserver(T) && !(T.client?.prefs?.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS)) + continue playsound_client(T.client, sound_to_play, T, vol = 45) diff --git a/code/game/area/BigRed.dm b/code/game/area/BigRed.dm index 57e062195a3c..8675655fe949 100644 --- a/code/game/area/BigRed.dm +++ b/code/game/area/BigRed.dm @@ -1,4 +1,5 @@ //Areas for BigRed - Minijar +// old icon state no longer in use. ("hydro","heads_quarters") /area/bigred can_build_special = TRUE powernet_name = "ground" @@ -251,44 +252,50 @@ name = "\improper Corporate Saferoom" icon_state = "vault" -/area/bigred/uground/lambda_labs/ - minimap_color = MINIMAP_AREA_RESEARCH_CAVE -/area/bigred/uground/lambda_labs/airlock - name = "\improper Lambda Labs Airlock" - icon_state = "decontamination" - -/area/bigred/uground/lambda_labs/lobby - name = "\improper Lambda Labs Reception" - icon_state = "bluenew" - -/area/bigred/uground/lambda_labs/office - name = "\improper Lambda Labs Administration" - icon_state = "heads_quarters" +// Lambda areas below: -/area/bigred/uground/lambda_labs/laser_lab - name = "\improper Lambda Laser Laboratory" - icon_state = "toxmisc" +// Laboratory proper +/area/bigredv2/caves/lambda + ceiling = CEILING_UNDERGROUND_METAL_BLOCK_CAS + ceiling_muffle = FALSE + ambience_exterior = AMBIENCE_ALMAYER + sound_environment = SOUND_ENVIRONMENT_ROOM + soundscape_playlist = list() + minimap_color = MINIMAP_AREA_RESEARCH -/area/bigred/uground/lambda_labs/hydro_office - name = "\improper Lambda Labs Bio-Dome" - icon_state = "hydro" +/area/bigredv2/caves/lambda/virology + name = "\improper Lambda Virology" + icon_state = "lam_virology" -/area/bigred/uground/lambda_labs/hydro_lab - name = "\improper Lambda Labs Hydrophonics" - icon_state = "garden" +/area/bigredv2/caves/lambda/research + name = "\improper Lambda Research" + icon_state = "lam_research" -/area/bigred/uground/lambda_labs/fridge - name = "\improper Lambda Labs Refrigeration" - icon_state = "kitchen" +/area/bigredv2/caves/lambda/breakroom + name = "\improper Lambda Breakroom" + icon_state = "lam_break" -/area/bigred/uground/lambda_labs/maintenance - name = "\improper Unknown Area" - icon_state = "yellow" +/area/bigredv2/caves/lambda/xenobiology + name = "\improper Lambda Xenobiology" + icon_state = "lam_xeno" -/area/bigred/uground/lambda_labs/maintenance2 - name = "\improper Unknown Area" - icon_state = "blue" +// cave around the laboratory. +/area/bigredv2/caves_lambda + name = "\improper Lambda Lab Caves" + icon_state = "caves_lambda" + ceiling = CEILING_UNDERGROUND_BLOCK_CAS + sound_environment = SOUND_ENVIRONMENT_AUDITORIUM + ceiling_muffle = FALSE + ambience_exterior = AMBIENCE_CAVE + soundscape_playlist = SCAPE_PL_CAVE + base_muffle = MUFFLE_HIGH +// serve for the security checkpoint. +/area/bigredv2/outside/lambda_cave_cas + name = "\improper Lambda Lockdown Caves Entrance" + icon_state = "decontamination" + ceiling = CEILING_UNDERGROUND_ALLOW_CAS + minimap_color = MINIMAP_AREA_SEC //Big Red V2 /area/bigredv2 @@ -551,29 +558,6 @@ icon_state = "party" ceiling = CEILING_METAL -/area/bigredv2/caves/lambda - ceiling = CEILING_UNDERGROUND_METAL_BLOCK_CAS - ceiling_muffle = FALSE - ambience_exterior = AMBIENCE_ALMAYER - sound_environment = SOUND_ENVIRONMENT_ROOM - soundscape_playlist = list() - -/area/bigredv2/caves/lambda/virology - name = "\improper Lambda Virology" - icon_state = "lam_virology" - -/area/bigredv2/caves/lambda/research - name = "\improper Lambda Research" - icon_state = "lam_research" - -/area/bigredv2/caves/lambda/breakroom - name = "\improper Lambda Breakroom" - icon_state = "lam_break" - -/area/bigredv2/caves/lambda/xenobiology - name = "\improper Lambda Xenobiology" - icon_state = "lam_xeno" - /area/bigredv2/outside/general_offices name = "\improper General Offices" icon_state = "storage" @@ -630,16 +614,6 @@ soundscape_playlist = SCAPE_PL_CAVE base_muffle = MUFFLE_HIGH -/area/bigredv2/caves_lambda - name = "\improper Lambda Lab Caves" - icon_state = "caves_lambda" - ceiling = CEILING_UNDERGROUND_BLOCK_CAS - sound_environment = SOUND_ENVIRONMENT_AUDITORIUM - ceiling_muffle = FALSE - ambience_exterior = AMBIENCE_CAVE - soundscape_playlist = SCAPE_PL_CAVE - base_muffle = MUFFLE_HIGH - /area/bigredv2/caves_north name = "\improper Northern Caves" icon_state = "caves_north" @@ -688,8 +662,3 @@ name = "\improper Filtration Lockdown Caves Entrance" icon_state = "garden" ceiling = CEILING_UNDERGROUND_ALLOW_CAS - -/area/bigredv2/outside/lambda_cave_cas - name = "\improper Lambda Lockdown Caves Entrance" - icon_state = "garden" - ceiling = CEILING_UNDERGROUND_ALLOW_CAS diff --git a/code/game/area/LV624.dm b/code/game/area/LV624.dm index 613703a0be6e..464067e827d3 100644 --- a/code/game/area/LV624.dm +++ b/code/game/area/LV624.dm @@ -37,6 +37,7 @@ name ="\improper Western Jungle" icon_state = "west" //ambience = list('sound/ambience/jungle_amb1.ogg') + is_resin_allowed = FALSE /area/lv624/ground/jungle/west_jungle/ceiling ceiling = CEILING_GLASS diff --git a/code/game/area/admin_level.dm b/code/game/area/admin_level.dm index bfca1481155e..49bbc43c0b9c 100644 --- a/code/game/area/admin_level.dm +++ b/code/game/area/admin_level.dm @@ -113,6 +113,10 @@ name = "UPP Station" icon_state = "green" +/area/adminlevel/ert_station/pizza_station + name = "Pizza Galaxy" + icon_state = "red" + /area/adminlevel/ert_station/clf_station name = "CLF Station" icon_state = "white" @@ -141,6 +145,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 5267798cfe3b..b75baccd7353 100644 --- a/code/game/area/almayer.dm +++ b/code/game/area/almayer.dm @@ -1,15 +1,17 @@ //ALMAYER AREAS--------------------------------------// // 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') + // ambience = list('sound/ambience/shipambience.ogg') icon_state = "almayer" ceiling = CEILING_METAL powernet_name = "almayer" sound_environment = SOUND_ENVIRONMENT_ROOM soundscape_interval = 30 - //soundscape_playlist = list('sound/effects/xylophone1.ogg', 'sound/effects/xylophone2.ogg', 'sound/effects/xylophone3.ogg') + // soundscape_playlist = list('sound/effects/xylophone1.ogg', 'sound/effects/xylophone2.ogg', 'sound/effects/xylophone3.ogg') ambience_exterior = AMBIENCE_ALMAYER ceiling_muffle = FALSE @@ -28,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' @@ -259,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" @@ -268,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" @@ -280,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" @@ -296,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" @@ -311,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" @@ -322,79 +314,66 @@ 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/fore_hallway + name = "\improper Upper Deck Fore Hallway" + icon_state = "stern" + +/area/almayer/hallways/upper/midship_hallway + name = "\improper Upper Deck Midship Hallway" + icon_state = "stern" + /area/almayer/hallways/upper/port name = "\improper Upper Deck Port Hallway" icon_state = "port" @@ -403,6 +382,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" @@ -414,61 +394,147 @@ icon_state = "stairs_upperdeck" fake_zlevel = 1 // upperdeck -// hull areas. +// maintenance areas -// lower deck hull areas +/area/almayer/maint + +//lower maintenance areas + +/area/almayer/maint/lower + name = "\improper Lower Deck Maintenance" + icon_state = "lowerhull" + fake_zlevel = 2 // lowerdeck + +/area/almayer/maint/lower/constr + name = "\improper Lower Deck Construction Site" -/area/almayer/hull/lower_hull +/area/almayer/maint/lower/s_bow + name = "\improper Lower Deck Starboard-Bow Maintenance" + +/area/almayer/maint/lower/cryo_cells + name = "\improper Lower Deck Cryo Cells Maintenance" + +// Upper maintainance areas +/area/almayer/maint/upper + name = "\improper Upper Deck Maintenance" + icon_state = "upperhull" + fake_zlevel = 1 // upperdeck + +/area/almayer/maint/upper/mess + name = "\improper Upper Deck Mess Maintenance" + +/area/almayer/maint/upper/u_m_p + name = "\improper Upper Deck Port-Midship Maintenance" + +/area/almayer/maint/upper/u_m_s + name = "\improper Upper Deck Starboard-Midship Maintenance" + +/area/almayer/maint/upper/u_f_p + name = "\improper Upper Deck Port-Fore Maintenance" + +/area/almayer/maint/upper/u_f_s + name = "\improper Upper Deck Starboard-Fore Maintenance" + +/area/almayer/maint/upper/u_a_p + name = "\improper Upper Deck Port-Aft Maintenance" + +/area/almayer/maint/upper/u_a_s + name = "\improper Upper Deck Starboard-Aft Maintenance" + +// hull areas +/area/almayer/maint/hull + +// lower deck hull areas +/area/almayer/maint/hull/lower name = "\improper Lower Deck Hull" icon_state = "lowerhull" fake_zlevel = 2 // lowerdeck +// stairs. -/area/almayer/hull/lower_hull/stern +/area/almayer/maint/hull/lower/stairs + name = "\improper Lower Deck Stairs Hull" + +/area/almayer/maint/hull/lower/stern name = "\improper Lower Deck Stern Hull" -/area/almayer/hull/lower_hull/l_f_s +/area/almayer/maint/hull/lower/p_bow + name = "\improper Lower Deck Port-Bow Hull" + +/area/almayer/maint/hull/lower/s_bow + name = "\improper Lower Deck Starboard-Bow Hull" + +/area/almayer/maint/hull/lower/l_f_s name = "\improper Lower Deck Starboard-Fore Hull" -/area/almayer/hull/lower_hull/l_m_s +/area/almayer/maint/hull/lower/l_m_s name = "\improper Lower Deck Starboard-Midship Hull" -/area/almayer/hull/lower_hull/l_a_s - name = "\improper Lower Deck Starboard Hull" +/area/almayer/maint/hull/lower/l_a_s + name = "\improper Lower Deck Starboard-Aft Hull" -/area/almayer/hull/lower_hull/l_f_p +/area/almayer/maint/hull/lower/l_f_p name = "\improper Lower Deck Port-Fore Hull" -/area/almayer/hull/lower_hull/l_m_p +/area/almayer/maint/hull/lower/l_m_p name = "\improper Lower Deck Port-Midship Hull" -/area/almayer/hull/lower_hull/l_a_p +/area/almayer/maint/hull/lower/l_a_p name = "\improper Lower Deck Port-Aft Hull" // upper deck hull areas -/area/almayer/hull/upper_hull +/area/almayer/maint/hull/upper name = "\improper Upper Deck Hull" icon_state = "upperhull" fake_zlevel = 1 // upperdeck -/area/almayer/hull/upper_hull/u_f_s - name = "\improper Upper Deck Fore-Starboard Hull" +// Stairs. +/area/almayer/maint/hull/upper/stairs + name = "\improper Upper Deck Stairs Hull" + +/area/almayer/maint/hull/upper/p_bow + name = "\improper Upper Deck Port-Bow Hull" + +/area/almayer/maint/hull/upper/s_bow + name = "\improper Upper Deck Starboard-Bow Hull" + +/area/almayer/maint/hull/upper/p_stern + name = "\improper Upper Deck Port-Stern Hull" + +/area/almayer/maint/hull/upper/s_stern + name = "\improper Upper Deck Starboard-Stern Hull" -/area/almayer/hull/upper_hull/u_m_s +/area/almayer/maint/hull/upper/u_f_s + name = "\improper Upper Deck Starboard-Fore Hull" + +/area/almayer/maint/hull/upper/u_m_s name = "\improper Upper Deck Starboard-Midship Hull" -/area/almayer/hull/upper_hull/u_a_s +/area/almayer/maint/hull/upper/u_a_s name = "\improper Upper Deck Starboard-Aft Hull" -/area/almayer/hull/upper_hull/u_f_p +/area/almayer/maint/hull/upper/u_f_p name = "\improper Upper Deck Port-Fore Hull" -/area/almayer/hull/upper_hull/u_m_p +/area/almayer/maint/hull/upper/u_m_p name = "\improper Upper Deck Port-Midship Hull" -/area/almayer/hull/upper_hull/u_a_p +/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" @@ -642,11 +708,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" @@ -746,27 +807,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 32aed5684dfd..be7037295497 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -66,7 +66,7 @@ var/powernet_name = "default" //Default powernet name. Change to something else to make completely separate powernets var/requires_power = 1 var/unlimited_power = 0 - var/always_unpowered = 0 //this gets overriden to 1 for space in area/New() + var/always_unpowered = 0 //this gets overridden to 1 for space in area/New() //which channels are powered var/power_equip = TRUE @@ -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/camera_manager/camera_manager.dm b/code/game/camera_manager/camera_manager.dm index 450c7c8beb64..95292830d49b 100644 --- a/code/game/camera_manager/camera_manager.dm +++ b/code/game/camera_manager/camera_manager.dm @@ -89,6 +89,7 @@ RegisterSignal(parent, COMSIG_CAMERA_SET_AREA, PROC_REF(set_camera_rect)) RegisterSignal(parent, COMSIG_CAMERA_SET_TARGET, PROC_REF(set_camera)) RegisterSignal(parent, COMSIG_CAMERA_CLEAR, PROC_REF(clear_camera)) + RegisterSignal(parent, COMSIG_CAMERA_REFRESH, PROC_REF(refresh_camera)) /datum/component/camera_manager/UnregisterFromParent() . = ..() @@ -99,6 +100,7 @@ UnregisterSignal(parent, COMSIG_CAMERA_SET_AREA) UnregisterSignal(parent, COMSIG_CAMERA_SET_TARGET) UnregisterSignal(parent, COMSIG_CAMERA_CLEAR) + UnregisterSignal(parent, COMSIG_CAMERA_REFRESH) /datum/component/camera_manager/proc/clear_camera() SIGNAL_HANDLER @@ -113,6 +115,13 @@ target_height = null show_camera_static() +/datum/component/camera_manager/proc/refresh_camera() + SIGNAL_HANDLER + if(render_mode == RENDER_MODE_AREA) + update_area_camera() + return + update_target_camera() + /datum/component/camera_manager/proc/set_camera(source, atom/target, w, h) SIGNAL_HANDLER render_mode = RENDER_MODE_TARGET diff --git a/code/game/cas_manager/datums/cas_fire_envelope.dm b/code/game/cas_manager/datums/cas_fire_envelope.dm index d9355cd005a9..cc38b034c764 100644 --- a/code/game/cas_manager/datums/cas_fire_envelope.dm +++ b/code/game/cas_manager/datums/cas_fire_envelope.dm @@ -259,7 +259,20 @@ mission_error = "Target is off bounds or obstructed." return change_current_loc(target_turf) - playsound(target_turf, soundeffect, 70, TRUE, 50) + playsound(source = target_turf, soundin = soundeffect, vol = 70, vary = TRUE, sound_range = 50, falloff = 8) + + for(var/mob/mob in range(15, target_turf)) + var/ds_identifier = "LARGE BIRD" + var/fm_identifier = "SPIT FIRE" + if (mob.mob_flags & KNOWS_TECHNOLOGY) + ds_identifier = "DROPSHIP" + fm_identifier = "FIRE" + + mob.show_message( \ + SPAN_HIGHDANGER("YOU HEAR THE [ds_identifier] ROAR AS IT PREPARES TO [fm_identifier] NEAR YOU!"),SHOW_MESSAGE_VISIBLE, \ + SPAN_HIGHDANGER("YOU HEAR SOMETHING FLYING CLOSER TO YOU!") , SHOW_MESSAGE_AUDIBLE \ + ) + sleep(flyto_period) stat = FIRE_MISSION_STATE_FIRING mission.execute_firemission(linked_console, target_turf, dir, fire_length, step_delay, src) @@ -311,10 +324,10 @@ /datum/cas_fire_envelope/uscm_dropship fire_length = 12 - grace_period = 50 //5 seconds - flyto_period = 50 //five seconds - flyoff_period = 50 //FIVE seconds - cooldown_period = 100 //f~ I mean, 10 seconds + grace_period = 5 SECONDS + flyto_period = 4 SECONDS //sleep in the FM itself has been increased by one more second + flyoff_period = 5 SECONDS + cooldown_period = 10 SECONDS soundeffect = 'sound/weapons/dropship_sonic_boom.ogg' //BOOM~WOOOOOSH~HSOOOOOW~BOOM step_delay = 3 max_offset = 12 diff --git a/code/game/cas_manager/datums/cas_fire_mission.dm b/code/game/cas_manager/datums/cas_fire_mission.dm index ece78042ac25..927dded210f0 100644 --- a/code/game/cas_manager/datums/cas_fire_mission.dm +++ b/code/game/cas_manager/datums/cas_fire_mission.dm @@ -38,9 +38,9 @@ for(var/datum/cas_fire_mission_record/record as anything in records) .["records"] += list(record.ui_data(user)) -/datum/cas_fire_mission/proc/build_new_record(obj/structure/dropship_equipment/weapon/weap, fire_length) +/datum/cas_fire_mission/proc/build_new_record(obj/structure/dropship_equipment/weapon/weapon, fire_length) var/datum/cas_fire_mission_record/record = new() - record.weapon = weap + record.weapon = weapon record.offsets = new /list(fire_length) for(var/idx = 1; idx<=fire_length; idx++) record.offsets[idx] = "-" @@ -53,24 +53,24 @@ // if weapon appears in weapons list but not in record // > add empty record for new weapon var/found = FALSE - for(var/obj/structure/dropship_equipment/weapon/weap in weapons) - if(record.weapon == weap) + for(var/obj/structure/dropship_equipment/weapon/weapon in weapons) + if(record.weapon == weapon) found=TRUE break if(!found) bad_records.Add(record) - for(var/obj/structure/dropship_equipment/weapon/weap in weapons) + for(var/obj/structure/dropship_equipment/weapon/weapon in weapons) var/found = FALSE for(var/datum/cas_fire_mission_record/record in records) - if(record.weapon == weap) + if(record.weapon == weapon) found=TRUE break if(!found) - missing_weapons.Add(weap) + missing_weapons.Add(weapon) for(var/datum/cas_fire_mission_record/record in bad_records) records -= record - for(var/obj/structure/dropship_equipment/weapon/weap in missing_weapons) - build_new_record(weap, fire_length) + for(var/obj/structure/dropship_equipment/weapon/weapon in missing_weapons) + build_new_record(weapon, fire_length) /datum/cas_fire_mission/proc/record_for_weapon(weapon_id) for(var/datum/cas_fire_mission_record/record as anything in records) @@ -176,35 +176,35 @@ msg_admin_niche("[usr ? key_name(usr) : "Someone"] is launching Fire Mission '[name]' at ([initial_turf.x],[initial_turf.y],[initial_turf.z]) [ADMIN_JMP(initial_turf)]") var/relative_dir - for(var/mob/M in range(15, initial_turf)) - if(get_turf(M) == initial_turf) + for(var/mob/mob in range(15, initial_turf)) + if(get_turf(mob) == initial_turf) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, initial_turf) + relative_dir = Get_Compass_Dir(mob, initial_turf) var/ds_identifier = "LARGE BIRD" - if (M.mob_flags & KNOWS_TECHNOLOGY) + if (mob.mob_flags & KNOWS_TECHNOLOGY) ds_identifier = "DROPSHIP" - M.show_message( \ + mob.show_message( \ SPAN_HIGHDANGER("A [ds_identifier] FLIES [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ SPAN_HIGHDANGER("YOU HEAR SOMETHING GO [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ ) // Xenos have time to react to the first message - sleep(0.5 SECONDS) + sleep(1.5 SECONDS) - for(var/mob/M in range(10, initial_turf)) - if(get_turf(M) == initial_turf) + for(var/mob/mob in range(10, initial_turf)) + if(get_turf(mob) == initial_turf) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, initial_turf) + relative_dir = Get_Compass_Dir(mob, initial_turf) var/ds_identifier = "LARGE BIRD" - if (M.mob_flags & KNOWS_TECHNOLOGY) + if (mob.mob_flags & KNOWS_TECHNOLOGY) ds_identifier = "DROPSHIP" - M.show_message( \ + mob.show_message( \ SPAN_HIGHDANGER("A [ds_identifier] FIRES [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), 1, \ SPAN_HIGHDANGER("YOU HEAR SOMETHING FIRE [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), 2 \ ) @@ -243,8 +243,8 @@ if (current_turf == null) return -1 var/turf/shootloc = locate(current_turf.x + sx*offset, current_turf.y + sy*offset, current_turf.z) - var/area/A = get_area(shootloc) - if(shootloc && !CEILING_IS_PROTECTED(A?.ceiling, CEILING_PROTECTION_TIER_3) && !protected_by_pylon(TURF_PROTECTION_CAS, shootloc)) + var/area/area = get_area(shootloc) + if(shootloc && !CEILING_IS_PROTECTED(area?.ceiling, CEILING_PROTECTION_TIER_3) && !protected_by_pylon(TURF_PROTECTION_CAS, shootloc)) item.weapon.open_fire_firemission(shootloc) sleep(step_delay) if(envelope) diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index c017733de7fd..971eb8f07178 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -155,7 +155,7 @@ Additional game mode variables. else if(!istype(player,/mob/dead)) continue //Otherwise we just want to grab the ghosts. - if(GLOB.RoleAuthority.roles_whitelist[player.ckey] & WHITELIST_PREDATOR) //Are they whitelisted? + if(player?.client.check_whitelist_status(WHITELIST_PREDATOR)) //Are they whitelisted? if(!player.client.prefs) player.client.prefs = new /datum/preferences(player.client) //Somehow they don't have one. @@ -188,7 +188,7 @@ Additional game mode variables. if(show_warning) to_chat(pred_candidate, SPAN_WARNING("Something went wrong!")) return - if(!(GLOB.RoleAuthority.roles_whitelist[pred_candidate.ckey] & WHITELIST_PREDATOR)) + if(!(pred_candidate?.client.check_whitelist_status(WHITELIST_PREDATOR))) if(show_warning) to_chat(pred_candidate, SPAN_WARNING("You are not whitelisted! You may apply on the forums to be whitelisted as a predator.")) return @@ -201,9 +201,9 @@ Additional game mode variables. to_chat(pred_candidate, SPAN_WARNING("You already were a Yautja! Give someone else a chance.")) return - if(show_warning && tgui_alert(pred_candidate, "Confirm joining the hunt. You will join as \a [lowertext(J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, pred_candidate.client))] predator", "Confirmation", list("Yes", "No"), 10 SECONDS) != "Yes") + if(show_warning && tgui_alert(pred_candidate, "Confirm joining the hunt. You will join as \a [lowertext(J.get_whitelist_status(pred_candidate.client))] predator", "Confirmation", list("Yes", "No"), 10 SECONDS) != "Yes") return - if(J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, pred_candidate.client) == WHITELIST_NORMAL) + if(J.get_whitelist_status(pred_candidate.client) == WHITELIST_NORMAL) var/pred_max = calculate_pred_max if(pred_current_num >= pred_max) if(show_warning) to_chat(pred_candidate, SPAN_WARNING("Only [pred_max] predators may spawn this round, but Councillors and Ancients do not count.")) @@ -259,10 +259,10 @@ Additional game mode variables. //If we are selecting xenomorphs, we NEED them to play the round. This is the expected behavior. //If this is an optional behavior, just override this proc or make an override here. -/datum/game_mode/proc/initialize_starting_xenomorph_list(list/hives = list(XENO_HIVE_NORMAL), force_xenos = FALSE) +/datum/game_mode/proc/initialize_starting_xenomorph_list(list/hives = list(XENO_HIVE_NORMAL), bypass_checks = FALSE) var/list/datum/mind/possible_xenomorphs = get_players_for_role(JOB_XENOMORPH) var/list/datum/mind/possible_queens = get_players_for_role(JOB_XENOMORPH_QUEEN) - if(possible_xenomorphs.len < xeno_required_num) //We don't have enough aliens, we don't consider people rolling for only Queen. + if(possible_xenomorphs.len < xeno_required_num && !bypass_checks) //We don't have enough aliens, we don't consider people rolling for only Queen. to_world("

Not enough players have chosen to be a xenomorph in their character setup. Aborting.

") return @@ -325,11 +325,11 @@ Additional game mode variables. Our list is empty. This can happen if we had someone ready as alien and predator, and predators are picked first. So they may have been removed from the list, oh well. */ - if(LAZYLEN(xenomorphs) < xeno_required_num && LAZYLEN(picked_queens) != LAZYLEN(hives)) + if(LAZYLEN(xenomorphs) < xeno_required_num && LAZYLEN(picked_queens) != LAZYLEN(hives) && !bypass_checks) to_world("

Could not find any candidates after initial alien list pass. Aborting.

") return - return 1 + return TRUE // Helper proc to set some constants /proc/setup_new_xeno(datum/mind/new_xeno) @@ -385,34 +385,49 @@ Additional game mode variables. available_xenos[larva_option] = list(hive) if(!available_xenos.len || (instant_join && !available_xenos_non_ssd.len)) - if(!xeno_candidate.client || !xeno_candidate.client.prefs || !(xeno_candidate.client.prefs.be_special & BE_ALIEN_AFTER_DEATH)) - to_chat(xeno_candidate, SPAN_WARNING("There aren't any available xenomorphs or burrowed larvae. You can try getting spawned as a chestburster larva by toggling your Xenomorph candidacy in Preferences -> Toggle SpecialRole Candidacy.")) + if(!xeno_candidate.client?.prefs || !(xeno_candidate.client.prefs.be_special & BE_ALIEN_AFTER_DEATH)) + to_chat(xeno_candidate, SPAN_WARNING("There aren't any available xenomorphs or burrowed larvae. \ + You can try getting spawned as a chestburster larva by toggling your Xenomorph candidacy in \ + Preferences -> Toggle SpecialRole Candidacy.")) return FALSE to_chat(xeno_candidate, SPAN_WARNING("There aren't any available xenomorphs or burrowed larvae.")) - // Give the player a cached message of their queue status if they are an observer + if(!isobserver(xeno_candidate)) + return FALSE var/mob/dead/observer/candidate_observer = xeno_candidate - if(istype(candidate_observer)) - if(candidate_observer.larva_queue_cached_message) - to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) - return FALSE - // No cache, lets check now then - message_alien_candidates(get_alien_candidates(), dequeued = 0, cache_only = TRUE) - if(candidate_observer.larva_queue_cached_message) - var/datum/hive_status/cur_hive - for(var/hive_num in GLOB.hive_datum) - cur_hive = GLOB.hive_datum[hive_num] - for(var/mob_name in cur_hive.banished_ckeys) - if(cur_hive.banished_ckeys[mob_name] == xeno_candidate.ckey) - candidate_observer.larva_queue_cached_message += "\nNOTE: You are banished from the [cur_hive] and you may not rejoin unless the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from." - break - to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) - return FALSE + // If an observing mod wants to join as a xeno, disable their larva protection so that they can enter the queue. + if(check_client_rights(candidate_observer.client, R_MOD, FALSE)) + candidate_observer.admin_larva_protection = FALSE + + // Give the player a cached message of their queue status if they are an observer + if(candidate_observer.larva_queue_cached_message) + to_chat(candidate_observer, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) + return FALSE + + // No cache, lets check now then + message_alien_candidates(get_alien_candidates(), dequeued = 0, cache_only = TRUE) + + // If we aren't in the queue yet, let's teach them about the queue + if(!candidate_observer.larva_queue_cached_message) + candidate_observer.larva_queue_cached_message = "You are currently awaiting assignment in the larva queue. \ + The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, \ + you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. \ + Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. \ + Note: Playing as a facehugger or in the thunderdome will not alter your time of death. \ + This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome." + to_chat(candidate_observer, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) + return FALSE - // We aren't in queue yet, lets teach them about the queue then - candidate_observer.larva_queue_cached_message = "You are currently awaiting assignment in the larva queue. The ordering is based on your time of death or the time you joined. When you have been dead long enough and are not inactive, you will periodically receive messages where you are in the queue relative to other currently valid xeno candidates. Your current position will shift as others change their preferences or go inactive, but your relative position compared to all observers is the same. Note: Playing as a facehugger or in the thunderdome will not alter your time of death. This means you won't lose your relative place in queue if you step away, disconnect, play as a facehugger, or play in the thunderdome." - to_chat(xeno_candidate, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) + var/datum/hive_status/cur_hive + for(var/hive_num in GLOB.hive_datum) + cur_hive = GLOB.hive_datum[hive_num] + for(var/mob_name in cur_hive.banished_ckeys) + if(cur_hive.banished_ckeys[mob_name] == candidate_observer.ckey) + candidate_observer.larva_queue_cached_message += "\nNOTE: You are banished from the [cur_hive] and you may not rejoin unless \ + the Queen re-admits you or dies. Your queue number won't update until there is a hive you aren't banished from." + break + to_chat(candidate_observer, SPAN_XENONOTICE(candidate_observer.larva_queue_cached_message)) return FALSE var/mob/living/carbon/xenomorph/new_xeno @@ -934,7 +949,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) @@ -1001,18 +1016,22 @@ Additional game mode variables. to_chat(joe_candidate, SPAN_WARNING("Something went wrong!")) return - if(!(GLOB.RoleAuthority.roles_whitelist[joe_candidate.ckey] & WHITELIST_JOE)) + if(!joe_job.check_whitelist_status(joe_candidate)) if(show_warning) to_chat(joe_candidate, SPAN_WARNING("You are not whitelisted! You may apply on the forums to be whitelisted as a synth.")) return - if((joe_candidate.ckey in joes) && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) - if(show_warning) - to_chat(joe_candidate, SPAN_WARNING("You already were a Working Joe this round!")) - return + if(MODE_HAS_TOGGLEABLE_FLAG(MODE_DISABLE_JOE_RESPAWN) && (joe_candidate.ckey in joes)) // No joe respawns if already a joe before + to_chat(joe_candidate, SPAN_WARNING("Working Joe respawns are disabled!")) + return FALSE + + var/deathtime = world.time - joe_candidate.timeofdeath + if((deathtime < JOE_JOIN_DEAD_TIME && (joe_candidate.ckey in joes)) && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) + to_chat(joe_candidate, SPAN_WARNING("You have been dead for [DisplayTimeText(deathtime)]. You need to wait [DisplayTimeText(JOE_JOIN_DEAD_TIME - deathtime)] before rejoining as a Working Joe!")) + return FALSE // council doesn't count towards this conditional. - if(joe_job.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, joe_candidate.client) == WHITELIST_NORMAL) + if(joe_job.get_whitelist_status(joe_candidate.client) == WHITELIST_NORMAL) var/joe_max = joe_job.total_positions if((joe_job.current_positions >= joe_max) && !MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE)) if(show_warning) diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm index f64c2432486b..a66403fc00f5 100644 --- a/code/game/gamemodes/colonialmarines/colonialmarines.dm +++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm @@ -21,7 +21,7 @@ //////////////////////////////////////////////////////////////////////////////////////// /* Pre-pre-startup */ -/datum/game_mode/colonialmarines/can_start() +/datum/game_mode/colonialmarines/can_start(bypass_checks = FALSE) initialize_special_clamps() return TRUE @@ -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) @@ -332,7 +332,10 @@ if(HS.living_xeno_queen && !should_block_game_interaction(HS.living_xeno_queen.loc)) //Some Queen is alive, we shouldn't end the game yet return - round_finished = MODE_INFESTATION_M_MINOR + if(length(HS.totalXenos) <= 3) + round_finished = MODE_INFESTATION_M_MAJOR + else + round_finished = MODE_INFESTATION_M_MINOR /////////////////////////////// //Checks if the round is over// @@ -369,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 7b7ca73972bf..c5b25d3e1538 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm @@ -20,7 +20,7 @@ /datum/job/command/bridge/whiskey = JOB_SO, /datum/job/command/tank_crew/whiskey = JOB_CREWMAN, /datum/job/command/police/whiskey = JOB_POLICE, - /datum/job/command/pilot/whiskey = JOB_PILOT, + /datum/job/command/pilot/whiskey = JOB_CAS_PILOT, /datum/job/logistics/requisition/whiskey = JOB_CHIEF_REQUISITION, /datum/job/civilian/professor/whiskey = JOB_CMO, /datum/job/civilian/doctor/whiskey = JOB_DOCTOR, @@ -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) @@ -262,7 +262,7 @@ GLOB.round_statistics.track_round_end() if(finished == 1) log_game("Round end result - xenos won") - to_world(SPAN_ROUND_HEADER("The Xenos have succesfully defended their hive from colonization.")) + to_world(SPAN_ROUND_HEADER("The Xenos have successfully defended their hive from colonization.")) to_world(SPAN_ROUNDBODY("Well done, you've secured LV-624 for the hive!")) to_world(SPAN_ROUNDBODY("It will be another five years before the USCM returns to the Neroid Sector, with the arrival of the 2nd 'Falling Falcons' Battalion and the USS Almayer.")) to_world(SPAN_ROUNDBODY("The xenomorph hive on LV-624 remains unthreatened until then...")) diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm index eb3e46a2686b..d5ff07391b5e 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost/equipping.dm @@ -76,7 +76,7 @@ You must lead his Honor guard, his elite unit of marines, to protect the command gear_preset = /datum/equipment_preset/wo/vhg /datum/job/command/bridge/whiskey/generate_entry_message(mob/living/carbon/human/H) - . = {"You were assigned to guard the commander in this hostile enviroment; that hasn't changed. Ensure your extra training and equipment isn't wasted! + . = {"You were assigned to guard the commander in this hostile environment; that hasn't changed. Ensure your extra training and equipment isn't wasted! You've survived through enough battles that you've been entrusted with more training, and can use overwatch consoles, as well as give orders. You're expected to defend not only the commander, but the bunker at large; leave the outside defenses to the marines. Glory to the commander. Glory to the USCM."} @@ -90,7 +90,7 @@ Glory to the commander. Glory to the USCM."} gear_preset = /datum/equipment_preset/wo/hgs /datum/job/command/tank_crew/whiskey/generate_entry_message(mob/living/carbon/human/H) - . = {"You were assigned to guard the commander in this hostile enviroment; that hasn't changed. Ensure your extra training and equipment isn't wasted! + . = {"You were assigned to guard the commander in this hostile environment; that hasn't changed. Ensure your extra training and equipment isn't wasted! You're expected to defend not only the commander, but the bunker at large; leave the outside defenses to the marines. You've been through much, and as such, have been given special-weapons training. Use it well. Glory to the commander. Glory to the USCM."} @@ -104,7 +104,7 @@ Glory to the commander. Glory to the USCM."} gear_preset = /datum/equipment_preset/wo/hg /datum/job/command/police/whiskey/generate_entry_message(mob/living/carbon/human/H) - . = {"You were assigned to guard the commander in this hostile enviroment; that hasn't changed. Ensure your extra training and equipment isn't wasted! + . = {"You were assigned to guard the commander in this hostile environment; that hasn't changed. Ensure your extra training and equipment isn't wasted! You're expected to defend not only the commander, but the bunker at large; leave the outside defenses to the marines. Glory to the commander. Glory to the USCM."} diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm index 1ec07b9d8fec..609a70f1dd3b 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost/whiskey_output_waves.dm @@ -198,7 +198,7 @@ wave_castes = list(XENO_CASTE_BURROWER) wave_type = WO_STATIC_WAVE number_of_xenos = 3 - command_announcement = list("First Lieutenant Ike Saker, Executive Officer of Captain Naiche, speaking. The Captain is still trying to try and get off world contact. An engineer platoon managed to destroy the main entrance into this valley this should give you a short break while the aliens find another way in. We are receiving reports of seismic waves occuring nearby, there might be creatures burrowing underground, keep an eye on your defenses. I have also received word that marines from an overrun outpost are evacuating to you and will help you. I used to be stationed with them, they are top notch!", "First Lieutenant Ike Saker, 3rd Battalion Command, LV-624 Garrison") + command_announcement = list("First Lieutenant Ike Saker, Executive Officer of Captain Naiche, speaking. The Captain is still trying to try and get off world contact. An engineer platoon managed to destroy the main entrance into this valley this should give you a short break while the aliens find another way in. We are receiving reports of seismic waves occurring nearby, there might be creatures burrowing underground, keep an eye on your defenses. I have also received word that marines from an overrun outpost are evacuating to you and will help you. I used to be stationed with them, they are top notch!", "First Lieutenant Ike Saker, 3rd Battalion Command, LV-624 Garrison") /datum/whiskey_outpost_wave/wave8 wave_number = 8 diff --git a/code/game/gamemodes/colonialmarines/xenovsxeno.dm b/code/game/gamemodes/colonialmarines/xenovsxeno.dm index a9ad48196257..79754a6fff84 100644 --- a/code/game/gamemodes/colonialmarines/xenovsxeno.dm +++ b/code/game/gamemodes/colonialmarines/xenovsxeno.dm @@ -24,14 +24,14 @@ votable = FALSE // broken /* Pre-pre-startup */ -/datum/game_mode/xenovs/can_start() +/datum/game_mode/xenovs/can_start(bypass_checks = FALSE) for(var/hivename in SSmapping.configs[GROUND_MAP].xvx_hives) if(GLOB.readied_players > SSmapping.configs[GROUND_MAP].xvx_hives[hivename]) hives += hivename xeno_starting_num = GLOB.readied_players - if(!initialize_starting_xenomorph_list(hives, TRUE)) + if(!initialize_starting_xenomorph_list(hives, bypass_checks)) hives.Cut() - return + return FALSE return TRUE /datum/game_mode/xenovs/announce() 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/gamemodes/extended/infection.dm b/code/game/gamemodes/extended/infection.dm index 1e0032a8e6fa..e2c34f9aa16c 100644 --- a/code/game/gamemodes/extended/infection.dm +++ b/code/game/gamemodes/extended/infection.dm @@ -45,9 +45,9 @@ if(transform_survivor(survivor) == 1) survivors -= survivor -/datum/game_mode/infection/can_start() +/datum/game_mode/infection/can_start(bypass_checks = FALSE) initialize_starting_survivor_list() - return 1 + return TRUE //We don't actually need survivors to play, so long as aliens are present. /datum/game_mode/infection/proc/initialize_starting_survivor_list() @@ -61,7 +61,7 @@ possible_synth_survivors -= A continue - if(GLOB.RoleAuthority.roles_whitelist[ckey(A.key)] & WHITELIST_SYNTHETIC) + if(A.current.client?.check_whitelist_status(WHITELIST_SYNTHETIC)) if(A in possible_survivors) continue //they are already applying to be a survivor else diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 3bb8c2d80123..1803d7ac127c 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -50,19 +50,20 @@ GLOBAL_VAR_INIT(cas_tracking_id_increment, 0) //this var used to assign unique t ///can_start() ///Checks to see if the game can be setup and ran with the current number of players or whatnot. -/datum/game_mode/proc/can_start() - var/playerC = 0 +/datum/game_mode/proc/can_start(bypass_checks = FALSE) + if(bypass_checks) + return TRUE + var/players = 0 for(var/mob/new_player/player in GLOB.new_player_list) - if((player.client)&&(player.ready)) - playerC++ - - if(GLOB.master_mode=="secret") - if(playerC >= required_players_secret) - return 1 + if(player.client && player.ready) + players++ + if(GLOB.master_mode == "secret") + if(players >= required_players_secret) + return TRUE else - if(playerC >= required_players) - return 1 - return 0 + if(players >= required_players) + return TRUE + return FALSE ///pre_setup() diff --git a/code/game/jobs/job/antag/other/pred.dm b/code/game/jobs/job/antag/other/pred.dm index 77439276d04a..3808c5637da9 100644 --- a/code/game/jobs/job/antag/other/pred.dm +++ b/code/game/jobs/job/antag/other/pred.dm @@ -31,11 +31,7 @@ SSticker.mode.attempt_to_join_as_predator(player) -/datum/job/antag/predator/get_whitelist_status(list/roles_whitelist, client/player) // Might be a problem waiting here, but we've got no choice - . = ..() - if(!.) - return - +/datum/job/antag/predator/get_whitelist_status(client/player) // Might be a problem waiting here, but we've got no choice if(!player.clan_info) return CLAN_RANK_BLOODED @@ -49,10 +45,7 @@ if(!("[JOB_PREDATOR][rank]" in gear_preset_whitelist)) return CLAN_RANK_BLOODED - if(\ - (roles_whitelist[player.ckey] & (WHITELIST_YAUTJA_LEADER|WHITELIST_YAUTJA_COUNCIL|WHITELIST_YAUTJA_COUNCIL_LEGACY)) &&\ - get_desired_status(player.prefs.yautja_status, WHITELIST_COUNCIL) == WHITELIST_NORMAL\ - ) + if(player.check_whitelist_status(WHITELIST_YAUTJA_LEADER|WHITELIST_YAUTJA_COUNCIL|WHITELIST_YAUTJA_COUNCIL_LEGACY) && get_desired_status(player.prefs.yautja_status, WHITELIST_COUNCIL) == WHITELIST_NORMAL) return CLAN_RANK_BLOODED return rank 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/civilians/support/cmo.dm b/code/game/jobs/job/civilians/support/cmo.dm index 835f16f7d814..b75f840ac895 100644 --- a/code/game/jobs/job/civilians/support/cmo.dm +++ b/code/game/jobs/job/civilians/support/cmo.dm @@ -6,7 +6,7 @@ selection_class = "job_cmo" flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uscm_ship/uscm_medical/cmo - entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research, only able to be overriden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall." + entry_message_body = "You're a commissioned officer of the USCM. You have authority over everything related to Medbay and Research, only able to be overridden by the XO and CO. You are in charge of medical staff, surgery, chemistry, stimulants and keeping the marines healthy overall." AddTimelock(/datum/job/civilian/professor, list( JOB_MEDIC_ROLES = 10 HOURS diff --git a/code/game/jobs/job/civilians/support/synthetic.dm b/code/game/jobs/job/civilians/support/synthetic.dm index 70060fb36a15..12e50ef6c809 100644 --- a/code/game/jobs/job/civilians/support/synthetic.dm +++ b/code/game/jobs/job/civilians/support/synthetic.dm @@ -19,16 +19,16 @@ "[JOB_SYNTH][WHITELIST_LEADER]" = /datum/equipment_preset/synth/uscm/councillor ) -/datum/job/civilian/synthetic/get_whitelist_status(list/roles_whitelist, client/player) +/datum/job/civilian/synthetic/get_whitelist_status(client/player) . = ..() if(!.) return - if(roles_whitelist[player.ckey] & WHITELIST_SYNTHETIC_LEADER) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC_LEADER)) return get_desired_status(player.prefs.synth_status, WHITELIST_LEADER) - else if(roles_whitelist[player.ckey] & (WHITELIST_SYNTHETIC_COUNCIL|WHITELIST_SYNTHETIC_COUNCIL_LEGACY)) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC_COUNCIL|WHITELIST_SYNTHETIC_COUNCIL_LEGACY)) return get_desired_status(player.prefs.synth_status, WHITELIST_COUNCIL) - else if(roles_whitelist[player.ckey] & WHITELIST_SYNTHETIC) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC)) return get_desired_status(player.prefs.synth_status, WHITELIST_NORMAL) /datum/job/civilian/synthetic/set_spawn_positions(count) diff --git a/code/game/jobs/job/civilians/support/working_joe.dm b/code/game/jobs/job/civilians/support/working_joe.dm index bc8f8c439900..d890b3684084 100644 --- a/code/game/jobs/job/civilians/support/working_joe.dm +++ b/code/game/jobs/job/civilians/support/working_joe.dm @@ -17,6 +17,12 @@ job_options = list(STANDARD_VARIANT = "JOE", HAZMAT_VARIANT = "HAZ") var/standard = TRUE +/datum/job/civilian/working_joe/check_whitelist_status(mob/user) + if(user.client.check_whitelist_status(WHITELIST_SYNTHETIC)) + return TRUE + + return ..() + /datum/job/civilian/working_joe/handle_job_options(option) if(option != HAZMAT_VARIANT) standard = TRUE diff --git a/code/game/jobs/job/command/auxiliary/cas_pilot.dm b/code/game/jobs/job/command/auxiliary/cas_pilot.dm new file mode 100644 index 000000000000..083766576ad4 --- /dev/null +++ b/code/game/jobs/job/command/auxiliary/cas_pilot.dm @@ -0,0 +1,24 @@ +/datum/job/command/pilot/cas_pilot + title = JOB_CAS_PILOT + total_positions = 1 + spawn_positions = 1 + allow_additional = TRUE + scaled = TRUE + supervisors = "the auxiliary support officer" + flags_startup_parameters = ROLE_ADD_TO_DEFAULT + gear_preset = /datum/equipment_preset/uscm_ship/gp + entry_message_body = "Your job is to fly, protect, and maintain the ship's gunship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel." + +/datum/job/command/pilot/whiskey + total_positions = 2 + spawn_positions = 2 + +// Dropship Roles is both DP, GP and DCC combined to not force people to backtrack +AddTimelock(/datum/job/command/pilot/cas_pilot, list( + JOB_DROPSHIP_ROLES = 2 HOURS +)) + +/obj/effect/landmark/start/pilot/cas_pilot + name = JOB_CAS_PILOT + icon_state = "po_spawn" + job = /datum/job/command/pilot/cas_pilot diff --git a/code/game/jobs/job/command/auxiliary/dropship_pilot.dm b/code/game/jobs/job/command/auxiliary/dropship_pilot.dm new file mode 100644 index 000000000000..2fda9a680094 --- /dev/null +++ b/code/game/jobs/job/command/auxiliary/dropship_pilot.dm @@ -0,0 +1,20 @@ +/datum/job/command/pilot/dropship_pilot + title = JOB_DROPSHIP_PILOT + total_positions = 1 + spawn_positions = 1 + allow_additional = TRUE + scaled = TRUE + supervisors = "the auxiliary support officer" + flags_startup_parameters = ROLE_ADD_TO_DEFAULT + gear_preset = /datum/equipment_preset/uscm_ship/dp + entry_message_body = "Your job is to fly, protect, and maintain the ship's transport dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason." + +// Dropship Roles is both DP, GP and DCC combined to not force people to backtrack +AddTimelock(/datum/job/command/pilot/dropship_pilot, list( + JOB_DROPSHIP_ROLES = 2 HOURS +)) + +/obj/effect/landmark/start/pilot/dropship_pilot + name = JOB_DROPSHIP_PILOT + icon_state = "po_spawn" + job = /datum/job/command/pilot/dropship_pilot diff --git a/code/game/jobs/job/command/auxiliary/pilot.dm b/code/game/jobs/job/command/auxiliary/pilot.dm deleted file mode 100644 index 1a7a7c21d5a0..000000000000 --- a/code/game/jobs/job/command/auxiliary/pilot.dm +++ /dev/null @@ -1,20 +0,0 @@ -/datum/job/command/pilot - title = JOB_PILOT - total_positions = 2 - spawn_positions = 2 - allow_additional = TRUE - scaled = TRUE - supervisors = "the auxiliary support officer" - flags_startup_parameters = ROLE_ADD_TO_DEFAULT - gear_preset = /datum/equipment_preset/uscm_ship/po - entry_message_body = "Your job is to fly, protect, and maintain the ship's dropship. While you are an officer, your authority is limited to the dropship, where you have authority over the enlisted personnel. If you are not piloting, there is an autopilot fallback for command, but don't leave the dropship without reason." - -// Dropship Roles is both PO and DCC combined to not force people to backtrack -AddTimelock(/datum/job/command/pilot, list( - JOB_DROPSHIP_ROLES = 2 HOURS -)) - -/obj/effect/landmark/start/pilot - name = JOB_PILOT - icon_state = "po_spawn" - job = /datum/job/command/pilot diff --git a/code/game/jobs/job/command/cic/captain.dm b/code/game/jobs/job/command/cic/captain.dm index 72f861351912..30fa455beeee 100644 --- a/code/game/jobs/job/command/cic/captain.dm +++ b/code/game/jobs/job/command/cic/captain.dm @@ -19,16 +19,16 @@ entry_message_body = "You are the Commanding Officer of the [MAIN_SHIP_NAME] as well as the operation. Your goal is to lead the Marines on their mission as well as protect and command the ship and her crew. Your job involves heavy roleplay and requires you to behave like a high-ranking officer and to stay in character at all times. As the Commanding Officer your only superior is High Command itself. You must abide by the Commanding Officer Code of Conduct. Failure to do so may result in punitive action against you. Godspeed." return ..() -/datum/job/command/commander/get_whitelist_status(list/roles_whitelist, client/player) +/datum/job/command/commander/get_whitelist_status(client/player) . = ..() if(!.) return - if(roles_whitelist[player.ckey] & WHITELIST_COMMANDER_LEADER) + if(player.check_whitelist_status(WHITELIST_COMMANDER_LEADER|WHITELIST_COMMANDER_COLONEL)) return get_desired_status(player.prefs.commander_status, WHITELIST_LEADER) - else if(roles_whitelist[player.ckey] & (WHITELIST_COMMANDER_COUNCIL|WHITELIST_COMMANDER_COUNCIL_LEGACY)) + if(player.check_whitelist_status(WHITELIST_COMMANDER_COUNCIL|WHITELIST_COMMANDER_COUNCIL_LEGACY)) return get_desired_status(player.prefs.commander_status, WHITELIST_COUNCIL) - else if(roles_whitelist[player.ckey] & WHITELIST_COMMANDER) + if(player.check_whitelist_status(WHITELIST_COMMANDER)) return get_desired_status(player.prefs.commander_status, WHITELIST_NORMAL) /datum/job/command/commander/announce_entry_message(mob/living/carbon/human/H) 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/jobs/job/job.dm b/code/game/jobs/job/job.dm index 094b899c1691..1a04c3cafeb5 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -66,10 +66,7 @@ return "" return "[CONFIG_GET(string/wikiarticleurl)]/[replacetext(title, " ", "_")]" -/datum/job/proc/get_whitelist_status(list/roles_whitelist, client/player) - if(!roles_whitelist) - return FALSE - +/datum/job/proc/get_whitelist_status(client/player) return WHITELIST_NORMAL /datum/timelock @@ -252,7 +249,7 @@ var/mob/living/carbon/human/human = M var/job_whitelist = title - var/whitelist_status = get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, human.client) + var/whitelist_status = get_whitelist_status(human.client) if(whitelist_status) job_whitelist = "[title][whitelist_status]" @@ -314,3 +311,10 @@ /// Intended to be overwritten to handle any requirements for specific job variations that can be selected /datum/job/proc/filter_job_option(mob/job_applicant) return job_options + +/datum/job/proc/check_whitelist_status(mob/user) + if(!(flags_startup_parameters & ROLE_WHITELISTED)) + return TRUE + + if(user.client.check_whitelist_status(flags_whitelist)) + return TRUE diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm index be2b75e0e7f6..58c9ad5b5092 100644 --- a/code/game/jobs/role_authority.dm +++ b/code/game/jobs/role_authority.dm @@ -36,7 +36,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0) var/list/roles_by_path //Master list generated when role aithority is created, listing every role by path, including variable roles. Great for manually equipping with. var/list/roles_by_name //Master list generated when role authority is created, listing every default role by name, including those that may not be regularly selected. var/list/roles_for_mode //Derived list of roles only for the game mode, generated when the round starts. - var/list/roles_whitelist //Associated list of lists, by ckey. Checks to see if a person is whitelisted for a specific role. var/list/castes_by_path //Master list generated when role aithority is created, listing every caste by path. var/list/castes_by_name //Master list generated when role authority is created, listing every default caste by name. @@ -116,57 +115,6 @@ GLOBAL_VAR_INIT(players_preassigned, 0) squads += S squads_by_type[S.type] = S - load_whitelist() - - -/datum/authority/branch/role/proc/load_whitelist(filename = "config/role_whitelist.txt") - var/L[] = file2list(filename) - var/P[] - var/W[] = new //We want a temporary whitelist list, in case we need to reload. - - var/i - var/r - var/ckey - var/role - roles_whitelist = list() - for(i in L) - if(!i) continue - i = trim(i) - if(!length(i)) continue - else if (copytext(i, 1, 2) == "#") continue - - P = splittext(i, "+") - if(!P.len) continue - ckey = ckey(P[1]) //Converting their key to canonical form. ckey() does this by stripping all spaces, underscores and converting to lower case. - - role = NO_FLAGS - r = 1 - while(++r <= P.len) - switch(ckey(P[r])) - if("yautja") role |= WHITELIST_YAUTJA - if("yautjalegacy") role |= WHITELIST_YAUTJA_LEGACY - if("yautjacouncil") role |= WHITELIST_YAUTJA_COUNCIL - if("yautjacouncillegacy") role |= WHITELIST_YAUTJA_COUNCIL_LEGACY - if("yautjaleader") role |= WHITELIST_YAUTJA_LEADER - if("commander") role |= WHITELIST_COMMANDER - if("commandercouncil") role |= WHITELIST_COMMANDER_COUNCIL - if("commandercouncillegacy") role |= WHITELIST_COMMANDER_COUNCIL_LEGACY - if("commanderleader") role |= WHITELIST_COMMANDER_LEADER - if("workingjoe") role |= WHITELIST_JOE - if("synthetic") role |= (WHITELIST_SYNTHETIC|WHITELIST_JOE) - if("syntheticcouncil") role |= WHITELIST_SYNTHETIC_COUNCIL - if("syntheticcouncillegacy") role |= WHITELIST_SYNTHETIC_COUNCIL_LEGACY - if("syntheticleader") role |= WHITELIST_SYNTHETIC_LEADER - if("advisor") role |= WHITELIST_MENTOR - if("allgeneral") role |= WHITELISTS_GENERAL - if("allcouncil") role |= (WHITELISTS_COUNCIL|WHITELISTS_GENERAL) - if("alllegacycouncil") role |= (WHITELISTS_LEGACY_COUNCIL|WHITELISTS_GENERAL) - if("everything", "allleader") role |= WHITELIST_EVERYTHING - - W[ckey] = role - - roles_whitelist = W - //#undef FACTION_TO_JOIN /* @@ -415,7 +363,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou return FALSE if(!J.can_play_role(M.client)) return FALSE - if(J.flags_startup_parameters & ROLE_WHITELISTED && !(roles_whitelist[M.ckey] & J.flags_whitelist)) + if(!J.check_whitelist_status(M)) return FALSE if(J.total_positions != -1 && J.get_total_positions(latejoin) <= J.current_positions) return FALSE @@ -518,7 +466,7 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou new_job.handle_job_options(new_human.client.prefs.pref_special_job_options[new_job.title]) var/job_whitelist = new_job.title - var/whitelist_status = new_job.get_whitelist_status(roles_whitelist, new_human.client) + var/whitelist_status = new_job.get_whitelist_status(new_human.client) if(whitelist_status) job_whitelist = "[new_job.title][whitelist_status]" diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 3a4b94145ca1..09db84fec2c2 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -1,12 +1,3 @@ -#define WHITELISTFILE "data/whitelist.txt" - -GLOBAL_LIST_FILE_LOAD(whitelist, WHITELISTFILE) - -/proc/check_whitelist(mob/M /*, rank*/) - if(!CONFIG_GET(flag/usewhitelist) || !GLOB.whitelist) - return 0 - return ("[M.ckey]" in GLOB.whitelist) - /proc/can_play_special_job(client/client, job) if(client.admin_holder && (client.admin_holder.rights & R_ADMIN)) return TRUE @@ -18,35 +9,208 @@ GLOBAL_LIST_FILE_LOAD(whitelist, WHITELISTFILE) return J.can_play_role(client) return TRUE -GLOBAL_LIST_FILE_LOAD(alien_whitelist, "config/alienwhitelist.txt") - -//todo: admin aliens -/proc/is_alien_whitelisted(mob/M, species) - if(!CONFIG_GET(flag/usealienwhitelist)) //If there's not config to use the whitelist. - return 1 - if(species == "human" || species == "Human") - return 1 -// if(check_rights(R_ADMIN, 0)) //Admins are not automatically considered to be whitelisted anymore. ~N -// return 1 //This actually screwed up a bunch of procs, but I only noticed it with the wrong spawn point. - if(!CONFIG_GET(flag/usealienwhitelist) || !GLOB.alien_whitelist) - return 0 - if(M && species) - for (var/s in GLOB.alien_whitelist) - if(findtext(lowertext(s),"[lowertext(M.key)] - [species]")) - return 1 - //if(findtext(lowertext(s),"[lowertext(M.key)] - [species] Elder")) //Unnecessary. - // return 1 - if(findtext(lowertext(s),"[lowertext(M.key)] - All")) - return 1 - return 0 - /// returns a list of strings containing the whitelists held by a specific ckey /proc/get_whitelisted_roles(ckey) - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_PREDATOR) + var/datum/entity/player/player = get_player_from_key(ckey) + if(player.check_whitelist_status(WHITELIST_YAUTJA)) LAZYADD(., "predator") - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_COMMANDER) + if(player.check_whitelist_status(WHITELIST_COMMANDER)) LAZYADD(., "commander") - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_SYNTHETIC) + if(player.check_whitelist_status(WHITELIST_SYNTHETIC)) LAZYADD(., "synthetic") -#undef WHITELISTFILE +/client/load_player_data_info(datum/entity/player/player) + . = ..() + + if(isSenator(src)) + add_verb(src, /client/proc/whitelist_panel) + +/client + var/datum/whitelist_panel/wl_panel + +/client/proc/whitelist_panel() + set name = "Whitelist Panel" + set category = "Admin.Panels" + + if(wl_panel) + qdel(wl_panel) + wl_panel = new + wl_panel.tgui_interact(mob) + +#define WL_PANEL_RIGHT_CO (1<<0) +#define WL_PANEL_RIGHT_SYNTH (1<<1) +#define WL_PANEL_RIGHT_YAUTJA (1<<2) +#define WL_PANEL_RIGHT_MENTOR (1<<3) +#define WL_PANEL_RIGHT_OVERSEER (1<<4) +#define WL_PANEL_ALL_COUNCILS (WL_PANEL_RIGHT_CO|WL_PANEL_RIGHT_SYNTH|WL_PANEL_RIGHT_YAUTJA) +#define WL_PANEL_ALL_RIGHTS (WL_PANEL_RIGHT_CO|WL_PANEL_RIGHT_SYNTH|WL_PANEL_RIGHT_YAUTJA|WL_PANEL_RIGHT_MENTOR|WL_PANEL_RIGHT_OVERSEER) + +/datum/whitelist_panel + var/viewed_player = list() + var/current_menu = "Panel" + var/user_rights = 0 + var/target_rights = 0 + var/new_rights = 0 + +/datum/whitelist_panel/proc/get_user_rights(mob/user) + if(!user.client) + return + var/client/person = user.client + if(CLIENT_HAS_RIGHTS(person, R_PERMISSIONS)) + return WL_PANEL_ALL_RIGHTS + var/rights + if(person.check_whitelist_status(WHITELIST_COMMANDER_LEADER)) + rights |= WL_PANEL_RIGHT_CO + if(person.check_whitelist_status(WHITELIST_SYNTHETIC_LEADER)) + rights |= WL_PANEL_RIGHT_SYNTH + if(person.check_whitelist_status(WHITELIST_YAUTJA_LEADER)) + rights |= WL_PANEL_RIGHT_YAUTJA + if(rights == WL_PANEL_ALL_COUNCILS) + return WL_PANEL_ALL_RIGHTS + return rights + +/datum/whitelist_panel/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "WhitelistPanel", "Whitelist Panel") + ui.open() + +/datum/whitelist_panel/ui_state(mob/user) + return GLOB.always_state + +/datum/whitelist_panel/ui_close(mob/user) + . = ..() + if(user?.client.wl_panel) + qdel(user.client.wl_panel) + +/datum/whitelist_panel/vv_edit_var(var_name, var_value) + return FALSE + +/datum/whitelist_panel/ui_data(mob/user) + var/list/data = list() + + data["current_menu"] = current_menu + data["user_rights"] = user_rights + data["viewed_player"] = viewed_player + data["target_rights"] = target_rights + data["new_rights"] = new_rights + + return data + +GLOBAL_LIST_INIT(co_flags, list( + list(name = "Commander", bitflag = WHITELIST_COMMANDER, permission = WL_PANEL_RIGHT_CO), + list(name = "Council", bitflag = WHITELIST_COMMANDER_COUNCIL, permission = WL_PANEL_RIGHT_CO), + list(name = "Legacy Council", bitflag = WHITELIST_COMMANDER_COUNCIL_LEGACY, permission = WL_PANEL_RIGHT_CO), + list(name = "Senator", bitflag = WHITELIST_COMMANDER_LEADER, permission = WL_PANEL_RIGHT_OVERSEER), + list(name = "Colonel", bitflag = WHITELIST_COMMANDER_COLONEL, permission = WL_PANEL_RIGHT_OVERSEER) +)) +GLOBAL_LIST_INIT(syn_flags, list( + list(name = "Synthetic", bitflag = WHITELIST_SYNTHETIC, permission = WL_PANEL_RIGHT_SYNTH), + list(name = "Council", bitflag = WHITELIST_SYNTHETIC_COUNCIL, permission = WL_PANEL_RIGHT_SYNTH), + list(name = "Legacy Council", bitflag = WHITELIST_SYNTHETIC_COUNCIL_LEGACY, permission = WL_PANEL_RIGHT_SYNTH), + list(name = "Senator", bitflag = WHITELIST_SYNTHETIC_LEADER, permission = WL_PANEL_RIGHT_OVERSEER) +)) +GLOBAL_LIST_INIT(yaut_flags, list( + list(name = "Yautja", bitflag = WHITELIST_YAUTJA, permission = WL_PANEL_RIGHT_YAUTJA), + list(name = "Legacy Holder", bitflag = WHITELIST_YAUTJA_LEGACY, permission = WL_PANEL_RIGHT_OVERSEER), + list(name = "Council", bitflag = WHITELIST_YAUTJA_COUNCIL, permission = WL_PANEL_RIGHT_YAUTJA), + list(name = "Legacy Council", bitflag = WHITELIST_YAUTJA_COUNCIL_LEGACY, permission = WL_PANEL_RIGHT_YAUTJA), + list(name = "Senator", bitflag = WHITELIST_YAUTJA_LEADER, permission = WL_PANEL_RIGHT_OVERSEER) +)) +GLOBAL_LIST_INIT(misc_flags, list( + list(name = "Senior Enlisted Advisor", bitflag = WHITELIST_MENTOR, permission = WL_PANEL_RIGHT_MENTOR), + list(name = "Working Joe", bitflag = WHITELIST_JOE, permission = WL_PANEL_RIGHT_SYNTH), +)) + +/datum/whitelist_panel/ui_static_data(mob/user) + . = list() + .["co_flags"] = GLOB.co_flags + .["syn_flags"] = GLOB.syn_flags + .["yaut_flags"] = GLOB.yaut_flags + .["misc_flags"] = GLOB.misc_flags + + var/list/datum/view_record/players/players_view = DB_VIEW(/datum/view_record/players, DB_COMP("whitelist_status", DB_NOTEQUAL, "")) + + var/list/whitelisted_players = list() + for(var/datum/view_record/players/whitelistee in players_view) + var/list/current_player = list() + current_player["ckey"] = whitelistee.ckey + var/list/unreadable_list = splittext(whitelistee.whitelist_status, "|") + var/readable_list = unreadable_list.Join(" | ") + current_player["status"] = readable_list + whitelisted_players += list(current_player) + .["whitelisted_players"] = whitelisted_players + +/datum/whitelist_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + var/mob/user = ui.user + switch(action) + if("go_back") + go_back() + if("select_player") + select_player(user, params["player"]) + return + if("add_player") + select_player(user, TRUE) + return + if("update_number") + new_rights = text2num(params["wl_flag"]) + return + if("update_perms") + var/player_key = params["player"] + var/reason = tgui_input_text(user, "What is the reason for this change?", "Update Reason") + if(!reason) + return + var/datum/entity/player/player = get_player_from_key(player_key) + player.set_whitelist_status(new_rights) + to_chat(user, SPAN_HELPFUL("Whitelists for [player_key] updated.")) + message_admins("Whitelists for [player_key] updated by [key_name(user)]. Reason: '[reason]'.") + log_admin("WHITELISTS: Flags for [player_key] changed from [target_rights] to [new_rights]. Reason: '[reason]'.") + go_back() + update_static_data(user, ui) + return + if("refresh_data") + update_static_data(user, ui) + to_chat(user, SPAN_NOTICE("Whitelist data refreshed.")) + +/datum/whitelist_panel/proc/select_player(mob/user, player_key) + var/target_key = player_key + if(IsAdminAdvancedProcCall()) + return PROC_BLOCKED + if(!target_key) + return FALSE + + if(target_key == TRUE) + var/new_player = tgui_input_text(user, "Enter the new ckey you wish to add. Do not include spaces or special characters.", "New Whitelistee") + if(!new_player) + return FALSE + target_key = new_player + + var/datum/entity/player/player = get_player_from_key(target_key) + var/list/current_player = list() + current_player["ckey"] = target_key + current_player["status"] = player.whitelist_status + + target_rights = player.whitelist_flags + new_rights = player.whitelist_flags + viewed_player = current_player + current_menu = "Update" + user_rights = get_user_rights(user) + return + +/datum/whitelist_panel/proc/go_back() + viewed_player = list() + user_rights = 0 + current_menu = "Panel" + target_rights = 0 + new_rights = 0 + + +#undef WL_PANEL_RIGHT_CO +#undef WL_PANEL_RIGHT_SYNTH +#undef WL_PANEL_RIGHT_YAUTJA +#undef WL_PANEL_RIGHT_MENTOR +#undef WL_PANEL_RIGHT_OVERSEER +#undef WL_PANEL_ALL_RIGHTS diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index aa1cd92547ec..d6f58f371715 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 @@ -183,6 +183,17 @@ logged_orders += list(current_order) data["records_requisition"] = logged_orders + var/list/logged_techs = list() + for(var/datum/ares_record/tech/tech_unlock as anything in datacore.records_tech) + var/list/current_tech = list() + current_tech["time"] = tech_unlock.time + current_tech["details"] = tech_unlock.details + current_tech["user"] = tech_unlock.user + current_tech["tier_changer"] = tech_unlock.is_tier + current_tech["ref"] = "\ref[tech_unlock]" + logged_techs += list(current_tech) + data["records_tech"] = logged_techs + var/list/logged_convos = list() var/list/active_convo = list() var/active_ref @@ -218,17 +229,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 +250,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 +258,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 +286,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 @@ -315,10 +328,15 @@ if("page_deleted_1to1") last_menu = current_menu current_menu = "deleted_talks" + if("page_tech") + last_menu = current_menu + current_menu = "tech_log" // -- 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 @@ -341,6 +359,10 @@ new_title = "[record.title] at [record.time]" new_details = "[record.details] Launched by [record.user]." datacore.records_bombardment -= record + if(ARES_RECORD_TECH) + new_title = "[record.title] at [record.time]" + new_details = record.details + datacore.records_tech -= record new_delete.details = new_details new_delete.user = last_login @@ -366,12 +388,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 +403,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 +440,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 +468,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..5ca7a9ba171d --- /dev/null +++ b/code/game/machinery/ARES/ARES_interface_admin.dm @@ -0,0 +1,493 @@ +/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_techs = list() + for(var/datum/ares_record/tech/tech_unlock as anything in datacore.records_tech) + var/list/current_tech = list() + current_tech["time"] = tech_unlock.time + current_tech["details"] = tech_unlock.details + current_tech["user"] = tech_unlock.user + current_tech["tier_changer"] = tech_unlock.is_tier + current_tech["ref"] = "\ref[tech_unlock]" + logged_techs += list(current_tech) + data["records_tech"] = logged_techs + + 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_tech") + admin_interface.last_menu = admin_interface.current_menu + admin_interface.current_menu = "tech_log" + 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 ffcea5406856..1212d1509a01 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() @@ -58,24 +80,15 @@ GLOBAL_LIST_INIT(maintenance_categories, list( var/list/records_security = list() /// Holds all (/datum/ares_record/flight)s var/list/records_flight = list() + /// Holds all (/datum/ares_record/tech)s + var/list/records_tech = 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) @@ -166,6 +179,16 @@ GLOBAL_LIST_INIT(maintenance_categories, list( return FALSE var/datum/ares_datacore/datacore = GLOB.ares_datacore datacore.records_flight.Add(new /datum/ares_record/flight(details, user_name)) + +/proc/log_ares_tech(user_name, tier_tech = FALSE, title, details, point_cost, current_points) + if(!ares_can_log()) + return FALSE + var/new_details = "[title] - [details]" + if(point_cost) + new_details += " - Used [point_cost] INT of [current_points]." + var/datum/ares_datacore/datacore = GLOB.ares_datacore + datacore.records_tech.Add(new /datum/ares_record/tech(title, new_details, user_name, tier_tech)) + // ------ End ARES Logging Procs ------ // // ------ ARES Interface Procs ------ // @@ -179,9 +202,9 @@ GLOBAL_LIST_INIT(maintenance_categories, list( return ARES_ACCESS_CE if(JOB_SYNTH) return ARES_ACCESS_SYNTH - if(card.paygrade in GLOB.wy_paygrades) + if(card.paygrade in GLOB.wy_highcom_paygrades) return ARES_ACCESS_WY_COMMAND - if(card.paygrade in GLOB.highcom_paygrades) + if(card.paygrade in GLOB.uscm_highcom_paygrades) return ARES_ACCESS_HIGH if(card.paygrade in GLOB.co_paygrades) return ARES_ACCESS_CO @@ -196,43 +219,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..5bfe50dce068 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 @@ -58,6 +58,18 @@ src.details = details src.user = user +/datum/ares_record/tech + record_name = ARES_RECORD_TECH + /// If this tech unlock changed the tier. + var/is_tier = FALSE + +/datum/ares_record/tech/New(title, details, user, tier_tech) + time = worldtime2text() + src.title = title + src.details = details + src.user = user + is_tier = tier_tech + /datum/ares_record/deletion record_name = ARES_RECORD_DELETED 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/air_alarm.dm b/code/game/machinery/air_alarm.dm index 88b4ab899112..7eccb51c0660 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -572,14 +572,14 @@ var/pressure_dangerlevel = get_danger_level(environment_pressure, current_settings) current_settings = TLV["temperature"] - var/enviroment_temperature = location.return_temperature() - var/temperature_dangerlevel = get_danger_level(enviroment_temperature, current_settings) + var/environment_temperature = location.return_temperature() + var/temperature_dangerlevel = get_danger_level(environment_temperature, current_settings) output += {" Pressure: [environment_pressure]kPa
"} - output += "Temperature: [enviroment_temperature]K ([round(enviroment_temperature - T0C, 0.1)]C)
" + output += "Temperature: [environment_temperature]K ([round(environment_temperature - T0C, 0.1)]C)
" //'Local Status' should report the LOCAL status, damnit. output += "Local Status: " 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 fa6fec094c59..01a40b3638f6 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -409,17 +409,13 @@ 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 name = "bonesetter" path = /obj/item/tool/surgery/bonesetter -/datum/autolathe/recipe/medilathe/bonegel - name = "bone gel" - path = /obj/item/tool/surgery/bonegel - /datum/autolathe/recipe/medilathe/fixovein name = "FixOVein" path = /obj/item/tool/surgery/FixOVein diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 46050d2705b3..1f82d28dbbf8 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -84,9 +84,9 @@ if(hasvar(W,"force") && hasvar(W,"damtype")) switch(W.damtype) if("fire") - src.health -= W.force * fire_dam_coeff + health -= W.force * W.demolition_mod * fire_dam_coeff if("brute") - src.health -= W.force * brute_dam_coeff + health -= W.force * W.demolition_mod * brute_dam_coeff ..() healthcheck() else diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 7df52bd408c5..7621e82ce936 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -10,7 +10,6 @@ var/list/network = list(CAMERA_NET_MILITARY) var/c_tag = null - var/c_tag_order = 999 var/status = 1 anchored = TRUE var/panel_open = FALSE // 0 = Closed / 1 = Open @@ -38,6 +37,10 @@ /// If this camera should have innate EMP-proofing var/emp_proof = FALSE + ///Autonaming + var/autoname = FALSE + var/autonumber = 0 //camera number in area + GLOBAL_LIST_EMPTY_TYPED(all_cameras, /obj/structure/machinery/camera) /obj/structure/machinery/camera/Initialize(mapload, ...) . = ..() @@ -60,6 +63,24 @@ GLOBAL_LIST_EMPTY_TYPED(all_cameras, /obj/structure/machinery/camera) set_pixel_location() update_icon() + //This camera automatically sets it's name to whatever the area that it's in is called. + if(autoname) + autonumber = 1 + var/area/my_area = get_area(src) + if(my_area) + for(var/obj/structure/machinery/camera/autoname/current_camera in GLOB.machines) + if(current_camera == src) + continue + var/area/current_camera_area = get_area(current_camera) + if(current_camera_area.type != my_area.type) + continue + + if(!current_camera.autonumber) + continue + + autonumber = max(autonumber, current_camera.autonumber + 1) + c_tag = "[my_area.name] #[autonumber]" + /obj/structure/machinery/camera/Destroy() GLOB.all_cameras -= src . = ..() diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 1f680ad76712..a1d7f00cf94a 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -70,21 +70,7 @@ // AUTONAME /obj/structure/machinery/camera/autoname - var/number = 0 //camera number in area - -//This camera type automatically sets it's name to whatever the area that it's in is called. -/obj/structure/machinery/camera/autoname/Initialize(mapload, ...) - . = ..() - number = 1 - var/area/A = get_area(src) - if(A) - for(var/obj/structure/machinery/camera/autoname/C in GLOB.machines) - if(C == src) continue - var/area/CA = get_area(C) - if(CA.type == A.type) - if(C.number) - number = max(number, C.number+1) - c_tag = "[A.name] #[number]" + autoname = TRUE //cameras installed inside the dropships, accessible via both cockpit monitor and Almayer camera computers /obj/structure/machinery/camera/autoname/almayer/dropship_one @@ -111,7 +97,7 @@ /obj/structure/machinery/camera/autoname/almayer/containment/ares name = "ares core camera" - network = list(CAMERA_NET_ALMAYER, CAMERA_NET_ARES) + network = list(CAMERA_NET_ARES) //used by the landing camera dropship equipment. Do not place them right under where the dropship lands. //Should place them near each corner of your LZs. diff --git a/code/game/machinery/colony_floodlights.dm b/code/game/machinery/colony_floodlights.dm new file mode 100644 index 000000000000..13478381e38e --- /dev/null +++ b/code/game/machinery/colony_floodlights.dm @@ -0,0 +1,295 @@ +//Putting these here since it's power-related +/obj/structure/machinery/colony_floodlight_switch + name = "colony floodlight switch" + icon = 'icons/obj/structures/machinery/power.dmi' + icon_state = "panelnopower" + desc = "This switch controls the floodlights surrounding the archaeology complex. It only functions when there is power." + density = FALSE + anchored = TRUE + use_power = USE_POWER_IDLE + unslashable = TRUE + unacidable = TRUE + power_machine = TRUE + var/ispowered = FALSE + var/turned_on = FALSE //has to be toggled in engineering + ///All floodlights under our control + var/list/floodlist = list() + +/obj/structure/machinery/colony_floodlight_switch/Initialize(mapload, ...) + . = ..() + return INITIALIZE_HINT_LATELOAD + +/obj/structure/machinery/colony_floodlight_switch/LateInitialize() + . = ..() + for(var/obj/structure/machinery/colony_floodlight/floodlight in GLOB.machines) + floodlist += floodlight + floodlight.fswitch = src + start_processing() + +/obj/structure/machinery/colony_floodlight_switch/Destroy() + for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) + floodlight.fswitch = null + floodlist = null + return ..() + +/obj/structure/machinery/colony_floodlight_switch/update_icon() + if(!ispowered) + icon_state = "panelnopower" + else if(turned_on) + icon_state = "panelon" + else + icon_state = "paneloff" + +/obj/structure/machinery/colony_floodlight_switch/process() + var/lightpower = 0 + for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) + if(!floodlight.is_lit) + continue + lightpower += floodlight.power_tick + use_power(lightpower) + +/obj/structure/machinery/colony_floodlight_switch/power_change() + ..() + if((stat & NOPOWER)) + if(ispowered && turned_on) + toggle_lights() + ispowered = FALSE + turned_on = FALSE + update_icon() + else + ispowered = TRUE + update_icon() + +/obj/structure/machinery/colony_floodlight_switch/proc/toggle_lights() + for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) + addtimer(CALLBACK(floodlight, TYPE_PROC_REF(/obj/structure/machinery/colony_floodlight, toggle_light)), rand(0, 5 SECONDS)) + +/obj/structure/machinery/colony_floodlight_switch/attack_hand(mob/user as mob) + if(!ishuman(user)) + to_chat(user, "Nice try.") + return FALSE + if(!ispowered) + to_chat(user, "Nothing happens.") + return FALSE + playsound(src,'sound/items/Deconstruct.ogg', 30, 1) + use_power(5) + toggle_lights() + turned_on = !turned_on + update_icon() + return TRUE + + +#define FLOODLIGHT_REPAIR_UNSCREW 0 +#define FLOODLIGHT_REPAIR_CROWBAR 1 +#define FLOODLIGHT_REPAIR_WELD 2 +#define FLOODLIGHT_REPAIR_CABLE 3 +#define FLOODLIGHT_REPAIR_SCREW 4 + +/obj/structure/machinery/colony_floodlight + name = "colony floodlight" + icon = 'icons/obj/structures/machinery/big_floodlight.dmi' + icon_state = "flood_s_off" + density = TRUE + anchored = TRUE + layer = ABOVE_XENO_LAYER + unslashable = TRUE + unacidable = TRUE + use_power = USE_POWER_NONE //It's the switch that uses the actual power, not the lights + needs_power = FALSE + ///Whether it has been smashed by xenos + var/damaged = FALSE + ///Whether the floodlight is switched to on or off. Does not necessarily mean it emits light. + var/is_lit = FALSE + ///The power each floodlight takes up per process + var/power_tick = 50 + ///Reverse lookup for power grabbing in area + var/obj/structure/machinery/colony_floodlight_switch/fswitch = null + var/lum_value = 7 + var/repair_state = FLOODLIGHT_REPAIR_UNSCREW + health = 150 + +/obj/structure/machinery/colony_floodlight/Destroy() + if(fswitch) + fswitch.floodlist -= src + fswitch = null + . = ..() + +/obj/structure/machinery/colony_floodlight/update_icon() + if(damaged) + icon_state = "flood_s_dmg" + else if(is_lit) + icon_state = "flood_s_on" + else + icon_state = "flood_s_off" + +/obj/structure/machinery/colony_floodlight/attackby(obj/item/I, mob/user) + if(damaged) + if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_UNSCREW) + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts unscrewing [src]'s maintenance hatch."), \ + SPAN_NOTICE("You start unscrewing [src]'s maintenance hatch.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_UNSCREW) + return + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_CROWBAR + user.visible_message(SPAN_NOTICE("[user] unscrews [src]'s maintenance hatch."), \ + SPAN_NOTICE("You unscrew [src]'s maintenance hatch.")) + + else if(repair_state == FLOODLIGHT_REPAIR_SCREW) + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts screwing [src]'s maintenance hatch closed."), \ + SPAN_NOTICE("You start screwing [src]'s maintenance hatch closed.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_SCREW) + return + playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) + damaged = FALSE + repair_state = FLOODLIGHT_REPAIR_UNSCREW + health = initial(health) + user.visible_message(SPAN_NOTICE("[user] screws [src]'s maintenance hatch closed."), \ + SPAN_NOTICE("You screw [src]'s maintenance hatch closed.")) + if(is_lit) + set_light(lum_value) + update_icon() + return TRUE + + else if(HAS_TRAIT(I, TRAIT_TOOL_CROWBAR)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_CROWBAR) + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts prying [src]'s damaged lighting assembly out."),\ + SPAN_NOTICE("You start prying [src]'s damaged lighting assembly out.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CROWBAR) + return + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_WELD + user.visible_message(SPAN_NOTICE("[user] pries [src]'s damaged lighting assembly out."),\ + SPAN_NOTICE("You pry [src]'s damaged lighting assembly out.")) + return TRUE + + else if(iswelder(I)) + if(!HAS_TRAIT(I, TRAIT_TOOL_BLOWTORCH)) + to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) + return + var/obj/item/tool/weldingtool/welder = I + + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_WELD) + if(welder.remove_fuel(1, user)) + playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) + user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s damage."), + SPAN_NOTICE("You start welding [src]'s damage.")) + if(do_after(user, 4 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + if(QDELETED(src) || !welder.isOn() || repair_state != FLOODLIGHT_REPAIR_WELD) + return + playsound(loc, 'sound/items/Welder2.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_CABLE + user.visible_message(SPAN_NOTICE("[user] welds [src]'s damage."), + SPAN_NOTICE("You weld [src]'s damage.")) + return TRUE + else + to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) + return TRUE + + else if(iscoil(I)) + var/obj/item/stack/cable_coil/coil = I + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_CABLE) + if(coil.get_amount() < 2) + to_chat(user, SPAN_WARNING("You need two coils of wire to replace the damaged cables.")) + return + playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts replacing [src]'s damaged cables."),\ + SPAN_NOTICE("You start replacing [src]'s damaged cables.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CABLE) + return + if(coil.use(2)) + playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) + repair_state = FLOODLIGHT_REPAIR_SCREW + user.visible_message(SPAN_NOTICE("[user] replaces [src]'s damaged cables."),\ + SPAN_NOTICE("You replace [src]'s damaged cables.")) + return TRUE + + else if(istype(I, /obj/item/device/lightreplacer)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) + return FALSE + + if(repair_state == FLOODLIGHT_REPAIR_UNSCREW) + to_chat(user, SPAN_WARNING("You need to unscrew [src]'s maintenance hatch.")) + return FALSE + if(repair_state == FLOODLIGHT_REPAIR_SCREW) + to_chat(user, SPAN_WARNING("You need to screw [src]'s maintenance hatch.")) + return FALSE + + var/obj/item/device/lightreplacer/replacer = I + if(!replacer.CanUse(user)) + to_chat(user, replacer.failmsg) + return FALSE + playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) + user.visible_message(SPAN_NOTICE("[user] starts replacing [src]'s damaged lighting assembly."),\ + SPAN_NOTICE("You start replacing [src]'s damaged lighting assembly.")) + if(do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + if(QDELETED(src) || repair_state == FLOODLIGHT_REPAIR_SCREW) + return + replacer.Use(user) + repair_state = FLOODLIGHT_REPAIR_SCREW + user.visible_message(SPAN_NOTICE("[user] replaces [src]'s damaged lighting assembly."),\ + SPAN_NOTICE("You replace [src]'s damaged lighting assembly.")) + return TRUE + + return ..() + +/obj/structure/machinery/colony_floodlight/attack_hand(mob/user) + if(ishuman(user)) + if(damaged) + to_chat(user, SPAN_WARNING("[src] is damaged.")) + else if(!is_lit) + to_chat(user, SPAN_WARNING("Nothing happens. Looks like it's powered elsewhere.")) + return FALSE + return ..() + +/obj/structure/machinery/colony_floodlight/get_examine_text(mob/user) + . = ..() + if(ishuman(user)) + if(damaged) + . += SPAN_WARNING("It is damaged.") + if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + switch(repair_state) + if(FLOODLIGHT_REPAIR_UNSCREW) . += SPAN_INFO("You must first unscrew its maintenance hatch.") + if(FLOODLIGHT_REPAIR_CROWBAR) . += SPAN_INFO("You must crowbar its lighting assembly out or use a light replacer.") + if(FLOODLIGHT_REPAIR_WELD) . += SPAN_INFO("You must weld the damage to it.") + if(FLOODLIGHT_REPAIR_CABLE) . += SPAN_INFO("You must replace its damaged cables.") + if(FLOODLIGHT_REPAIR_SCREW) . += SPAN_INFO("You must screw its maintenance hatch closed.") + else if(!is_lit) + . += SPAN_INFO("It doesn't seem powered.") + +/obj/structure/machinery/colony_floodlight/proc/toggle_light() + is_lit = !is_lit + if(!damaged) + set_light(is_lit ? lum_value : 0) + update_icon() + return is_lit + +#undef FLOODLIGHT_REPAIR_UNSCREW +#undef FLOODLIGHT_REPAIR_CROWBAR +#undef FLOODLIGHT_REPAIR_WELD +#undef FLOODLIGHT_REPAIR_CABLE +#undef FLOODLIGHT_REPAIR_SCREW diff --git a/code/game/machinery/computer/almayer_control.dm b/code/game/machinery/computer/almayer_control.dm index d38ccd725785..1f3338e15bf7 100644 --- a/code/game/machinery/computer/almayer_control.dm +++ b/code/game/machinery/computer/almayer_control.dm @@ -193,6 +193,19 @@ . = TRUE if("ship_announce") + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.wear_id + if(!istype(idcard)) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(!COOLDOWN_FINISHED(src, cooldown_message)) to_chat(usr, SPAN_WARNING("Please allow at least [COOLDOWN_TIMELEFT(src, cooldown_message)/10] second\s to pass between announcements.")) return FALSE @@ -201,12 +214,8 @@ return FALSE var/signed = null - if(ishuman(usr)) - var/mob/living/carbon/human/human_user = usr - var/obj/item/card/id/id = human_user.wear_id - if(istype(id)) - var/paygrade = get_paygrades(id.paygrade, FALSE, human_user.gender) - signed = "[paygrade] [id.registered_name]" + var/paygrade = get_paygrades(idcard.paygrade, FALSE, human_user.gender) + signed = "[paygrade] [idcard.registered_name]" COOLDOWN_START(src, cooldown_message, COOLDOWN_COMM_MESSAGE) shipwide_ai_announcement(input, COMMAND_SHIP_ANNOUNCE, signature = signed) diff --git a/code/game/machinery/computer/camera_console.dm b/code/game/machinery/computer/camera_console.dm index 120a1f9ccc2e..f36719a8453e 100644 --- a/code/game/machinery/computer/camera_console.dm +++ b/code/game/machinery/computer/camera_console.dm @@ -13,57 +13,35 @@ var/list/concurrent_users = list() // Stuff needed to render the map - var/map_name - var/atom/movable/screen/map_view/cam_screen - var/atom/movable/screen/background/cam_background + var/camera_map_name var/colony_camera_mapload = TRUE var/admin_console = FALSE - /// All the plane masters that need to be applied. - var/list/cam_plane_masters - /obj/structure/machinery/computer/cameras/Initialize(mapload) . = ..() - // Map name has to start and end with an A-Z character, - // and definitely NOT with a square bracket or even a number. - // I wasted 6 hours on this. :agony: - map_name = "camera_console_[REF(src)]_map" + + RegisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED, PROC_REF(camera_mapname_update)) + + // camera setup + AddComponent(/datum/component/camera_manager) + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) if(colony_camera_mapload && mapload && is_ground_level(z)) network = list(CAMERA_NET_COLONY) - cam_plane_masters = list() - for(var/plane in subtypesof(/atom/movable/screen/plane_master) - /atom/movable/screen/plane_master/blackness) - var/atom/movable/screen/plane_master/instance = new plane() - instance.assigned_map = map_name - instance.del_on_map_removal = FALSE - if(instance.blend_mode_override) - instance.blend_mode = instance.blend_mode_override - instance.screen_loc = "[map_name]:CENTER" - cam_plane_masters += instance - - // Initialize map objects - cam_screen = new - cam_screen.icon = null - cam_screen.name = "screen" - cam_screen.assigned_map = map_name - cam_screen.del_on_map_removal = FALSE - cam_screen.screen_loc = "[map_name]:1,1" - cam_background = new - cam_background.assigned_map = map_name - cam_background.del_on_map_removal = FALSE /obj/structure/machinery/computer/cameras/Destroy() SStgui.close_uis(src) QDEL_NULL(current) - QDEL_NULL(cam_screen) - QDEL_NULL(cam_background) - QDEL_NULL_LIST(cam_plane_masters) + UnregisterSignal(src, COMSIG_CAMERA_MAPNAME_ASSIGNED) last_camera_turf = null concurrent_users = null return ..() +/obj/structure/machinery/computer/cameras/proc/camera_mapname_update(source, value) + camera_map_name = value + /obj/structure/machinery/computer/cameras/attack_remote(mob/user as mob) return attack_hand(user) @@ -90,8 +68,7 @@ // Update UI ui = SStgui.try_update_ui(user, src, ui) - // Update the camera, showing static if necessary and updating data if the location has moved. - update_active_camera_screen() + SEND_SIGNAL(src, COMSIG_CAMERA_REFRESH) if(!ui) var/user_ref = WEAKREF(user) @@ -103,11 +80,9 @@ // Turn on the console if(length(concurrent_users) == 1 && is_living) update_use_power(USE_POWER_ACTIVE) - // Register map objects - user.client.register_map_obj(cam_screen) - user.client.register_map_obj(cam_background) - for(var/plane in cam_plane_masters) - user.client.register_map_obj(plane) + + SEND_SIGNAL(src, COMSIG_CAMERA_REGISTER_UI, user) + // Open UI ui = new(user, src, "CameraConsole", name) ui.open() @@ -125,7 +100,7 @@ /obj/structure/machinery/computer/cameras/ui_static_data() var/list/data = list() - data["mapRef"] = map_name + data["mapRef"] = camera_map_name var/list/cameras = get_available_cameras() data["cameras"] = list() for(var/i in cameras) @@ -159,47 +134,10 @@ if(!selected_camera) return TRUE - update_active_camera_screen() + SEND_SIGNAL(src, COMSIG_CAMERA_SET_TARGET, selected_camera, selected_camera.view_range, selected_camera.view_range) return TRUE -/obj/structure/machinery/computer/cameras/proc/update_active_camera_screen() - // Show static if can't use the camera - if(!current?.can_use()) - show_camera_static() - return - - // Is this camera located in or attached to a living thing, Vehicle or helmet? If so, assume the camera's loc is the living (or non) thing. - var/cam_location = current - if(isliving(current.loc) || isVehicle(current.loc)) - cam_location = current.loc - else if(istype(current.loc, /obj/item/clothing/head/helmet/marine)) - var/obj/item/clothing/head/helmet/marine/helmet = current.loc - cam_location = helmet.loc - - // If we're not forcing an update for some reason and the cameras are in the same location, - // we don't need to update anything. - // Most security cameras will end here as they're not moving. - var/newturf = get_turf(cam_location) - if(last_camera_turf == newturf) - return - - // Cameras that get here are moving, and are likely attached to some moving atom such as cyborgs. - last_camera_turf = get_turf(cam_location) - - var/list/visible_things = current.isXRay() ? range(current.view_range, cam_location) : view(current.view_range, cam_location) - - var/list/visible_turfs = list() - for(var/turf/visible_turf in visible_things) - visible_turfs += visible_turf - - var/list/bbox = get_bbox_of_atoms(visible_turfs) - var/size_x = bbox[3] - bbox[1] + 1 - var/size_y = bbox[4] - bbox[2] + 1 - - cam_screen.vis_contents = visible_turfs - cam_background.icon_state = "clear" - cam_background.fill_rect(1, 1, size_x, size_y) /obj/structure/machinery/computer/cameras/ui_close(mob/user) var/user_ref = WEAKREF(user) @@ -207,21 +145,16 @@ // Living creature or not, we remove you anyway. concurrent_users -= user_ref // Unregister map objects - user.client.clear_map(map_name) + SEND_SIGNAL(src, COMSIG_CAMERA_UNREGISTER_UI, user) // Turn off the console if(length(concurrent_users) == 0 && is_living) current = null + SEND_SIGNAL(src, COMSIG_CAMERA_CLEAR) last_camera_turf = null if(use_power) update_use_power(USE_POWER_IDLE) user.unset_interaction() -/obj/structure/machinery/computer/cameras/proc/show_camera_static() - cam_screen.vis_contents.Cut() - last_camera_turf = null - cam_background.icon_state = "scanline2" - cam_background.fill_rect(1, 1, DEFAULT_MAP_SIZE, DEFAULT_MAP_SIZE) - // Returns the list of cameras accessible from this computer /obj/structure/machinery/computer/cameras/proc/get_available_cameras() var/list/D = list() diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 77c9bbacc293..beed3610b53f 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -113,6 +113,19 @@ if("announce") if(authenticated == 2) + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.wear_id + if(!istype(idcard)) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(usr.client.prefs.muted & MUTE_IC) to_chat(usr, SPAN_DANGER("You cannot send Announcements (muted).")) return diff --git a/code/game/machinery/computer/groundside_operations.dm b/code/game/machinery/computer/groundside_operations.dm index 0fd843008e24..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) @@ -210,6 +212,19 @@ return if("announce") + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.wear_id + if(!istype(idcard)) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + if(usr.client.prefs.muted & MUTE_IC) to_chat(usr, SPAN_DANGER("You cannot send Announcements (muted).")) return @@ -259,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()) @@ -295,6 +318,19 @@ usr.RegisterSignal(cam, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/mob, reset_observer_view_on_deletion)) if("activate_echo") + var/mob/living/carbon/human/human_user = usr + var/obj/item/card/id/idcard = human_user.get_active_hand() + var/bio_fail = FALSE + if(!istype(idcard)) + idcard = human_user.wear_id + if(!istype(idcard)) + bio_fail = TRUE + else if(!idcard.check_biometrics(human_user)) + bio_fail = TRUE + if(bio_fail) + to_chat(human_user, SPAN_WARNING("Biometrics failure! You require an authenticated ID card to perform this action!")) + return FALSE + var/reason = strip_html(input(usr, "What is the purpose of Echo Squad?", "Activation Reason")) if(!reason) return @@ -353,3 +389,5 @@ lz_selection = FALSE has_squad_overwatch = FALSE minimap_type = MINIMAP_FLAG_PMC + +#undef COMMAND_SQUAD diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 319a4c04e5d1..4138d89908d4 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -436,7 +436,7 @@ What a mess.*/ temp += "" if("rank") //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N - if (istype(active1, /datum/data/record) && GLOB.highcom_paygrades.Find(rank)) + if (istype(active1, /datum/data/record) && GLOB.uscm_highcom_paygrades.Find(rank)) temp = "
Occupation:
" temp += "
    " for(var/rank in GLOB.joblist) @@ -529,7 +529,7 @@ What a mess.*/ if(4) R.fields["criminal"] = pick("None", "*Arrest*", "Incarcerated", "Released", "Suspect", "NJP") if(5) - R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + R.fields["p_stat"] = pick("*Unconscious*", "Active", "Physically Unfit") if(6) R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") continue diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 2cbc4e82d3e9..cc4d93f5a24c 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -301,7 +301,7 @@ What a mess.*/ active1.fields["age"] = t1 if("rank") //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N - if(istype(active1, /datum/data/record) && GLOB.highcom_paygrades.Find(rank)) + if(istype(active1, /datum/data/record) && GLOB.uscm_highcom_paygrades.Find(rank)) temp = "
    Occupation:
    " temp += "
      " for(var/rank in GLOB.joblist) @@ -357,7 +357,7 @@ What a mess.*/ if(4) R.fields["criminal"] = pick("None", "*Arrest*", "Incarcerated", "Released") if(5) - R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit") + R.fields["p_stat"] = pick("*Unconscious*", "Active", "Physically Unfit") if(6) R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable") continue diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 687882d9d7ae..7907c9f28985 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -51,11 +51,11 @@ else switch(W.damtype) if("fire") - src.health -= W.force * 0.75 + health -= W.force * W.demolition_mod * 0.75 if("brute") - src.health -= W.force * 0.5 - if (src.health <= 0) - src.explode() + health -= W.force * W.demolition_mod * 0.5 + if (health <= 0) + explode() ..() /obj/structure/machinery/deployable/barrier/ex_act(severity) 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/brig_system.dm b/code/game/machinery/doors/brig_system.dm index e7437aa9ca2b..74792a610b72 100644 --- a/code/game/machinery/doors/brig_system.dm +++ b/code/game/machinery/doors/brig_system.dm @@ -279,7 +279,7 @@ var/obj/item/card/id/id_card = human.get_idcard() if (id_card) - if ((id_card.paygrade in GLOB.co_paygrades) || (id_card.paygrade in GLOB.highcom_paygrades) || (id_card.paygrade == "PvI")) + if ((id_card.paygrade in GLOB.co_paygrades) || (id_card.paygrade in GLOB.uscm_highcom_paygrades)) return TRUE return FALSE 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/almayer.dm b/code/game/machinery/doors/poddoor/almayer.dm new file mode 100644 index 000000000000..2b296412df7d --- /dev/null +++ b/code/game/machinery/doors/poddoor/almayer.dm @@ -0,0 +1,65 @@ +/obj/structure/machinery/door/poddoor/almayer + icon = 'icons/obj/structures/doors/blastdoors_shutters.dmi' + openspeed = 4 //shorter open animation. + var/vehicle_resistant = FALSE + tiles_with = list( + /obj/structure/window/framed/almayer, + /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/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 + unacidable = TRUE + +/obj/structure/machinery/door/poddoor/almayer/locked/attackby(obj/item/C as obj, mob/user as mob) + if(HAS_TRAIT(C, TRAIT_TOOL_CROWBAR)) + return + ..() + +/obj/structure/machinery/door/poddoor/almayer/closed + density = TRUE + opacity = TRUE + +/obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor + density = TRUE + opacity = TRUE + vehicle_resistant = TRUE diff --git a/code/game/machinery/doors/poddoor/poddoor.dm b/code/game/machinery/doors/poddoor/poddoor.dm new file mode 100644 index 000000000000..84bc8d91cd69 --- /dev/null +++ b/code/game/machinery/doors/poddoor/poddoor.dm @@ -0,0 +1,117 @@ +/obj/structure/machinery/door/poddoor + name = "\improper Podlock" + desc = "That looks like it doesn't open easily." + icon = 'icons/obj/structures/doors/rapid_pdoor.dmi' + icon_state = "pdoor1" + var/base_icon_state = "pdoor" + id = 1 + dir = NORTH + unslashable = TRUE + health = 0 + layer = PODDOOR_CLOSED_LAYER + open_layer = PODDOOR_OPEN_LAYER + closed_layer = PODDOOR_CLOSED_LAYER + +/obj/structure/machinery/door/poddoor/Initialize() + . = ..() + if(density) + set_opacity(1) + else + set_opacity(0) + update_icon() + +/obj/structure/machinery/door/poddoor/update_icon() + if(density) + icon_state = "[base_icon_state]1" + else + icon_state = "[base_icon_state]0" + +/obj/structure/machinery/door/poddoor/Collided(atom/movable/AM) + if(!density) + return ..() + else + return 0 + +/obj/structure/machinery/door/poddoor/attackby(obj/item/W, mob/user) + add_fingerprint(user) + if(!W.pry_capable) + return + if(density && (stat & NOPOWER) && !operating && !unacidable) + spawn(0) + operating = 1 + flick("[base_icon_state]c0", src) + icon_state = "[base_icon_state]0" + set_opacity(0) + sleep(15) + density = FALSE + operating = 0 + +/obj/structure/machinery/door/poddoor/attack_alien(mob/living/carbon/xenomorph/X) + if((stat & NOPOWER) && density && !operating && !unacidable) + INVOKE_ASYNC(src, PROC_REF(pry_open), X) + return XENO_ATTACK_ACTION + +/obj/structure/machinery/door/poddoor/proc/pry_open(mob/living/carbon/xenomorph/X, time = 4 SECONDS) + X.visible_message(SPAN_DANGER("[X] begins prying [src] open."),\ + SPAN_XENONOTICE("You start prying [src] open."), max_distance = 3) + + playsound(loc, 'sound/effects/metal_creaking.ogg', 25, TRUE) + + if(!do_after(X, time, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src, INTERRUPT_ALL)) + to_chat(X, "You stop prying [src] open.") + return + + X.visible_message(SPAN_DANGER("[X] pries open [src]."), \ + SPAN_XENONOTICE("You pry open [src]."), max_distance = 3) + + open() + return TRUE + + +/obj/structure/machinery/door/poddoor/try_to_activate_door(mob/user) + return + +/obj/structure/machinery/door/poddoor/open() + if(operating) //doors can still open when emag-disabled + return + + if(!opacity) + return TRUE + + operating = TRUE + + playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) + flick("[base_icon_state]c0", src) + icon_state = "[base_icon_state]0" + set_opacity(0) + + addtimer(CALLBACK(src, PROC_REF(finish_open)), openspeed) + return TRUE + +/obj/structure/machinery/door/poddoor/close() + if(operating) + return + if(opacity == initial(opacity)) + return + + operating = TRUE + playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) + + layer = closed_layer + flick("[base_icon_state]c1", src) + icon_state = "[base_icon_state]1" + density = TRUE + set_opacity(initial(opacity)) + + addtimer(CALLBACK(src, PROC_REF(finish_close)), openspeed) + return + +/obj/structure/machinery/door/poddoor/finish_close() + operating = FALSE + +/obj/structure/machinery/door/poddoor/filler_object + name = "" + icon = null + icon_state = "" + unslashable = TRUE + unacidable = TRUE diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/poddoor/shutters/shutters.dm similarity index 100% rename from code/game/machinery/doors/shutters.dm rename to code/game/machinery/doors/poddoor/shutters/shutters.dm diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor/two_tile.dm similarity index 50% rename from code/game/machinery/doors/poddoor.dm rename to code/game/machinery/doors/poddoor/two_tile.dm index 0a3b873ce385..f04435bbe2ae 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor/two_tile.dm @@ -1,114 +1,25 @@ +/obj/structure/machinery/door/poddoor/two_tile + dir = EAST + icon = 'icons/obj/structures/doors/1x2blast_hor.dmi' + var/obj/structure/machinery/door/poddoor/filler_object/f1 + var/obj/structure/machinery/door/poddoor/filler_object/f2 -/obj/structure/machinery/door/poddoor - name = "\improper Podlock" - desc = "That looks like it doesn't open easily." - icon = 'icons/obj/structures/doors/rapid_pdoor.dmi' - icon_state = "pdoor1" - var/base_icon_state = "pdoor" - id = 1 - dir = NORTH - unslashable = TRUE - health = 0 - layer = PODDOOR_CLOSED_LAYER - open_layer = PODDOOR_OPEN_LAYER - closed_layer = PODDOOR_CLOSED_LAYER +/obj/structure/machinery/door/poddoor/two_tile/opened + density = FALSE -/obj/structure/machinery/door/poddoor/Initialize() +/obj/structure/machinery/door/poddoor/two_tile/Initialize() . = ..() - if(density) - set_opacity(1) - else - set_opacity(0) - update_icon() - -/obj/structure/machinery/door/poddoor/update_icon() - if(density) - icon_state = "[base_icon_state]1" - else - icon_state = "[base_icon_state]0" - -/obj/structure/machinery/door/poddoor/Collided(atom/movable/AM) - if(!density) - return ..() - else - return 0 - -/obj/structure/machinery/door/poddoor/attackby(obj/item/W, mob/user) - add_fingerprint(user) - if(!W.pry_capable) - return - if(density && (stat & NOPOWER) && !operating && !unacidable) - spawn(0) - operating = 1 - flick("[base_icon_state]c0", src) - icon_state = "[base_icon_state]0" - set_opacity(0) - sleep(15) - density = FALSE - operating = 0 - -/obj/structure/machinery/door/poddoor/attack_alien(mob/living/carbon/xenomorph/X) - if((stat & NOPOWER) && density && !operating && !unacidable) - INVOKE_ASYNC(src, PROC_REF(pry_open), X) - return XENO_ATTACK_ACTION - -/obj/structure/machinery/door/poddoor/proc/pry_open(mob/living/carbon/xenomorph/X, time = 4 SECONDS) - X.visible_message(SPAN_DANGER("[X] begins prying [src] open."),\ - SPAN_XENONOTICE("You start prying [src] open."), max_distance = 3) - - playsound(loc, 'sound/effects/metal_creaking.ogg', 25, TRUE) - - if(!do_after(X, time, INTERRUPT_ALL, BUSY_ICON_HOSTILE, src, INTERRUPT_ALL)) - to_chat(X, "You stop prying [src] open.") - return - - X.visible_message(SPAN_DANGER("[X] pries open [src]."), \ - SPAN_XENONOTICE("You pry open [src]."), max_distance = 3) - - open() - return TRUE - - -/obj/structure/machinery/door/poddoor/try_to_activate_door(mob/user) - return - -/obj/structure/machinery/door/poddoor/open() - if(operating) //doors can still open when emag-disabled - return - - if(!opacity) - return TRUE - - operating = TRUE - - playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) - flick("[base_icon_state]c0", src) - icon_state = "[base_icon_state]0" - set_opacity(0) - - addtimer(CALLBACK(src, PROC_REF(finish_open)), openspeed) - return TRUE - -/obj/structure/machinery/door/poddoor/close() - if(operating) - return - if(opacity == initial(opacity)) - return - - operating = TRUE - playsound(loc, 'sound/machines/blastdoor.ogg', 20, 0) - - layer = closed_layer - flick("[base_icon_state]c1", src) - icon_state = "[base_icon_state]1" - density = TRUE - set_opacity(initial(opacity)) - - addtimer(CALLBACK(src, PROC_REF(finish_close)), openspeed) - return + f1 = new/obj/structure/machinery/door/poddoor/filler_object (loc) + f2 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(src,dir)) + f1.density = density + f2.density = density + f1.set_opacity(opacity) + f2.set_opacity(opacity) -/obj/structure/machinery/door/poddoor/finish_close() - operating = FALSE +/obj/structure/machinery/door/poddoor/two_tile/Destroy() + QDEL_NULL(f1) + QDEL_NULL(f2) + return ..() /obj/structure/machinery/door/poddoor/two_tile/open() if(operating) //doors can still open when emag-disabled @@ -179,29 +90,6 @@ f4.set_opacity(initial(opacity)) ..() -/obj/structure/machinery/door/poddoor/two_tile - dir = EAST - icon = 'icons/obj/structures/doors/1x2blast_hor.dmi' - var/obj/structure/machinery/door/poddoor/filler_object/f1 - var/obj/structure/machinery/door/poddoor/filler_object/f2 - -/obj/structure/machinery/door/poddoor/two_tile/opened - density = FALSE - -/obj/structure/machinery/door/poddoor/two_tile/Initialize() - . = ..() - f1 = new/obj/structure/machinery/door/poddoor/filler_object (loc) - f2 = new/obj/structure/machinery/door/poddoor/filler_object (get_step(src,dir)) - f1.density = density - f2.density = density - f1.set_opacity(opacity) - f2.set_opacity(opacity) - -/obj/structure/machinery/door/poddoor/two_tile/Destroy() - QDEL_NULL(f1) - QDEL_NULL(f2) - return ..() - /obj/structure/machinery/door/poddoor/two_tile/vertical dir = NORTH icon = 'icons/obj/structures/doors/1x2blast_vert.dmi' @@ -238,13 +126,6 @@ /obj/structure/machinery/door/poddoor/two_tile/four_tile/vertical/opened density = FALSE -/obj/structure/machinery/door/poddoor/filler_object - name = "" - icon = null - icon_state = "" - unslashable = TRUE - unacidable = TRUE - /obj/structure/machinery/door/poddoor/two_tile/four_tile/secure icon = 'icons/obj/structures/doors/1x4blast_hor_secure.dmi' openspeed = 17 @@ -273,47 +154,3 @@ icon = 'icons/obj/structures/doors/1x2blast_vert.dmi' openspeed = 17 unacidable = TRUE - -/obj/structure/machinery/door/poddoor/almayer - icon = 'icons/obj/structures/doors/blastdoors_shutters.dmi' - openspeed = 4 //shorter open animation. - var/vehicle_resistant = FALSE - tiles_with = list( - /obj/structure/window/framed/almayer, - /obj/structure/machinery/door/airlock, - ) - -/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/locked - unslashable = TRUE - unacidable = TRUE - -/obj/structure/machinery/door/poddoor/almayer/locked/attackby(obj/item/C as obj, mob/user as mob) - if(HAS_TRAIT(C, TRAIT_TOOL_CROWBAR)) - return - ..() - -/obj/structure/machinery/door/poddoor/almayer/closed - density = TRUE - opacity = TRUE - -/obj/structure/machinery/door/poddoor/almayer/planet_side_blastdoor - density = TRUE - opacity = TRUE - vehicle_resistant = TRUE diff --git a/code/game/machinery/fax_machine.dm b/code/game/machinery/fax_machine.dm index ce374b7bfb2a..b3c981a0cf71 100644 --- a/code/game/machinery/fax_machine.dm +++ b/code/game/machinery/fax_machine.dm @@ -6,7 +6,10 @@ GLOBAL_LIST_EMPTY(alldepartments) #define DEPARTMENT_CMB "CMB Incident Command Center, Local Operations" #define DEPARTMENT_PROVOST "USCM Provost Office" #define DEPARTMENT_PRESS "Various Press Organizations" -#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS) +#define DEPARTMENT_TWE "Three World Empire" +#define DEPARTMENT_UPP "Union of Progress Peoples" +#define DEPARTMENT_CLF "Colonial Liberation Front" +#define HIGHCOM_DEPARTMENTS list(DEPARTMENT_WY, DEPARTMENT_HC, DEPARTMENT_CMB, DEPARTMENT_PROVOST, DEPARTMENT_PRESS, DEPARTMENT_TWE, DEPARTMENT_UPP, DEPARTMENT_CLF) /obj/structure/machinery/faxmachine // why not fax_machine? name = "\improper General Purpose Fax Machine" @@ -84,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 @@ -138,6 +141,13 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.alldepartments += DEPARTMENT_CMB if(!(DEPARTMENT_PRESS in GLOB.alldepartments)) GLOB.alldepartments += DEPARTMENT_PRESS + if(!(DEPARTMENT_TWE in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_TWE + if(!(DEPARTMENT_UPP in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_UPP + if(!(DEPARTMENT_CLF in GLOB.alldepartments)) + GLOB.alldepartments += DEPARTMENT_CLF + // TGUI SHIT \\ /obj/structure/machinery/faxmachine/tgui_interact(mob/user, datum/tgui/ui) @@ -235,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") @@ -277,9 +287,12 @@ GLOBAL_LIST_EMPTY(alldepartments) . = ..() . += "" . += "" - . += "" + . += "" . += "" . += "" + . += "" + . += "" + . += "" // converting whatever type the fax is into a single paper with all the information on it. /obj/structure/machinery/faxmachine/proc/copy_fax_paper(mob/living/user) @@ -339,13 +352,22 @@ GLOBAL_LIST_EMPTY(alldepartments) GLOB.CMBFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " if(DEPARTMENT_WY) - GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") - msg_admin += "(RPLY): " + GLOB.WYFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " if(DEPARTMENT_PRESS) GLOB.PressFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " + if(DEPARTMENT_TWE) + GLOB.TWEFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_UPP) + GLOB.UPPFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " + if(DEPARTMENT_CLF) + GLOB.CLFFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + msg_admin += "(RPLY): " else - GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") + GLOB.GeneralFaxes.Add("\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\] REPLY") msg_admin += "(RPLY): " msg_admin += SPAN_STAFF_IC("Receiving fax via secure connection ... view message") @@ -386,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]" @@ -416,6 +438,30 @@ GLOBAL_LIST_EMPTY(alldepartments) P.stamped += /obj/item/tool/stamp P.overlays += stampoverlay P.stamps += "
      This paper has been stamped and encrypted by the Weyland-Yutani Quantum Relay (tm)." + if("TWE Royal Marines Commando Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
      This paper has been stamped by the TWE Royal Marines Commando Quantum Relay." + if("UPP High Kommand Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
      This paper has been stamped by the UPP High Kommand Quantum Relay." + if("CLF Gureilla Command Quantum Relay") + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
      This paper has been stamped and encrypted by the CLF Gureilla Command Quantum Relay." playsound(F.loc, "sound/items/polaroid1.ogg", 15, 1) qdel(faxcontents) @@ -469,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/groundmap_geothermal.dm b/code/game/machinery/groundmap_geothermal.dm deleted file mode 100644 index 087facdbf5ee..000000000000 --- a/code/game/machinery/groundmap_geothermal.dm +++ /dev/null @@ -1,468 +0,0 @@ -/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" - icon = 'icons/obj/structures/machinery/power.dmi' - icon_state = "panelnopower" - desc = "This switch controls the floodlights surrounding the archaeology complex. It only functions when there is power." - density = FALSE - anchored = TRUE - var/ispowered = FALSE - var/turned_on = 0 //has to be toggled in engineering - use_power = USE_POWER_IDLE - unslashable = TRUE - unacidable = TRUE - var/list/floodlist = list() // This will save our list of floodlights on the map - power_machine = TRUE - -/obj/structure/machinery/colony_floodlight_switch/Initialize(mapload, ...) - . = ..() - return INITIALIZE_HINT_LATELOAD - -/obj/structure/machinery/colony_floodlight_switch/LateInitialize() - . = ..() - for(var/obj/structure/machinery/colony_floodlight/F in GLOB.machines) - floodlist += F - F.fswitch = src - start_processing() - -/obj/structure/machinery/colony_floodlight_switch/Destroy() - for(var/obj/structure/machinery/colony_floodlight/floodlight as anything in floodlist) - floodlight.fswitch = null - floodlist = null - return ..() - - -/obj/structure/machinery/colony_floodlight_switch/update_icon() - if(!ispowered) - icon_state = "panelnopower" - else if(turned_on) - icon_state = "panelon" - else - icon_state = "paneloff" - -/obj/structure/machinery/colony_floodlight_switch/process() - var/lightpower = 0 - for(var/obj/structure/machinery/colony_floodlight/C in floodlist) - if(!C.is_lit) - continue - lightpower += C.power_tick - use_power(lightpower) - -/obj/structure/machinery/colony_floodlight_switch/power_change() - ..() - if((stat & NOPOWER)) - if(ispowered && turned_on) - toggle_lights() - ispowered = FALSE - turned_on = 0 - update_icon() - else - ispowered = TRUE - update_icon() - -/obj/structure/machinery/colony_floodlight_switch/proc/toggle_lights() - for(var/obj/structure/machinery/colony_floodlight/F in floodlist) - spawn(rand(0,50)) - F.is_lit = !F.is_lit - if(!F.damaged) - if(F.is_lit) //Shut it down - F.set_light(F.lum_value) - else - F.set_light(0) - F.update_icon() - return 0 - -/obj/structure/machinery/colony_floodlight_switch/attack_hand(mob/user as mob) - if(!ishuman(user)) - to_chat(user, "Nice try.") - return 0 - if(!ispowered) - to_chat(user, "Nothing happens.") - return 0 - playsound(src,'sound/items/Deconstruct.ogg', 30, 1) - use_power(5) - toggle_lights() - turned_on = !(src.turned_on) - update_icon() - return 1 - - -#define FLOODLIGHT_REPAIR_UNSCREW 0 -#define FLOODLIGHT_REPAIR_CROWBAR 1 -#define FLOODLIGHT_REPAIR_WELD 2 -#define FLOODLIGHT_REPAIR_CABLE 3 -#define FLOODLIGHT_REPAIR_SCREW 4 - -/obj/structure/machinery/colony_floodlight - name = "Colony Floodlight" - icon = 'icons/obj/structures/machinery/big_floodlight.dmi' - icon_state = "flood_s_off" - density = TRUE - anchored = TRUE - layer = ABOVE_XENO_LAYER - var/damaged = 0 //Can be smashed by xenos - var/is_lit = 0 //whether the floodlight is switched to on or off. Does not necessarily mean it emits light. - unslashable = TRUE - unacidable = TRUE - var/power_tick = 50 // power each floodlight takes up per process - use_power = USE_POWER_NONE //It's the switch that uses the actual power, not the lights - var/obj/structure/machinery/colony_floodlight_switch/fswitch = null //Reverse lookup for power grabbing in area - var/lum_value = 7 - var/repair_state = 0 - health = 150 - -/obj/structure/machinery/colony_floodlight/Destroy() - if(fswitch) - fswitch.floodlist -= src - fswitch = null - . = ..() - -/obj/structure/machinery/colony_floodlight/update_icon() - if(damaged) - icon_state = "flood_s_dmg" - else if(is_lit) - icon_state = "flood_s_on" - else - icon_state = "flood_s_off" - -/obj/structure/machinery/colony_floodlight/attackby(obj/item/I, mob/user) - if(damaged) - if(HAS_TRAIT(I, TRAIT_TOOL_SCREWDRIVER)) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_UNSCREW) - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts unscrewing [src]'s maintenance hatch."), \ - SPAN_NOTICE("You start unscrewing [src]'s maintenance hatch.")) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_UNSCREW) - return - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_CROWBAR - user.visible_message(SPAN_NOTICE("[user] unscrews [src]'s maintenance hatch."), \ - SPAN_NOTICE("You unscrew [src]'s maintenance hatch.")) - - else if(repair_state == FLOODLIGHT_REPAIR_SCREW) - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts screwing [src]'s maintenance hatch closed."), \ - SPAN_NOTICE("You start screwing [src]'s maintenance hatch closed.")) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_SCREW) - return - playsound(loc, 'sound/items/Screwdriver.ogg', 25, 1) - damaged = 0 - repair_state = FLOODLIGHT_REPAIR_UNSCREW - health = initial(health) - user.visible_message(SPAN_NOTICE("[user] screws [src]'s maintenance hatch closed."), \ - SPAN_NOTICE("You screw [src]'s maintenance hatch closed.")) - if(is_lit) - set_light(lum_value) - update_icon() - return TRUE - - else if(HAS_TRAIT(I, TRAIT_TOOL_CROWBAR)) - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_CROWBAR) - playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts prying [src]'s maintenance hatch open."),\ - SPAN_NOTICE("You start prying [src]'s maintenance hatch open.")) - if(do_after(user, 20, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CROWBAR) - return - playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_WELD - user.visible_message(SPAN_NOTICE("[user] pries [src]'s maintenance hatch open."),\ - SPAN_NOTICE("You pry [src]'s maintenance hatch open.")) - return TRUE - - else if(iswelder(I)) - if(!HAS_TRAIT(I, TRAIT_TOOL_BLOWTORCH)) - to_chat(user, SPAN_WARNING("You need a stronger blowtorch!")) - return - var/obj/item/tool/weldingtool/WT = I - - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_WELD) - if(WT.remove_fuel(1, user)) - playsound(loc, 'sound/items/weldingtool_weld.ogg', 25) - user.visible_message(SPAN_NOTICE("[user] starts welding [src]'s damage."), - SPAN_NOTICE("You start welding [src]'s damage.")) - if(do_after(user, 40, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - if(QDELETED(src) || !WT.isOn() || repair_state != FLOODLIGHT_REPAIR_WELD) - return - playsound(loc, 'sound/items/Welder2.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_CABLE - user.visible_message(SPAN_NOTICE("[user] welds [src]'s damage."), - SPAN_NOTICE("You weld [src]'s damage.")) - return 1 - else - to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) - return TRUE - - else if(iscoil(I)) - var/obj/item/stack/cable_coil/C = I - if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - to_chat(user, SPAN_WARNING("You have no clue how to repair [src].")) - return 0 - - if(repair_state == FLOODLIGHT_REPAIR_CABLE) - if(C.get_amount() < 2) - to_chat(user, SPAN_WARNING("You need two coils of wire to replace the damaged cables.")) - return - playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] starts replacing [src]'s damaged cables."),\ - SPAN_NOTICE("You start replacing [src]'s damaged cables.")) - if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - if(QDELETED(src) || repair_state != FLOODLIGHT_REPAIR_CABLE) - return - if(C.use(2)) - playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - repair_state = FLOODLIGHT_REPAIR_SCREW - user.visible_message(SPAN_NOTICE("[user] starts replaces [src]'s damaged cables."),\ - SPAN_NOTICE("You replace [src]'s damaged cables.")) - return TRUE - - - ..() - return 0 - -/obj/structure/machinery/colony_floodlight/attack_hand(mob/user) - if(ishuman(user)) - if(damaged) - to_chat(user, SPAN_WARNING("[src] is damaged.")) - else if(!is_lit) - to_chat(user, SPAN_WARNING("Nothing happens. Looks like it's powered elsewhere.")) - return 0 - ..() - -/obj/structure/machinery/colony_floodlight/get_examine_text(mob/user) - . = ..() - if(ishuman(user)) - if(damaged) - . += SPAN_WARNING("It is damaged.") - if(skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) - switch(repair_state) - if(FLOODLIGHT_REPAIR_UNSCREW) . += SPAN_INFO("You must first unscrew its maintenance hatch.") - if(FLOODLIGHT_REPAIR_CROWBAR) . += SPAN_INFO("You must crowbar its maintenance hatch open.") - if(FLOODLIGHT_REPAIR_WELD) . += SPAN_INFO("You must weld the damage to it.") - if(FLOODLIGHT_REPAIR_CABLE) . += SPAN_INFO("You must replace its damaged cables.") - if(FLOODLIGHT_REPAIR_SCREW) . += SPAN_INFO("You must screw its maintenance hatch closed.") - else if(!is_lit) - . += SPAN_INFO("It doesn't seem powered.") - -#undef FLOODLIGHT_REPAIR_UNSCREW -#undef FLOODLIGHT_REPAIR_CROWBAR -#undef FLOODLIGHT_REPAIR_WELD -#undef FLOODLIGHT_REPAIR_CABLE -#undef FLOODLIGHT_REPAIR_SCREW 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/bone_gel_refill.dm b/code/game/machinery/medical_pod/bone_gel_refill.dm new file mode 100644 index 000000000000..caf25ac438ec --- /dev/null +++ b/code/game/machinery/medical_pod/bone_gel_refill.dm @@ -0,0 +1,12 @@ +/obj/structure/machinery/gel_refiller + name = "osteomimetic lattice fabricator" + desc = "Often called the bone gel refiller by those unable to pronounce its full name, this machine synthesizes and stores bone gel for later use. A slot in the front allows you to insert a bone gel bottle to refill it." + desc_lore = "In an attempt to prevent counterfeit bottles of bone gel not created by Weyland-Yutani, also known as a regular bottle, from being refilled, there is a chip reader in the fabricator and a chip in each bottle to make sure it is genuine. However, due to a combination of quality issues and being unmaintainable from proprietary parts, the machine often has problems. One such problem is in the chip reader, resulting in the fabricator being unable to detect a bottle directly on it, and such fails to activate, resulting in a person having to stand there and manually hold a bottle at the correct height to fill it." + icon_state = "bone_gel_vendor" + density = TRUE + +/obj/structure/machinery/gel_refiller/attackby(obj/item/attacking_item, mob/user) + if(!istype(attacking_item, /obj/item/tool/surgery/bonegel)) + return ..() + var/obj/item/tool/surgery/bonegel/gel = attacking_item + gel.refill_gel(src, user) 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:
        **Important Security Announcement** \[page [src.pages+2]\]
      " - else - dat+="Other than the title, the rest of the newspaper is unprinted..." - else - dat+="Contents:
        " - for(var/datum/feed_channel/NP in src.news_content) - src.pages++ - if(src.important_message) - dat+="**Important Security Announcement** \[page [src.pages+2]\]
        " - var/temp_page=0 - for(var/datum/feed_channel/NP in src.news_content) - temp_page++ - dat+="[NP.channel_name] \[page [temp_page+1]\]
        " - dat+="
      " - if(scribble_page==curr_page) - dat+="
      There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "
      " - 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+="
        " - var/i = 0 - for(var/datum/feed_message/MESSAGE in C.messages) - i++ - dat+="-[MESSAGE.body]
        " - if(MESSAGE.img) - user << browse_rsc(MESSAGE.img, "tmp_photo[i].png") - dat+="
        " - dat+="\[[MESSAGE.message_type] by [MESSAGE.author]\]

        " - dat+="
      " - if(scribble_page==curr_page) - dat+="
      There is a small scribble near the end of this page... It reads: \"[src.scribble]\"" - dat+= "

      " - 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+= "
      " - 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/nuclearbomb.dm b/code/game/machinery/nuclearbomb.dm index aac4f82ccff1..2194fe2e7e7c 100644 --- a/code/game/machinery/nuclearbomb.dm +++ b/code/game/machinery/nuclearbomb.dm @@ -151,7 +151,7 @@ GLOBAL_VAR_INIT(bomb_set, FALSE) data["command_lockout"] = command_lockout data["allowed"] = allowed data["being_used"] = being_used - data["decryption_complete"] = TRUE //this is overriden by techweb nuke UI_data later, this just makes it default to true + data["decryption_complete"] = TRUE //this is overridden by techweb nuke UI_data later, this just makes it default to true return data 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 5568a5fda600..06ec8ddc7520 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -576,7 +576,7 @@ GLOBAL_LIST_EMPTY(vending_products) user.skills.set_skill(SKILL_SPEC_WEAPONS, SKILL_SPEC_PYRO) specialist_assignment = "Pyro" else - to_chat(user, SPAN_WARNING("Something bad occured with [src], tell a Dev.")) + to_chat(user, SPAN_WARNING("Something bad occurred with [src], tell a Dev.")) vend_fail() return FALSE ID.set_assignment((user.assigned_squad ? (user.assigned_squad.name + " ") : "") + JOB_SQUAD_SPECIALIST + " ([specialist_assignment])") @@ -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 @@ -1275,12 +1275,15 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list( if(vend_flags & VEND_UNIFORM_RANKS) if(insignas_override) var/obj/item/clothing/under/underclothes = new_item + //Gives ranks to the ranked if(istype(underclothes) && user.wear_id && user.wear_id.paygrade) var/rankpath = get_rank_pins(user.wear_id.paygrade) if(rankpath) var/obj/item/clothing/accessory/ranks/rank_insignia = new rankpath() + var/obj/item/clothing/accessory/patch/uscmpatch = new() underclothes.attach_accessory(user, rank_insignia) + underclothes.attach_accessory(user, uscmpatch) if(vend_flags & VEND_UNIFORM_AUTOEQUIP) // autoequip 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 5dfb6b347b5d..af519a908ee6 100644 --- a/code/game/machinery/vending/vendor_types/crew/medical.dm +++ b/code/game/machinery/vending/vendor_types/crew/medical.dm @@ -32,28 +32,39 @@ GLOBAL_LIST_INIT(cm_vending_clothing_doctor, list( list("MEDICAL SET (MANDATORY)", 0, null, null, null), list("Essential Medical Set", 0, /obj/effect/essentials_set/medical/doctor, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/doc, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), + + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + 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("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("ARMOR (CHOOSE 1)", 0, null, null, null), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), - list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), + list("Medical's apron", 0, /obj/item/clothing/suit/chef/classic/medical, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), + + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), - list("HELMET", 0, null, null, null), + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("BELT (CHOOSE 1)", 0, null, null, null), list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), @@ -87,29 +98,40 @@ GLOBAL_LIST_INIT(cm_vending_clothing_nurse, list( list("MEDICAL SET (MANDATORY)", 0, null, null, null), list("Essential Medical Set", 0, /obj/effect/essentials_set/medical, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/doc, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), + + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + 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("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), - list("Medical Nurse Scrubs", 0, /obj/item/clothing/under/rank/medical/nurse, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_REGULAR), - list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Medical's apron", 0, /obj/item/clothing/suit/chef/classic/medical, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), - list("HELMET", 0, null, null, null), + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), + + list("Surgical Cap, Orange", 0, /obj/item/clothing/head/surgery/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("BELT (CHOOSE 1)", 0, null, null, null), list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), @@ -143,30 +165,42 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list( list("MEDICAL SET (MANDATORY)", 0, null, null, null), list("Essential Medical Set", 0, /obj/effect/essentials_set/medical/doctor, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/research, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), - list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), + list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + list("Prescription Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), list("UNIFORM (CHOOSE 1)", 0, null, null, null), + 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("Researcher Uniform", 0, /obj/item/clothing/under/marine/officer/researcher, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), - list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat/researcher, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), - list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat/researcher, MARINE_CAN_BUY_MRE, VENDOR_ITEM_RECOMMENDED), - list("HELMET", 0, null, null, null), + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), + list("Surgical Cap, Orange", 0, /obj/item/clothing/head/surgery/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), list("BELT (CHOOSE 1)", 0, null, null, null), list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), @@ -203,6 +237,9 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list( /obj/item/device/healthanalyzer, /obj/item/tool/surgery/surgical_line, /obj/item/tool/surgery/synthgraft, + /obj/item/storage/syringe_case, + /obj/item/storage/surgical_case/regular, + ) /obj/effect/essentials_set/medical/doctor @@ -214,4 +251,5 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list( /obj/item/tool/surgery/synthgraft, /obj/item/device/flashlight/pen, /obj/item/clothing/accessory/stethoscope, + /obj/item/storage/syringe_case, ) diff --git a/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm b/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm index 027c9bec2d13..8f9ac837cb6a 100644 --- a/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm @@ -5,7 +5,7 @@ desc = "An automated weapon rack hooked up to a small storage of standard-issue weapons. Can be accessed only by the dropship crew." icon_state = "guns" req_access = list(ACCESS_MARINE_PILOT) - vendor_role = list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF) + vendor_role = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF) vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND listed_products = list( @@ -242,7 +242,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_dropship_crew_chief, list( name = "\improper ColMarTech Dropship Crew Equipment Rack" desc = "An automated rack hooked up to a colossal storage of Dropship Crew standard-issue equipment." req_access = list(ACCESS_MARINE_PILOT) - vendor_role = list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF) + vendor_role = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF) /obj/structure/machinery/cm_vending/clothing/pilot_officer/get_listed_products(mob/user) if(!user) @@ -252,6 +252,8 @@ GLOBAL_LIST_INIT(cm_vending_clothing_dropship_crew_chief, list( return combined if(user.job == JOB_DROPSHIP_CREW_CHIEF) return GLOB.cm_vending_clothing_dropship_crew_chief - if(user.job == JOB_PILOT) + if(user.job == JOB_CAS_PILOT) + return GLOB.cm_vending_clothing_pilot_officer + if(user.job == JOB_DROPSHIP_PILOT) return GLOB.cm_vending_clothing_pilot_officer return ..() 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 9d9c519c285f..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), + )) @@ -210,36 +213,63 @@ GLOBAL_LIST_INIT(cm_vending_clothing_req_officer, list( //------------ CHIEF MEDICAL OFFICER --------------- GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list( - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("MEDICAL SET (MANDATORY)", 0, null, null, null), + list("Essential Medical Set", 0, /obj/effect/essentials_set/medical/doctor/cmo, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + + list("STANDARD EQUIPMENT", 0, null, null, null), list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/cmo, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), - list("EYEWARE (CHOOSE 1)", 0, null, null, null), + list("EYEWEAR (CHOOSE 1)", 0, null, null, null), list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), - list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + list("Prescription Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY), + list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), + list("Prescription Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science/prescription, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), 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("Chief Medical Officer's Uniform", 0, /obj/item/clothing/under/rank/chief_medical_officer, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), + 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("Doctor Uniform", 0, /obj/item/clothing/under/rank/medical, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), + + list("SUIT (CHOOSE 1)", 0, null, null, null), + list("Labcoat", 0, /obj/item/clothing/suit/storage/labcoat, MARINE_CAN_BUY_MRE, VENDOR_ITEM_RECOMMENDED), + list("Medical's apron", 0, /obj/item/clothing/suit/chef/classic/medical, MARINE_CAN_BUY_MRE, VENDOR_ITEM_REGULAR), + + list("SNOW GEAR (SNOW USE ONLY)", 0, null, null, null), + list("Snowcoat", 0, /obj/item/clothing/suit/storage/snow_suit/doctor, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("Balaclava", 0, /obj/item/clothing/mask/balaclava, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + list("Snow Scarf", 0, /obj/item/clothing/mask/tornscarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_MANDATORY), + + list("HEADWEAR (CHOOSE 1)", 0, null, null, null), + list("Chief Medical Officer's Peaked Cap", 0, /obj/item/clothing/head/cmo, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), + list("Surgical Cap, Orange", 0, /obj/item/clothing/head/surgery/orange, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Surgical Cap, Blue", 0, /obj/item/clothing/head/surgery/blue, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Surgical Cap, Purple", 0, /obj/item/clothing/head/surgery/purple, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), + list("Surgical Cap, Green", 0, /obj/item/clothing/head/surgery/green, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("BAG (CHOOSE 1)", 0, null, null, null), + + list("Standard Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Standard Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Medical Satchel", 0, /obj/item/storage/backpack/marine/satchel/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - list("USCM Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - list("USCM Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Medical Backpack", 0, /obj/item/storage/backpack/marine/medic, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null), list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), - list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), - list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), - list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("COMBAT EQUIPMENT (COMBAT USE ONLY)", 0, null, null, null), + list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_COMBAT_ARMOR, VENDOR_ITEM_MANDATORY), + list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_COMBAT_HELMET, VENDOR_ITEM_MANDATORY), + list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_COMBAT_SHOES, VENDOR_ITEM_MANDATORY), list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -261,9 +291,24 @@ 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), )) +/obj/effect/essentials_set/medical/doctor/cmo + spawned_gear_list = list( + /obj/item/device/defibrillator, + /obj/item/storage/firstaid/adv, + /obj/item/device/healthanalyzer, + /obj/item/tool/surgery/surgical_line, + /obj/item/tool/surgery/synthgraft, + /obj/item/device/flashlight/pen, + /obj/item/clothing/accessory/stethoscope, + /obj/item/storage/syringe_case, + ) diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 2395d572bad7..a55285369e14 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -21,6 +21,7 @@ list("Plastic Explosive", 3, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR), list("ES-11 Mobile Fuel Canister", 4, /obj/item/tool/weldpack/minitank, null, VENDOR_ITEM_REGULAR), list("Engineer Kit", 1, /obj/item/storage/toolkit/empty, null, VENDOR_ITEM_REGULAR), + list("Tactical Prybar", 5, /obj/item/tool/crowbar/tactical, null, VENDOR_ITEM_REGULAR), list("FIRSTAID KITS", 0, null, null, null), list("Advanced Firstaid Kit", 12, /obj/item/storage/firstaid/adv, null, VENDOR_ITEM_REGULAR), @@ -38,6 +39,9 @@ list("Roller Bed", 4, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Stasis Bag", 6, /obj/item/bodybag/cryobag, null, VENDOR_ITEM_REGULAR), list("MS-11 Smart Refill Tank", 6, /obj/item/reagent_container/glass/minitank, null, VENDOR_ITEM_REGULAR), + list("Blood", 5, /obj/item/reagent_container/blood/OMinus, null, VENDOR_ITEM_REGULAR), + list("Surgical Bed", 10, /obj/structure/bed/portable_surgery, null, VENDOR_ITEM_REGULAR), + list("Surgical Kit", 30, /obj/item/storage/surgical_tray, null, VENDOR_ITEM_REGULAR), list("Pillbottle (Bicaridine)", 5, /obj/item/storage/pill_bottle/bicaridine, null, VENDOR_ITEM_RECOMMENDED), list("Pillbottle (Dexalin)", 5, /obj/item/storage/pill_bottle/dexalin, null, VENDOR_ITEM_REGULAR), @@ -136,6 +140,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( list("Smartpack, White", 0, /obj/item/storage/backpack/marine/smartpack/white, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Smartpack, Black", 0, /obj/item/storage/backpack/marine/smartpack/black, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Logistics IMP Backpack", 0, /obj/item/storage/backpack/marine/satchel/big, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), + list("Expedition Chestrig", 0, /obj/item/storage/backpack/marine/satchel/intel/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), @@ -183,10 +188,12 @@ 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), - list("USCM Service Uniform", 12, /obj/item/clothing/under/marine/officer/bridge, null, VENDOR_ITEM_REGULAR), + list("USCM Service Uniform, Tan", 12, /obj/item/clothing/under/marine/officer/bridge, null, VENDOR_ITEM_REGULAR), + list("USCM Service Uniform, White", 12, /obj/item/clothing/under/marine/dress, null, VENDOR_ITEM_REGULAR), list("USCM Flightsuit", 12, /obj/item/clothing/under/rank/synthetic/flight, null, VENDOR_ITEM_REGULAR), list("USCM Engineers Uniform", 12, /obj/item/clothing/under/marine/engineer/standard, null, VENDOR_ITEM_REGULAR), list("USCM Engineers Uniform (Darker)", 12, /obj/item/clothing/under/marine/engineer/darker, null, VENDOR_ITEM_REGULAR), @@ -205,6 +212,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Grey Utilities", 12, /obj/item/clothing/under/rank/synthetic/utility/yellow, null, VENDOR_ITEM_REGULAR), list("Grey Utilities and Blue Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/red, null, VENDOR_ITEM_REGULAR), list("Blue Utilities and Brown Jeans", 12, /obj/item/clothing/under/rank/synthetic/utility/blue, null, VENDOR_ITEM_REGULAR), + list("White Service Uniform", 12, /obj/item/clothing/under/colonist/white_service, null, VENDOR_ITEM_REGULAR), list("Steward Clothes", 12, /obj/item/clothing/under/colonist/wy_joliet_shopsteward, null, VENDOR_ITEM_REGULAR), list("Red Dress Skirt", 12, /obj/item/clothing/under/blackskirt, null, VENDOR_ITEM_REGULAR), list("Working Joe Uniform", 36, /obj/item/clothing/under/rank/synthetic/joe, null, VENDOR_ITEM_REGULAR), @@ -237,6 +245,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Beret, Red", 12, /obj/item/clothing/head/beret/cm/red, null, VENDOR_ITEM_REGULAR), list("Beret, Standard", 12, /obj/item/clothing/head/beret/cm, null, VENDOR_ITEM_REGULAR), list("Beret, Tan", 12, /obj/item/clothing/head/beret/cm/tan, null, VENDOR_ITEM_REGULAR), + list("Beret, Green", 12, /obj/item/clothing/head/beret/cm, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), list("Beret, Black", 12, /obj/item/clothing/head/beret/cm/black, null, VENDOR_ITEM_REGULAR), list("Beret, White", 12, /obj/item/clothing/head/beret/cm/white, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/blue, null, VENDOR_ITEM_REGULAR), @@ -303,6 +312,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("OTHER", 0, null, null, null), list("Red Armband", 6, /obj/item/clothing/accessory/armband, null, VENDOR_ITEM_REGULAR), + list("Purple Armband", 6, /obj/item/clothing/accessory/armband/science, null, VENDOR_ITEM_REGULAR), list("Yellow Armband", 6, /obj/item/clothing/accessory/armband/engine, null, VENDOR_ITEM_REGULAR), list("Green Armband", 6, /obj/item/clothing/accessory/armband/medgreen, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/engineering.dm b/code/game/machinery/vending/vendor_types/engineering.dm index 2275656d7a30..245e06009695 100644 --- a/code/game/machinery/vending/vendor_types/engineering.dm +++ b/code/game/machinery/vending/vendor_types/engineering.dm @@ -90,6 +90,11 @@ list("Research Data Terminal", 2, /obj/item/circuitboard/computer/research_terminal, VENDOR_ITEM_REGULAR), list("P.A.C.M.A.N Generator", 1, /obj/item/circuitboard/machine/pacman, VENDOR_ITEM_REGULAR), list("Auxiliar Power Storage Unit", 2, /obj/item/circuitboard/machine/ghettosmes, VENDOR_ITEM_REGULAR), + list("Air Alarm Electronics", 2, /obj/item/circuitboard/airalarm, VENDOR_ITEM_REGULAR), + list("Security Camera Monitor", 2, /obj/item/circuitboard/computer/cameras, VENDOR_ITEM_REGULAR), + list("Station Alerts", 2, /obj/item/circuitboard/computer/stationalert, VENDOR_ITEM_REGULAR), + list("Arcade", 2, /obj/item/circuitboard/computer/arcade, VENDOR_ITEM_REGULAR), + list("Atmospheric Monitor", 2, /obj/item/circuitboard/computer/air_management, VENDOR_ITEM_REGULAR), ) /obj/structure/machinery/cm_vending/sorted/tech/tool_storage/antag diff --git a/code/game/machinery/vending/vendor_types/intelligence_officer.dm b/code/game/machinery/vending/vendor_types/intelligence_officer.dm index 6446d17e2db7..9baa685032de 100644 --- a/code/game/machinery/vending/vendor_types/intelligence_officer.dm +++ b/code/game/machinery/vending/vendor_types/intelligence_officer.dm @@ -18,9 +18,15 @@ GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( 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("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, 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("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, 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("POUCHES", 0, null, null, null), list("Large Magazine Pouch", 10, /obj/item/storage/pouch/magazine/large, null, VENDOR_ITEM_REGULAR), @@ -68,6 +74,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_intelligence_officer, list( list("ARMOR (CHOOSE 1)", 0, null, null, null), list("XM4 Pattern Intel Armor", 0, /obj/item/clothing/suit/storage/marine/medium/rto/intel, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), + list("M3-L Pattern Light Armor", 0, /obj/item/clothing/suit/storage/marine/light, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("BACKPACK (CHOOSE 1)", 0, null, null, null), diff --git a/code/game/machinery/vending/vendor_types/medical.dm b/code/game/machinery/vending/vendor_types/medical.dm index 7073dc383dcd..9750669ac88a 100644 --- a/code/game/machinery/vending/vendor_types/medical.dm +++ b/code/game/machinery/vending/vendor_types/medical.dm @@ -4,7 +4,7 @@ name = "\improper Wey-Med Plus" desc = "Medical Pharmaceutical dispenser. Provided by Wey-Yu Pharmaceuticals Division(TM)." icon_state = "med" - req_access = list(ACCESS_MARINE_MEDBAY, ACCESS_MARINE_CHEMISTRY) + req_access = list(ACCESS_MARINE_MEDBAY) unacidable = TRUE unslashable = FALSE @@ -132,40 +132,40 @@ /obj/structure/machinery/cm_vending/sorted/medical/populate_product_list(scale) listed_products = list( list("FIELD SUPPLIES", -1, null, null), - list("Burn Kit", round(scale * 7), /obj/item/stack/medical/advanced/ointment, VENDOR_ITEM_REGULAR), - list("Trauma Kit", round(scale * 7), /obj/item/stack/medical/advanced/bruise_pack, VENDOR_ITEM_REGULAR), - list("Ointment", round(scale * 7), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), - list("Roll of Gauze", round(scale * 7), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), - list("Splints", round(scale * 7), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), + list("Burn Kit", round(scale * 6), /obj/item/stack/medical/advanced/ointment, VENDOR_ITEM_REGULAR), + list("Trauma Kit", round(scale * 6), /obj/item/stack/medical/advanced/bruise_pack, VENDOR_ITEM_REGULAR), + list("Ointment", round(scale * 6), /obj/item/stack/medical/ointment, VENDOR_ITEM_REGULAR), + list("Roll of Gauze", round(scale * 6), /obj/item/stack/medical/bruise_pack, VENDOR_ITEM_REGULAR), + list("Splints", round(scale * 6), /obj/item/stack/medical/splint, VENDOR_ITEM_REGULAR), list("AUTOINJECTORS", -1, null, null), - list("Autoinjector (Bicaridine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), - list("Autoinjector (Dexalin+)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), - list("Autoinjector (Inaprovaline)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), - list("Autoinjector (Kelotane)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), - list("Autoinjector (Oxycodone)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), - list("Autoinjector (Tramadol)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/tramadol, VENDOR_ITEM_REGULAR), - list("Autoinjector (Tricord)", round(scale * 5), /obj/item/reagent_container/hypospray/autoinjector/tricord, VENDOR_ITEM_REGULAR), + list("Autoinjector (Bicaridine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/bicaridine, VENDOR_ITEM_REGULAR), + list("Autoinjector (Dexalin+)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/dexalinp, VENDOR_ITEM_REGULAR), + list("Autoinjector (Epinephrine)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/adrenaline, VENDOR_ITEM_REGULAR), + list("Autoinjector (Inaprovaline)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, VENDOR_ITEM_REGULAR), + list("Autoinjector (Kelotane)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/kelotane, VENDOR_ITEM_REGULAR), + list("Autoinjector (Oxycodone)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/oxycodone, VENDOR_ITEM_REGULAR), + list("Autoinjector (Tramadol)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/tramadol, VENDOR_ITEM_REGULAR), + list("Autoinjector (Tricord)", round(scale * 3), /obj/item/reagent_container/hypospray/autoinjector/tricord, VENDOR_ITEM_REGULAR), list("LIQUID BOTTLES", -1, null, null), - list("Bottle (Bicaridine)", round(scale * 5), /obj/item/reagent_container/glass/bottle/bicaridine, VENDOR_ITEM_REGULAR), - list("Bottle (Dylovene)", round(scale * 5), /obj/item/reagent_container/glass/bottle/antitoxin, VENDOR_ITEM_REGULAR), - list("Bottle (Dexalin)", round(scale * 5), /obj/item/reagent_container/glass/bottle/dexalin, VENDOR_ITEM_REGULAR), - list("Bottle (Inaprovaline)", round(scale * 5), /obj/item/reagent_container/glass/bottle/inaprovaline, VENDOR_ITEM_REGULAR), - list("Bottle (Kelotane)", round(scale * 5), /obj/item/reagent_container/glass/bottle/kelotane, VENDOR_ITEM_REGULAR), - list("Bottle (Oxycodone)", round(scale * 5), /obj/item/reagent_container/glass/bottle/oxycodone, VENDOR_ITEM_REGULAR), - list("Bottle (Peridaxon)", round(scale * 5), /obj/item/reagent_container/glass/bottle/peridaxon, VENDOR_ITEM_REGULAR), - list("Bottle (Tramadol)", round(scale * 5), /obj/item/reagent_container/glass/bottle/tramadol, VENDOR_ITEM_REGULAR), + list("Bottle (Bicaridine)", round(scale * 4), /obj/item/reagent_container/glass/bottle/bicaridine, VENDOR_ITEM_REGULAR), + list("Bottle (Dylovene)", round(scale * 4), /obj/item/reagent_container/glass/bottle/antitoxin, VENDOR_ITEM_REGULAR), + list("Bottle (Dexalin)", round(scale * 4), /obj/item/reagent_container/glass/bottle/dexalin, VENDOR_ITEM_REGULAR), + list("Bottle (Inaprovaline)", round(scale * 4), /obj/item/reagent_container/glass/bottle/inaprovaline, VENDOR_ITEM_REGULAR), + list("Bottle (Kelotane)", round(scale * 4), /obj/item/reagent_container/glass/bottle/kelotane, VENDOR_ITEM_REGULAR), + list("Bottle (Oxycodone)", round(scale * 4), /obj/item/reagent_container/glass/bottle/oxycodone, VENDOR_ITEM_REGULAR), + list("Bottle (Peridaxon)", round(scale * 4), /obj/item/reagent_container/glass/bottle/peridaxon, VENDOR_ITEM_REGULAR), + list("Bottle (Tramadol)", round(scale * 4), /obj/item/reagent_container/glass/bottle/tramadol, VENDOR_ITEM_REGULAR), list("PILL BOTTLES", -1, null, null), - list("Pill Bottle (Bicaridine)", round(scale * 3), /obj/item/storage/pill_bottle/bicaridine, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Dexalin)", round(scale * 3), /obj/item/storage/pill_bottle/dexalin, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Dylovene)", round(scale * 3), /obj/item/storage/pill_bottle/antitox, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Inaprovaline)", round(scale * 3), /obj/item/storage/pill_bottle/inaprovaline, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Kelotane)", round(scale * 3), /obj/item/storage/pill_bottle/kelotane, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Peridaxon)", round(scale * 2), /obj/item/storage/pill_bottle/peridaxon, VENDOR_ITEM_REGULAR), - list("Pill Bottle (Tramadol)", round(scale * 3), /obj/item/storage/pill_bottle/tramadol, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Bicaridine)", round(scale * 2), /obj/item/storage/pill_bottle/bicaridine, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Dexalin)", round(scale * 2), /obj/item/storage/pill_bottle/dexalin, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Dylovene)", round(scale * 2), /obj/item/storage/pill_bottle/antitox, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Inaprovaline)", round(scale * 2), /obj/item/storage/pill_bottle/inaprovaline, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Kelotane)", round(scale * 2), /obj/item/storage/pill_bottle/kelotane, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Peridaxon)", round(scale * 1), /obj/item/storage/pill_bottle/peridaxon, VENDOR_ITEM_REGULAR), + list("Pill Bottle (Tramadol)", round(scale * 2), /obj/item/storage/pill_bottle/tramadol, VENDOR_ITEM_REGULAR), list("MEDICAL UTILITIES", -1, null, null), list("Emergency Defibrillator", round(scale * 3), /obj/item/device/defibrillator, VENDOR_ITEM_REGULAR), @@ -183,6 +183,7 @@ name = "\improper Wey-Chem Plus" desc = "Medical chemistry dispenser. Provided by Wey-Yu Pharmaceuticals Division(TM)." icon_state = "chem" + req_access = list(ACCESS_MARINE_CHEMISTRY) healthscan = FALSE chem_refill = list( @@ -220,6 +221,9 @@ /obj/structure/machinery/cm_vending/sorted/medical/no_access req_access = list() +/obj/structure/machinery/cm_vending/sorted/medical/bolted + wrenchable = FALSE + /obj/structure/machinery/cm_vending/sorted/medical/chemistry/no_access req_access = list() @@ -295,6 +299,9 @@ chem_refill = null stack_refill = null +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted + wrenchable = FALSE + /obj/structure/machinery/cm_vending/sorted/medical/blood/populate_product_list(scale) return diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index 24f58c8f6ae3..9ce8390095e8 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -41,6 +41,7 @@ list("M2C Heavy Machine Gun", round(scale * 2), /obj/item/storage/box/guncase/m2c, VENDOR_ITEM_REGULAR), list("M240 Incinerator Unit", round(scale * 2), /obj/item/storage/box/guncase/flamer, VENDOR_ITEM_REGULAR), list("M79 Grenade Launcher", round(scale * 3), /obj/item/storage/box/guncase/m79, VENDOR_ITEM_REGULAR), + list("XM51 Breaching Scattergun", round(scale * 3), /obj/item/storage/box/guncase/xm51, VENDOR_ITEM_REGULAR), list("EXPLOSIVES", -1, null, null), list("M15 Fragmentation Grenade", round(scale * 2), /obj/item/explosive/grenade/high_explosive/m15, VENDOR_ITEM_REGULAR), @@ -55,7 +56,7 @@ list("M74 AGM-Star Shell", round(scale * 2), /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), list("M74 AGM-Hornet Shell", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, VENDOR_ITEM_REGULAR), list("M40 HIRR Baton Slug", round(scale * 8), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), - list("M40 MFHS Metal Foam Grenade", round(scale * 3), /obj/item/explosive/grenade/metal_foam, VENDOR_ITEM_REGULAR), + list("M40 MFHS Metal Foam Grenade", round(scale * 6), /obj/item/explosive/grenade/metal_foam, VENDOR_ITEM_REGULAR), list("Plastic Explosives", round(scale * 3), /obj/item/explosive/plastic, VENDOR_ITEM_REGULAR), list("Breaching Charge", round(scale * 2), /obj/item/explosive/plastic/breaching_charge, VENDOR_ITEM_REGULAR), @@ -244,11 +245,13 @@ list("M41A MK1 AP Magazine (10x24mm)", round(scale * 2), /obj/item/ammo_magazine/rifle/m41aMK1/ap, VENDOR_ITEM_REGULAR), list("M56D Drum Magazine", round(scale * 2), /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), list("M2C Box Magazine", round(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR), + list("XM51 Magazine (16g)", round(scale * 3), /obj/item/ammo_magazine/rifle/xm51, VENDOR_ITEM_REGULAR), list("SHOTGUN SHELL BOXES", -1, null, null), list("Shotgun Shell Box (Buckshot x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), list("Shotgun Shell Box (Flechette x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), list("Shotgun Shell Box (Slugs x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun, VENDOR_ITEM_REGULAR), + list("Shotgun Shell Box (16g) (Breaching x 120)", 1, /obj/item/ammo_box/magazine/shotgun/light/breaching, VENDOR_ITEM_REGULAR), ) /obj/structure/machinery/cm_vending/sorted/cargo_ammo/stock(obj/item/item_to_stock, mob/user) @@ -406,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..998b17504a44 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,24 @@ 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("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, 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("SU-6 Smartpistol Magazine (.45)", 6, /obj/item/ammo_magazine/pistol/smart, 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..17d3419ac2f8 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,22 @@ 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("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, 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("SU-6 Smartpistol Magazine (.45)", 6, /obj/item/ammo_magazine/pistol/smart, 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..b1961ae9e75b 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,24 @@ 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("M44 Marksman Speed Loader (.44)", 6, /obj/item/ammo_magazine/revolver/marksman, 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("SU-6 Smartpistol Magazine (.45)", 6, /obj/item/ammo_magazine/pistol/smart, 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 296bce8a9d8d..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), @@ -279,6 +280,7 @@ list("M240 Incinerator Tank", round(scale * 3), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), list("M56D Drum Magazine", round(scale * 2), /obj/item/ammo_magazine/m56d, VENDOR_ITEM_REGULAR), list("M2C Box Magazine", round(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR), + list("Box of Breaching Shells (16g)", round(scale * 2), /obj/item/ammo_magazine/shotgun/light/breaching, VENDOR_ITEM_REGULAR), list("HIRR Baton Slugs", round(scale * 6), /obj/item/explosive/grenade/slug/baton, VENDOR_ITEM_REGULAR), list("M74 AGM-S Star Shell", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/starshell, VENDOR_ITEM_REGULAR), list("M74 AGM-S Hornet Shell", round(scale * 4), /obj/item/explosive/grenade/high_explosive/airburst/hornet_shell, 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..65066731070d 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,30 @@ 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("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, 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("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, 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..60afed8b984d 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,18 @@ 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("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, 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("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, 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), @@ -30,6 +42,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_smartgun, list( list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 5, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Fulton Device Stack", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("Smartgun DV9 Battery", 15, /obj/item/smartgun_battery, null, VENDOR_ITEM_REGULAR), list("BINOCULARS", 0, null, null, null), list("Binoculars", 5, /obj/item/device/binoculars, 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..c37dd98ed263 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,21 @@ 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("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, 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("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, 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/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 338f8b9a7e8e..4483d2fd7d24 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -95,11 +95,11 @@ return ..() /obj/effect/decal/mecha_wreckage/gygax - name = "Gygax wreckage" + name = "MAX wreckage" icon_state = "gygax-broken" /obj/effect/decal/mecha_wreckage/gygax/dark - name = "Dark Gygax wreckage" + name = "Dark MAX wreckage" icon_state = "darkgygax-broken" /obj/effect/decal/mecha_wreckage/marauder @@ -116,7 +116,7 @@ icon_state = "seraph-broken" /obj/effect/decal/mecha_wreckage/ripley - name = "Ripley wreckage" + name = "P-1000 wreckage" icon_state = "ripley-broken" /obj/effect/decal/mecha_wreckage/ripley/firefighter @@ -124,11 +124,11 @@ icon_state = "firefighter-broken" /obj/effect/decal/mecha_wreckage/ripley/deathripley - name = "Death-Ripley wreckage" + name = "Death-P-1000 wreckage" icon_state = "deathripley-broken" /obj/effect/decal/mecha_wreckage/durand - name = "Durand wreckage" + name = "MOX wreckage" icon_state = "durand-broken" /obj/effect/decal/mecha_wreckage/phazon @@ -136,7 +136,7 @@ icon_state = "phazon-broken" /obj/effect/decal/mecha_wreckage/odysseus - name = "Odysseus wreckage" + name = "Alice wreckage" icon_state = "odysseus-broken" /obj/effect/decal/mecha_wreckage/hoverpod diff --git a/code/game/objects/effects/effect_system/foam.dm b/code/game/objects/effects/effect_system/foam.dm index edee94cb3747..525cb8c731a9 100644 --- a/code/game/objects/effects/effect_system/foam.dm +++ b/code/game/objects/effects/effect_system/foam.dm @@ -156,7 +156,7 @@ // dense and opaque, but easy to break #define FOAMED_METAL_FIRE_ACT_DMG 50 -#define FOAMED_METAL_XENO_SLASH 0.8 +#define FOAMED_METAL_XENO_SLASH 1.75 #define FOAMED_METAL_ITEM_MELEE 2 #define FOAMED_METAL_BULLET_DMG 2 #define FOAMED_METAL_EXPLOSION_DMG 1 @@ -173,7 +173,7 @@ /obj/structure/foamed_metal/iron icon_state = "ironfoam" - health = 85 + health = 70 name = "foamed iron" desc = "A slightly stronger lightweight foamed iron wall." @@ -211,7 +211,7 @@ return FALSE /obj/structure/foamed_metal/attack_alien(mob/living/carbon/xenomorph/X, dam_bonus) - var/damage = (rand(X.melee_damage_lower, X.melee_damage_upper) + dam_bonus) + var/damage = ((round((X.melee_damage_lower+X.melee_damage_upper)/2)) + dam_bonus) //Frenzy bonus if(X.frenzy_aura > 0) diff --git a/code/game/objects/effects/effect_system/smoke.dm b/code/game/objects/effects/effect_system/smoke.dm index 7457b4f5f147..c9e404ae5b60 100644 --- a/code/game/objects/effects/effect_system/smoke.dm +++ b/code/game/objects/effects/effect_system/smoke.dm @@ -4,7 +4,7 @@ // in case you wanted a vent to always smoke north for example ///////////////////////////////////////////// -/// Chance that cades block the gas. Smoke spread ticks are calculated very quickly so this has to be high to have a noticable effect. +/// Chance that cades block the gas. Smoke spread ticks are calculated very quickly so this has to be high to have a noticeable effect. #define BOILER_GAS_CADE_BLOCK_CHANCE 35 /obj/effect/particle_effect/smoke 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/corpsespawner.dm b/code/game/objects/effects/landmarks/corpsespawner.dm index 27a717f58ba8..cbcd8f906ec8 100644 --- a/code/game/objects/effects/landmarks/corpsespawner.dm +++ b/code/game/objects/effects/landmarks/corpsespawner.dm @@ -16,20 +16,6 @@ GLOB.corpse_spawns -= src return ..() -/obj/effect/landmark/corpsespawner/realpirate - name = "Pirate" - equip_path = /datum/equipment_preset/corpse/realpirate - -/obj/effect/landmark/corpsespawner/realpirate/ranged - name = "Pirate Gunner" - equip_path = /datum/equipment_preset/corpse/realpirate/ranged - -/obj/effect/landmark/corpsespawner/russian - name = "Russian" - equip_path = /datum/equipment_preset/corpse/russian - -/obj/effect/landmark/corpsespawner/russian/ranged - ///////////Civilians////////////////////// /obj/effect/landmark/corpsespawner/prisoner @@ -57,43 +43,50 @@ equip_path = /datum/equipment_preset/corpse/miner /obj/effect/landmark/corpsespawner/security - name = "Security" + name = "Security Officer" equip_path = /datum/equipment_preset/corpse/security /obj/effect/landmark/corpsespawner/security/marshal - name = "Colonial Marshal" - equip_path = /datum/equipment_preset/corpse/security/marshal + name = "Colonial Marshal Deputy" + equip_path = /datum/equipment_preset/corpse/security/cmb /obj/effect/landmark/corpsespawner/security/liaison name = "Corporate Liaison" - equip_path = /datum/equipment_preset/corpse/security/liaison + equip_path = /datum/equipment_preset/corpse/liaison /obj/effect/landmark/corpsespawner/prison_security name = "Prison Guard" - equip_path = /datum/equipment_preset/corpse/prison_security + equip_path = /datum/equipment_preset/corpse/prison_guard /////////////////Officers////////////////////// /obj/effect/landmark/corpsespawner/bridgeofficer - name = "Staff Officer" - equip_path = /datum/equipment_preset/corpse/bridgeofficer + name = "Colony Division Manager" + equip_path = /datum/equipment_preset/corpse/manager -/obj/effect/landmark/corpsespawner/bridgeofficer/johnson - name = "Mr. Johnson Telovin" - equip_path = /datum/equipment_preset/corpse/bridgeofficer/johnson +/obj/effect/landmark/corpsespawner/administrator + name = "Colony Administrator" + equip_path = /datum/equipment_preset/corpse/administrator -/obj/effect/landmark/corpsespawner/commander - name = "Commanding Officer" - equip_path = /datum/equipment_preset/corpse/commander +/obj/effect/landmark/corpsespawner/administrator/burst + name = "Burst Colony Administrator" + equip_path = /datum/equipment_preset/corpse/administrator/burst /obj/effect/landmark/corpsespawner/wysec name = "Weyland-Yutani Corporate Security Guard" equip_path = /datum/equipment_preset/corpse/wysec /obj/effect/landmark/corpsespawner/wygoon - name = "Weyland-Yutani Corporate Security Goon" + name = "Weyland-Yutani Corporate Security Officer" equip_path = /datum/equipment_preset/corpse/pmc/goon +/obj/effect/landmark/corpsespawner/wygoon/lead + name = "Weyland-Yutani Corporate Security Lead" + equip_path = /datum/equipment_preset/corpse/pmc/goon/lead + +/obj/effect/landmark/corpsespawner/wygoon/lead/burst + name = "Burst Weyland-Yutani Corporate Security Lead" + equip_path = /datum/equipment_preset/corpse/pmc/goon/lead/burst ///CM specific jobs/// @@ -165,15 +158,29 @@ equip_path = /datum/equipment_preset/corpse/pmc/burst /obj/effect/landmark/corpsespawner/freelancer - name = "Freelancer Mercenary" + name = "Freelancer" equip_path = /datum/equipment_preset/corpse/freelancer /obj/effect/landmark/corpsespawner/freelancer/burst - name = "Burst Freelancer Mercenary" + name = "Burst Freelancer" equip_path = /datum/equipment_preset/corpse/freelancer/burst // Fun Faction Corpse +/obj/effect/landmark/corpsespawner/realpirate + name = "Pirate" + equip_path = /datum/equipment_preset/corpse/realpirate + +/obj/effect/landmark/corpsespawner/realpirate/ranged + name = "Pirate Gunner" + equip_path = /datum/equipment_preset/corpse/realpirate/ranged + +/obj/effect/landmark/corpsespawner/russian + name = "Russian" + equip_path = /datum/equipment_preset/corpse/russian + +/obj/effect/landmark/corpsespawner/russian/ranged + /obj/effect/landmark/corpsespawner/dutchrifle name = "Dutch Dozen Rifleman" equip_path = /datum/equipment_preset/corpse/dutchrifle diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index 45cc6fd8b5fa..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 @@ -402,6 +404,24 @@ name = "working joe late join" job = JOB_WORKING_JOE + +/obj/effect/landmark/late_join/cmo + name = "Chief Medical Officer late join" + job = JOB_CMO + +/obj/effect/landmark/late_join/researcher + name = "Researcher late join" + job = JOB_RESEARCHER + +/obj/effect/landmark/late_join/doctor + name = "Doctor late join" + job = JOB_DOCTOR + +/obj/effect/landmark/late_join/nurse + name = "Nurse late join" + job = JOB_NURSE + + /obj/effect/landmark/late_join/Initialize(mapload, ...) . = ..() if(squad) diff --git a/code/game/objects/effects/landmarks/survivor_spawner.dm b/code/game/objects/effects/landmarks/survivor_spawner.dm index a53fead0d3bf..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,20 +77,42 @@ 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 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 PMC from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconcious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." + story_text = "You are a PMC from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your 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 squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -89,7 +125,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 PMC medic from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconcious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." + story_text = "You are a PMC medic from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your 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 squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -102,7 +138,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 PMC engineer from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your pilot set full speed for the colony. However, during atmospheric entry the engine failed and you fell unconcious from the G-Forces. You wake up wounded... and see that the ship has crashed onto the colony. Your squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." + story_text = "You are a PMC engineer from Weyland-Yutani. Your ship was enroute to Solaris Ridge to escort an Assistant Manager. On the way, your ship received a distress signal from the colony about an attack. Worried that it might be a CLF attack, your 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 squadmates lie dead beside you, but there's some missing. Perhaps they survived and moved elsewhere? You need to find out what happened to the colony, see if you can find any of your squadmates, and find a way to contact Weyland-Yutani." roundstart_damage_min = 3 roundstart_damage_max = 10 roundstart_damage_times = 2 @@ -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 unconcious 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.dm b/code/game/objects/items.dm index fcd431c33d26..f6aa2600f838 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -22,6 +22,8 @@ var/attack_speed = 11 //+3, Adds up to 10. Added an extra 4 removed from /mob/proc/do_click() ///Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" var/list/attack_verb + /// A multiplier to an object's force when used against a stucture. + var/demolition_mod = 1 health = null diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 5f58a3b1d292..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 @@ -243,11 +243,13 @@ name = "\improper CMB marshal gold badge" desc = "A coveted gold badge signifying that the wearer is one of the few CMB Marshals patroling the outer rim. It is a sign of justice, authority, and protection. Protecting those who can't. This badge represents a commitment to a sworn oath always kept." icon_state = "cmbmar" + paygrade = PAY_SHORT_CMBM /obj/item/card/id/deputy name = "\improper CMB deputy silver badge" desc = "The silver badge which represents that the wearer is a CMB Deputy. It is a sign of justice, authority, and protection. Protecting those who can't. This badge represents a commitment to a sworn oath always kept." icon_state = "cmbdep" + paygrade = PAY_SHORT_CMBD /obj/item/card/id/general name = "general officer holo-badge" @@ -269,79 +271,51 @@ /obj/item/card/id/provost/New() access = get_access(ACCESS_LIST_MARINE_ALL) -/obj/item/card/id/syndicate +/obj/item/card/id/adaptive name = "agent card" access = list(ACCESS_ILLEGAL_PIRATE) - var/registered_user=null -/obj/item/card/id/syndicate/New(mob/user as mob) +/obj/item/card/id/adaptive/New(mob/user as mob) ..() if(!QDELETED(user)) // Runtime prevention on laggy starts or where users log out because of lag at round start. - registered_name = ishuman(user) ? user.real_name : user.name - else - registered_name = "Agent Card" + registered_name = ishuman(user) ? user.real_name : "Unknown" assignment = "Agent" name = "[registered_name]'s ID Card ([assignment])" -/obj/item/card/id/syndicate/afterattack(obj/item/O as obj, mob/user as mob, proximity) - if(!proximity) return +/obj/item/card/id/adaptive/afterattack(obj/item/O as obj, mob/user as mob, proximity) + if(!proximity) + return if(istype(O, /obj/item/card/id)) - var/obj/item/card/id/I = O - src.access |= I.access - if(istype(user, /mob/living) && user.mind) - to_chat(usr, SPAN_NOTICE(" The card's microscanners activate as you pass it over the ID, copying its access.")) - -/obj/item/card/id/syndicate/attack_self(mob/user as mob) - if(!src.registered_name) - //Stop giving the players unsanitized unputs! You are giving ways for players to intentionally crash clients! -Nodrak - var t = reject_bad_name(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)) - if(!t) //Same as mob/new_player/prefrences.dm - alert("Invalid name.") - return - src.registered_name = t - - var u = strip_html(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Agent")) - if(!u) - alert("Invalid assignment.") - src.registered_name = "" - return - src.assignment = u - src.name = "[src.registered_name]'s ID Card ([src.assignment])" - to_chat(user, SPAN_NOTICE(" You successfully forge the ID card.")) - registered_user = user - else if(!registered_user || registered_user == user) - - if(!registered_user) registered_user = user // - - switch(alert("Would you like to display the ID, or retitle it?","Choose.","Rename","Show")) - if("Rename") - var t = strip_html(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name),26) - if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm - alert("Invalid name.") - return - src.registered_name = t - - var u = strip_html(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")) - if(!u) - alert("Invalid assignment.") - return - src.assignment = u - src.name = "[src.registered_name]'s ID Card ([src.assignment])" - to_chat(user, SPAN_NOTICE(" You successfully forge the ID card.")) + var/obj/item/card/id/target_id = O + access |= target_id.access + if(ishuman(user)) + to_chat(user, SPAN_NOTICE("The card's microscanners activate as you pass it over the ID, copying its access.")) + +/obj/item/card/id/adaptive/attack_self(mob/user as mob) + switch(alert("Would you like to display the ID, or retitle it?","Choose.","Rename","Show")) + if("Rename") + var/new_name = strip_html(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name),26) + if(!new_name || new_name == "Unknown" || new_name == "floor" || new_name == "wall" || new_name == "r-wall") //Same as mob/new_player/prefrences.dm + to_chat(user, SPAN_WARNING("Invalid Name.")) return - if("Show") - ..() - else - ..() + var/new_job = strip_html(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")) + if(!new_job) + to_chat(user, SPAN_WARNING("Invalid Assignment.")) + return + var/new_rank = strip_html(input(user, "What paygrade do would you like to put on this card?\nNote: This must be the shorthand version of the grade, I.E CIV for Civillian or ME1 for Marine Private", "Agent card paygrade assignment", PAY_SHORT_CIV)) + if(!new_rank || !(new_rank in GLOB.paygrades)) + to_chat(user, SPAN_WARNING("Invalid Paygrade.")) + return -/obj/item/card/id/syndicate_command - name = "syndicate ID card" - desc = "An ID straight from the Syndicate." - registered_name = "Syndicate" - assignment = "Syndicate Overlord" - access = list(ACCESS_ILLEGAL_PIRATE) + registered_name = new_name + assignment = new_job + name = "[registered_name]'s ID Card ([assignment])" + paygrade = new_rank + to_chat(user, SPAN_NOTICE("You successfully forge the ID card.")) + return + ..() /obj/item/card/id/captains_spare name = "captain's spare ID" diff --git a/code/game/objects/items/circuitboards/mecha.dm b/code/game/objects/items/circuitboards/mecha.dm index 60b5d7a0c952..40646de77d81 100644 --- a/code/game/objects/items/circuitboards/mecha.dm +++ b/code/game/objects/items/circuitboards/mecha.dm @@ -1,7 +1,4 @@ - -///////// Circuitboards - -/obj/item/circuitboard/mecha +/obj/item/circuitboard/exosuit name = "Exosuit Circuit board" icon_state = "std_mod" force = 5 @@ -10,71 +7,34 @@ throw_speed = SPEED_VERY_FAST throw_range = 15 -/obj/item/circuitboard/mecha/ripley - - -/obj/item/circuitboard/mecha/ripley/peripherals - name = "Circuit board (Ripley Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/ripley/main - name = "Circuit board (Ripley Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/gygax - - -/obj/item/circuitboard/mecha/gygax/peripherals - name = "Circuit board (Gygax Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/gygax/targeting - name = "Circuit board (Gygax Weapon Control and Targeting module)" - icon_state = "mcontroller" - - -/obj/item/circuitboard/mecha/gygax/main - name = "Circuit board (Gygax Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/durand - - -/obj/item/circuitboard/mecha/durand/peripherals - name = "Circuit board (Durand Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/durand/targeting - name = "Circuit board (Durand Weapon Control and Targeting module)" - icon_state = "mcontroller" - - -/obj/item/circuitboard/mecha/durand/main - name = "Circuit board (Durand Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/honker - - -/obj/item/circuitboard/mecha/honker/peripherals - name = "Circuit board (H.O.N.K Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/honker/targeting - name = "Circuit board (H.O.N.K Weapon Control and Targeting module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/honker/main - name = "Circuit board (H.O.N.K Central Control module)" - icon_state = "mainboard" - -/obj/item/circuitboard/mecha/odysseus - - -/obj/item/circuitboard/mecha/odysseus/peripherals - name = "Circuit board (Odysseus Peripherals Control module)" - icon_state = "mcontroller" - -/obj/item/circuitboard/mecha/odysseus/main - name = "Circuit board (Odysseus Central Control module)" +// that's the two possible exosuit boards icon_state. +/obj/item/circuitboard/exosuit/main icon_state = "mainboard" +/obj/item/circuitboard/exosuit/peripherals + icon_state = "mcontroller" + +// P-1000 Older version of the P-5000 +/obj/item/circuitboard/exosuit/main/work_loader + name = "Circuit board (P-1000 Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/work_loader + name = "Circuit board (P-1000 Peripherals Control module)" + +// MAX (Mobile Assault Exo-Warrior)look like a gygax from afar +/obj/item/circuitboard/exosuit/main/max + name = "Circuit board (Max Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/max + name = "Circuit board (Max Peripherals Control module)" +/obj/item/circuitboard/exosuit/peripherals/max/targeting + name = "Circuit board (Max Weapon Control and Targeting module)" + +// MOX (mobile offensive exo-warrior) look like a durand from afar. +/obj/item/circuitboard/exosuit/main/mox + name = "Circuit board (Mox Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/mox + name = "Circuit board (Mox Peripherals Control module)" + +// Alice it's an exosuit featured in alien versus predator 2 doesn't look like an odysseus but is a name in CM lore. +/obj/item/circuitboard/exosuit/main/alice + name = "Circuit board (Alice Central Control module)" +/obj/item/circuitboard/exosuit/peripherals/alice + name = "Circuit board (Alice Peripherals Control module)" diff --git a/code/game/objects/items/circuitboards/robot_modules.dm b/code/game/objects/items/circuitboards/robot_modules.dm index 93bd1ad2b902..fc0b2892a111 100644 --- a/code/game/objects/items/circuitboards/robot_modules.dm +++ b/code/game/objects/items/circuitboards/robot_modules.dm @@ -9,8 +9,6 @@ name = "medic robot module" /obj/item/circuitboard/robot_module/engineering name = "engineering robot module" -/obj/item/circuitboard/robot_module/security - name = "security robot module" /obj/item/circuitboard/robot_module/janitor name = "janitorial robot module" /obj/item/circuitboard/robot_module/butler diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm index a9b7706bcfb7..84da7d9acff4 100644 --- a/code/game/objects/items/devices/binoculars.dm +++ b/code/game/objects/items/devices/binoculars.dm @@ -123,7 +123,7 @@ to_chat(user, SPAN_WARNING("INVALID TARGET: target must be on the surface.")) return FALSE if(user.sight & SEE_TURFS) - var/list/turf/path = getline2(user, targeted_atom, include_from_atom = FALSE) + var/list/turf/path = get_line(user, targeted_atom, include_start_atom = FALSE) for(var/turf/T in path) if(T.opacity) to_chat(user, SPAN_WARNING("There is something in the way of the laser!")) diff --git a/code/game/objects/items/devices/cictablet.dm b/code/game/objects/items/devices/cictablet.dm index 4d6db2f7772d..664054fb59e2 100644 --- a/code/game/objects/items/devices/cictablet.dm +++ b/code/game/objects/items/devices/cictablet.dm @@ -43,10 +43,10 @@ add_pmcs = FALSE UnregisterSignal(SSdcs, COMSIG_GLOB_MODE_PRESETUP) -/obj/item/device/cotablet/attack_self(mob/user as mob) +/obj/item/device/cotablet/attack_self(mob/living/carbon/human/user as mob) ..() - if(src.allowed(user)) + if(src.allowed(user) && user.wear_id?.check_biometrics(user)) tgui_interact(user) else to_chat(user, SPAN_DANGER("Access denied.")) diff --git a/code/game/objects/items/devices/defibrillator.dm b/code/game/objects/items/devices/defibrillator.dm index 30d0467a9b76..bbeb2046aff0 100644 --- a/code/game/objects/items/devices/defibrillator.dm +++ b/code/game/objects/items/devices/defibrillator.dm @@ -175,7 +175,7 @@ playsound(get_turf(src),'sound/items/defib_charge.ogg', 25, 0) //Do NOT vary this tune, it needs to be precisely 7 seconds //Taking square root not to make defibs too fast... - if(!do_after(user, 7 SECONDS * user.get_skill_duration_multiplier(SKILL_MEDICAL), INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, H, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) + if(!do_after(user, (4 + (3 * user.get_skill_duration_multiplier(SKILL_MEDICAL))) SECONDS, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, H, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) user.visible_message(SPAN_WARNING("[user] stops setting up the paddles on [H]'s chest."), \ SPAN_WARNING("You stop setting up the paddles on [H]'s chest.")) return @@ -194,11 +194,6 @@ shock_cooldown = world.time + 10 //1 second cooldown before you can shock again var/datum/internal_organ/heart/heart = H.internal_organs_by_name["heart"] - /// Has the defib already caused the chance of heart damage, to not potentially double up later - var/heart_already_damaged = FALSE - if(heart && prob(25)) - heart.take_damage(rand(min_heart_damage_dealt, max_heart_damage_dealt), TRUE) // Make death and revival leave lasting consequences - heart_already_damaged = TRUE if(!H.is_revivable()) playsound(get_turf(src), 'sound/items/defib_failed.ogg', 25, 0) @@ -236,7 +231,7 @@ user.track_life_saved(user.job) user.life_revives_total++ H.handle_revive() - if(heart && !heart_already_damaged) + if(heart) heart.take_damage(rand(min_heart_damage_dealt, max_heart_damage_dealt), TRUE) // Make death and revival leave lasting consequences to_chat(H, SPAN_NOTICE("You suddenly feel a spark and your consciousness returns, dragging you back to the mortal plane.")) @@ -245,6 +240,8 @@ else user.visible_message(SPAN_WARNING("[icon2html(src, viewers(src))] \The [src] buzzes: Defibrillation failed. Vital signs are too weak, repair damage and try again.")) //Freak case playsound(get_turf(src), 'sound/items/defib_failed.ogg', 25, 0) + if(heart && prob(25)) + heart.take_damage(rand(min_heart_damage_dealt, max_heart_damage_dealt), TRUE) // Make death and revival leave lasting consequences /obj/item/device/defibrillator/compact_adv name = "advanced compact defibrillator" diff --git a/code/game/objects/items/devices/dummy_tablet.dm b/code/game/objects/items/devices/dummy_tablet.dm index d1036ebfa93b..3ce5f933ab94 100644 --- a/code/game/objects/items/devices/dummy_tablet.dm +++ b/code/game/objects/items/devices/dummy_tablet.dm @@ -1,14 +1,34 @@ /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" item_state = "Cotablet" var/mob/living/carbon/human/linked_dummy + ///Should the dummy be destroyed on hijack? + var/dust_on_hijack = FALSE + +/obj/item/device/professor_dummy_tablet/Initialize() + . = ..() + var/turf/actual_location = get_turf(src) + if(is_mainship_level(actual_location.z)) + dust_on_hijack = TRUE + RegisterSignal(SSdcs, COMSIG_GLOB_HIJACK_LANDED, PROC_REF(destroy_dummy_upon_hijack)) + +/obj/item/device/professor_dummy_tablet/proc/destroy_dummy_upon_hijack() + SIGNAL_HANDLER + + if(!dust_on_hijack) + return + if(!linked_dummy) + return + linked_dummy.visible_message(SPAN_WARNING("The [linked_dummy] suddenly disintegrates!")) + linked_dummy.dust(create_cause_data("hijack autodelete")) /obj/item/device/professor_dummy_tablet/Destroy() + UnregisterSignal(src, COMSIG_GLOB_HIJACK_LANDED) linked_dummy = null . = ..() @@ -21,23 +41,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/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 3f285b358fb2..05872284ecc2 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -25,7 +25,7 @@ // I'm not sure everyone will react the emag's features so please say what your opinions are of it. // // When emagged it will rig every light it replaces, which will explode when the light is on. -// This is VERY noticable, even the device's name changes when you emag it so if anyone +// This is VERY noticeable, even the device's name changes when you emag it so if anyone // examines you when you're holding it in your hand, you will be discovered. // It will also be very obvious who is setting all these lights off, since only Janitor Borgs and Janitors have easy // access to them, and only one of them can emag their device. 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 9581f63679b9..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 @@ -383,7 +383,7 @@ /obj/item/device/radio/headset/ai_integrated/receive_range(freq, level) if (disabledAi) - return -1 //Transciever Disabled. + return -1 //Transceiver Disabled. return ..(freq, level, 1) //MARINE HEADSETS @@ -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/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm index d017a430b88a..331df3ffa006 100644 --- a/code/game/objects/items/devices/whistle.dm +++ b/code/game/objects/items/devices/whistle.dm @@ -8,7 +8,8 @@ actions_types = list(/datum/action/item_action) var/volume = 60 - var/spamcheck = 0 + var/spam_cooldown_time = 10 SECONDS + COOLDOWN_DECLARE(spam_cooldown) /obj/item/device/whistle/attack_self(mob/user) ..() @@ -28,14 +29,14 @@ ..() /obj/item/device/whistle/proc/whistle_playsound(mob/user) - if (spamcheck) + if(!COOLDOWN_FINISHED(src, spam_cooldown)) + to_chat(user, SPAN_DANGER("You are out of breath after using [src]! Wait [COOLDOWN_SECONDSLEFT(src, spam_cooldown)] second\s.")) return user.visible_message(SPAN_WARNING("[user] blows into [src]!")) playsound(get_turf(src), 'sound/items/whistle.ogg', volume, 1, vary = 0) - spamcheck = 1 - addtimer(VARSET_CALLBACK(src, spamcheck, FALSE), 3 SECONDS) + COOLDOWN_START(src, spam_cooldown, spam_cooldown_time) /obj/item/device/whistle/MouseDrop(obj/over_object) if(ishuman(usr)) diff --git a/code/game/objects/items/explosives/grenades/marines.dm b/code/game/objects/items/explosives/grenades/marines.dm index 46d2d4eba921..1cd3e1577c57 100644 --- a/code/game/objects/items/explosives/grenades/marines.dm +++ b/code/game/objects/items/explosives/grenades/marines.dm @@ -705,11 +705,11 @@ det_time = 20 underslug_launchable = TRUE harmful = FALSE - var/foam_metal_type = FOAM_METAL_TYPE_ALUMINIUM + var/foam_metal_type = FOAM_METAL_TYPE_IRON /obj/item/explosive/grenade/metal_foam/prime() var/datum/effect_system/foam_spread/s = new() - s.set_up(12, get_turf(src), metal_foam = foam_metal_type) //Metalfoam 1 for aluminum foam, 2 for iron foam (Stronger), 12 amt = 2 tiles radius (5 tile length diamond) + s.set_up(12, get_turf(src), metal_foam = foam_metal_type) //12 amt = 2 tiles radius (5 tile length diamond) s.start() qdel(src) diff --git a/code/game/objects/items/explosives/mine.dm b/code/game/objects/items/explosives/mine.dm index 70a2bba6056d..45065a2de1de 100644 --- a/code/game/objects/items/explosives/mine.dm +++ b/code/game/objects/items/explosives/mine.dm @@ -266,6 +266,8 @@ /obj/effect/mine_tripwire/Destroy() if(linked_claymore) + if(linked_claymore.tripwire == src) + linked_claymore.tripwire = null linked_claymore = null . = ..() 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/hoverpack.dm b/code/game/objects/items/hoverpack.dm index 027b9d77f581..02a2d4be779a 100644 --- a/code/game/objects/items/hoverpack.dm +++ b/code/game/objects/items/hoverpack.dm @@ -180,7 +180,7 @@ var/t_dist = get_dist(user, t_turf) if(!(t_dist > max_distance)) return - var/list/turf/path = getline2(user, t_turf, FALSE) + var/list/turf/path = get_line(user, t_turf, FALSE) warning.forceMove(path[max_distance]) /obj/item/hoverpack/proc/can_use_hoverpack(mob/living/carbon/human/user) diff --git a/code/game/objects/items/props/helmetgarb.dm b/code/game/objects/items/props/helmetgarb.dm index bdf140ff11c3..5b9b81804311 100644 --- a/code/game/objects/items/props/helmetgarb.dm +++ b/code/game/objects/items/props/helmetgarb.dm @@ -450,6 +450,9 @@ shape = NVG_SHAPE_COSMETIC garbage = TRUE +/obj/item/prop/helmetgarb/helmet_nvg/cosmetic/break_nvg(mob/living/carbon/human/user, list/slashdata, mob/living/carbon/xenomorph/Xeno) + return + /obj/item/prop/helmetgarb/helmet_nvg/marsoc //for Marine Raiders name = "\improper Tactical M3 night vision goggles" desc = "With an integrated self-recharging battery, nothing can stop you. Put them on your helmet and press the button and it's go-time." diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm index 3ae57723668f..79a108d24bf1 100644 --- a/code/game/objects/items/reagent_containers/food/snacks.dm +++ b/code/game/objects/items/reagent_containers/food/snacks.dm @@ -55,7 +55,13 @@ return FALSE if(package) - to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?")) + if(user.a_intent == INTENT_HARM) + return ..() // chunk box gaming + + if(user == M) + to_chat(M, SPAN_WARNING("How do you expect to eat this with the package still on?")) + else + to_chat(M, SPAN_WARNING("[user] made an endearing attempt to force feed you a snack with the packaging still on.")) return FALSE if(istype(M, /mob/living/carbon)) @@ -641,9 +647,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 +667,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 +815,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 +862,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 +1081,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 +1094,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 +1142,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 +1698,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 +2179,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 @@ -3289,8 +3295,11 @@ name = "CHUNK box" desc = "A bar of \"The CHUNK\" brand chocolate. \"The densest chocolate permitted to exist according to federal law. We are legally required to ask you not to use this blunt object for anything other than nutrition.\"" icon_state = "chunk" - force = 15 //LEGAL LIMIT OF CHOCOLATE + hitsound = "swing_hit" + force = 15 throwforce = 10 + attack_speed = 10 + demolition_mod = 0.3 bitesize = 2 wrapper = /obj/item/trash/chunk @@ -3304,8 +3313,7 @@ desc = "A 'crate', as the marketing called it, of \"The HUNK\" brand chocolate. An early version of the CHUNK box, the HUNK bar was hit by a class action lawsuit and forced to go into bankruptcy and get bought out by the Company when hundreds of customers had their teeth crack from simply attempting to eat the bar." icon_state = "hunk" w_class = SIZE_MEDIUM - hitsound = "swing_hit" - force = 35 //ILLEGAL LIMIT OF CHOCOLATE + force = 35 throwforce = 50 bitesize = 20 wrapper = /obj/item/trash/chunk/hunk 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 f394758e5f7d..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) @@ -259,6 +259,8 @@ GLOBAL_LIST_INIT_TYPED(cardboard_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("empty magazine box (M41A Incen)", /obj/item/ammo_box/magazine/incen/empty), \ new/datum/stack_recipe("empty magazine box (M41A LE)", /obj/item/ammo_box/magazine/le/empty), \ null, \ + new/datum/stack_recipe("empty magazine box (XM51)", /obj/item/ammo_box/magazine/xm51/empty), \ + null, \ new/datum/stack_recipe("empty magazine box (M41A MK1)", /obj/item/ammo_box/magazine/mk1/empty), \ new/datum/stack_recipe("empty magazine box (M41A MK1 AP)", /obj/item/ammo_box/magazine/mk1/ap/empty), \ null, \ @@ -281,6 +283,7 @@ GLOBAL_LIST_INIT_TYPED(cardboard_recipes, /datum/stack_recipe, list ( \ new/datum/stack_recipe("empty shotgun shell box (Incendiary)", /obj/item/ammo_box/magazine/shotgun/incendiary/empty), \ new/datum/stack_recipe("empty shotgun shell box (Incendiary Buckshot)", /obj/item/ammo_box/magazine/shotgun/incendiarybuck/empty), \ new/datum/stack_recipe("empty shotgun shell box (Slugs)", /obj/item/ammo_box/magazine/shotgun/empty), \ + new/datum/stack_recipe("empty shotgun shell box (16g) (Breaching)", /obj/item/ammo_box/magazine/shotgun/light/breaching/empty), \ null, \ new/datum/stack_recipe("empty 45-70 bullets box", /obj/item/ammo_box/magazine/lever_action/empty), \ new/datum/stack_recipe("empty 45-70 bullets box (Blanks)", /obj/item/ammo_box/magazine/lever_action/training/empty), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 82e091be9008..f8a6af3cf24f 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -144,7 +144,9 @@ Also change the icon to reflect the amount of sheets, if possible.*/ list_recipes(usr, text2num(href_list["sublist"])) if(href_list["make"]) - if(amount < 1) qdel(src) //Never should happen + if(amount < 1) + qdel(src) //Never should happen + return var/list/recipes_list = recipes if(href_list["sublist"]) @@ -152,7 +154,11 @@ Also change the icon to reflect the amount of sheets, if possible.*/ recipes_list = srl.recipes var/datum/stack_recipe/R = recipes_list[text2num(href_list["make"])] var/multiplier = text2num(href_list["multiplier"]) - if(!isnum(multiplier)) + if(multiplier != multiplier) // isnan + message_admins("[key_name_admin(usr)] has attempted to multiply [src] with NaN") + return + if(!isnum(multiplier)) // this used to block nan... + message_admins("[key_name_admin(usr)] has attempted to multiply [src] with !isnum") return multiplier = round(multiplier) if(multiplier < 1) @@ -277,11 +283,15 @@ Also change the icon to reflect the amount of sheets, if possible.*/ if(used > amount) //If it's larger than what we have, no go. return FALSE amount -= used - update_icon() if(amount <= 0) - if(usr && loc == usr) - usr.temp_drop_inv_item(src) + if(loc == usr) + usr?.temp_drop_inv_item(src) + else if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src) qdel(src) + else + update_icon() return TRUE /obj/item/stack/proc/add(extra) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 29c4ec15d03a..5816b687ba6e 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -125,6 +125,9 @@ ..() /obj/item/storage/backpack/proc/is_accessible_by(mob/user) + // If the user is already looking inside this backpack. + if(user.s_active == src) + return TRUE if(ishuman(user)) var/mob/living/carbon/human/H = user if(!worn_accessible) @@ -494,6 +497,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/belt.dm b/code/game/objects/items/storage/belt.dm index 40953eb97395..a977eb880ff5 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -903,6 +903,7 @@ var/drawSound = 'sound/weapons/gun_pistol_draw.ogg' ///Used to get flap overlay states as inserting a gun changes icon state. var/base_icon + var/gun_has_gamemode_skin can_hold = list( /obj/item/weapon/gun/pistol, /obj/item/ammo_magazine/pistol, @@ -966,6 +967,14 @@ */ playsound(src, drawSound, 7, TRUE) var/image/gun_underlay = image(icon, current_gun.base_gun_icon) + if(gun_has_gamemode_skin) + switch(SSmapping.configs[GROUND_MAP].camouflage_type) + if("snow") + gun_underlay = image(icon, "s_" + current_gun.base_gun_icon) + if("desert") + gun_underlay = image(icon, "d_" + current_gun.base_gun_icon) + if("classic") + gun_underlay = image(icon, "c_" + current_gun.base_gun_icon) gun_underlay.pixel_x = holster_slots[slot]["icon_x"] gun_underlay.pixel_y = holster_slots[slot]["icon_y"] gun_underlay.color = current_gun.color @@ -1186,6 +1195,60 @@ "icon_x" = -11, "icon_y" = -5)) +#define MAXIMUM_MAGAZINE_COUNT 2 + +/obj/item/storage/belt/gun/xm51 + name = "\improper M276 pattern XM51 holster rig" + desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This version is for the XM51 breaching scattergun, allowing easier storage of the weapon. It features pouches for storing two magazines along with extra shells." + icon_state = "xm51_holster" + has_gamemode_skin = TRUE + gun_has_gamemode_skin = TRUE + storage_slots = 8 + max_w_class = 5 + can_hold = list( + /obj/item/weapon/gun/rifle/xm51, + /obj/item/ammo_magazine/rifle/xm51, + /obj/item/ammo_magazine/handful, + ) + holster_slots = list( + "1" = list( + "icon_x" = 10, + "icon_y" = -1)) + + //Keep a track of how many magazines are inside the belt. + var/magazines = 0 + +/obj/item/storage/belt/gun/xm51/attackby(obj/item/item, mob/user) + if(istype(item, /obj/item/ammo_magazine/shotgun/light/breaching)) + var/obj/item/ammo_magazine/shotgun/light/breaching/ammo_box = item + dump_ammo_to(ammo_box, user, ammo_box.transfer_handful_amount) + else + return ..() + +/obj/item/storage/belt/gun/xm51/can_be_inserted(obj/item/item, mob/user, stop_messages = FALSE) + . = ..() + if(magazines >= MAXIMUM_MAGAZINE_COUNT && istype(item, /obj/item/ammo_magazine/rifle/xm51)) + if(!stop_messages) + to_chat(usr, SPAN_WARNING("[src] can't hold any more magazines.")) + return FALSE + +/obj/item/storage/belt/gun/xm51/handle_item_insertion(obj/item/item, prevent_warning = FALSE, mob/user) + . = ..() + if(istype(item, /obj/item/ammo_magazine/rifle/xm51)) + magazines++ + +/obj/item/storage/belt/gun/xm51/remove_from_storage(obj/item/item as obj, atom/new_location) + . = ..() + if(istype(item, /obj/item/ammo_magazine/rifle/xm51)) + magazines-- + +//If a magazine disintegrates due to acid or something else while in the belt, remove it from the count. +/obj/item/storage/belt/gun/xm51/on_stored_atom_del(atom/movable/item) + if(istype(item, /obj/item/ammo_magazine/rifle/xm51)) + magazines-- + +#undef MAXIMUM_MAGAZINE_COUNT + /obj/item/storage/belt/gun/m44 name = "\improper M276 pattern M44 holster rig" desc = "The M276 is the standard load-bearing equipment of the USCM. It consists of a modular belt with various clips. This version is for the M44 magnum revolver, along with six small pouches for speedloaders. It smells faintly of hay." 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 06337995479f..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) @@ -173,7 +172,7 @@ /obj/item/storage/firstaid/synth name = "synthetic repair kit" - desc = "Contains equipment to repair a damaged synthetic. A tag on the back reads: 'Does not contain a shocking tool to repair disabled synthetics, nor a scanning device to detect specific damage; pack seperately.' With medical training you can fit this in a backpack." + desc = "Contains equipment to repair a damaged synthetic. A tag on the back reads: 'Does not contain a shocking tool to repair disabled synthetics, nor a scanning device to detect specific damage; pack separately.' With medical training you can fit this in a backpack." icon_state = "bezerk" item_state = "firstaid-advanced" can_hold = list( 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/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index 7369df548045..5be788dce25c 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -1107,8 +1107,8 @@ name = "flare pouch" desc = "A pouch designed to hold flares. Refillable with an M94 flare pack." max_w_class = SIZE_SMALL - storage_slots = 8 - max_storage_space = 8 + storage_slots = 16 + max_storage_space = 16 storage_flags = STORAGE_FLAGS_POUCH|STORAGE_USING_DRAWING_METHOD icon_state = "flare" can_hold = list(/obj/item/device/flashlight/flare,/obj/item/device/flashlight/flare/signal) diff --git a/code/game/objects/items/tools/experimental_tools.dm b/code/game/objects/items/tools/experimental_tools.dm index 221aa279a53b..dad06367b43d 100644 --- a/code/game/objects/items/tools/experimental_tools.dm +++ b/code/game/objects/items/tools/experimental_tools.dm @@ -157,7 +157,7 @@ end_cpr() return PROCESS_KILL - if(world.time > last_pump + 10 SECONDS) + if(world.time > last_pump + 7.5 SECONDS) last_pump = world.time if(H.stat == UNCONSCIOUS) var/suff = min(H.getOxyLoss(), 10) //Pre-merge level, less healing, more prevention of dying. 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/shovel_tools.dm b/code/game/objects/items/tools/shovel_tools.dm index ad74dca54e88..b4aa41c5843f 100644 --- a/code/game/objects/items/tools/shovel_tools.dm +++ b/code/game/objects/items/tools/shovel_tools.dm @@ -26,7 +26,7 @@ /obj/item/tool/shovel/update_icon() var/image/I = image(icon,src,dirt_overlay) - switch(dirt_type) // We can actually shape the color for what enviroment we dig up our dirt in. + switch(dirt_type) // We can actually shape the color for what environment we dig up our dirt in. if(DIRT_TYPE_GROUND) I.color = "#512A09" if(DIRT_TYPE_MARS) I.color = "#FF5500" if(DIRT_TYPE_SNOW) I.color = "#EBEBEB" diff --git a/code/game/objects/items/tools/surgery_tools.dm b/code/game/objects/items/tools/surgery_tools.dm index 9f6ae67baf35..a1792b574eec 100644 --- a/code/game/objects/items/tools/surgery_tools.dm +++ b/code/game/objects/items/tools/surgery_tools.dm @@ -96,6 +96,7 @@ force = 10 sharp = IS_SHARP_ITEM_ACCURATE edge = 1 + demolition_mod = 0.1 w_class = SIZE_TINY throwforce = 5 flags_item = CAN_DIG_SHRAPNEL @@ -195,16 +196,100 @@ */ /obj/item/tool/surgery/bonegel - name = "bone gel" + name = "bottle of bone gel" + desc = "A container for bone gel that often needs to be refilled from a specialized machine." + desc_lore = "Bone gel is a biological synthetic bone-analogue with the consistency of clay. It is capable of fixing hairline fractures and complex fractures alike. Bone gel should not be used to fix missing bone, as it does not replace the body's bone marrow. Overuse in a short period may cause acute immunodeficiency or anemia." icon_state = "bone-gel" - force = 0 - throwforce = 1 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 + var/unlimited_gel = FALSE + ///Time it takes per 10% of gel refilled + var/time_per_refill = 1 SECONDS + ///if the bone gel is actively being refilled + var/refilling = FALSE + + ///How much bone gel is needed to fix a fracture + var/fracture_fix_cost = 5 + ///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 + return + . += "A volume reader on the side tells you there is still [remaining_gel]% of [src] is remaining." + . += "[src] can be refilled from a osteomimetic lattice fabricator." + + if(!skillcheck(user, SKILL_MEDICAL, SKILL_MEDICAL_DOCTOR)) //Know how much you will be using if you can use it + return + . += SPAN_NOTICE("You would need to use [fracture_fix_cost]% of the bone gel to repair a fracture.") + . += SPAN_NOTICE("You would need to use [mend_bones_fix_cost]% of the bone gel to mend bones.") + +/obj/item/tool/surgery/bonegel/proc/refill_gel(obj/refilling_obj, mob/user) + if(unlimited_gel) + to_chat(user, SPAN_NOTICE("[refilling_obj] refuses to fill [src].")) + return + if(remaining_gel >= 100) + to_chat(user, SPAN_NOTICE("[src] cannot be filled with any more bone gel.")) + return + + if(refilling) + to_chat(user, SPAN_NOTICE("You are already refilling [src] from [refilling_obj].")) + return + refilling = TRUE + + while(remaining_gel < 100) + 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 + playsound(refilling_obj, "sound/machines/ping.ogg", 10) + to_chat(user, SPAN_NOTICE("You remove [src] from [refilling_obj].")) + +/obj/item/tool/surgery/bonegel/proc/use_gel(gel_cost) + if(unlimited_gel) + return TRUE + + 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 /* * Fix-o-Vein diff --git a/code/game/objects/items/toys/cards.dm b/code/game/objects/items/toys/cards.dm index 2debd83f9bab..39584b2bbb89 100644 --- a/code/game/objects/items/toys/cards.dm +++ b/code/game/objects/items/toys/cards.dm @@ -30,6 +30,10 @@ . = ..() populate_deck() +/obj/item/toy/deck/Destroy(force) + . = ..() + QDEL_NULL_LIST(cards) + /obj/item/toy/deck/get_examine_text(mob/user) . = ..() . += SPAN_NOTICE("There are [length(cards)] cards remaining in the deck.") @@ -75,6 +79,7 @@ var/obj/item/toy/handcard/H = O for(var/datum/playing_card/P as anything in H.cards) cards += P + H.cards -= P update_icon() qdel(O) user.visible_message(SPAN_NOTICE("[user] places their cards on the bottom of \the [src]."), SPAN_NOTICE("You place your cards on the bottom of the deck.")) @@ -271,6 +276,10 @@ if(!concealed) . += " ([length(cards)] card\s)" +/obj/item/toy/handcard/Destroy(force) + . = ..() + QDEL_NULL_LIST(cards) + /obj/item/toy/handcard/aceofspades icon_state = "spades_ace" desc = "An Ace of Spades" @@ -315,6 +324,9 @@ //fuck any qsorts and merge sorts. This needs to be brutally easy var/cards_length = length(cards) + if(cards_length >= 200) + to_chat(usr, SPAN_WARNING("Your hand is too big to sort. Remove some cards.")) + return for(var/i = 1 to cards_length) for(var/k = 2 to cards_length) if(cards[i].sort_index > cards[k].sort_index) @@ -331,6 +343,7 @@ var/cards_length = length(H.cards) for(var/datum/playing_card/P in H.cards) cards += P + H.cards -= P qdel(O) if(pile_state) if(concealed) @@ -339,6 +352,9 @@ user.visible_message(SPAN_NOTICE("\The [user] adds [cards_length > 1 ? "their hand" : "[cards[length(cards)].name]"] to \the [src]."), SPAN_NOTICE("You add [cards_length > 1 ? "your hand" : "[cards[length(cards)].name]"] to \the [src].")) else if(loc != user) + if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src) user.put_in_hands(src) update_icon() return @@ -390,6 +406,12 @@ /obj/item/toy/handcard/MouseDrop(atom/over) if(usr != over || !Adjacent(usr)) return + if(ismob(loc)) + return + + if(isstorage(loc)) + var/obj/item/storage/storage = loc + storage.remove_from_storage(src) usr.put_in_hands(src) /obj/item/toy/handcard/get_examine_text(mob/user) @@ -423,6 +445,12 @@ name = "a playing card" desc = "A playing card." + if(length(cards) >= 200) + // BYOND will flat out choke when using thousands of cards for some unknown reason, + // possibly due to the transformed overlay stacking below. Nobody's gonna see the + // difference past 40 or so anyway. + return + overlays.Cut() if(!cards_length) 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/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index ac500de57a93..2362a70e6e1e 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -5,15 +5,15 @@ item_state = "baton" flags_equip_slot = SLOT_WAIST force = 15 - sharp = 0 - edge = 0 throwforce = 7 + sharp = FALSE + edge = FALSE w_class = SIZE_MEDIUM attack_verb = list("beaten") req_one_access = list(ACCESS_MARINE_BRIG, ACCESS_MARINE_ARMORY, ACCESS_MARINE_SENIOR, ACCESS_WY_GENERAL, ACCESS_WY_SECURITY, ACCESS_CIVILIAN_BRIG) var/stunforce = 50 - var/status = 0 //whether the thing is on or not + var/status = FALSE //whether the thing is on or not var/obj/item/cell/bcell = null var/hitcost = 1000 //oh god why do power cells carry so much charge? We probably need to make a distinction between "industrial" sized power cells for APCs and power cells for everything else. var/has_user_lock = TRUE //whether the baton prevents people without correct access from using it. @@ -58,37 +58,6 @@ else . += SPAN_WARNING("The baton does not have a power source installed.") -/obj/item/weapon/baton/attack_hand(mob/user) - if(check_user_auth(user)) - ..() - - -/obj/item/weapon/baton/equipped(mob/user, slot) - ..() - check_user_auth(user) - - -//checks if the mob touching the baton has proper access -/obj/item/weapon/baton/proc/check_user_auth(mob/user) - if(!has_user_lock) - return TRUE - var/mob/living/carbon/human/H = user - if(istype(H)) - var/obj/item/card/id/I = H.wear_id - if(!istype(I) || !check_access(I) && status) - var/datum/effect_system/spark_spread/s = new - s.set_up(5, 1, src.loc) - H.visible_message(SPAN_NOTICE("[src] beeps as [H] picks it up"), SPAN_DANGER("WARNING: Unauthorized user detected. Denying access...")) - H.visible_message(SPAN_WARNING("[src] beeps and sends a shock through [H]'s body!")) - H.emote("pain") - s.start() - deductcharge(hitcost) - add_fingerprint(user) - return FALSE - return TRUE -/obj/item/weapon/baton/pull_response(mob/puller) - return check_user_auth(puller) - /obj/item/weapon/baton/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/cell)) @@ -132,13 +101,20 @@ add_fingerprint(user) -/obj/item/weapon/baton/attack(mob/M, mob/user) - if(has_user_lock && !skillcheck(user, SKILL_POLICE, SKILL_POLICE_SKILLED)) - to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]...")) - return - - var/stun = stunforce - var/mob/living/L = M +/obj/item/weapon/baton/attack(mob/target, mob/user) + var/mob/living/carbon/human/real_user = user + var/mob/living/carbon/human/human_target = target + if(has_user_lock && !skillcheck(real_user, SKILL_POLICE, SKILL_POLICE_SKILLED)) + if(prob(70) && status) + to_chat(real_user, SPAN_WARNING("You hit yourself with the [src] during the struggle...")) + real_user.drop_held_item() + real_user.apply_effect(1,STUN) + human_target = real_user + if(prob(20) && !status) //a relatively reliable melee weapon when turned off. + to_chat(real_user, SPAN_WARNING("You grab the [src] incorrectly twisting your hand in the process.")) + real_user.drop_held_item() + real_user.apply_effect(1,STUN) + real_user.apply_damage(force, BRUTE, pick("l_hand","r_hand"), no_limb_loss = TRUE) var/target_zone = check_zone(user.zone_selected) if(user.a_intent == INTENT_HARM) @@ -150,40 +126,42 @@ else //copied from human_defense.dm - human defence code should really be refactored some time. - if (ishuman(L)) + if (ishuman(human_target)) if(!target_zone) //shouldn't ever happen - L.visible_message(SPAN_DANGER("[user] misses [L] with \the [src]!")) + human_target.visible_message(SPAN_DANGER("[user] misses [human_target] with \the [src]!")) return FALSE - var/mob/living/carbon/human/H = L + var/mob/living/carbon/human/H = human_target var/obj/limb/affecting = H.get_limb(target_zone) if (affecting) if(!status) - L.visible_message(SPAN_WARNING("[L] has been prodded in the [affecting.display_name] with [src] by [user]. Luckily it was off.")) + human_target.visible_message(SPAN_WARNING("[human_target] has been prodded in the [affecting.display_name] with [src] by [user]. Luckily it was off.")) return TRUE else - H.visible_message(SPAN_DANGER("[L] has been prodded in the [affecting.display_name] with [src] by [user]!")) + H.visible_message(SPAN_DANGER("[human_target] has been prodded in the [affecting.display_name] with [src] by [user]!")) else if(!status) - L.visible_message(SPAN_WARNING("[L] has been prodded with [src] by [user]. Luckily it was off.")) + human_target.visible_message(SPAN_WARNING("[human_target] has been prodded with [src] by [user]. Luckily it was off.")) return TRUE else - L.visible_message(SPAN_DANGER("[L] has been prodded with [src] by [user]!")) + human_target.visible_message(SPAN_DANGER("[human_target] has been prodded with [src] by [user]!")) //stun effects - if(!isyautja(L) && !isxeno(L)) //Xenos and Predators are IMMUNE to all baton stuns. - L.emote("pain") - L.apply_stamina_damage(stun, target_zone, ARMOR_ENERGY) + if(!isyautja(human_target) && !isxeno(human_target)) //Xenos and Predators are IMMUNE to all baton stuns. + human_target.emote("pain") + human_target.apply_stamina_damage(stunforce, target_zone, ARMOR_ENERGY) + human_target.sway_jitter(2,1) + // Logging - if(user == L) + if(user == human_target) user.attack_log += "\[[time_stamp()]\] [key_name(user)] stunned themselves with [src] in [get_area(user)]" else - msg_admin_attack("[key_name(user)] stunned [key_name(L)] with [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z) - var/logentry = "\[[time_stamp()]\] [key_name(user)] stunned [key_name(L)] with [src] in [get_area(user)]" - L.attack_log += logentry + msg_admin_attack("[key_name(user)] stunned [key_name(human_target)] with [src] in [get_area(user)] ([user.loc.x],[user.loc.y],[user.loc.z]).", user.loc.x, user.loc.y, user.loc.z) + var/logentry = "\[[time_stamp()]\] [key_name(user)] stunned [key_name(human_target)] with [src] in [get_area(user)]" + human_target.attack_log += logentry user.attack_log += logentry playsound(loc, 'sound/weapons/Egloves.ogg', 25, 1, 6) diff --git a/code/game/objects/structures/barricade/barricade.dm b/code/game/objects/structures/barricade/barricade.dm index 0a37e4bcec59..edb13ac16e5a 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) . = ..() @@ -324,7 +333,7 @@ take_damage(dam * burn_flame_multiplier) /obj/structure/barricade/proc/hit_barricade(obj/item/item) - take_damage(item.force * 0.5 * brute_multiplier) + take_damage(item.force * item.demolition_mod * 0.5 * brute_multiplier) /obj/structure/barricade/proc/take_damage(damage) for(var/obj/structure/barricade/barricade in get_step(src,dir)) //discourage double-stacking barricades by removing health from opposing barricade @@ -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..2fde8de3fe98 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) @@ -198,3 +198,11 @@ /obj/structure/barricade/handrail/sandstone/b icon_state = "hr_sandstone_b" + +/obj/structure/barricade/handrail/pizza + name = "\improper diner half-wall" + icon_state = "hr_sandstone" //temp, getting sprites soontm + color = "#b51c0b" + can_be_reinforced = FALSE + projectile_coverage = PROJECTILE_COVERAGE_LOW + layer = MOB_LAYER + 0.01 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..8fcf7cec41ad 100644 --- a/code/game/objects/structures/barricade/misc.dm +++ b/code/game/objects/structures/barricade/misc.dm @@ -44,15 +44,15 @@ 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) if("fire") - take_damage( I.force * 0.6 ) + take_damage( I.force * I.demolition_mod * 0.6 ) if("brute") - take_damage( I.force * 0.3 ) + take_damage( I.force * I.demolition_mod * 0.3 ) return @@ -101,11 +101,11 @@ if(try_nailgun_usage(W, user)) return - . = ..() + return ..() /obj/structure/barricade/wooden/hit_barricade(obj/item/I) switch(I.damtype) if("fire") - take_damage( I.force * 1.5 ) + take_damage( I.force * I.demolition_mod * 1.5 ) if("brute") - take_damage( I.force * 0.75 ) + take_damage( I.force * I.demolition_mod * 0.75 ) 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/cargo_container.dm b/code/game/objects/structures/cargo_container.dm index b5c38874cfb8..66d0cc8c18e0 100644 --- a/code/game/objects/structures/cargo_container.dm +++ b/code/game/objects/structures/cargo_container.dm @@ -11,7 +11,7 @@ //Note, for Watatsumi, Grant, and Arious, "left" and "leftmid" are both the left end of the container, but "left" is generic and "leftmid" has the Sat Mover mark on it /obj/structure/cargo_container/watatsumi name = "Watatsumi Cargo Container" - desc = "A huge industrial shipping container.\nThis one is from Watatsumi, a manufacturer of a variety of electronical and mechanical products.\nAtleast, that is what is says on the container. You have literally never heard of this company before." + desc = "A huge industrial shipping container.\nThis one is from Watatsumi, a manufacturer of a variety of electronical and mechanical products.\nAt least, that is what is says on the container. You have literally never heard of this company before." /obj/structure/cargo_container/watatsumi/left icon_state = "watatsumi_l" 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..4f7b14d64092 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,61 @@ . = ..() 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() + . = ..() + new /mob/living/carbon/human/professor_dummy(src) + +/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/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/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/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/displaycase.dm b/code/game/objects/structures/displaycase.dm index 8439a887e57f..bfc9bfa7833e 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -57,7 +57,7 @@ /obj/structure/displaycase/attackby(obj/item/W as obj, mob/user as mob) - src.health -= W.force + src.health -= W.force * W.demolition_mod src.healthcheck() ..() return diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm index db24dfdfebdd..60a8682a4930 100644 --- a/code/game/objects/structures/fence.dm +++ b/code/game/objects/structures/fence.dm @@ -170,9 +170,9 @@ else switch(W.damtype) if("fire") - health -= W.force + health -= W.force * W.demolition_mod if("brute") - health -= W.force * 0.1 + health -= W.force * W.demolition_mod * 0.1 healthcheck(1, 1, user, W) ..() diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm index fbae7a387a63..3708b15b25e6 100644 --- a/code/game/objects/structures/lamarr_cage.dm +++ b/code/game/objects/structures/lamarr_cage.dm @@ -53,8 +53,8 @@ /obj/structure/lamarr/attackby(obj/item/W as obj, mob/user as mob) - src.health -= W.force - src.healthcheck() + health -= W.force * W.demolition_mod + healthcheck() ..() return diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 25dc0040e2ac..0fd22361c67b 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -102,7 +102,7 @@ Dismantle() else if(!(W.flags_item & NOBLUDGEON) && W.force) user.animation_attack_on(src) - hardness -= W.force/100 + hardness -= W.force/100 * W.demolition_mod to_chat(user, "You hit the [name] with your [W.name]!") CheckHardness() else diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index a8d76843313a..0ee7453782d9 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -121,10 +121,10 @@ playsound(loc, 'sound/effects/Glasshit.ogg', 25, 1) return if(shattered) - playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 25, 1) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 25, 1) user.visible_message(SPAN_WARNING("[user] hits [src] with [I], but it's already broken!"), SPAN_WARNING("You hit [src] with [I], but it's already broken!")) return - if(prob(I.force * 2)) + if(prob(I.force * I.demolition_mod * 2)) user.visible_message(SPAN_WARNING("[user] smashes [src] with [I]!"), SPAN_WARNING("You smash [src] with [I]!")) shatter() else diff --git a/code/game/objects/structures/prop_mech.dm b/code/game/objects/structures/prop_mech.dm new file mode 100644 index 000000000000..c2df2eb93c9c --- /dev/null +++ b/code/game/objects/structures/prop_mech.dm @@ -0,0 +1,175 @@ +/obj/structure/prop/mech + icon = 'icons/obj/structures/props/mech.dmi' + +/obj/structure/prop/mech/hydralic_clamp + name = "Hydraulic Clamp" + icon_state = "mecha_clamp" + +/obj/structure/prop/mech/drill + name = "Drill" + desc = "This is the drill that'll pierce the heavens!" + icon_state = "mecha_drill" + +/obj/structure/prop/mech/armor_booster + name = "Armor Booster Module (Close Combat Weaponry)" + desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate." + icon_state = "mecha_abooster_ccw" + +/obj/structure/prop/mech/repair_droid + name = "Repair Droid" + desc = "Automated repair droid. Scans exosuit for damage and repairs it. Can fix almost all types of external or internal damage." + icon_state = "repair_droid" + +/obj/structure/prop/mech/tesla_energy_relay + name = "Energy Relay" + desc = "Wirelessly drains energy from any available power channel in area. The performance index is quite low." + icon_state = "tesla" + +/obj/structure/prop/mech/parts + name = "mecha part" + flags_atom = FPRINT|CONDUCT + +/obj/structure/prop/mech/parts/chassis + name="Mecha Chassis" + icon_state = "backbone" + +// ripley to turn into P-1000 an Older version of the P-5000 to anchor it more into the lore... +/obj/structure/prop/mech/parts/chassis/ripley + name = "P-1000 Chassis" + icon_state = "ripley_chassis" +/obj/structure/prop/mech/parts/chassis/firefighter + name = "Firefighter Chassis" + icon_state = "ripley_chassis" +/obj/structure/prop/mech/parts/ripley_torso + name="P-1000 Torso" + desc="A torso part of P-1000 APLU. Contains power unit, processing core and life support systems." + icon_state = "ripley_harness" +/obj/structure/prop/mech/parts/ripley_left_arm + name="P-1000 Left Arm" + desc="A P-1000 APLU left arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "ripley_l_arm" +/obj/structure/prop/mech/parts/ripley_right_arm + name="P-1000 Right Arm" + desc="A P-1000 APLU right arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "ripley_r_arm" +/obj/structure/prop/mech/parts/ripley_left_leg + name="P-1000 Left Leg" + desc="A P-1000 APLU left leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "ripley_l_leg" +/obj/structure/prop/mech/parts/ripley_right_leg + name="P-1000 Right Leg" + desc="A P-1000 APLU right leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "ripley_r_leg" + +//gygax turned into MAX (Mobile Assault Exo-Warrior)look like a gygax from afar +/obj/structure/prop/mech/parts/chassis/gygax + name = "MAX Chassis" + icon_state = "gygax_chassis" +/obj/structure/prop/mech/parts/gygax_torso + name="MAX Torso" + desc="A torso part of MAX. Contains power unit, processing core and life support systems. Has an additional equipment slot." + icon_state = "gygax_harness" +/obj/structure/prop/mech/parts/gygax_head + name="MAX Head" + desc="A MAX head. Houses advanced surveilance and targeting sensors." + icon_state = "gygax_head" +/obj/structure/prop/mech/parts/gygax_left_arm + name="MAX Left Arm" + desc="A MAX left arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "gygax_l_arm" +/obj/structure/prop/mech/parts/gygax_right_arm + name="MAX Right Arm" + desc="A MAX right arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "gygax_r_arm" +/obj/structure/prop/mech/parts/gygax_left_leg + name="MAX Left Leg" + icon_state = "gygax_l_leg" +/obj/structure/prop/mech/parts/gygax_right_leg + name="MAX Right Leg" + icon_state = "gygax_r_leg" +/obj/structure/prop/mech/parts/gygax_armor + name="MAX Armor Plates" + icon_state = "gygax_armor" + +// durand MOX (mobile offensive exo-warrior) look like a durand from afar. +/obj/structure/prop/mech/parts/chassis/durand + name = "MOX Chassis" + icon_state = "durand_chassis" +/obj/structure/prop/mech/parts/durand_torso + name="MOX Torso" + icon_state = "durand_harness" +/obj/structure/prop/mech/parts/durand_head + name="MOX Head" + icon_state = "durand_head" +/obj/structure/prop/mech/parts/durand_left_arm + name="MOX Left Arm" + icon_state = "durand_l_arm" +/obj/structure/prop/mech/parts/durand_right_arm + name="MOX Right Arm" + icon_state = "durand_r_arm" +/obj/structure/prop/mech/parts/durand_left_leg + name="MOX Left Leg" + icon_state = "durand_l_leg" +/obj/structure/prop/mech/parts/durand_right_leg + name="MOX Right Leg" + icon_state = "durand_r_leg" +/obj/structure/prop/mech/parts/durand_armor + name="MOX Armor Plates" + icon_state = "durand_armor" + +// phazon currently not in use. could be deleted... +/obj/structure/prop/mech/parts/chassis/phazon + name = "Phazon Chassis" + icon_state = "phazon_chassis" +/obj/structure/prop/mech/parts/phazon_torso + name="Phazon Torso" + icon_state = "phazon_harness" +/obj/structure/prop/mech/parts/phazon_head + name="Phazon Head" + icon_state = "phazon_head" +/obj/structure/prop/mech/parts/phazon_left_arm + name="Phazon Left Arm" + icon_state = "phazon_l_arm" +/obj/structure/prop/mech/parts/phazon_right_arm + name="Phazon Right Arm" + icon_state = "phazon_r_arm" +/obj/structure/prop/mech/parts/phazon_left_leg + name="Phazon Left Leg" + icon_state = "phazon_l_leg" +/obj/structure/prop/mech/parts/phazon_right_leg + name="Phazon Right Leg" + icon_state = "phazon_r_leg" +/obj/structure/prop/mech/parts/phazon_armor_plates + name="Phazon Armor Plates" + icon_state = "phazon_armor" + +// odysseus currently not in use could be deleted... +/obj/structure/prop/mech/parts/chassis/odysseus + name = "Odysseus Chassis" + icon_state = "odysseus_chassis" +/obj/structure/prop/mech/parts/odysseus_head + name="Odysseus Head" + icon_state = "odysseus_head" +/obj/structure/prop/mech/parts/odysseus_torso + name="Odysseus Torso" + desc="A torso part of Odysseus. Contains power unit, processing core and life support systems." + icon_state = "odysseus_torso" +/obj/structure/prop/mech/parts/odysseus_left_arm + name="Odysseus Left Arm" + desc="An Odysseus left arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "odysseus_l_arm" +/obj/structure/prop/mech/parts/odysseus_right_arm + name="Odysseus Right Arm" + desc="An Odysseus right arm. Data and power sockets are compatible with most exosuit tools." + icon_state = "odysseus_r_arm" +/obj/structure/prop/mech/parts/odysseus_left_leg + name="Odysseus Left Leg" + desc="An Odysseus left leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "odysseus_l_leg" +/obj/structure/prop/mech/parts/odysseus_right_leg + name="Odysseus Right Leg" + desc="A Odysseus right leg. Contains somewhat complex servodrives and balance maintaining systems." + icon_state = "odysseus_r_leg" +/obj/structure/prop/mech/parts/odysseus_armor_plates + name="Odysseus Armor Plates" + icon_state = "odysseus_armor" diff --git a/code/game/objects/structures/props.dm b/code/game/objects/structures/props.dm index e14eee13b1dd..8c03a4dbd66c 100644 --- a/code/game/objects/structures/props.dm +++ b/code/game/objects/structures/props.dm @@ -235,212 +235,6 @@ /obj/structure/prop/dam/wide_boulder/boulder1 icon_state = "boulder1" - -/obj/structure/prop/mech - icon = 'icons/obj/structures/props/mech.dmi' - -/obj/structure/prop/mech/hydralic_clamp - name = "Hydraulic Clamp" - icon_state = "mecha_clamp" - -/obj/structure/prop/mech/drill - name = "Drill" - desc = "This is the drill that'll pierce the heavens!" - icon_state = "mecha_drill" - -/obj/structure/prop/mech/armor_booster - name = "Armor Booster Module (Close Combat Weaponry)" - desc = "Boosts exosuit armor against armed melee attacks. Requires energy to operate." - icon_state = "mecha_abooster_ccw" - -/obj/structure/prop/mech/repair_droid - name = "Repair Droid" - desc = "Automated repair droid. Scans exosuit for damage and repairs it. Can fix almost all types of external or internal damage." - icon_state = "repair_droid" - -/obj/structure/prop/mech/tesla_energy_relay - name = "Energy Relay" - desc = "Wirelessly drains energy from any available power channel in area. The performance index is quite low." - icon_state = "tesla" - -/obj/structure/prop/mech/mech_parts - name = "mecha part" - flags_atom = FPRINT|CONDUCT - -/obj/structure/prop/mech/mech_parts/chassis - name="Mecha Chassis" - icon_state = "backbone" - -/obj/structure/prop/mech/mech_parts/chassis/ripley - name = "Ripley Chassis" - icon_state = "ripley_chassis" - -/obj/structure/prop/mech/mech_parts/part/ripley_torso - name="Ripley Torso" - desc="A torso part of Ripley APLU. Contains power unit, processing core and life support systems." - icon_state = "ripley_harness" - -/obj/structure/prop/mech/mech_parts/part/ripley_left_arm - name="Ripley Left Arm" - desc="A Ripley APLU left arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "ripley_l_arm" - -/obj/structure/prop/mech/mech_parts/part/ripley_right_arm - name="Ripley Right Arm" - desc="A Ripley APLU right arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "ripley_r_arm" - -/obj/structure/prop/mech/mech_parts/part/ripley_left_leg - name="Ripley Left Leg" - desc="A Ripley APLU left leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "ripley_l_leg" - -/obj/structure/prop/mech/mech_parts/part/ripley_right_leg - name="Ripley Right Leg" - desc="A Ripley APLU right leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "ripley_r_leg" - -/obj/structure/prop/mech/mech_parts/chassis/gygax - name = "Gygax Chassis" - icon_state = "gygax_chassis" - -/obj/structure/prop/mech/mech_parts/part/gygax_torso - name="Gygax Torso" - desc="A torso part of Gygax. Contains power unit, processing core and life support systems. Has an additional equipment slot." - icon_state = "gygax_harness" - -/obj/structure/prop/mech/mech_parts/part/gygax_head - name="Gygax Head" - desc="A Gygax head. Houses advanced surveilance and targeting sensors." - icon_state = "gygax_head" - -/obj/structure/prop/mech/mech_parts/part/gygax_left_arm - name="Gygax Left Arm" - desc="A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons." - icon_state = "gygax_l_arm" - -/obj/structure/prop/mech/mech_parts/part/gygax_right_arm - name="Gygax Right Arm" - desc="A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons." - icon_state = "gygax_r_arm" - -/obj/structure/prop/mech/mech_parts/part/gygax_left_leg - name="Gygax Left Leg" - icon_state = "gygax_l_leg" - -/obj/structure/prop/mech/mech_parts/part/gygax_right_leg - name="Gygax Right Leg" - icon_state = "gygax_r_leg" - -/obj/structure/prop/mech/mech_parts/part/gygax_armor - name="Gygax Armor Plates" - icon_state = "gygax_armor" - -/obj/structure/prop/mech/mech_parts/chassis/durand - name = "Durand Chassis" - icon_state = "durand_chassis" - -/obj/structure/prop/mech/mech_parts/part/durand_torso - name="Durand Torso" - icon_state = "durand_harness" - -/obj/structure/prop/mech/mech_parts/part/durand_head - name="Durand Head" - icon_state = "durand_head" - -/obj/structure/prop/mech/mech_parts/part/durand_left_arm - name="Durand Left Arm" - icon_state = "durand_l_arm" - -/obj/structure/prop/mech/mech_parts/part/durand_right_arm - name="Durand Right Arm" - icon_state = "durand_r_arm" - -/obj/structure/prop/mech/mech_parts/part/durand_left_leg - name="Durand Left Leg" - icon_state = "durand_l_leg" - -/obj/structure/prop/mech/mech_parts/part/durand_right_leg - name="Durand Right Leg" - icon_state = "durand_r_leg" - -/obj/structure/prop/mech/mech_parts/part/durand_armor - name="Durand Armor Plates" - icon_state = "durand_armor" - -/obj/structure/prop/mech/mech_parts/chassis/firefighter - name = "Firefighter Chassis" - icon_state = "ripley_chassis" - -/obj/structure/prop/mech/mech_parts/chassis/phazon - name = "Phazon Chassis" - icon_state = "phazon_chassis" - -/obj/structure/prop/mech/mech_parts/part/phazon_torso - name="Phazon Torso" - icon_state = "phazon_harness" - -/obj/structure/prop/mech/mech_parts/part/phazon_head - name="Phazon Head" - icon_state = "phazon_head" - -/obj/structure/prop/mech/mech_parts/part/phazon_left_arm - name="Phazon Left Arm" - icon_state = "phazon_l_arm" - -/obj/structure/prop/mech/mech_parts/part/phazon_right_arm - name="Phazon Right Arm" - icon_state = "phazon_r_arm" - -/obj/structure/prop/mech/mech_parts/part/phazon_left_leg - name="Phazon Left Leg" - icon_state = "phazon_l_leg" - -/obj/structure/prop/mech/mech_parts/part/phazon_right_leg - name="Phazon Right Leg" - icon_state = "phazon_r_leg" - -/obj/structure/prop/mech/mech_parts/part/phazon_armor_plates - name="Phazon Armor Plates" - icon_state = "phazon_armor" - -/obj/structure/prop/mech/mech_parts/chassis/odysseus - name = "Odysseus Chassis" - icon_state = "odysseus_chassis" - -/obj/structure/prop/mech/mech_parts/part/odysseus_head - name="Odysseus Head" - icon_state = "odysseus_head" - -/obj/structure/prop/mech/mech_parts/part/odysseus_torso - name="Odysseus Torso" - desc="A torso part of Odysseus. Contains power unit, processing core and life support systems." - icon_state = "odysseus_torso" - -/obj/structure/prop/mech/mech_parts/part/odysseus_left_arm - name="Odysseus Left Arm" - desc="An Odysseus left arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "odysseus_l_arm" - -/obj/structure/prop/mech/mech_parts/part/odysseus_right_arm - name="Odysseus Right Arm" - desc="An Odysseus right arm. Data and power sockets are compatible with most exosuit tools." - icon_state = "odysseus_r_arm" - -/obj/structure/prop/mech/mech_parts/part/odysseus_left_leg - name="Odysseus Left Leg" - desc="An Odysseus left leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "odysseus_l_leg" - -/obj/structure/prop/mech/mech_parts/part/odysseus_right_leg - name="Odysseus Right Leg" - desc="A Odysseus right leg. Contains somewhat complex servodrives and balance maintaining systems." - icon_state = "odysseus_r_leg" - -/obj/structure/prop/mech/mech_parts/part/odysseus_armor_plates - name="Odysseus Armor Plates" - icon_state = "odysseus_armor" - //Use these to replace non-functional machinery 'props' around maps from bay12 /obj/structure/prop/server_equipment @@ -1132,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 6471dfa21520..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 @@ -148,13 +149,6 @@ icon_state = "ammoniatank" chemical = "ammonia" -/obj/structure/reagent_dispensers/oxygentank - name = "oxygentank" - desc = "An oxygen tank" - icon = 'icons/obj/objects.dmi' - icon_state = "oxygentank" - chemical = "oxygen" - /obj/structure/reagent_dispensers/acidtank name = "sulfuric acid tank" desc = "A sulfuric acid tank" @@ -394,6 +388,13 @@ icon_state = "hydrogentank" chemical = "hydrogen" +/obj/structure/reagent_dispensers/fueltank/oxygentank + name = "oxygentank" + desc = "An oxygen tank" + icon = 'icons/obj/objects.dmi' + icon_state = "oxygentank" + chemical = "oxygen" + /obj/structure/reagent_dispensers/fueltank/custom name = "reagent tank" desc = "A reagent tank, typically used to store large quantities of chemicals." @@ -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/signs.dm b/code/game/objects/structures/signs.dm index adabf0c54141..e19d190c7442 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -305,7 +305,7 @@ icon_state = "lifesupport" /obj/structure/sign/safety/maint - name = "maintenace semiotic" + name = "maintenance semiotic" desc = "Semiotic Standard denoting the nearby presence of maintenance access." icon_state = "maint" 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/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 7469a568f7e0..eb9b5aa5e418 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -20,6 +20,7 @@ var/buildstackamount = 1 var/foldabletype //To fold into an item (e.g. roller bed item) var/buckling_y = 0 //pixel y shift to give to the buckled mob. + var/buckling_x = 0 //pixel x shift to give to the buckled mob. var/obj/structure/closet/bodybag/buckled_bodybag var/accepts_bodybag = FALSE //Whether you can buckle bodybags to this bed var/base_bed_icon //Used by beds that change sprite when something is buckled to them @@ -60,11 +61,15 @@ if(. && buckled_mob == M) M.pixel_y = buckling_y M.old_y = buckling_y + M.pixel_x = buckling_x + M.old_x = buckling_x if(base_bed_icon) density = TRUE else M.pixel_y = initial(buckled_mob.pixel_y) M.old_y = initial(buckled_mob.pixel_y) + M.pixel_x = initial(buckled_mob.pixel_x) + M.old_x = initial(buckled_mob.pixel_x) if(base_bed_icon) density = FALSE @@ -161,11 +166,14 @@ if(ismob(G.grabbed_thing)) var/mob/M = G.grabbed_thing var/atom/blocker = LinkBlocked(user, user.loc, loc) + if(!Adjacent(M)) + visible_message(SPAN_DANGER("[M] is too far to place onto [src].")) + return FALSE if(blocker) to_chat(user, SPAN_WARNING("\The [blocker] is in the way!")) - else - to_chat(user, SPAN_NOTICE("You place [M] on [src].")) - M.forceMove(loc) + return FALSE + to_chat(user, SPAN_NOTICE("You place [M] on [src].")) + M.forceMove(loc) return TRUE else diff --git a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm index 63681d948620..c3f0b97e509a 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm @@ -18,8 +18,6 @@ var/mob/dead/observer/ghost_of_buckled_mob = null var/hivenumber = XENO_HIVE_NORMAL var/force_nest = FALSE - /// counterpart to buckling_y --> offsets the buckled mob when it buckles - var/list/buckling_x /obj/structure/bed/nest/Initialize(mapload, hive) . = ..() @@ -116,8 +114,7 @@ playsound(loc, "alien_resin_move", 50) if(ishuman(buckled_mob)) var/mob/living/carbon/human/H = buckled_mob - user.attack_log += "\[[time_stamp()]\] Unnested [key_name(H)] at [get_location_in_text(H)]" - H.attack_log += "\[[time_stamp()]\] Unnested by [key_name(user)] at [get_location_in_text(H)]" + log_interact(user, H, "[key_name(user)] unnested [key_name(H)] at [get_area_name(loc)]") unbuckle() return if(is_sharp(W)) @@ -130,8 +127,7 @@ playsound(loc, "alien_resin_move", 50) if(ishuman(buckled_mob)) var/mob/living/carbon/human/H = buckled_mob - user.attack_log += "\[[time_stamp()]\] Unnested [key_name(H)] at [get_location_in_text(H)]" - H.attack_log += "\[[time_stamp()]\] Unnested by [key_name(user)] at [get_location_in_text(H)]" + log_interact(user, H, "[key_name(user)] unnested [key_name(H)] at [get_area_name(loc)]") unbuckle() return health = max(0, health - W.force) @@ -180,8 +176,9 @@ playsound(loc, "alien_resin_move", 50) if(ishuman(buckled_mob)) var/mob/living/carbon/human/H = buckled_mob - user.attack_log += "\[[time_stamp()]\] Unnested [key_name(H)] at [get_location_in_text(H)]" - H.attack_log += "\[[time_stamp()]\] Unnested by [key_name(user)] at [get_location_in_text(H)]" + if(isxeno(user)) + msg_admin_niche("[key_name(user)] unnested [key_name(H)] at [get_location_in_text(H)] [ADMIN_JMP(loc)]") + log_interact(user, H, "[key_name(user)] unnested [key_name(H)] at [get_area_name(loc)]") unbuckle() return @@ -248,6 +245,7 @@ do_buckle(mob, user) ADD_TRAIT(mob, TRAIT_NESTED, TRAIT_SOURCE_BUCKLE) + SEND_SIGNAL(mob, COMSIG_MOB_NESTED, user) if(!human) return TRUE diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 1856dc5dd750..a1542f7baf75 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -353,7 +353,11 @@ set category = "Object" set src in oview(1) - if(!can_touch(usr) || ismouse(usr)) + if(!can_touch(usr)) + return + + if(usr.mob_size == MOB_SIZE_SMALL) + to_chat(usr, SPAN_WARNING("[isxeno(usr) ? "We are" : "You're"] too small to flip [src].")) return if(usr.a_intent != INTENT_HARM) 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..81d7f24f054e 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -286,7 +286,7 @@ to_chat(user, (state ? SPAN_NOTICE("You have pried the window into the frame.") : SPAN_NOTICE("You have pried the window out of the frame."))) else if(!not_damageable) //Impossible to destroy - health -= W.force + health -= W.force * W.demolition_mod if(health <= 7 && !reinf && !static_frame && !not_deconstructable) anchored = FALSE update_nearby_icons() @@ -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/runtimes.dm b/code/game/runtimes.dm index 2cdc955aa426..41c18c221ae7 100644 --- a/code/game/runtimes.dm +++ b/code/game/runtimes.dm @@ -28,7 +28,7 @@ GLOBAL_REAL_VAR(total_runtimes) if(!full_init_runtimes) full_init_runtimes = list() - // If this occured during early init, we store the full error to write it to world.log when it's available + // If this occurred during early init, we store the full error to write it to world.log when it's available if(!runtime_logging_ready) full_init_runtimes += E.desc diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 4d67bb836685..c4698e5722c5 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -383,7 +383,7 @@ GLOBAL_DATUM_INIT(supply_controller, /datum/controller/supply, new()) ///How close the CMB is to investigating | 100 sends an ERT var/black_market_heat = 0 - /// This contains a list of all typepaths of sold items and how many times they've been recieved. Used to calculate points dropoff (Can't send down a hundred blue souto cans for infinite points) + /// This contains a list of all typepaths of sold items and how many times they've been received. Used to calculate points dropoff (Can't send down a hundred blue souto cans for infinite points) var/list/black_market_sold_items /// If the players killed him by sending a live hostile below.. this goes false and they can't order any more contraband. @@ -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 ac1635f151dd..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 @@ -910,10 +914,67 @@ allow_construction = FALSE supports_surgery = FALSE +/turf/open/shuttle/can_surgery + allow_construction = TRUE + supports_surgery = TRUE + +/turf/open/shuttle/can_surgery/blue + name = "floor" + icon_state = "floor" + icon = 'icons/turf/shuttle.dmi' + +/turf/open/shuttle/can_surgery/red + icon_state = "floor6" + +/turf/open/shuttle/can_surgery/black + icon_state = "floor7" + /turf/open/shuttle/dropship name = "floor" icon_state = "rasputin1" +/turf/open/shuttle/dropship/can_surgery + icon_state = "rasputin1" + allow_construction = TRUE + supports_surgery = TRUE + +/turf/open/shuttle/dropship/can_surgery/light_grey_middle + icon_state = "rasputin13" + +/turf/open/shuttle/dropship/can_surgery/light_grey_top + icon_state = "rasputin10" + +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right + icon_state = "floor8" + +/*same two but helps with finding if you think top to bottom or up to down*/ +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down + icon_state = "rasputin3" + +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom + icon_state = "rasputin3" + +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left + icon_state = "rasputin6" + +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left + icon_state = "rasputin4" + +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right + icon_state = "rasputin7" + +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right + icon_state = "rasputin8" + +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right + icon_state = "rasputin14" + +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down + icon_state = "rasputin15" + +/turf/open/shuttle/dropship/can_surgery/dark_grey + icon_state = "rasputin15" + /turf/open/shuttle/predship name = "ship floor" icon_state = "floor6" 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 3e87af54c7e0..7b26854737cc 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) . = ..() @@ -767,6 +799,14 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) icon_state = "thickresin" walltype = WALL_THICKRESIN +/turf/closed/wall/resin/tutorial + name = "tutorial resin wall" + desc = "Weird slime solidified into a wall. Remarkably resilient." + hivenumber = XENO_HIVE_TUTORIAL + +/turf/closed/wall/resin/tutorial/attack_alien(mob/living/carbon/xenomorph/xeno) + return + /turf/closed/wall/resin/membrane name = "resin membrane" desc = "Weird slime translucent enough to let light pass through." @@ -1004,7 +1044,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) /obj/structure/alien/movable_wall/attackby(obj/item/W, mob/living/user) if(!(W.flags_item & NOBLUDGEON)) user.animation_attack_on(src) - take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER, user) + take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER*W.demolition_mod, user) playsound(src, "alien_resin_break", 25) else return attack_hand(user) @@ -1240,7 +1280,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) if(!(W.flags_item & NOBLUDGEON)) user.animation_attack_on(src) - take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER, user) + take_damage(W.force*RESIN_MELEE_DAMAGE_MULTIPLIER*W.demolition_mod, user) playsound(src, "alien_resin_break", 25) else return attack_hand(user) 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 6b80d19bbabf..05506804790a 100644 --- a/code/game/verbs/records.dm +++ b/code/game/verbs/records.dm @@ -97,13 +97,13 @@ return target = ckey(target) - if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_COUNCIL) + if(check_whitelist_status(WHITELIST_COMMANDER_COUNCIL)) options |= "Commanding Officer" edit_C = TRUE - if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_COUNCIL) + if(check_whitelist_status(WHITELIST_SYNTHETIC_COUNCIL)) options |= "Synthetic" edit_S = TRUE - if(GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_COUNCIL) + if(check_whitelist_status(WHITELIST_YAUTJA_COUNCIL)) options |= "Yautja" edit_Y = TRUE @@ -116,17 +116,17 @@ if("Merit") show_other_record(NOTE_MERIT, choice, target, TRUE) if("Commanding Officer") - if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_COMMANDER_LEADER)) + if(MA || check_whitelist_status(WHITELIST_COMMANDER_LEADER)) show_other_record(NOTE_COMMANDER, choice, target, TRUE, TRUE) else show_other_record(NOTE_COMMANDER, choice, target, edit_C) if("Synthetic") - if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_SYNTHETIC_LEADER)) + if(MA || check_whitelist_status(WHITELIST_SYNTHETIC_LEADER)) show_other_record(NOTE_SYNTHETIC, choice, target, TRUE, TRUE) else show_other_record(NOTE_SYNTHETIC, choice, target, edit_S) if("Yautja") - if(MA || (GLOB.RoleAuthority.roles_whitelist[src.ckey] & WHITELIST_YAUTJA_LEADER)) + if(MA || check_whitelist_status(WHITELIST_YAUTJA_LEADER)) show_other_record(NOTE_YAUTJA, choice, target, TRUE, TRUE) else show_other_record(NOTE_YAUTJA, choice, target, edit_Y) @@ -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/STUI.dm b/code/modules/admin/STUI.dm index 87a2ca2cf11a..96307cd91b86 100644 --- a/code/modules/admin/STUI.dm +++ b/code/modules/admin/STUI.dm @@ -40,7 +40,7 @@ GLOBAL_DATUM_INIT(STUI, /datum/STUI, new) /datum/STUI/New() . = ..() - if(length(stui_init_runtimes)) // Report existing errors that might have occured during static initializers + if(length(stui_init_runtimes)) // Report existing errors that might have occurred during static initializers runtime = stui_init_runtimes.Copy() /datum/STUI/Topic(href, href_list) 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.dm b/code/modules/admin/admin.dm index fe95affaffd2..4194627262a4 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -24,7 +24,7 @@ /proc/msg_admin_niche(msg) //Toggleable Niche Messages log_admin(msg) - msg = SPAN_ADMIN("ADMIN NICHE LOG: [msg]") + msg = SPAN_NICHE("ADMIN NICHE LOG: [msg]") for(var/client/C as anything in GLOB.admins) if(C && C.admin_holder && (R_MOD & C.admin_holder.rights)) if(C.prefs.toggles_chat & CHAT_NICHELOGS) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 4623df8a5dc5..626758fc2a5a 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, @@ -137,10 +140,10 @@ GLOBAL_LIST_INIT(admin_verbs_minor_event, list( /client/proc/admin_biohazard_alert, /client/proc/toggle_hardcore_perma, /client/proc/toggle_bypass_joe_restriction, + /client/proc/toggle_joe_respawns, )) 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 +157,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, @@ -190,7 +194,6 @@ GLOBAL_LIST_INIT(admin_verbs_debug, list( /client/proc/cmd_admin_delete, /client/proc/cmd_debug_del_all, /client/proc/reload_admins, - /client/proc/reload_whitelist, /client/proc/restart_controller, /client/proc/debug_controller, /client/proc/cmd_debug_toggle_should_check_for_win, @@ -238,12 +241,13 @@ 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, )) GLOBAL_LIST_INIT(admin_verbs_color, list( @@ -262,10 +266,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 +274,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, @@ -347,15 +349,9 @@ GLOBAL_LIST_INIT(roundstart_mod_verbs, list( add_verb(src, GLOB.admin_verbs_spawn) if(CLIENT_HAS_RIGHTS(src, R_STEALTH)) add_verb(src, GLOB.admin_verbs_stealth) - if(GLOB.RoleAuthority && (GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_YAUTJA_LEADER)) + if(check_whitelist_status(WHITELIST_YAUTJA_LEADER)) add_verb(src, GLOB.clan_verbs) -/client/proc/add_admin_whitelists() - if(CLIENT_IS_MENTOR(src)) - GLOB.RoleAuthority.roles_whitelist[ckey] |= WHITELIST_MENTOR - if(CLIENT_IS_STAFF(src)) - GLOB.RoleAuthority.roles_whitelist[ckey] |= WHITELIST_JOE - /client/proc/remove_admin_verbs() remove_verb(src, list( GLOB.admin_verbs_default, diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm index 13c3b4664a15..dd6516b2ede3 100644 --- a/code/modules/admin/banjob.dm +++ b/code/modules/admin/banjob.dm @@ -42,8 +42,6 @@ GLOBAL_LIST_EMPTY(jobban_keylist) if(guest_jobbans(rank)) if(CONFIG_GET(flag/guest_jobban) && IsGuestKey(M.key)) return "Guest Job-ban" - if(CONFIG_GET(flag/usewhitelist) && !check_whitelist(M)) - return "Whitelisted Job" var/datum/entity/player_job_ban/PJB = M.client.player_data.job_bans[rank] return PJB ? PJB.text : null diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index e31d372743c5..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() @@ -47,7 +41,6 @@ GLOBAL_PROTECT(href_token) owner = C owner.admin_holder = src owner.add_admin_verbs() - owner.add_admin_whitelists() owner.tgui_say.load() owner.update_special_keybinds() GLOB.admins |= C 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..f29f99004625 100644 --- a/code/modules/admin/tabs/admin_tab.dm +++ b/code/modules/admin/tabs/admin_tab.dm @@ -29,21 +29,12 @@ if(!admin_holder) return + if(!isobserver(mob)) + to_chat(usr, SPAN_WARNING("You must be a ghost to use this.")) - if(istype(mob,/mob/dead/observer)) - var/mob/dead/observer/ghost = mob - if(ghost.adminlarva == 0) - ghost.adminlarva = 1 - to_chat(usr, SPAN_BOLDNOTICE("You have disabled your larva protection.")) - else if(ghost.adminlarva == 1) - ghost.adminlarva = 0 - to_chat(usr, SPAN_BOLDNOTICE("You have re-activated your larva protection.")) - else - to_chat(usr, SPAN_BOLDNOTICE("Something went wrong tell a coder")) - else if(istype(mob,/mob/new_player)) - to_chat(src, "Error: Lose larva Protection: Can't lose larva protection whilst in the lobby. Observe first.") - else - to_chat(src, "Error: Lose larva Protection: You must be a ghost to use this.") + var/mob/dead/observer/ghost = mob + ghost.admin_larva_protection = !ghost.admin_larva_protection + to_chat(usr, SPAN_BOLDNOTICE("You have [ghost.admin_larva_protection ? "en" : "dis"]abled your larva protection.")) /client/proc/unban_panel() set name = "Unban Panel" @@ -53,6 +44,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" @@ -866,7 +863,7 @@ set name = "Toggle Working Joe Restrictions" set category = "Admin.Flags" - if(!admin_holder || !check_rights(R_EVENT, FALSE)) + if(!admin_holder || !check_rights(R_EVENT, TRUE)) return if(!SSticker.mode) @@ -875,3 +872,17 @@ SSticker.mode.toggleable_flags ^= MODE_BYPASS_JOE message_admins("[src] has [MODE_HAS_TOGGLEABLE_FLAG(MODE_BYPASS_JOE) ? "allowed players to bypass (except whitelist)" : "prevented players from bypassing"] Working Joe spawn conditions.") + +/client/proc/toggle_joe_respawns() + set name = "Toggle Working Joe Respawns" + set category = "Admin.Flags" + + if(!admin_holder || !check_rights(R_EVENT, TRUE)) + return + + if(!SSticker.mode) + to_chat(usr, SPAN_WARNING("A mode hasn't been selected yet!")) + return + + SSticker.mode.toggleable_flags ^= MODE_DISABLE_JOE_RESPAWN + message_admins("[src] has [MODE_HAS_TOGGLEABLE_FLAG(MODE_DISABLE_JOE_RESPAWN) ? "disabled" : "enabled"] Working Joe respawns.") diff --git a/code/modules/admin/tabs/debug_tab.dm b/code/modules/admin/tabs/debug_tab.dm index df11917f087a..03068c577045 100644 --- a/code/modules/admin/tabs/debug_tab.dm +++ b/code/modules/admin/tabs/debug_tab.dm @@ -161,15 +161,6 @@ message_admins("[usr.ckey] manually reloaded admins.") load_admins() -/client/proc/reload_whitelist() - set name = "Reload Whitelist" - set category = "Debug" - if(alert("Are you sure you want to do this?",, "Yes", "No") != "Yes") return - if(!check_rights(R_SERVER) || !GLOB.RoleAuthority) return - - message_admins("[usr.ckey] manually reloaded the role whitelist.") - GLOB.RoleAuthority.load_whitelist() - /client/proc/bulk_fetcher() set name = "Bulk Fetch Items" set category = "Debug" diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 839dea7b2334..801bdcc87e18 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -23,7 +23,7 @@ faction = temp_list[faction] if(!GLOB.custom_event_info_list[faction]) - to_chat(usr, "Error has occured, [faction] category is not found.") + to_chat(usr, "Error has occurred, [faction] category is not found.") return var/datum/custom_event_info/CEI = GLOB.custom_event_info_list[faction] @@ -322,7 +322,11 @@ if(!admin_holder) return - var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "CMB", "Other", "Cancel") + var/list/options = list( + "Weyland-Yutani", "High Command", "Provost", "Press", + "Colonial Marshal Bureau", "Union of Progressive Peoples", + "Three World Empire", "Colonial Liberation Front", + "Other", "Cancel") var/answer = tgui_input_list(src, "Which kind of faxes would you like to see?", "Faxes", options) switch(answer) if("Weyland-Yutani") @@ -334,6 +338,7 @@ body += "

      " show_browser(src, body, "Faxes to Weyland-Yutani", "wyfaxviewer", "size=300x600") + if("High Command") var/body = "" @@ -343,6 +348,7 @@ body += "

      " show_browser(src, body, "Faxes to High Command", "uscmfaxviewer", "size=300x600") + if("Provost") var/body = "" @@ -361,9 +367,9 @@ body += "

      " body += "

      " - show_browser(src, body, "Faxes to Press organizations", "otherfaxviewer", "size=300x600") + show_browser(src, body, "Faxes to Press organizations", "pressfaxviewer", "size=300x600") - if("CMB") + if("Colonial Marshal Bureau") var/body = "" for(var/text in GLOB.CMBFaxes) @@ -373,6 +379,36 @@ body += "

      " show_browser(src, body, "Faxes to the Colonial Marshal Bureau", "cmbfaxviewer", "size=300x600") + if("Union of Progressive Peoples") + var/body = "" + + for(var/text in GLOB.UPPFaxes) + body += text + body += "

      " + + body += "

      " + show_browser(src, body, "Faxes to the Union of Progressive Peoples", "uppfaxviewer", "size=300x600") + + if("Three World Empire") + var/body = "" + + for(var/text in GLOB.TWEFaxes) + body += text + body += "

      " + + body += "

      " + show_browser(src, body, "Faxes to the Three World Empire", "twefaxviewer", "size=300x600") + + if("Colonial Liberation Front") + var/body = "" + + for(var/text in GLOB.CLFFaxes) + body += text + body += "

      " + + body += "

      " + show_browser(src, body, "Faxes to the Colonial Liberation Front", "clffaxviewer", "size=300x600") + if("Other") var/body = "" @@ -723,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/tabs/round_tab.dm b/code/modules/admin/tabs/round_tab.dm index 39a9050053f1..4a993459e7d1 100644 --- a/code/modules/admin/tabs/round_tab.dm +++ b/code/modules/admin/tabs/round_tab.dm @@ -169,8 +169,10 @@ set name = "Start Round" set desc = "Start the round RIGHT NOW" set category = "Server.Round" - if (alert("Are you sure you want to start the round early?",,"Yes","No") != "Yes") - return + var/response = tgui_alert(usr, "Are you sure you want to start the round early?", "Force Start Round", list("Yes", "Bypass Checks", "No"), 30 SECONDS) + if (response != "Yes" && response != "Bypass Checks") + return FALSE + SSticker.bypass_checks = response == "Bypass Checks" if (SSticker.current_state == GAME_STATE_STARTUP) message_admins("Game is setting up and will launch as soon as it is ready.") message_admins(SPAN_ADMINNOTICE("[usr.key] has started the process to start the game when loading is finished.")) diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index 886ba888ff0a..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"]) @@ -894,12 +1088,7 @@ qdel(M.skills) M.skills = null //no skill restriction - if(is_alien_whitelisted(M,"Yautja Elder")) - M.change_real_name(M, "Elder [y_name]") - H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/yautja/hunter/full(H), WEAR_JACKET) - H.equip_to_slot_or_del(new /obj/item/weapon/twohanded/yautja/glaive(H), WEAR_L_HAND) - else - M.change_real_name(M, y_name) + M.change_real_name(M, y_name) M.name = "Unknown" // Yautja names are not visible for oomans if(H) @@ -1130,7 +1319,7 @@ GLOB.fax_contents += fax_message // save a copy var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null - GLOB.USCMFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") + GLOB.PressFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") var/msg_ghost = SPAN_NOTICE("PRESS REPLY: ") msg_ghost += "Transmitting '[customname]' via secure connection ... " @@ -1166,6 +1355,7 @@ message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["USCMFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["USCMFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) @@ -1193,7 +1383,7 @@ return else return - var/message_body = input(src.owner, "Enter Message Body, use

      for paragraphs", "Outgoing message from Weyland USCM", "") as message|null + var/message_body = input(src.owner, "Enter Message Body, use

      for paragraphs", "Outgoing message from USCM", "") as message|null if(!message_body) return var/sent_by = input(src.owner, "Enter the name and rank you are sending from.", "Outgoing message from USCM", "") as message|null @@ -1249,8 +1439,8 @@ return to_chat(src.owner, "/red Unable to locate fax!") - else if(href_list["CLFaxReply"]) - var/mob/living/carbon/human/H = locate(href_list["CLFaxReply"]) + else if(href_list["WYFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["WYFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) @@ -1331,6 +1521,249 @@ return to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["TWEFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["TWEFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
      for line breaks.", "Outgoing message from TWE", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from TWE", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from TWE", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

      for paragraphs", "Outgoing message from TWE", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from TWE", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "THREE WORLD EMPIRE - ROYAL MILITARY COMMAND", subject, addressed_to, message_body, sent_by, "Office of Military Communications", "Three World Empire")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF TWE FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.TWEFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("THREE WORLD EMPIRE FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Three World Empire - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-twe" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
      This paper has been stamped by the Three World Empire Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["UPPFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["UPPFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
      for line breaks.", "Outgoing message from UPP", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from UPP", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from UPP", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

      for paragraphs", "Outgoing message from UPP", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from UPP", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "UNION OF PROGRESSIVE PEOPLES - MILITARY HIGH KOMMAND", subject, addressed_to, message_body, sent_by, "Military High Kommand", "Union of Progressive Peoples")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF UPP FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.UPPFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("UNION OF PROGRESSIVE PEOPLES FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Union of Progressive Peoples - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-upp" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
      This paper has been stamped by the Union of Progressive Peoples Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + + else if(href_list["CLFFaxReply"]) + var/mob/living/carbon/human/H = locate(href_list["CLFFaxReply"]) + var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) + + var/template_choice = tgui_input_list(usr, "Use the template or roll your own?", "Fax Template", list("Template", "Custom")) + if(!template_choice) return + var/datum/fax/fax_message + switch(template_choice) + if("Custom") + var/input = input(src.owner, "Please enter a message to reply to [key_name(H)] via secure connection. NOTE: BBCode does not work, but HTML tags do! Use
      for line breaks.", "Outgoing message from CLF", "") as message|null + if(!input) + return + fax_message = new(input) + if("Template") + var/subject = input(src.owner, "Enter subject line", "Outgoing message from CLF", "") as message|null + if(!subject) + return + var/addressed_to = "" + var/address_option = tgui_input_list(usr, "Address it to the sender or custom?", "Fax Template", list("Sender", "Custom")) + if(address_option == "Sender") + addressed_to = "[H.real_name]" + else if(address_option == "Custom") + addressed_to = input(src.owner, "Enter Addressee Line", "Outgoing message from CLF", "") as message|null + if(!addressed_to) + return + else + return + var/message_body = input(src.owner, "Enter Message Body, use

      for paragraphs", "Outgoing message from CLF", "") as message|null + if(!message_body) + return + var/sent_by = input(src.owner, "Enter JUST the name you are sending this from", "Outgoing message from CLF", "") as message|null + if(!sent_by) + return + fax_message = new(generate_templated_fax(0, "COLONIAL LIBERATION FRONT - COLONIAL COUNCIL OF LIBERATION", subject, addressed_to, message_body, sent_by, "Guerilla Forces Command", "Colonial Liberation Front")) + show_browser(usr, "[fax_message.data]", "PREVIEW OF CLF FAX", "size=500x400") + var/send_choice = tgui_input_list(usr, "Send this fax?", "Fax Confirmation", list("Send", "Cancel")) + if(send_choice != "Send") + return + GLOB.fax_contents += fax_message // save a copy + + var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null + if(!customname) + return + + GLOB.CLFFaxes.Add("\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]") //Add replies so that mods know what the hell is goin on with the RP + + var/msg_ghost = SPAN_NOTICE("COLONIAL LIBERATION FRONT FAX REPLY: ") + msg_ghost += "Transmitting '[customname]' via secure connection ... " + msg_ghost += "view message" + announce_fax( ,msg_ghost) + + for(var/obj/structure/machinery/faxmachine/F in GLOB.machines) + if(F == fax) + if(!(F.inoperable())) + + // animate! it's alive! + flick("faxreceive", F) + + // give the sprite some time to flick + spawn(20) + var/obj/item/paper/P = new /obj/item/paper( F.loc ) + P.name = "Colonial Liberation Front - [customname]" + P.info = fax_message.data + P.update_icon() + + playsound(F.loc, "sound/machines/fax.ogg", 15) + + // Stamps + var/image/stampoverlay = image('icons/obj/items/paper.dmi') + stampoverlay.icon_state = "paper_stamp-clf" + if(!P.stamped) + P.stamped = new + P.stamped += /obj/item/tool/stamp + P.overlays += stampoverlay + P.stamps += "
      This paper has been stamped and encrypted by the Colonial Liberation Front Quantum Relay (tm)." + + to_chat(src.owner, "Message reply to transmitted successfully.") + message_admins(SPAN_STAFF_IC("[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(H)]"), 1) + return + to_chat(src.owner, "/red Unable to locate fax!") + else if(href_list["CMBFaxReply"]) var/mob/living/carbon/human/H = locate(href_list["CMBFaxReply"]) var/obj/structure/machinery/faxmachine/fax = locate(href_list["originfax"]) 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 e9587319a160..0b27cf268a12 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -61,33 +61,9 @@ "nano/templates/", ) -/datum/asset/directory/nanoui/weapons - common_dirs = list( - "nano/images/weapons/", - ) - - uncommon_dirs = list() - -/datum/asset/directory/nanoui/weapons/send(client) - if(!client) - log_debug("Warning! Tried to send nanoui weapon data with a null client! (asset_list_items.dm line 93)") - return - SSassets.transport.send_assets(client, common) - - /datum/asset/simple/nanoui_images keep_local_name = TRUE - assets = list( - "auto.png" = 'nano/images/weapons/auto.png', - "burst.png" = 'nano/images/weapons/burst.png', - "single.png" = 'nano/images/weapons/single.png', - "disabled_automatic.png" = 'nano/images/weapons/disabled_automatic.png', - "disabled_burst.png" = 'nano/images/weapons/disabled_burst.png', - "disabled_single.png" = 'nano/images/weapons/disabled_single.png', - "no_name.png" = 'nano/images/weapons/no_name.png', - ) - var/list/common_dirs = list( "nano/images/", ) @@ -398,9 +374,29 @@ name = "gunlineart" /datum/asset/spritesheet/gun_lineart/register() - InsertAll("", 'icons/obj/items/weapons/guns/lineart.dmi') + var/icon_file = 'icons/obj/items/weapons/guns/lineart.dmi' + InsertAll("", icon_file) + + for(var/obj/item/weapon/gun/current_gun as anything in subtypesof(/obj/item/weapon/gun)) + 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])) + // 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)]") + ..() +/datum/asset/spritesheet/gun_lineart_modes + name = "gunlineartmodes" + +/datum/asset/spritesheet/gun_lineart_modes/register() + InsertAll("", 'icons/obj/items/weapons/guns/lineart_modes.dmi') + ..() /datum/asset/simple/orbit assets = list( @@ -414,17 +410,6 @@ "ntosradarpointerS.png" = 'icons/images/ui_images/ntosradar_pointer_S.png' ) -/datum/asset/simple/firemodes - assets = list( - "auto.png" = 'html/images/auto.png', - "disabled_auto.png" = 'html/images/disabled_automatic.png', - "burst.png" = 'html/images/burst.png', - "disabled_burst.png" = 'html/images/disabled_burst.png', - "single.png" = 'html/images/single.png', - "disabled_single.png" = 'html/images/disabled_single.png', - ) - - /datum/asset/simple/particle_editor assets = list( "motion" = 'icons/images/ui_images/particle_editor/motion.png', 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/character_traits/biology_traits.dm b/code/modules/character_traits/biology_traits.dm index efd894fe20cf..a78dd0d38464 100644 --- a/code/modules/character_traits/biology_traits.dm +++ b/code/modules/character_traits/biology_traits.dm @@ -49,13 +49,13 @@ var/string_paygrade = preset.load_rank(target) var/datum/paygrade/paygrade_datum = GLOB.paygrades[string_paygrade] if(paygrade_datum?.ranking > maximum_ranking) - to_chat(target, SPAN_WARNING("Your paygrade is too high for you to be able to recieve the lisping trait.")) + to_chat(target, SPAN_WARNING("Your paygrade is too high for you to be able to receive the lisping trait.")) return if(target.job in inapplicable_roles) - to_chat(target, SPAN_WARNING("Your office is too high for you to be able to recieve the lisping trait.")) + to_chat(target, SPAN_WARNING("Your office is too high for you to be able to receive the lisping trait.")) return if(target.species.group in inapplicable_species) - to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to recieve the lisping trait.")) + to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to receive the lisping trait.")) return ADD_TRAIT(target, TRAIT_LISPING, ROUNDSTART_TRAIT) @@ -82,17 +82,17 @@ /datum/character_trait/biology/bad_leg/New() . = ..() // Not on definition as several lists are added - inapplicable_roles = list(JOB_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST + inapplicable_roles = list(JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_CREWMAN, JOB_INTEL, JOB_ORDNANCE_TECH, JOB_MARINE) + JOB_SQUAD_ROLES_LIST + JOB_MARINE_RAIDER_ROLES_LIST + JOB_ERT_GRUNT_LIST bad_cane_roles = list(JOB_SURVIVOR, JOB_STOWAWAY) fancy_cane_roles = list(JOB_CO_SURVIVOR, CORPORATE_SURVIVOR, JOB_CMO, JOB_CORPORATE_LIAISON, JOB_SEA, JOB_CHIEF_ENGINEER) + JOB_COMMAND_ROLES_LIST inapplicable_species = list(SPECIES_SYNTHETIC, SPECIES_YAUTJA) /datum/character_trait/biology/bad_leg/apply_trait(mob/living/carbon/human/target, datum/equipment_preset/preset) if(target.job in inapplicable_roles) - to_chat(target, SPAN_WARNING("Your office is too combat-geared for you to be able to recieve the bad leg trait.")) + to_chat(target, SPAN_WARNING("Your office is too combat-geared for you to be able to receive the bad leg trait.")) return if(target.species.group in inapplicable_species) - to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to recieve the bad leg trait.")) + to_chat(target, SPAN_WARNING("Your species is too sophisticated for you be able to receive the bad leg trait.")) return target.AddComponent(/datum/component/bad_leg) diff --git a/code/modules/clans/client.dm b/code/modules/clans/client.dm index c46adf89711a..3450b7553c51 100644 --- a/code/modules/clans/client.dm +++ b/code/modules/clans/client.dm @@ -5,11 +5,11 @@ set waitfor = FALSE . = ..() - if(GLOB.RoleAuthority && (GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_PREDATOR)) + if(GLOB.RoleAuthority && check_whitelist_status(WHITELIST_PREDATOR)) clan_info = GET_CLAN_PLAYER(player.id) clan_info.sync() - if(GLOB.RoleAuthority.roles_whitelist[ckey] & WHITELIST_YAUTJA_LEADER) + if(check_whitelist_status(WHITELIST_YAUTJA_LEADER)) clan_info.clan_rank = GLOB.clan_ranks_ordered[CLAN_RANK_ADMIN] clan_info.permissions |= CLAN_PERMISSION_ALL else @@ -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 3dfe2d38d81f..5796d5ff505e 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -319,12 +319,9 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( player_entity = setup_player_entity(ckey) - if(!CONFIG_GET(flag/no_localhost_rank)) - var/static/list/localhost_addresses = list("127.0.0.1", "::1") - if(isnull(address) || (address in localhost_addresses)) - var/datum/admins/admin = new("!localhost!", RL_HOST, ckey) - admin.associate(src) - GLOB.RoleAuthority.roles_whitelist[ckey] = WHITELIST_EVERYTHING + if(check_localhost_status()) + var/datum/admins/admin = new("!localhost!", RL_HOST, ckey) + admin.associate(src) //Admin Authorisation admin_holder = GLOB.admin_datums[ckey] @@ -447,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// @@ -878,3 +875,41 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( if(!selected_action.player_hidden && selected_action.hidden) //Inform the player that even if they are unhiding it, itll still not be visible to_chat(user, SPAN_NOTICE("[selected_action] is forcefully hidden, bypassing player unhiding.")) + + +/client/proc/check_whitelist_status(flag_to_check) + if(check_localhost_status()) + return TRUE + + if((flag_to_check & WHITELIST_MENTOR) && CLIENT_IS_MENTOR(src)) + return TRUE + + if((flag_to_check & WHITELIST_JOE) && CLIENT_IS_STAFF(src)) + return TRUE + + if(!player_data) + load_player_data() + if(!player_data) + return FALSE + + return player_data.check_whitelist_status(flag_to_check) + +/client/proc/check_whitelist_status_list(flags_to_check) /// Logical OR list, not match all. + var/success = FALSE + if(!player_data) + load_player_data() + for(var/bitfield in flags_to_check) + success = player_data.check_whitelist_status(bitfield) + if(success) + break + return success + +/client/proc/check_localhost_status() + if(CONFIG_GET(flag/no_localhost_rank)) + return FALSE + + var/static/list/localhost_addresses = list("127.0.0.1", "::1") + if(isnull(address) || (address in localhost_addresses)) + return TRUE + + return FALSE diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 29676ddb4ac8..a3d6dd0c80c0 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 @@ -308,13 +308,13 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "
      " dat += "Human - " dat += "Xenomorph - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_COMMANDER) + if(owner.check_whitelist_status(WHITELIST_COMMANDER)) dat += "Commanding Officer - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_SYNTHETIC) + if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "Synthetic - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_PREDATOR) + if(owner.check_whitelist_status(WHITELIST_PREDATOR)) dat += "Yautja - " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_MENTOR) + if(owner.check_whitelist_status(WHITELIST_MENTOR)) dat += "Mentor - " dat += "Settings - " dat += "Special Roles" @@ -484,7 +484,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( n++ if(MENU_CO) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_COMMANDER) + if(owner.check_whitelist_status(WHITELIST_COMMANDER)) dat += "
      " dat += "

      Commander Settings:

      " dat += "Commander Whitelist Status: [commander_status]
      " @@ -494,7 +494,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( else dat += "You do not have the whitelist for this role." if(MENU_SYNTHETIC) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_SYNTHETIC) + if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "
      " dat += "

      Synthetic Settings:

      " dat += "Synthetic Name: [synthetic_name]
      " @@ -504,7 +504,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( else dat += "You do not have the whitelist for this role." if(MENU_YAUTJA) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_PREDATOR) + if(owner.check_whitelist_status(WHITELIST_PREDATOR)) dat += "
      " dat += "

      Yautja Information:

      " dat += "Yautja Name: [predator_name]
      " @@ -518,7 +518,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "
      " dat += "

      Equipment Setup:

      " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_YAUTJA_LEGACY) + if(owner.check_whitelist_status(WHITELIST_YAUTJA_LEGACY)) dat += "Legacy Gear: [predator_use_legacy]
      " dat += "Translator Type: [predator_translator_type]
      " dat += "Mask Style: ([predator_mask_type])
      " @@ -542,7 +542,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( else dat += "You do not have the whitelist for this role." if(MENU_MENTOR) - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_MENTOR) + if(owner.check_whitelist_status(WHITELIST_MENTOR)) dat += "Nothing here. For now." else dat += "You do not have the whitelist for this role." @@ -590,6 +590,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "tgui Window Mode: [(tgui_fancy) ? "Fancy (default)" : "Compatible (slower)"]
      " dat += "tgui Window Placement: [(tgui_lock) ? "Primary monitor" : "Free (default)"]
      " dat += "Play Admin Sounds: [(toggles_sound & SOUND_MIDI) ? "Yes" : "No"]
      " + dat += "Play Announcement Sounds As Ghost: [(toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS) ? "Yes" : "No"]
      " dat += "Toggle Meme or Atmospheric Sounds: Toggle
      " dat += "Set Eye Blur Type: Set
      " dat += "Play Lobby Music: [(toggles_sound & SOUND_LOBBY) ? "Yes" : "No"]
      " @@ -636,7 +637,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( dat += "Spawn as Engineer: [toggles_ert & PLAY_ENGINEER ? "Yes" : "No"]
      " dat += "Spawn as Specialist: [toggles_ert & PLAY_HEAVY ? "Yes" : "No"]
      " dat += "Spawn as Smartgunner: [toggles_ert & PLAY_SMARTGUNNER ? "Yes" : "No"]
      " - if(GLOB.RoleAuthority.roles_whitelist[user.ckey] & WHITELIST_SYNTHETIC) + if(owner.check_whitelist_status(WHITELIST_SYNTHETIC)) dat += "Spawn as Synth: [toggles_ert & PLAY_SYNTH ? "Yes" : "No"]
      " dat += "Spawn as Miscellaneous: [toggles_ert & PLAY_MISC ? "Yes" : "No"]
      " dat += "
      " @@ -647,11 +648,16 @@ GLOBAL_LIST_INIT(bgstate_options, list( show_browser(user, dat, "Preferences", "preferencebrowser") onclose(user, "preferencewindow", src) -//limit - The amount of jobs allowed per column. Defaults to 13 to make it look nice. -//splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice. -//width - Screen' width. Defaults to 550 to make it look nice. -//height - Screen's height. Defaults to 500 to make it look nice. -/datum/preferences/proc/SetChoices(mob/user, limit = 19, list/splitJobs = list(JOB_CHIEF_REQUISITION), width = 950, height = 700) +/** + * Job Preferences: Preferences for role at round start. + * + * Arguments: + * * limit - The amount of jobs allowed per column. + * * splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. + * * width - Screen' width. + * * height - Screen's height. + */ +/datum/preferences/proc/SetChoices(mob/user, limit = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return @@ -684,7 +690,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(jobban_isbanned(user, job.title)) HTML += "[job.disp_title]BANNED" continue - else if(job.flags_startup_parameters & ROLE_WHITELISTED && !(GLOB.RoleAuthority.roles_whitelist[user.ckey] & job.flags_whitelist)) + else if(!job.check_whitelist_status(user)) HTML += "[job.disp_title]WHITELISTED" continue else if(!job.can_play_role(user.client)) @@ -760,11 +766,16 @@ GLOBAL_LIST_INIT(bgstate_options, list( onclose(user, "mob_occupation", user.client, list("_src_" = "prefs", "preference" = "job", "task" = "close")) return -//limit - The amount of jobs allowed per column. Defaults to 13 to make it look nice. -//splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. Defaults to CE to make it look nice. -//width - Screen' width. Defaults to 550 to make it look nice. -//height - Screen's height. Defaults to 500 to make it look nice. -/datum/preferences/proc/set_job_slots(mob/user, limit = 19, list/splitJobs = list(JOB_CHIEF_REQUISITION), width = 950, height = 700) +/** + * Job Assignments window: Assign unique characters to a particular job. + * + * Arguments: + * * limit - The amount of jobs allowed per column. + * * splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads. + * * width - Screen' width. + * * height - Screen's height. + */ +/datum/preferences/proc/set_job_slots(mob/user, limit = 20, list/splitJobs = list(JOB_CHIEF_REQUISITION, JOB_WO_CMO), width = 950, height = 750) if(!GLOB.RoleAuthority) return @@ -796,7 +807,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(jobban_isbanned(user, job.title)) HTML += "[job.disp_title]BANNED" continue - else if(job.flags_startup_parameters & ROLE_WHITELISTED && !(GLOB.RoleAuthority.roles_whitelist[user.ckey] & job.flags_whitelist)) + else if(!job.check_whitelist_status(user)) HTML += "[job.disp_title]WHITELISTED" continue else if(!job.can_play_role(user.client)) @@ -962,7 +973,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( pref_job_slots[J.title] = JOB_SLOT_CURRENT_SLOT /datum/preferences/proc/process_link(mob/user, list/href_list) - var/whitelist_flags = GLOB.RoleAuthority.roles_whitelist[user.ckey] + switch(href_list["preference"]) if("job") @@ -1198,6 +1209,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( if ("all") randomize_appearance() if("input") + var/datum/entity/player/player = get_player_from_key(user.ckey) + var/whitelist_flags = player.whitelist_flags + switch(href_list["preference"]) if("name") if(human_name_ban) @@ -1286,7 +1300,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( predator_caster_material = new_pred_caster_mat if("pred_cape_type") var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] - var/whitelist_status = GLOB.clan_ranks_ordered[J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)] + var/whitelist_status = GLOB.clan_ranks_ordered[J.get_whitelist_status(owner)] var/list/options = list("None" = "None") for(var/cape_name in GLOB.all_yautja_capes) @@ -1325,7 +1339,7 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(whitelist_flags & (WHITELIST_COMMANDER_COUNCIL|WHITELIST_COMMANDER_COUNCIL_LEGACY)) options += list("Council" = WHITELIST_COUNCIL) - if(whitelist_flags & WHITELIST_COMMANDER_LEADER) + if(whitelist_flags & (WHITELIST_COMMANDER_LEADER|WHITELIST_COMMANDER_COLONEL)) options += list("Leader" = WHITELIST_LEADER) var/new_commander_status = tgui_input_list(user, "Choose your new Commander Whitelist Status.", "Commander Status", options) @@ -1816,6 +1830,9 @@ GLOBAL_LIST_INIT(bgstate_options, list( if(!(toggles_sound & SOUND_MIDI)) user?.client?.tgui_panel?.stop_music() + if("hear_observer_announcements") + toggles_sound ^= SOUND_OBSERVER_ANNOUNCEMENTS + if("lobby_music") toggles_sound ^= SOUND_LOBBY if(toggles_sound & SOUND_LOBBY) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 1337cadf5228..c822bedd0f7b 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -58,14 +58,26 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "Ballistic goggles, black" path = /obj/item/clothing/glasses/mgoggles/black +/datum/gear/eyewear/goggles_black/prescription + display_name = "Prescription ballistic goggles, black" + path = /obj/item/clothing/glasses/mgoggles/black/prescription + /datum/gear/eyewear/goggles_orange display_name = "Ballistic goggles, orange" path = /obj/item/clothing/glasses/mgoggles/orange +/datum/gear/eyewear/goggles_orange/prescription + display_name = "Prescription ballistic goggles, orange" + path = /obj/item/clothing/glasses/mgoggles/orange/prescription + /datum/gear/eyewear/goggles2 display_name = "Ballistic goggles, M1A1" path = /obj/item/clothing/glasses/mgoggles/v2 +/datum/gear/eyewear/goggles2/prescription + display_name = "Prescription ballistic goggles, M1A1" + path = /obj/item/clothing/glasses/mgoggles/v2/prescription + /datum/gear/eyewear/bimex_shades display_name = "BiMex personal shades" path = /obj/item/clothing/glasses/sunglasses/big @@ -215,7 +227,7 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) /datum/gear/headwear/uscm/beret_green display_name = "USCM beret, green" - path = /obj/item/clothing/head/beret/cm + path = /obj/item/clothing/head/beret/cm/green /datum/gear/headwear/uscm/beret_tan display_name = "USCM beret, tan" @@ -503,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 @@ -511,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..5466fe105004 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,5 +1,5 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 21 +#define SAVEFILE_VERSION_MAX 22 //handles converting savefiles to new formats //MAKE SURE YOU KEEP THIS UP TO DATE! @@ -89,6 +89,12 @@ dual_wield_pref = DUAL_WIELD_FIRE S["dual_wield_pref"] << dual_wield_pref + if(savefile_version < 22) + var/sound_toggles + S["toggles_sound"] >> sound_toggles + sound_toggles |= SOUND_OBSERVER_ANNOUNCEMENTS + S["toggles_sound"] << sound_toggles + savefile_version = SAVEFILE_VERSION_MAX return 1 @@ -100,7 +106,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/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index d246a17bf5c0..32fd2225b339 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -25,6 +25,14 @@ prefs.save_preferences() to_chat(src, SPAN_BOLDNOTICE("You will [(prefs.toggles_chat & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat.")) +/client/verb/toggle_observer_announcement_sounds() + set name = "Hear/Silence Ghost Announcements" + set category = "Preferences.Sound" + set desc = "Toggle hearing a notification of announcements while being an observer." + prefs.toggles_sound ^= SOUND_OBSERVER_ANNOUNCEMENTS + prefs.save_preferences() + to_chat(usr, SPAN_BOLDNOTICE("You will [(prefs.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS) ? "now" : "no longer"] hear announcement sounds as an observer.")) + /client/verb/toggletitlemusic() set name = "Hear/Silence LobbyMusic" set category = "Preferences.Sound" 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/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index ee2be75610b1..88605cb3b792 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -434,6 +434,14 @@ active_icon_state = "mgogglesblk_down" inactive_icon_state = "mgogglesblk" +/obj/item/clothing/glasses/mgoggles/black/prescription + name = "prescription black marine ballistic goggles" + desc = "Standard issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This one has black tinted lenses. ntop of that, these ones contain prescription lenses." + icon_state = "mgogglesblk" + active_icon_state = "mgogglesblk_down" + inactive_icon_state = "mgogglesblk" + prescription = TRUE + /obj/item/clothing/glasses/mgoggles/orange name = "orange marine ballistic goggles" desc = "Standard issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This one has amber colored day lenses." @@ -441,6 +449,14 @@ active_icon_state = "mgogglesorg_down" inactive_icon_state = "mgogglesorg" +/obj/item/clothing/glasses/mgoggles/orange/prescription + name = "prescription orange marine ballistic goggles" + desc = "Standard issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This one has amber colored day lenses." + icon_state = "mgogglesorg" + active_icon_state = "mgogglesorg_down" + inactive_icon_state = "mgogglesorg" + prescription = TRUE + /obj/item/clothing/glasses/mgoggles/v2 name = "M1A1 marine ballistic goggles" desc = "Newer issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This version has larger lenses." @@ -448,6 +464,14 @@ active_icon_state = "mgoggles2_down" inactive_icon_state = "mgoggles2" +/obj/item/clothing/glasses/mgoggles/v2/prescription + name = "prescription M1A1 marine ballistic goggles" + desc = "Newer issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This version has larger lenses." + icon_state = "mgoggles2" + active_icon_state = "mgoggles2_down" + inactive_icon_state = "mgoggles2" + prescription = TRUE + /obj/item/clothing/glasses/mgoggles/on_enter_storage(obj/item/storage/internal/S) ..() diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm index ac4eb485c111..86527457bfce 100644 --- a/code/modules/clothing/head/head.dm +++ b/code/modules/clothing/head/head.dm @@ -81,6 +81,9 @@ /obj/item/clothing/head/beret/cm/black icon_state = "beret_black" +/obj/item/clothing/head/beret/cm/green + icon_state = "beret_green" + /obj/item/clothing/head/beret/cm/squadberet name = "USCM Squad Beret" desc = "For those who want to show pride and have nothing to lose (in their head, at least)." @@ -247,8 +250,11 @@ /obj/item/clothing/glasses/mgoggles = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/black = HAT_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/black/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/orange = HAT_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/orange/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/v2 = HAT_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/v2/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg/cosmetic = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg/marsoc = HAT_GARB_RELAY_ICON_STATE, @@ -410,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 3d7d774bd1ed..26c92f632ee2 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -248,9 +248,12 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( // EYEWEAR /obj/item/clothing/glasses/mgoggles = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/v2 = HELMET_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/v2/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/black = HELMET_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/black/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/orange = HELMET_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/orange/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/sunglasses = "sunglasses", /obj/item/clothing/glasses/sunglasses/prescription = "sunglasses", /obj/item/clothing/glasses/sunglasses/aviator = "aviator", @@ -377,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 @@ -473,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)) @@ -508,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 @@ -666,29 +679,39 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( return FALSE if(active_visor) + var/visor_to_deactivate = active_visor + var/skipped_hud = FALSE var/iterator = 1 - for(var/hud_type in total_visors) - if(hud_type == active_visor) + for(var/obj/item/device/helmet_visor/current_visor as anything in total_visors) + if(current_visor == active_visor || skipped_hud) if(length(total_visors) > iterator) - active_visor = total_visors[(iterator + 1)] - toggle_visor(user, total_visors[iterator], TRUE) + var/obj/item/device/helmet_visor/next_visor = total_visors[iterator + 1] + + if(!isnull(GLOB.huds[next_visor.hud_type]?.hudusers[user])) + iterator++ + skipped_hud = TRUE + continue + + active_visor = next_visor + toggle_visor(user, visor_to_deactivate, silent = TRUE) // disables the old visor toggle_visor(user) return active_visor else active_visor = null - toggle_visor(user, total_visors[iterator], FALSE) + toggle_visor(user, visor_to_deactivate, FALSE) return FALSE iterator++ - if(total_visors[1]) - active_visor = total_visors[1] + for(var/obj/item/device/helmet_visor/new_visor in total_visors) + + if(!isnull(GLOB.huds[new_visor.hud_type]?.hudusers[user])) + continue + + active_visor = new_visor toggle_visor(user) return active_visor - active_visor = null - recalculate_visors(user) return FALSE - /datum/action/item_action/cycle_helmet_huds/New(Target, obj/item/holder) . = ..() name = "Cycle helmet HUD" @@ -769,7 +792,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /obj/item/clothing/head/helmet/marine/covert name = "\improper M10 covert helmet" - desc = "An M10 marine helmet version designed for use in darkened enviroments. It is coated with a special anti-reflective paint." + desc = "An M10 marine helmet version designed for use in darkened environments. It is coated with a special anti-reflective paint." icon_state = "marsoc_helmet" armor_melee = CLOTHING_ARMOR_MEDIUM armor_bullet = CLOTHING_ARMOR_MEDIUM @@ -1390,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/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 18ffacf57b1f..4f928f62399f 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -54,7 +54,7 @@ /obj/item/clothing/mask/balaclava name = "balaclava" - desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existance, protects your face from the cold almost as well as it conceals it. This one is in a standard black color." + desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existence, protects your face from the cold almost as well as it conceals it. This one is in a standard black color." icon_state = "balaclava" item_state = "balaclava" flags_inventory = COVERMOUTH|ALLOWREBREATH|ALLOWCPR @@ -65,7 +65,7 @@ /obj/item/clothing/mask/balaclava/tactical name = "green balaclava" - desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existance, protects your face from the cold almost as well as it conceals it. This one is in a non-standard green color." + desc = "A basic single eye-hole balaclava, available in almost every sporting goods, outdoor supply, or military surplus store in existence, protects your face from the cold almost as well as it conceals it. This one is in a non-standard green color." icon_state = "swatclava" item_state = "swatclava" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index e3b07a76a2ff..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 @@ -140,6 +140,9 @@ desc = "The height of fashion, and they're pre-polished!" icon_state = "laceups" +/obj/item/clothing/shoes/laceup/brown + icon_state = "laceups_brown" + /obj/item/clothing/shoes/swimmingfins desc = "Help you swim good." name = "swimming fins" diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 54e9d91576f1..1bdb4ca31176 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -144,6 +144,10 @@ icon_state = "sciencecoat" item_state = "sciencecoat" +/obj/item/clothing/suit/chef/classic/medical + name = "medical's apron" + desc = "A basic and sterile white apron, good for surgical and, of course, other medical practices." + /obj/item/clothing/suit/storage/snow_suit name = "snow suit" desc = "A standard snow suit. It can protect the wearer from extreme cold." diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm deleted file mode 100644 index afefa2903ab4..000000000000 --- a/code/modules/clothing/suits/marine_armor.dm +++ /dev/null @@ -1,1893 +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, - ) - 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 3aa43706c7d8..2dd93eb66aee 100644 --- a/code/modules/clothing/suits/marine_coat.dm +++ b/code/modules/clothing/suits/marine_coat.dm @@ -278,12 +278,108 @@ 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==================\\ + +/obj/item/clothing/suit/storage/jacket/marine/vest + name = "brown vest" + desc = "A casual brown vest." + icon_state = "vest_brown" + item_state = "vest_brown" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/vest/tan + name = "tan vest" + desc = "A casual tan vest." + icon_state = "vest_tan" + item_state = "vest_tan" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/vest/grey + name = "grey vest" + desc = "A casual grey vest." + icon_state = "vest_grey" + item_state = "vest_grey" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate + name = "khaki suit jacket" + desc = "A khaki suit jacket." + icon_state = "corporate_ivy" + item_state = "corporate_ivy" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/formal + name = "formal suit jacket" + desc = "An ivory suit jacket; a Weyland-Yutani corporate badge is attached to the right lapel." + icon_state = "corporate_formal" + item_state = "corporate_formal" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/black + name = "black suit jacket" + desc = "A black suit jacket." + icon_state = "corporate_black" + item_state = "corporate_black" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/brown + name = "brown suit jacket" + desc = "A brown suit jacket." + icon_state = "corporate_brown" + item_state = "corporate_brown" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/corporate/blue + name = "blue suit jacket" + desc = "A blue suit jacket." + icon_state = "corporate_blue" + item_state = "corporate_blue" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/bomber + name = "khaki bomber jacket" + desc = "A khaki bomber jacket popular among stationeers and blue-collar workers everywhere." + icon_state = "jacket_khaki" + item_state = "jacket_khaki" + flags_atom = NO_SNOW_TYPE + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/bomber/red + name = "red bomber jacket" + desc = "A reddish-brown bomber jacket popular among stationeers and blue-collar workers everywhere." + icon_state = "jacket_red" + item_state = "jacket_red" + has_buttons = FALSE + +/obj/item/clothing/suit/storage/jacket/marine/bomber/grey + name = "grey bomber jacket" + desc = "A blue-grey bomber jacket popular among stationeers and blue-collar workers everywhere." + icon_state = "jacket_grey" + item_state = "jacket_grey" + has_buttons = FALSE 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 2a6c07e95932..37f1cdd891c3 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -2,10 +2,27 @@ * Science */ +/obj/item/clothing/under/rank/rd + desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer is a Research Director." + name = "research director's uniform" + icon_state = "rdalt_s" + worn_state = "rdalt_s" + permeability_coefficient = 0.50 + 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_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_LOW + flags_jumpsuit = FALSE + /obj/item/clothing/under/rank/rdalt - desc = "A simple blue utilitarian jumpsuit that serves as the standard issue service uniform of support synthetics onboard USCM facilities. While commonly associated with the staple Bishop units, reduced funding to the Colonial Marines has led to a wide range of models filling these uniforms, especially in battalions operating in the edge frontier." - name = "synthetic service uniform" + desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer is a Research Director." + name = "research director's jumpsuit" icon_state = "rdalt" + permeability_coefficient = 0.50 armor_melee = CLOTHING_ARMOR_NONE armor_bullet = CLOTHING_ARMOR_NONE armor_laser = CLOTHING_ARMOR_NONE @@ -159,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" @@ -187,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 6e92d0bd1343..f7dd5be511ce 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -510,6 +510,9 @@ has_sensor = UNIFORM_NO_SENSORS suit_restricted = list(/obj/item/clothing/suit/storage/marine/veteran/bear) + item_icons = list( + WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi', + ) /obj/item/clothing/under/marine/veteran/UPP name = "\improper UPP fatigues" @@ -689,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." @@ -712,6 +749,14 @@ has_sensor = UNIFORM_HAS_SENSORS sensor_faction = FACTION_MARINE +/obj/item/clothing/under/colonist/white_service + name = "white service uniform" + desc = "A white dress shirt and tie with sleek pants. Standard clothing for anyone on professional business." + icon_state = "CO_service" + worn_state = "CO_service" + has_sensor = UNIFORM_HAS_SENSORS + sensor_faction = FACTION_MARINE + /obj/item/clothing/under/colonist/wy_joliet_shopsteward name = "steward utilities" desc = "A stylish brown vest and shorts - uniforms like this are often worn by clerks and shop stewards." @@ -732,6 +777,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." @@ -752,7 +798,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 @@ -763,7 +809,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" @@ -805,14 +851,63 @@ icon_state = "liaison_blue_blazer" worn_state = "liaison_blue_blazer" +/obj/item/clothing/under/liaison_suit/field + name = "corporate casual" + desc = "A pair of dark brown slacks paired with a dark blue button-down shirt. A popular look among those in the corporate world that conduct the majority of their business from night clubs." + icon_state = "corporate_field" + worn_state = "corporate_field" + +/obj/item/clothing/under/liaison_suit/ivy + name = "country club outfit" + desc = "A pair of khaki slacks paired with a light blue button-down shirt. A popular look with those in the corporate world that conduct the majority of their business from country clubs." + icon_state = "corporate_ivy" + worn_state = "corporate_ivy" + +/obj/item/clothing/under/liaison_suit/corporate_formal + name = "white suit pants" + desc = "A pair of ivory slacks paired with a white shirt. A popular pairing for formal corporate events." + icon_state = "corporate_formal" + worn_state = "corporate_formal" + +/obj/item/clothing/under/liaison_suit/black + name = "black suit pants" + desc = "A pair of black slacks paired with a white shirt. The most common pairing among corporate workers." + icon_state = "corporate_black" + worn_state = "corporate_black" + +/obj/item/clothing/under/liaison_suit/brown + name = "brown suit pants" + desc = "A pair of brown slacks paired with a white shirt. A common pairing among corporate workers." + icon_state = "corporate_brown" + worn_state = "corporate_brown" + +/obj/item/clothing/under/liaison_suit/blue + name = "blue suit pants" + desc = "A pair of blue slacks paired with a white shirt. A common pairing among corporate workers." + icon_state = "corporate_blue" + worn_state = "corporate_blue" + /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" @@ -949,7 +1044,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 a0c8219ffe69..4fe8cc193ce6 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -79,6 +79,22 @@ name = "red tie" icon_state = "redtie" +/obj/item/clothing/accessory/green + name = "green tie" + icon_state = "greentie" + +/obj/item/clothing/accessory/black + name = "black tie" + icon_state = "blacktie" + +/obj/item/clothing/accessory/gold + name = "gold tie" + icon_state = "goldtie" + +/obj/item/clothing/accessory/purple + name = "purple tie" + icon_state = "purpletie" + /obj/item/clothing/accessory/horrible name = "horrible tie" desc = "A neosilk clip-on tie. This one is disgusting." @@ -138,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))) @@ -342,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" @@ -377,7 +398,8 @@ /obj/item/clothing/accessory/poncho/Initialize() . = ..() - select_gamemode_skin(type) + // Only do this for the base type '/obj/item/clothing/accessory/poncho'. + select_gamemode_skin(/obj/item/clothing/accessory/poncho) inv_overlay = image("icon" = 'icons/obj/items/clothing/ties_overlay.dmi', "icon_state" = "[icon_state]") update_icon() @@ -729,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 7e4f7996d3f8..635bca03241f 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 @@ -113,7 +118,7 @@ /obj/effect/alien/resin/attackby(obj/item/W, mob/user) if(!(W.flags_item & NOBLUDGEON)) - var/damage = W.force * RESIN_MELEE_DAMAGE_MULTIPLIER + var/damage = W.force * W.demolition_mod * RESIN_MELEE_DAMAGE_MULTIPLIER health -= damage if(istype(src, /obj/effect/alien/resin/sticky)) playsound(loc, "alien_resin_move", 25) @@ -386,7 +391,7 @@ return // defer to item afterattack if(!(W.flags_item & NOBLUDGEON) && W.force) user.animation_attack_on(src) - health -= W.force*RESIN_MELEE_DAMAGE_MULTIPLIER + health -= W.force * RESIN_MELEE_DAMAGE_MULTIPLIER * W.demolition_mod to_chat(user, "You hit the [name] with your [W.name]!") playsound(loc, "alien_resin_move", 25) healthcheck() @@ -573,11 +578,14 @@ 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() var/current_pos = 1 - for(var/i in getline(src, current_mob)) + for(var/i in get_line(src, current_mob)) current_turf = i if(LinkBlocked(temp_atom, last_turf, current_turf)) qdel(temp_atom) diff --git a/code/modules/cm_aliens/structures/fruit.dm b/code/modules/cm_aliens/structures/fruit.dm index 00272cf90341..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_XENOWARNING("You sense one of your 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 @@ -146,9 +130,12 @@ /obj/effect/alien/resin/fruit/proc/finish_consume(mob/living/carbon/xenomorph/recipient) playsound(loc, 'sound/voice/alien_drool1.ogg', 50, 1) mature = FALSE + picked = TRUE icon_state = consumed_icon_state update_icon() - QDEL_IN(src, 3 SECONDS) + if(!QDELETED(bound_xeno)) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("One of our picked resin fruits has been consumed.")) + QDEL_IN(src, 1 SECONDS) /obj/effect/alien/resin/fruit/attack_alien(mob/living/carbon/xenomorph/affected_xeno) if(picked) @@ -190,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 @@ -278,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) @@ -360,7 +359,7 @@ pixel_y = 0 /obj/item/reagent_container/food/snacks/resin_fruit/proc/link_xeno(mob/living/carbon/xenomorph/X) - to_chat(X, SPAN_XENOWARNING("One of our resin fruits has been picked.")) + to_chat(X, SPAN_XENOHIGHDANGER("One of our resin fruits has been picked.")) X.current_fruits.Add(src) bound_xeno = X RegisterSignal(X, COMSIG_PARENT_QDELETING, PROC_REF(handle_xeno_qdel)) @@ -431,7 +430,7 @@ //Notify the fruit's bound xeno if they exist if(!QDELETED(bound_xeno)) - to_chat(bound_xeno, SPAN_XENOWARNING("One of our picked resin fruits has been consumed.")) + to_chat(bound_xeno, SPAN_XENOHIGHDANGER("One of our picked resin fruits has been consumed.")) qdel(src) return TRUE diff --git a/code/modules/cm_aliens/structures/special/egg_morpher.dm b/code/modules/cm_aliens/structures/special/egg_morpher.dm index bcd0ecc03be5..e24ff8d167d8 100644 --- a/code/modules/cm_aliens/structures/special/egg_morpher.dm +++ b/code/modules/cm_aliens/structures/special/egg_morpher.dm @@ -190,7 +190,8 @@ if(stored_huggers) to_chat(M, SPAN_XENONOTICE("You retrieve a child.")) stored_huggers = max(0, stored_huggers - 1) - new /obj/item/clothing/mask/facehugger(loc, linked_hive.hivenumber) + var/obj/item/clothing/mask/facehugger/hugger = new(loc, linked_hive.hivenumber) + SEND_SIGNAL(M, COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER, hugger) return XENO_NONCOMBAT_ACTION ..() diff --git a/code/modules/cm_aliens/structures/special/recovery_node.dm b/code/modules/cm_aliens/structures/special/recovery_node.dm index a0d01bab89dc..649d7811fb6a 100644 --- a/code/modules/cm_aliens/structures/special/recovery_node.dm +++ b/code/modules/cm_aliens/structures/special/recovery_node.dm @@ -5,7 +5,7 @@ desc = "A warm, soothing light source that pulsates with a faint hum." icon_state = "recovery" health = 400 - var/heal_amount = 10 + var/heal_amount = 20 var/heal_cooldown = 5 SECONDS var/last_healed 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..2206bc528e82 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 @@ -377,7 +377,7 @@ else to_chat(user, SPAN_WARNING("You cut \the [src] away with \the [attacking_item].")) - var/damage = attacking_item.force / 3 + var/damage = (attacking_item.force * attacking_item.demolition_mod) / 3 playsound(loc, "alien_resin_break", 25) if(iswelder(attacking_item)) @@ -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 320ec2844b70..e534997ddd42 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" @@ -1321,7 +1324,7 @@ /obj/item/clothing/shoes/marine/fluff/steelpoint //CKEY=steelpoint (UNIQUE) name = "M4-X Boot" - desc = "Standard issue boots issued alongside M4-X armor, features a special coating of acid-resistant layering to allow its operator to move through acid-dretched enviroments safely. This prototype version lacks that feature. DONOR ITEM" + desc = "Standard issue boots issued alongside M4-X armor, features a special coating of acid-resistant layering to allow its operator to move through acid-dretched environments safely. This prototype version lacks that feature. DONOR ITEM" icon_state = "marine" item_state = "marine" 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 8ab83116f605..22999e97fda2 100644 --- a/code/modules/cm_marines/equipment/guncases.dm +++ b/code/modules/cm_marines/equipment/guncases.dm @@ -348,13 +348,52 @@ 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." + storage_slots = 7 + can_hold = list(/obj/item/weapon/gun/rifle/xm51, /obj/item/ammo_magazine/rifle/xm51, /obj/item/storage/belt/gun/xm51, /obj/item/attachable/stock/xm51) + +/obj/item/storage/box/guncase/xm51/fill_preset_inventory() + new /obj/item/attachable/stock/xm51(src) + new /obj/item/weapon/gun/rifle/xm51(src) + new /obj/item/ammo_magazine/rifle/xm51(src) + new /obj/item/ammo_magazine/rifle/xm51(src) + new /obj/item/ammo_magazine/shotgun/light/breaching(src) + new /obj/item/ammo_magazine/shotgun/light/breaching(src) + new /obj/item/storage/belt/gun/xm51(src) + //Handgun case for Military police vendor three mag , a railflashligh and the handgun. //88 Mod 4 Combat Pistol /obj/item/storage/box/guncase/mod88 name = "\improper 88 Mod 4 Combat Pistol case" desc = "A gun case containing an 88 Mod 4 Combat Pistol." - storage_slots = 5 + storage_slots = 8 can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88) /obj/item/storage/box/guncase/mod88/fill_preset_inventory() @@ -363,12 +402,15 @@ new /obj/item/ammo_magazine/pistol/mod88(src) new /obj/item/ammo_magazine/pistol/mod88(src) new /obj/item/ammo_magazine/pistol/mod88(src) + new /obj/item/ammo_magazine/pistol/mod88(src) + new /obj/item/ammo_magazine/pistol/mod88(src) + new /obj/item/ammo_magazine/pistol/mod88(src) //M44 Combat Revolver /obj/item/storage/box/guncase/m44 name = "\improper M44 Combat Revolver case" desc = "A gun case containing an M44 Combat Revolver loaded with marksman ammo." - storage_slots = 5 + storage_slots = 8 can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/revolver/m44, /obj/item/ammo_magazine/revolver) /obj/item/storage/box/guncase/m44/fill_preset_inventory() @@ -377,12 +419,15 @@ new /obj/item/ammo_magazine/revolver/marksman(src) new /obj/item/ammo_magazine/revolver/marksman(src) new /obj/item/ammo_magazine/revolver/marksman(src) + new /obj/item/ammo_magazine/revolver/marksman(src) + new /obj/item/ammo_magazine/revolver/marksman(src) + new /obj/item/ammo_magazine/revolver/marksman(src) //M4A3 Service Pistol /obj/item/storage/box/guncase/m4a3 name = "\improper M4A3 Service Pistol case" desc = "A gun case containing an M4A3 Service Pistol." - storage_slots = 5 + storage_slots = 8 can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/pistol/m4a3, /obj/item/ammo_magazine/pistol) /obj/item/storage/box/guncase/m4a3/fill_preset_inventory() @@ -391,3 +436,6 @@ new /obj/item/ammo_magazine/pistol(src) new /obj/item/ammo_magazine/pistol(src) new /obj/item/ammo_magazine/pistol(src) + new /obj/item/ammo_magazine/pistol(src) + new /obj/item/ammo_magazine/pistol(src) + new /obj/item/ammo_magazine/pistol(src) diff --git a/code/modules/cm_marines/equipment/mortar/mortars.dm b/code/modules/cm_marines/equipment/mortar/mortars.dm index a4d4cfdc1bf5..51d1509297a3 100644 --- a/code/modules/cm_marines/equipment/mortar/mortars.dm +++ b/code/modules/cm_marines/equipment/mortar/mortars.dm @@ -31,6 +31,8 @@ var/firing = FALSE /// If set to 1, can't unanchor and move the mortar, used for map spawns and WO var/fixed = FALSE + /// if true, blows up the shell immediately + var/ship_side = FALSE var/obj/structure/machinery/computer/cameras/mortar/internal_camera @@ -56,28 +58,28 @@ else return FALSE -/obj/structure/mortar/attack_alien(mob/living/carbon/xenomorph/M) - if(islarva(M)) +/obj/structure/mortar/attack_alien(mob/living/carbon/xenomorph/xeno) + if(islarva(xeno)) return XENO_NO_DELAY_ACTION if(fixed) - to_chat(M, SPAN_XENOWARNING("\The [src]'s supports are bolted and welded into the floor. It looks like it's going to be staying there.")) + to_chat(xeno, SPAN_XENOWARNING("\The [src]'s supports are bolted and welded into the floor. It looks like it's going to be staying there.")) return XENO_NO_DELAY_ACTION if(firing) - M.animation_attack_on(src) - M.flick_attack_overlay(src, "slash") + xeno.animation_attack_on(src) + xeno.flick_attack_overlay(src, "slash") playsound(src, "acid_hit", 25, 1) - playsound(M, "alien_help", 25, 1) - M.apply_damage(10, BURN) - M.visible_message(SPAN_DANGER("[M] tried to knock the steaming hot [src] over, but burned itself and pulled away!"), + playsound(xeno, "alien_help", 25, 1) + xeno.apply_damage(10, BURN) + xeno.visible_message(SPAN_DANGER("[xeno] tried to knock the steaming hot [src] over, but burned itself and pulled away!"), SPAN_XENOWARNING("\The [src] is burning hot! Wait a few seconds.")) return XENO_ATTACK_ACTION - M.visible_message(SPAN_DANGER("[M] lashes at \the [src] and knocks it over!"), + xeno.visible_message(SPAN_DANGER("[xeno] lashes at \the [src] and knocks it over!"), SPAN_DANGER("You knock \the [src] over!")) - M.animation_attack_on(src) - M.flick_attack_overlay(src, "slash") + xeno.animation_attack_on(src) + xeno.flick_attack_overlay(src, "slash") playsound(loc, 'sound/effects/metalhit.ogg', 25) var/obj/item/mortar_kit/MK = new /obj/item/mortar_kit(loc) MK.name = name @@ -206,40 +208,47 @@ SStgui.update_uis(src) -/obj/structure/mortar/attackby(obj/item/O, mob/user) - if(istype(O, /obj/item/mortar_shell)) - var/obj/item/mortar_shell/mortar_shell = O +/obj/structure/mortar/attackby(obj/item/item, mob/user) + if(istype(item, /obj/item/mortar_shell)) + var/obj/item/mortar_shell/mortar_shell = item + var/turf/target_turf = locate(targ_x + dial_x + offset_x, targ_y + dial_y + offset_y, z) + var/area/target_area = get_area(target_turf) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You don't have the training to fire [src].")) return if(busy) to_chat(user, SPAN_WARNING("Someone else is currently using [src].")) return - if(!is_ground_level(z)) - to_chat(user, SPAN_WARNING("You cannot fire [src] here.")) - return - if(targ_x == 0 && targ_y == 0) //Mortar wasn't set - to_chat(user, SPAN_WARNING("[src] needs to be aimed first.")) - return - var/turf/T = locate(targ_x + dial_x + offset_x, targ_y + dial_y + offset_y, z) - if(!T) - to_chat(user, SPAN_WARNING("You cannot fire [src] to this target.")) - return - var/area/A = get_area(T) - if(!istype(A)) - to_chat(user, SPAN_WARNING("This area is out of bounds!")) - return - if(CEILING_IS_PROTECTED(A.ceiling, CEILING_PROTECTION_TIER_2) || protected_by_pylon(TURF_PROTECTION_MORTAR, T)) - to_chat(user, SPAN_WARNING("You cannot hit the target. It is probably underground.")) - return - if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_LZ_PROTECTION) && A.is_landing_zone) - to_chat(user, SPAN_WARNING("You cannot bomb the landing zone!")) - return - - //Small amount of spread so that consecutive mortar shells don't all land on the same tile - var/turf/T1 = locate(T.x + pick(-1,0,0,1), T.y + pick(-1,0,0,1), T.z) - if(T1) - T = T1 + if(!ship_side) + if(targ_x == 0 && targ_y == 0) //Mortar wasn't set + to_chat(user, SPAN_WARNING("[src] needs to be aimed first.")) + return + if(!target_turf) + to_chat(user, SPAN_WARNING("You cannot fire [src] to this target.")) + return + if(!istype(target_area)) + to_chat(user, SPAN_WARNING("This area is out of bounds!")) + return + if(CEILING_IS_PROTECTED(target_area.ceiling, CEILING_PROTECTION_TIER_2) || protected_by_pylon(TURF_PROTECTION_MORTAR, target_turf)) + to_chat(user, SPAN_WARNING("You cannot hit the target. It is probably underground.")) + return + if(SSticker.mode && MODE_HAS_TOGGLEABLE_FLAG(MODE_LZ_PROTECTION) && target_area.is_landing_zone) + to_chat(user, SPAN_WARNING("You cannot bomb the landing zone!")) + return + + if(ship_side) + var/crash_occurred = (SSticker?.mode?.is_in_endgame) + if(crash_occurred) + var/turf/our_turf = get_turf(src) + target_turf = our_turf + travel_time = 0.5 SECONDS + else + to_chat(user, SPAN_RED("You realize how bad of an idea this is and quickly stop.")) + return + else + var/turf/deviation_turf = locate(target_turf.x + pick(-1,0,0,1), target_turf.y + pick(-1,0,0,1), target_turf.z) //Small amount of spread so that consecutive mortar shells don't all land on the same tile + if(deviation_turf) + target_turf = deviation_turf user.visible_message(SPAN_NOTICE("[user] starts loading \a [mortar_shell.name] into [src]."), SPAN_NOTICE("You start loading \a [mortar_shell.name] into [src].")) @@ -259,15 +268,15 @@ mortar_shell.cause_data = create_cause_data(initial(mortar_shell.name), user, src) mortar_shell.forceMove(src) - var/turf/G = get_turf(src) - G.ceiling_debris_check(2) + var/turf/mortar_turf = get_turf(src) + mortar_turf.ceiling_debris_check(2) - for(var/mob/M in range(7)) - shake_camera(M, 3, 1) + for(var/mob/mob in range(7)) + shake_camera(mob, 3, 1) - addtimer(CALLBACK(src, PROC_REF(handle_shell), T, mortar_shell), travel_time) + addtimer(CALLBACK(src, PROC_REF(handle_shell), target_turf, mortar_shell), travel_time) - if(HAS_TRAIT(O, TRAIT_TOOL_WRENCH)) + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You don't have the training to undeploy [src].")) return @@ -287,11 +296,11 @@ user.visible_message(SPAN_NOTICE("[user] undeploys [src]."), \ SPAN_NOTICE("You undeploy [src].")) playsound(loc, 'sound/items/Deconstruct.ogg', 25, 1) - var/obj/item/mortar_kit/M = new /obj/item/mortar_kit(loc) - M.name = src.name + var/obj/item/mortar_kit/mortar = new /obj/item/mortar_kit(loc) + mortar.name = src.name qdel(src) - if(HAS_TRAIT(O, TRAIT_TOOL_SCREWDRIVER)) + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) if(do_after(user, 1 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) user.visible_message(SPAN_NOTICE("[user] toggles the targeting computer on [src]."), \ SPAN_NOTICE("You toggle the targeting computer on [src].")) @@ -303,29 +312,45 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) qdel(src) +/obj/effect/mortar_effect + icon = 'icons/obj/structures/mortar.dmi' + icon_state = "mortar_ammo_custom" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + invisibility = INVISIBILITY_MAXIMUM + /obj/structure/mortar/proc/handle_shell(turf/target, obj/item/mortar_shell/shell) if(protected_by_pylon(TURF_PROTECTION_MORTAR, target)) firing = FALSE return + if(ship_side) + var/turf/our_turf = get_turf(src) + shell.detonate(our_turf) + return + + if(istype(shell, /obj/item/mortar_shell/custom)) // big shell warning for ghosts + var/obj/effect/effect = new /obj/effect/mortar_effect(target) + QDEL_IN(effect, 5 SECONDS) + notify_ghosts(header = "Custom Shell", message = "A custom mortar shell is about to land at [get_area(target)].", source = effect) + playsound(target, 'sound/weapons/gun_mortar_travel.ogg', 50, 1) var/relative_dir - for(var/mob/M in range(15, target)) - if(get_turf(M) == target) + for(var/mob/mob in range(15, target)) + if(get_turf(mob) == target) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, target) - M.show_message( \ + relative_dir = Get_Compass_Dir(mob, target) + mob.show_message( \ SPAN_DANGER("A SHELL IS COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ SPAN_DANGER("YOU HEAR SOMETHING COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ ) sleep(2.5 SECONDS) // Sleep a bit to give a message - for(var/mob/M in range(10, target)) - if(get_turf(M) == target) + for(var/mob/mob in range(10, target)) + if(get_turf(mob) == target) relative_dir = 0 else - relative_dir = Get_Compass_Dir(M, target) - M.show_message( \ + relative_dir = Get_Compass_Dir(mob, target) + mob.show_message( \ SPAN_HIGHDANGER("A SHELL IS ABOUT TO IMPACT [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \ SPAN_HIGHDANGER("YOU HEAR SOMETHING VERY CLOSE COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \ ) @@ -338,6 +363,9 @@ /obj/structure/mortar/proc/can_fire_at(mob/user, test_targ_x = targ_x, test_targ_y = targ_y, test_dial_x, test_dial_y) var/dialing = test_dial_x || test_dial_y + if(ship_side) + to_chat(user, SPAN_WARNING("You cannot aim the mortar while on a ship.")) + return FALSE if(test_dial_x + test_targ_x > world.maxx || test_dial_x + test_targ_x < 0) to_chat(user, SPAN_WARNING("You cannot [dialing ? "dial to" : "aim at"] this coordinate, it is outside of the area of operations.")) return FALSE @@ -385,21 +413,23 @@ if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_TRAINED)) to_chat(user, SPAN_WARNING("You don't have the training to deploy [src].")) return - if(!is_ground_level(deploy_turf.z)) - to_chat(user, SPAN_WARNING("You cannot deploy [src] here.")) - return - var/area/A = get_area(deploy_turf) - if(CEILING_IS_PROTECTED(A.ceiling, CEILING_PROTECTION_TIER_1)) + var/area/area = get_area(deploy_turf) + if(CEILING_IS_PROTECTED(area.ceiling, CEILING_PROTECTION_TIER_1) && is_ground_level(deploy_turf.z)) to_chat(user, SPAN_WARNING("You probably shouldn't deploy [src] indoors.")) return user.visible_message(SPAN_NOTICE("[user] starts deploying [src]."), \ SPAN_NOTICE("You start deploying [src].")) playsound(deploy_turf, 'sound/items/Deconstruct.ogg', 25, 1) if(do_after(user, 4 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - user.visible_message(SPAN_NOTICE("[user] deploys [src]."), \ - SPAN_NOTICE("You deploy [src].")) + var/obj/structure/mortar/mortar = new /obj/structure/mortar(deploy_turf) + if(!is_ground_level(deploy_turf.z)) + mortar.ship_side = TRUE + user.visible_message(SPAN_NOTICE("[user] deploys [src]."), \ + SPAN_NOTICE("You deploy [src]. This is a bad idea.")) + else + user.visible_message(SPAN_NOTICE("[user] deploys [src]."), \ + SPAN_NOTICE("You deploy [src].")) playsound(deploy_turf, 'sound/weapons/gun_mortar_unpack.ogg', 25, 1) - var/obj/structure/mortar/M = new /obj/structure/mortar(deploy_turf) - M.name = src.name - M.setDir(user.dir) + mortar.name = src.name + mortar.setDir(user.dir) qdel(src) diff --git a/code/modules/cm_marines/m2c.dm b/code/modules/cm_marines/m2c.dm index 4001e72b02f3..dea7d80b50f9 100644 --- a/code/modules/cm_marines/m2c.dm +++ b/code/modules/cm_marines/m2c.dm @@ -131,20 +131,21 @@ if(!check_can_setup(user, rotate_check, OT, ACR)) return - var/obj/structure/machinery/m56d_hmg/auto/M = new /obj/structure/machinery/m56d_hmg/auto(user.loc) - transfer_label_component(M) - M.setDir(user.dir) // Make sure we face the right direction - M.anchored = TRUE - playsound(M, 'sound/items/m56dauto_setup.ogg', 75, TRUE) - to_chat(user, SPAN_NOTICE("You deploy [M].")) - M.rounds = rounds - M.overheat_value = overheat_value - M.health = health - M.update_icon() + var/obj/structure/machinery/m56d_hmg/auto/HMG = new(user.loc) + transfer_label_component(HMG) + HMG.setDir(user.dir) // Make sure we face the right direction + HMG.anchored = TRUE + playsound(HMG, 'sound/items/m56dauto_setup.ogg', 75, TRUE) + to_chat(user, SPAN_NOTICE("You deploy [HMG].")) + HMG.rounds = rounds + HMG.overheat_value = overheat_value + HMG.health = health + HMG.update_damage_state() + HMG.update_icon() qdel(src) - if(M.rounds > 0) - M.try_mount_gun(user) + if(HMG.rounds > 0) + HMG.try_mount_gun(user) /obj/item/device/m2c_gun/attackby(obj/item/O as obj, mob/user as mob) if(!ishuman(user)) @@ -313,12 +314,13 @@ if(health <= 0) playsound(src.loc, 'sound/items/Welder2.ogg', 25, 1) visible_message(SPAN_WARNING("[src] has broken down completely!")) - var/obj/item/device/m2c_gun/HMG = new(src.loc) + var/obj/item/device/m2c_gun/HMG = new(loc) HMG.rounds = rounds HMG.broken_gun = TRUE HMG.unacidable = FALSE HMG.health = 0 HMG.update_icon() + transfer_label_component(HMG) qdel(src) return @@ -475,10 +477,10 @@ return user.visible_message(SPAN_NOTICE("[user] disassembles [src]."),SPAN_NOTICE("You fold up the tripod for [src], disassembling it.")) playsound(src.loc, 'sound/items/m56dauto_setup.ogg', 75, 1) - var/obj/item/device/m2c_gun/HMG = new(src.loc) + var/obj/item/device/m2c_gun/HMG = new(loc) transfer_label_component(HMG) - HMG.rounds = src.rounds - HMG.overheat_value = round(0.5 * src.overheat_value) + HMG.rounds = rounds + HMG.overheat_value = round(0.5 * overheat_value) if (HMG.overheat_value <= 10) HMG.overheat_value = 0 HMG.update_icon() diff --git a/code/modules/cm_marines/marines_consoles.dm b/code/modules/cm_marines/marines_consoles.dm index 1d72ab5a4d99..7e57430f081a 100644 --- a/code/modules/cm_marines/marines_consoles.dm +++ b/code/modules/cm_marines/marines_consoles.dm @@ -904,9 +904,10 @@ GLOBAL_LIST_EMPTY_TYPED(crewmonitor, /datum/crewmonitor) // 20-29: Aux Command JOB_AUXILIARY_OFFICER = 20, JOB_SYNTH = 21, - JOB_PILOT = 22, - JOB_DROPSHIP_CREW_CHIEF = 23, - JOB_INTEL = 24, + JOB_CAS_PILOT = 22, + JOB_DROPSHIP_PILOT = 23, + JOB_DROPSHIP_CREW_CHIEF = 24, + JOB_INTEL = 25, // 30-39: Security JOB_CHIEF_POLICE = 30, JOB_PROVOST_TML = 30, diff --git a/code/modules/cm_marines/smartgun_mount.dm b/code/modules/cm_marines/smartgun_mount.dm index dbfdf03e0b76..7cb3b4fa051b 100644 --- a/code/modules/cm_marines/smartgun_mount.dm +++ b/code/modules/cm_marines/smartgun_mount.dm @@ -137,14 +137,15 @@ to_chat(user, SPAN_WARNING("This is too close to [machine]!")) return - var/obj/structure/machinery/m56d_post/M = new /obj/structure/machinery/m56d_post(user.loc) - M.setDir(user.dir) // Make sure we face the right direction - M.gun_rounds = src.rounds //Inherit the amount of ammo we had. - M.gun_mounted = TRUE - M.anchored = TRUE - M.update_icon() - transfer_label_component(M) - to_chat(user, SPAN_NOTICE("You deploy \the [src].")) + var/obj/structure/machinery/m56d_post/post = new(user.loc) + post.setDir(user.dir) // Make sure we face the right direction + post.gun_rounds = rounds + post.gun_mounted = TRUE + post.gun_health = health // retain damage + post.anchored = TRUE + post.update_icon() + transfer_label_component(post) + to_chat(user, SPAN_NOTICE("You deploy [src].")) qdel(src) @@ -223,8 +224,8 @@ return to_chat(user, SPAN_NOTICE("You deploy \the [src].")) - var/obj/structure/machinery/m56d_post/M = new /obj/structure/machinery/m56d_post(user.loc) - transfer_label_component(M) + var/obj/structure/machinery/m56d_post/post = new(user.loc) + transfer_label_component(post) qdel(src) @@ -238,8 +239,12 @@ density = TRUE layer = ABOVE_MOB_LAYER projectile_coverage = PROJECTILE_COVERAGE_LOW - var/gun_mounted = FALSE //Has the gun been mounted? - var/gun_rounds = 0 //Did the gun come with any ammo? + ///Whether a gun is mounted + var/gun_mounted = FALSE + ///Ammo amount of the mounted gun + var/gun_rounds = 0 + ///Health of the mounted gun + var/gun_health = 0 health = 50 /obj/structure/machinery/m56d_post/initialize_pass_flags(datum/pass_flags_container/PF) @@ -302,8 +307,9 @@ to_chat(user, SPAN_WARNING("\The [src] can't be folded while screwed to the floor. Unscrew it first.")) return to_chat(user, SPAN_NOTICE("You fold [src].")) - var/obj/item/device/m56d_post/P = new(loc) - user.put_in_hands(P) + var/obj/item/device/m56d_post/post = new(loc) + transfer_label_component(post) + user.put_in_hands(post) qdel(src) /obj/structure/machinery/m56d_post/attackby(obj/item/O, mob/user) @@ -331,6 +337,8 @@ user.visible_message(SPAN_NOTICE("[user] installs [MG] into place."),SPAN_NOTICE("You install [MG] into place.")) gun_mounted = 1 gun_rounds = MG.rounds + gun_health = MG.health + MG.transfer_label_component(src) update_icon() user.temp_drop_inv_item(MG) qdel(MG) @@ -343,12 +351,19 @@ to_chat(user, "You begin dismounting [src]'s gun...") if(do_after(user, 30 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD) && gun_mounted) playsound(src.loc, 'sound/items/Crowbar.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] removes [src]'s gun."),SPAN_NOTICE("You remove [src]'s gun.")) - var/obj/item/device/m56d_gun/G = new(loc) - G.rounds = gun_rounds - G.update_icon() + user.visible_message(SPAN_NOTICE("[user] removes [src]'s gun."), SPAN_NOTICE("You remove [src]'s gun.")) + var/obj/item/device/m56d_gun/HMG = new(loc) + HMG.rounds = gun_rounds + if(gun_health) + HMG.health = gun_health + HMG.update_icon() + transfer_label_component(HMG) + var/datum/component/label/label = GetComponent(/datum/component/label) + if(label) + label.remove_label() gun_mounted = FALSE gun_rounds = 0 + gun_health = 0 update_icon() return @@ -389,13 +404,16 @@ var/disassemble_time = 30 if(do_after(user, disassemble_time * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 25, 1) - user.visible_message(SPAN_NOTICE("[user] screws the M56D into the mount."),SPAN_NOTICE("You finalize the M56D heavy machine gun.")) - var/obj/structure/machinery/m56d_hmg/G = new(src.loc) //Here comes our new turret. - transfer_label_component(G) - G.visible_message("[icon2html(G, viewers(src))] \The [G] is now complete!") //finished it for everyone to - G.setDir(dir) //make sure we face the right direction - G.rounds = src.gun_rounds //Inherent the amount of ammo we had. - G.update_icon() + user.visible_message(SPAN_NOTICE("[user] screws the M56D into the mount."), SPAN_NOTICE("You finalize the M56D heavy machine gun.")) + var/obj/structure/machinery/m56d_hmg/HMG = new(loc) + transfer_label_component(HMG) + HMG.visible_message("[icon2html(HMG, viewers(src))] \The [HMG] is now complete!") + HMG.setDir(dir) + HMG.rounds = gun_rounds + if(gun_health) + HMG.health = gun_health + HMG.update_damage_state() + HMG.update_icon() qdel(src) else if(anchored) @@ -562,7 +580,7 @@ return else playsound(src.loc, 'sound/items/Ratchet.ogg', 25, 1) - user.visible_message("[user] rotates \the [src].","You rotate \the [src].") + user.visible_message("[user] rotates [src].", "You rotate [src].") setDir(turn(dir, -90)) if(operator) update_pixels(operator) @@ -576,14 +594,15 @@ var/disassemble_time = 30 if(do_after(user, disassemble_time * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) - user.visible_message(SPAN_NOTICE(" [user] disassembles [src]! "),SPAN_NOTICE(" You disassemble [src]!")) + user.visible_message(SPAN_NOTICE("[user] disassembles [src]!"), SPAN_NOTICE("You disassemble [src]!")) playsound(src.loc, 'sound/items/Screwdriver.ogg', 25, 1) - var/obj/item/device/m56d_gun/HMG = new(src.loc) //Here we generate our disassembled mg. + var/obj/item/device/m56d_gun/HMG = new(loc) transfer_label_component(HMG) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. + HMG.rounds = rounds HMG.has_mount = TRUE + HMG.health = health HMG.update_icon() - qdel(src) //Now we clean up the constructed gun. + qdel(src) return if(istype(O, /obj/item/ammo_magazine/m56d)) // RELOADING DOCTOR FREEMAN. @@ -595,7 +614,7 @@ if(user.action_busy) return if(!do_after(user, 25 * user.get_skill_duration_multiplier(SKILL_ENGINEER), INTERRUPT_ALL, BUSY_ICON_FRIENDLY)) return - user.visible_message(SPAN_NOTICE("[user] loads [src]! "),SPAN_NOTICE("You load [src]!")) + user.visible_message(SPAN_NOTICE("[user] loads [src]!"), SPAN_NOTICE("You load [src]!")) playsound(loc, 'sound/weapons/gun_minigun_cocked.ogg', 25, 1) if(rounds) var/obj/item/ammo_magazine/m56d/D = new(user.loc) @@ -638,10 +657,10 @@ if(health <= 0) var/destroyed = rand(0,1) //Ammo cooks off or something. Who knows. playsound(src.loc, 'sound/items/Welder2.ogg', 25, 1) - if(!destroyed) new /obj/structure/machinery/m56d_post(loc) - else + if(!destroyed) var/obj/item/device/m56d_gun/HMG = new(loc) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. + transfer_label_component(HMG) + HMG.rounds = rounds qdel(src) return @@ -981,6 +1000,7 @@ to_chat(operator, SPAN_HIGHDANGER("You are knocked off the gun by the sheer force of the ram!")) operator.unset_interaction() operator.apply_effect(3, WEAKEN) + operator.emote("pain") /// Getter for burst_firing /obj/structure/machinery/m56d_hmg/proc/get_burst_firing() 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_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm index 1cf8310a607e..1994d0507884 100644 --- a/code/modules/cm_preds/yaut_bracers.dm +++ b/code/modules/cm_preds/yaut_bracers.dm @@ -774,7 +774,7 @@ to_chat(M, SPAN_WARNING("As you fall into unconsciousness you fail to activate your self-destruct device before you collapse.")) return if(M.stat) - to_chat(M, SPAN_WARNING("Not while you're unconcious...")) + to_chat(M, SPAN_WARNING("Not while you're unconscious...")) return var/obj/item/grab/G = M.get_active_hand() @@ -812,7 +812,7 @@ to_chat(M, SPAN_WARNING("Little too late for that now!")) return if(M.stat) - to_chat(M, SPAN_WARNING("Not while you're unconcious...")) + to_chat(M, SPAN_WARNING("Not while you're unconscious...")) return exploding = FALSE to_chat(M, SPAN_NOTICE("Your bracers stop beeping.")) @@ -838,7 +838,7 @@ to_chat(M, SPAN_WARNING("Little too late for that now!")) return if(M.stat) - to_chat(M, SPAN_WARNING("Not while you're unconcious...")) + to_chat(M, SPAN_WARNING("Not while you're unconscious...")) return if(exploding) return @@ -1050,7 +1050,7 @@ if(!drain_power(caller, 50)) return - log_say("[caller.name != "Unknown" ? caller.name : "([caller.real_name])"] \[Yautja Translator\]: [msg] (CKEY: [caller.key]) (JOB: [caller.job])") + log_say("[caller.name != "Unknown" ? caller.name : "([caller.real_name])"] \[Yautja Translator\]: [msg] (CKEY: [caller.key]) (JOB: [caller.job]) (AREA: [get_area_name(caller)])") var/list/heard = get_mobs_in_view(7, caller) for(var/mob/M in heard) 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/tech.dm b/code/modules/cm_tech/tech.dm index dea505f3237a..1750f7e7dbbf 100644 --- a/code/modules/cm_tech/tech.dm +++ b/code/modules/cm_tech/tech.dm @@ -21,9 +21,11 @@ var/background_icon = "background" var/background_icon_locked = "marine" - var/announce_name + var/announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" var/announce_message + var/is_tier_changer = FALSE + /datum/tech/proc/can_unlock(mob/M) SHOULD_CALL_PARENT(TRUE) @@ -58,6 +60,7 @@ return TRUE + /** Called when a tech is unlocked. Usually, benefits can be applied here * however, the purchase can still be cancelled by returning FALSE * @@ -69,11 +72,17 @@ unlocked = TRUE to_chat(user, SPAN_HELPFUL("You have purchased the '[name]' tech node.")) log_admin("[key_name_admin(user)] has bought '[name]' via tech points.") + if(!is_tier_changer) + var/log_details = announce_message + if(!log_details) + log_details = name + var/current_points = holder.points + log_ares_tech(user.real_name, is_tier_changer, announce_name, log_details, required_points, current_points) holder.spend_points(required_points) update_icon(node) if(!(tech_flags & TECH_FLAG_NO_ANNOUNCE) && announce_message && announce_name) - marine_announcement(announce_message, announce_name, 'sound/misc/notice2.ogg') + marine_announcement(announce_message, announce_name, 'sound/misc/notice2.ogg', logging = ARES_LOG_NONE) return TRUE diff --git a/code/modules/cm_tech/techs/abstract/transitory.dm b/code/modules/cm_tech/techs/abstract/transitory.dm index 7798b6053d0e..1737b6b21ee6 100644 --- a/code/modules/cm_tech/techs/abstract/transitory.dm +++ b/code/modules/cm_tech/techs/abstract/transitory.dm @@ -7,6 +7,7 @@ var/datum/tier/next var/techs_to_unlock = 0 + is_tier_changer = TRUE /datum/tech/transitory/check_tier_level(mob/M) if(before && before != holder.tier.type) @@ -22,7 +23,7 @@ return TRUE -/datum/tech/transitory/on_unlock() +/datum/tech/transitory/on_unlock(mob/user) . = ..() if(!next) return @@ -31,6 +32,10 @@ if(next_tier) holder.tier = next_tier holder.on_tier_change(previous_tier) + if(flags & TREE_FLAG_MARINE) + /// Due to calling parent, points will have already been spent by now. + var/current_points = holder.points + required_points + log_ares_tech(user.real_name, is_tier_changer, "ALMAYER DEFCON LEVEL INCREASED", "THREAT ASSESSMENT LEVEL INCREASED TO LEVEL [next_tier.tier].\n\nLEVEL [next_tier.tier] assets have been authorised to handle the situation.", required_points, current_points) /datum/tech/transitory/get_tier_overlay() if(!next) diff --git a/code/modules/cm_tech/techs/marine/tier1/points.dm b/code/modules/cm_tech/techs/marine/tier1/points.dm index d6bb5bace6fc..7768d8da2ab7 100644 --- a/code/modules/cm_tech/techs/marine/tier1/points.dm +++ b/code/modules/cm_tech/techs/marine/tier1/points.dm @@ -31,7 +31,6 @@ icon_state = "budget_ds" desc = "Distributes resources to the dropship fabricator." - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" announce_message = "Additional dropship part fabricator points have been authorised for this operation." required_points = 12 diff --git a/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm b/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm index 303ea6121734..51675ccd27f2 100644 --- a/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm +++ b/code/modules/cm_tech/techs/marine/tier2/orbital_ammo.dm @@ -7,8 +7,6 @@ tier = /datum/tier/two - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" - var/type_to_give /datum/tech/repeatable/ob/on_unlock() 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..06770b1d6afe 100644 --- a/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm +++ b/code/modules/cm_tech/techs/marine/tier3/cryo_spec.dm @@ -3,7 +3,6 @@ desc = "Wakes up an additional specialist to fight against any threats." icon_state = "overshield" - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" announce_message = "An additional specialist is being taken out of cryo." required_points = 8 @@ -21,4 +20,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..19200698db02 100644 --- a/code/modules/cm_tech/techs/marine/tier3/cryorine.dm +++ b/code/modules/cm_tech/techs/marine/tier3/cryorine.dm @@ -4,7 +4,6 @@ desc = "Wakes up additional troops to fight against any threats." icon_state = "cryotroops" - announce_name = "ALMAYER SPECIAL ASSETS AUTHORIZED" announce_message = "Additional troops are being taken out of cryo." required_points = 6 @@ -23,4 +22,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/cm_tech/trees/marine.dm b/code/modules/cm_tech/trees/marine.dm index 55e82882b848..046712f9656b 100644 --- a/code/modules/cm_tech/trees/marine.dm +++ b/code/modules/cm_tech/trees/marine.dm @@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(marine_leaders) var/mob/living/carbon/human/leader var/mob/living/carbon/human/dead_leader - var/job_cannot_be_overriden = list( + var/job_cannot_be_overridden = list( JOB_XO, JOB_CO ) @@ -70,7 +70,7 @@ GLOBAL_LIST_EMPTY(marine_leaders) /datum/techtree/marine/proc/handle_death(mob/living/carbon/human/H) SIGNAL_HANDLER - if((H.job in job_cannot_be_overriden) && (!dead_leader || !dead_leader.check_tod())) + if((H.job in job_cannot_be_overridden) && (!dead_leader || !dead_leader.check_tod())) RegisterSignal(H, COMSIG_PARENT_QDELETING, PROC_REF(cleanup_dead_leader)) RegisterSignal(H, COMSIG_HUMAN_REVIVED, PROC_REF(readd_leader)) dead_leader = H @@ -174,4 +174,4 @@ GLOBAL_LIST_EMPTY(tech_controls_marine) return //No need to announce tier updates for tier 1 var/name = "ALMAYER DEFCON LEVEL INCREASED" var/input = "THREAT ASSESSMENT LEVEL INCREASED TO LEVEL [tier.tier].\n\nLEVEL [tier.tier] assets have been authorised to handle the situation." - marine_announcement(input, name, 'sound/AI/commandreport.ogg') + marine_announcement(input, name, 'sound/AI/commandreport.ogg', logging = ARES_LOG_NONE) diff --git a/code/modules/defenses/bell_tower.dm b/code/modules/defenses/bell_tower.dm index 8ef4fe913079..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, ) @@ -110,7 +110,7 @@ if(M.get_target_lock(faction)) return - var/list/turf/path = getline2(src, linked_bell, include_from_atom = TRUE) + var/list/turf/path = get_line(src, linked_bell) for(var/turf/PT in path) if(PT.density) return diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index fefd3c640c65..febe4901ae8a 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -97,11 +97,13 @@ if(!(placed||static)) return FALSE + msg_admin_niche("[key_name(usr)] turned on [src] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") turned_on = TRUE power_on_action() update_icon() /obj/structure/machinery/defenses/proc/power_off() + msg_admin_niche("[key_name(usr)] turned off [src] at [get_location_in_text(src)] [ADMIN_JMP(loc)]") turned_on = FALSE power_off_action() update_icon() @@ -113,6 +115,7 @@ * @param selection: configuration value for category. */ /obj/structure/machinery/defenses/proc/update_choice(mob/user, category, selection) + msg_admin_niche("[key_name(user)] changed the [category] of [src] at [get_location_in_text(src)] to [selection] [ADMIN_JMP(loc)]") if(category in selected_categories) selected_categories[category] = selection switch(category) @@ -124,7 +127,6 @@ switch(category) if("nickname") nickname = selection - message_admins("[key_name_admin(user)] has labelled structure to [nickname]", user.x, user.y, user.z) return TRUE return FALSE @@ -134,7 +136,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 999df7c22579..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() @@ -404,7 +404,7 @@ targets.Remove(A) continue - var/list/turf/path = getline2(src, A, include_from_atom = FALSE) + var/list/turf/path = get_line(src, A, include_start_atom = FALSE) if(!path.len || get_dist(src, A) > sentry_range) if(A == target) target = null @@ -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 e466421c8b31..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, ) @@ -125,7 +125,7 @@ if(!istype(M)) return FALSE - var/list/turf/path = getline2(src, M, include_from_atom = FALSE) + var/list/turf/path = get_line(src, M, include_start_atom = FALSE) var/blocked = FALSE for(var/turf/T in path) 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 16c89cf164f2..6fef4d58e785 100644 --- a/code/modules/dropships/attach_points/attach_point.dm +++ b/code/modules/dropships/attach_points/attach_point.dm @@ -7,7 +7,7 @@ unacidable = TRUE anchored = TRUE layer = ABOVE_TURF_LAYER - plane = FLOOR_PLANE + plane = GAME_PLANE /// The currently installed equipment, if any var/obj/structure/dropship_equipment/installed_equipment /// What kind of equipment this base accepts @@ -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/dropships/attach_points/templates.dm b/code/modules/dropships/attach_points/templates.dm index 51c870f04b0b..bcdad8836e25 100644 --- a/code/modules/dropships/attach_points/templates.dm +++ b/code/modules/dropships/attach_points/templates.dm @@ -87,9 +87,15 @@ /obj/effect/attach_point/crew_weapon/dropship1 ship_tag = DROPSHIP_ALAMO +/obj/effect/attach_point/crew_weapon/dropship1/floor + plane = FLOOR_PLANE + /obj/effect/attach_point/crew_weapon/dropship2 ship_tag = DROPSHIP_NORMANDY +/obj/effect/attach_point/crew_weapon/dropship2/floor + plane = FLOOR_PLANE + /obj/effect/attach_point/electronics name = "electronic system attach point" base_category = DROPSHIP_ELECTRONICS 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/events/_events.dm b/code/modules/events/_events.dm index 2cc3304e78c9..af85be04238f 100644 --- a/code/modules/events/_events.dm +++ b/code/modules/events/_events.dm @@ -21,7 +21,7 @@ ///The minimum amount of alive, non-AFK human players on server required to start the event. var/min_players = 0 - ///How many times this event has occured + ///How many times this event has occurred var/occurrences = 0 //The maximum number of times this event can occur (naturally), it can still be forced.By setting this to 0 you can effectively disable an event. var/max_occurrences = 20 diff --git a/code/modules/events/inflation.dm b/code/modules/events/inflation.dm index 377c689fa1a0..b410d9795838 100644 --- a/code/modules/events/inflation.dm +++ b/code/modules/events/inflation.dm @@ -32,7 +32,7 @@ /* You may be thinking 'Why the fuck would W-Y directly send a broadcast to a in-operation vessel and reveal their location to any hostiles nearby?' The answer is they don't, it's a signal sent across entire sectors for every UA-affiliated vessel and colony to take note of when it passes by. Colony vendors aren't updated because the colony's network has collapsed. */ - shipwide_ai_announcement("An encrypted broadband signal from Weyland-Yutani has been recieved notifying the sector of sudden changes in the UA's economy during cryosleep, due to [get_random_story()], and have requested UA vessels to increase the prices of [product_type] products by [get_percentage()]%. This change will come into effect in [time_to_update] minutes.") + shipwide_ai_announcement("An encrypted broadband signal from Weyland-Yutani has been received notifying the sector of sudden changes in the UA's economy during cryosleep, due to [get_random_story()], and have requested UA vessels to increase the prices of [product_type] products by [get_percentage()]%. This change will come into effect in [time_to_update] minutes.") /datum/round_event/economy_inflation/start() for(var/obj/structure/machinery/vending/vending_machine as anything in GLOB.total_vending_machines) 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 90032423fa10..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) @@ -312,7 +311,7 @@ //clothes new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/ICC, WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/black, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/mod88, WEAR_IN_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88, WEAR_IN_ACCESSORY) @@ -372,7 +371,7 @@ //clothes new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/pen, WEAR_R_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/blue, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/health/ceramic_plate, WEAR_ACCESSORY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_STORE) diff --git a/code/modules/gear_presets/contractor.dm b/code/modules/gear_presets/contractor.dm index 896771d26aca..3f0cdecb9ac2 100644 --- a/code/modules/gear_presets/contractor.dm +++ b/code/modules/gear_presets/contractor.dm @@ -61,7 +61,7 @@ /datum/equipment_preset/contractor/duty/standard name = "Military Contractor (Standard)" - paygrade = "VAI" + paygrade = PAY_SHORT_VAI_S role_comm_title = "Merc" flags = EQUIPMENT_PRESET_EXTRA assignment = "VAIPO Mercenary" @@ -160,7 +160,7 @@ /datum/equipment_preset/contractor/duty/heavy name = "Military Contractor (Machinegunner)" - paygrade = "VAI-G" + paygrade = PAY_SHORT_VAI_G role_comm_title = "MG" flags = EQUIPMENT_PRESET_EXTRA @@ -205,7 +205,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/duty/engi name = "Military Contractor (Engineer)" - paygrade = "VAI-E" + paygrade = PAY_SHORT_VAI_E role_comm_title = "Eng" flags = EQUIPMENT_PRESET_EXTRA @@ -252,7 +252,7 @@ /datum/equipment_preset/contractor/duty/medic name = "Military Contractor (Medic)" - paygrade = "VAI-M" + paygrade = PAY_SHORT_VAI_M role_comm_title = "Med" flags = EQUIPMENT_PRESET_EXTRA @@ -289,16 +289,16 @@ 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) //*****************************************************************************************************/ /datum/equipment_preset/contractor/duty/leader name = "Military Contractor (Leader)" - paygrade = "VAI-L" + paygrade = PAY_SHORT_VAI_L role_comm_title = "TL" flags = EQUIPMENT_PRESET_EXTRA @@ -348,7 +348,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/duty/synth name = "Military Contractor (Synthetic)" - paygrade = "VAI-S" + paygrade = PAY_SHORT_VAI_SN role_comm_title = "Syn" flags = EQUIPMENT_PRESET_EXTRA @@ -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 @@ -439,7 +438,7 @@ /datum/equipment_preset/contractor/covert/standard name = "Military Contractor (Covert Standard)" - paygrade = "VAI" + paygrade = PAY_SHORT_VAI_S role_comm_title = "Merc" flags = EQUIPMENT_PRESET_EXTRA @@ -540,7 +539,7 @@ /datum/equipment_preset/contractor/covert/heavy name = "Military Contractor (Covert Machinegunner)" - paygrade = "VAI-G" + paygrade = PAY_SHORT_VAI_G role_comm_title = "MG" flags = EQUIPMENT_PRESET_EXTRA @@ -587,7 +586,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/covert/engi name = "Military Contractor (Covert Engineer)" - paygrade = "VAI-E" + paygrade = PAY_SHORT_VAI_E role_comm_title = "Eng" flags = EQUIPMENT_PRESET_EXTRA @@ -635,7 +634,7 @@ /datum/equipment_preset/contractor/covert/medic name = "Military Contractor (Covert Medic)" - paygrade = "VAI-M" + paygrade = PAY_SHORT_VAI_M role_comm_title = "Med" flags = EQUIPMENT_PRESET_EXTRA @@ -682,7 +681,7 @@ /datum/equipment_preset/contractor/covert/leader name = "Military Contractor (Covert Leader)" - paygrade = "VAI-L" + paygrade = PAY_SHORT_VAI_L role_comm_title = "TL" flags = EQUIPMENT_PRESET_EXTRA @@ -733,7 +732,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/contractor/covert/synth name = "Military Contractor (Covert Synthetic)" - paygrade = "VAI-S" + paygrade = PAY_SHORT_VAI_SN role_comm_title = "Syn" flags = EQUIPMENT_PRESET_EXTRA @@ -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 72513a95f880..b8330e0e4c70 100644 --- a/code/modules/gear_presets/corpses.dm +++ b/code/modules/gear_presets/corpses.dm @@ -48,76 +48,12 @@ /datum/equipment_preset/corpse/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) add_random_survivor_equipment(new_human) - add_survivor_weapon_civilian(new_human) add_survivor_weapon_pistol(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) - -//*****************************************************************************************************/ - -/datum/equipment_preset/corpse/realpirate - name = "Corpse - Pirate" - access = list( - ACCESS_CIVILIAN_PUBLIC, - ACCESS_CIVILIAN_LOGISTICS, - ACCESS_CIVILIAN_ENGINEERING, - ACCESS_CIVILIAN_RESEARCH, - ACCESS_CIVILIAN_BRIG, - ACCESS_CIVILIAN_MEDBAY, - ACCESS_CIVILIAN_COMMAND, - ACCESS_ILLEGAL_PIRATE, - ) - -/datum/equipment_preset/corpse/realpirate/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - 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/glasses/eyepatch(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(new_human), WEAR_HEAD) //*****************************************************************************************************/ -/datum/equipment_preset/corpse/realpirate/ranged - name = "Corpse - Pirate Gunner" - -/datum/equipment_preset/corpse/realpirate/ranged/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/pirate(new_human), WEAR_HEAD) - . = ..() - -//*****************************************************************************************************/ - -/datum/equipment_preset/corpse/russian - name = "Corpse - Russian" - access = list( - ACCESS_CIVILIAN_PUBLIC, - ACCESS_CIVILIAN_LOGISTICS, - ACCESS_CIVILIAN_ENGINEERING, - ACCESS_CIVILIAN_RESEARCH, - ACCESS_CIVILIAN_BRIG, - ACCESS_CIVILIAN_MEDBAY, - ACCESS_CIVILIAN_COMMAND, - ) - -/datum/equipment_preset/corpse/russian - -/datum/equipment_preset/corpse/russian/load_gear(mob/living/carbon/human/new_human) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) - 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/gloves/marine(new_human), WEAR_HANDS) - if(prob(25)) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bearpelt(new_human), WEAR_HEAD) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) //*****************************************************************************************************/ // Civilians @@ -127,16 +63,12 @@ assignment = "Prisoner" /datum/equipment_preset/corpse/prisoner/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(new_human), WEAR_FEET) //*****************************************************************************************************/ @@ -146,105 +78,82 @@ access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/corpse/chef/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef/classic(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/chefhat(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) //*****************************************************************************************************/ /datum/equipment_preset/corpse/doctor name = "Corpse - Doctor" - assignment = "Medical Doctor" + assignment = "Doctor" + idtype = /obj/item/card/id/silver/clearance_badge xenovictim = TRUE access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY) /datum/equipment_preset/corpse/doctor/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/med(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/med(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef/classic(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/chef/classic/medical(new_human), WEAR_JACKET) add_random_survivor_medical_gear(new_human) //*****************************************************************************************************/ /datum/equipment_preset/corpse/engineer name = "Corpse - Engineer" - assignment = "Station Engineer" + assignment = "Engineer" xenovictim = TRUE access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING) /datum/equipment_preset/corpse/engineer/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) 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 /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - - - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human.back), WEAR_IN_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/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) //*****************************************************************************************************/ /datum/equipment_preset/corpse/scientist name = "Corpse - Scientist" assignment = "Scientist" + idtype = /obj/item/card/id/silver/clearance_badge/scientist xenovictim = TRUE - access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY) + access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_RESEARCH, ACCESS_CIVILIAN_MEDBAY) /datum/equipment_preset/corpse/scientist/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/green(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/green(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/green(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/good(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/beaker/vial/random/good(new_human), WEAR_IN_JACKET) //*****************************************************************************************************/ @@ -255,34 +164,32 @@ access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING) /datum/equipment_preset/corpse/miner/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(new_human), WEAR_HANDS) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/industrial(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/flashlight/lantern(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) //*****************************************************************************************************/ /datum/equipment_preset/corpse/security name = "Corpse - Security" - assignment = "Deputy" + assignment = "Security Officer" xenovictim = TRUE access = list(ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_BRIG, ACCESS_CIVILIAN_MEDBAY, ACCESS_CIVILIAN_COMMAND) /datum/equipment_preset/corpse/security/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) @@ -293,12 +200,13 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) - //*****************************************************************************************************/ -/datum/equipment_preset/corpse/security/marshal - name = "Corpse - Colonial Marshal" - assignment = "Colonial Marshal" +/datum/equipment_preset/corpse/security/cmb + name = "Corpse - Colonial Marshal Deputy" + rank = JOB_CMB + paygrade = PAY_SHORT_CMBD + idtype = /obj/item/card/id/deputy xenovictim = TRUE access = list( ACCESS_CIVILIAN_PUBLIC, @@ -310,14 +218,10 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/security/marshal/load_gear(mob/living/carbon/human/new_human) - - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) +/datum/equipment_preset/corpse/security/cmb/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/heavy(new_human), WEAR_WAIST) @@ -327,19 +231,21 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - . = ..() //*****************************************************************************************************/ -/datum/equipment_preset/corpse/security/liaison +/datum/equipment_preset/corpse/liaison name = "Corpse - Corporate Liaison" - assignment = "Corporate Liaison" + assignment = JOB_EXECUTIVE + rank = JOB_EXECUTIVE + faction_group = FACTION_LIST_WY + paygrade = PAY_SHORT_WYC3 + idtype = /obj/item/card/id/silver/clearance_badge/cl xenovictim = TRUE - paygrade = PAY_SHORT_WYC2 access = list( + ACCESS_WY_COLONIAL, + ACCESS_WY_EXEC, ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING, @@ -349,29 +255,36 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/security/liaison/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) +/datum/equipment_preset/corpse/liaison/load_gear(mob/living/carbon/human/new_human) + var/random = rand(1,4) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(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/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) add_random_cl_survivor_loot(new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/attachable/bayonet(new_human.back), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) + + switch(random) + if(1) + 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/armor/vest(new_human), WEAR_JACKET) + if(2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + if(3) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) + if(4) + 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/armor/vest(new_human), WEAR_JACKET) + . = ..() //*****************************************************************************************************/ -/datum/equipment_preset/corpse/prison_security +/datum/equipment_preset/corpse/prison_guard name = "Corpse - Prison Guard" assignment = "Prison Guard" access = list( @@ -384,14 +297,12 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/prison_security/load_gear(mob/living/carbon/human/new_human) - +/datum/equipment_preset/corpse/prison_guard/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) @@ -400,11 +311,21 @@ //*****************************************************************************************************/ /////////////////Officers////////////////////// -/datum/equipment_preset/corpse/bridgeofficer - name = "Corpse - Staff Officer" - idtype = /obj/item/card/id/general - assignment = "Staff Officer" +/datum/equipment_preset/corpse/manager + name = "Corpse - Colony Division Manager" + assignment = "Colonial Division Manager" + rank = JOB_DIVISION_MANAGER + faction_group = FACTION_LIST_WY + paygrade = PAY_SHORT_WYC8 access = list( + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, + ACCESS_WY_MEDICAL, + ACCESS_WY_SECURITY, + ACCESS_WY_ENGINEERING, + ACCESS_WY_FLIGHT, + ACCESS_WY_RESEARCH, + ACCESS_WY_EXEC, ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, ACCESS_CIVILIAN_ENGINEERING, @@ -414,23 +335,25 @@ ACCESS_CIVILIAN_COMMAND, ) -/datum/equipment_preset/corpse/bridgeofficer/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) +/datum/equipment_preset/corpse/manager/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) + 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/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/bulletproof(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(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/clothing/glasses/sunglasses(new_human), WEAR_EYES) //*****************************************************************************************************/ -/datum/equipment_preset/corpse/bridgeofficer/johnson - name = "Corpse - Mr. Johnson Telovin" - idtype = /obj/item/card/id/general - assignment = "Bridge Officer" - uses_special_name = TRUE - paygrade = PAY_SHORT_WYC2 + +/datum/equipment_preset/corpse/administrator + name = "Corpse - Colony Administrator" + assignment = "Colonial Administrator" + rank = JOB_DIRECTOR + faction_group = FACTION_LIST_WY + paygrade = PAY_SHORT_WYC10 + idtype = /obj/item/card/id/silver/cl access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, @@ -439,52 +362,40 @@ ACCESS_CIVILIAN_BRIG, ACCESS_CIVILIAN_MEDBAY, ACCESS_CIVILIAN_COMMAND, + ACCESS_WY_GENERAL, + ACCESS_WY_COLONIAL, ACCESS_WY_MEDICAL, - ACCESS_WY_ENGINEERING, ACCESS_WY_SECURITY, + ACCESS_WY_ENGINEERING, + ACCESS_WY_FLIGHT, + ACCESS_WY_RESEARCH, + ACCESS_WY_EXEC, + ACCESS_WY_PMC, + ACCESS_WY_PMC_TL, + ACCESS_WY_ARMORY, + ACCESS_WY_SECRETS, ACCESS_WY_LEADERSHIP, - ACCESS_WY_COLONIAL, - ACCESS_WY_GENERAL, - ) - -/datum/equipment_preset/corpse/bridgeofficer/johnson/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/waiter(new_human), WEAR_BODY) - . = ..() - -/datum/equipment_preset/corpse/bridgeofficer/johnson/load_name(mob/living/carbon/human/new_human, randomise) - new_human.change_real_name(new_human, "Johnson Telovin") - -//*****************************************************************************************************/ - -/datum/equipment_preset/corpse/commander - name = "Corpse - Commanding Officer" - idtype = /obj/item/card/id/general - assignment = "Commanding Officer" - access = list( - ACCESS_CIVILIAN_PUBLIC, - ACCESS_CIVILIAN_LOGISTICS, - ACCESS_CIVILIAN_ENGINEERING, - ACCESS_CIVILIAN_RESEARCH, - ACCESS_CIVILIAN_BRIG, - ACCESS_CIVILIAN_MEDBAY, - ACCESS_CIVILIAN_COMMAND, + ACCESS_WY_SENIOR_LEAD, ) -/datum/equipment_preset/corpse/commander/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_commander(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) +/datum/equipment_preset/corpse/administrator/load_gear(mob/living/carbon/human/new_human) + add_ice_colony_survivor_equipment(new_human) + 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/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/bulletproof(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/eyepatch(new_human), WEAR_EYES) + 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/clothing/glasses/sunglasses(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar/cohiba(new_human), WEAR_FACE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/centhat(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/tool/lighter/zippo(new_human), WEAR_R_STORE) + 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/tool/lighter/zippo/executive(new_human), WEAR_R_STORE) add_random_cl_survivor_loot(new_human) +/datum/equipment_preset/corpse/administrator/burst + name = "Corpse - Burst Colony Administrator" + xenovictim = TRUE + //*****************************************************************************************************/ /datum/equipment_preset/corpse/wysec @@ -505,52 +416,37 @@ ) /datum/equipment_preset/corpse/wysec/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + add_ice_colony_survivor_equipment(new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/white_service(new_human), WEAR_BODY) + 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/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) +//*****************************************************************************************************/ -/////Actually specific colonists +//Colonists /datum/equipment_preset/corpse/colonist name = "Corpse - Colonist" - assignment = JOB_COLONIST - xenovictim = FALSE - rank = JOB_COLONIST - faction = FACTION_COLONIST - access = list(ACCESS_CIVILIAN_PUBLIC) - idtype = /obj/item/card/id/lanyard /datum/equipment_preset/colonist/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) /datum/equipment_preset/corpse/colonist/burst name = "Corpse - Burst Colonist" xenovictim = TRUE +//*****************************************************************************************************/ + /datum/equipment_preset/corpse/colonist/random name = "Corpse - Colonist Random" - assignment = JOB_COLONIST - xenovictim = FALSE - rank = JOB_COLONIST - faction = FACTION_COLONIST - access = list(ACCESS_CIVILIAN_PUBLIC) - idtype = /obj/item/card/id/lanyard /datum/equipment_preset/corpse/colonist/random/load_gear(mob/living/carbon/human/new_human) var/random_surv_type = pick(SSmapping.configs[GROUND_MAP].survivor_types) @@ -561,14 +457,10 @@ name = "Corpse - Burst Colonist Random" xenovictim = TRUE +//*****************************************************************************************************/ + /datum/equipment_preset/corpse/colonist/kutjevo name = "Corpse - Colonist Kutjevo" - assignment = JOB_COLONIST - xenovictim = FALSE - rank = JOB_COLONIST - faction = FACTION_COLONIST - access = list(ACCESS_CIVILIAN_PUBLIC) - idtype = /obj/item/card/id/lanyard /datum/equipment_preset/corpse/colonist/kutjevo/load_gear(mob/living/carbon/human/new_human) @@ -578,18 +470,20 @@ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/norm(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine(new_human), WEAR_FEET) /datum/equipment_preset/corpse/colonist/kutjevo/burst name = "Corpse - Burst Colonist Kutjevo" xenovictim = TRUE -//UA riot control dudes +//*****************************************************************************************************/ + +//UA Riot Control Officer + /datum/equipment_preset/corpse/ua_riot name = "Corpse - UA Officer" assignment = "United Americas Riot Officer" idtype = /obj/item/card/id/silver - xenovictim = FALSE access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, @@ -602,24 +496,23 @@ /datum/equipment_preset/corpse/ua_riot/load_gear(mob/living/carbon/human/new_human) var/random = rand(1,5) + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/ua_riot(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec, WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) 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/suit/storage/marine/veteran/ua_riot(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/ua_riot(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/prop/helmetgarb/riot_shield(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/weapon/classic_baton(new_human), WEAR_WAIST) switch(random) if(1) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security, WEAR_EYES) - if(2) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) + if(2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(new_human), WEAR_EYES) if(3) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/aviator(new_human), WEAR_EYES) if(4) @@ -632,18 +525,18 @@ name = "Corpse - Burst UA Officer" xenovictim = TRUE -//Colonial Supervisor Corpse +//*****************************************************************************************************/ + +//Colonial Supervisor /datum/equipment_preset/corpse/wy/manager name = "Corpse - Corporate Supervisor" + assignment = "Colony Supervisor" flags = EQUIPMENT_PRESET_EXTRA paygrade = PAY_SHORT_WYC6 - assignment = "Colony Supervisor" - role_comm_title = "Supervisor" rank = FACTION_WY idtype = /obj/item/card/id/silver/clearance_badge/manager faction_group = FACTION_LIST_WY - languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) access = list( ACCESS_WY_GENERAL, ACCESS_WY_COLONIAL, @@ -657,35 +550,33 @@ ) /datum/equipment_preset/corpse/wy/manager/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/manager(new_human), WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) - 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/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/manager(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/shoes/dress, WEAR_FEET) + 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/shoes/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/manager(new_human), WEAR_HEAD) 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/attachable/bayonet(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE) add_random_cl_survivor_loot(new_human) - /datum/equipment_preset/corpse/wy/manager/burst name = "Corpse - Burst Corporate Supervisor" xenovictim = TRUE +//*****************************************************************************************************/ + //Faction Specific Corpses +//CLF + /datum/equipment_preset/corpse/clf name = "Corpse - Colonial Liberation Front Soldier" - assignment = "Colonial Liberation Front Soldier" - idtype = /obj/item/card/id/silver - xenovictim = FALSE + assignment = JOB_CLF + idtype = /obj/item/card/id/data + rank = JOB_CLF faction = FACTION_CLF /datum/equipment_preset/corpse/clf/New() @@ -715,12 +606,16 @@ name = "Corpse - Burst Colonial Liberation Front Soldier" xenovictim = TRUE -// UPP +//*****************************************************************************************************/ + +//UPP + /datum/equipment_preset/corpse/upp name = "Corpse - Union of Progressive Peoples Soldier" - assignment = "Union of Progressive Peoples Soldier" - idtype = /obj/item/card/id/silver - xenovictim = FALSE + assignment = JOB_UPP + idtype = /obj/item/card/id/dogtag + paygrade = PAY_SHORT_UE2 + rank = JOB_UPP faction = FACTION_UPP /datum/equipment_preset/corpse/upp/New() @@ -728,18 +623,14 @@ access = get_access(ACCESS_LIST_EMERGENCY_RESPONSE) + get_access(ACCESS_LIST_COLONIAL_ALL) /datum/equipment_preset/corpse/upp/load_gear(mob/living/carbon/human/new_human) - - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR) - //head - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/UPP, WEAR_HEAD) - //body var/obj/item/clothing/under/marine/veteran/UPP/UPP = new() new_human.equip_to_slot_or_del(UPP, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/UPP, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET) - //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, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/upp, WEAR_HANDS) add_random_survivor_equipment(new_human) if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) @@ -749,7 +640,9 @@ name = "Corpse - Burst Union of Progressive Peoples Soldier" xenovictim = TRUE -// PMC +//*****************************************************************************************************/ + +//PMC /datum/equipment_preset/corpse/pmc name = "Corpse - Weyland-Yutani PMC (Standard)" @@ -758,10 +651,8 @@ faction = FACTION_PMC faction_group = FACTION_LIST_WY rank = JOB_PMC_STANDARD - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP idtype = /obj/item/card/id/pmc - skills = /datum/skills/civilian/survivor/pmc - languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) access = list( ACCESS_CIVILIAN_PUBLIC, ACCESS_CIVILIAN_LOGISTICS, @@ -795,16 +686,19 @@ name = "Corpse - Burst Weyland-Yutani PMC (Standard)" xenovictim = TRUE +//*****************************************************************************************************/ + +//Goon + /datum/equipment_preset/corpse/pmc/goon name = "Corpse - Weyland-Yutani Corporate (Goon)" languages = list(LANGUAGE_ENGLISH) assignment = JOB_WY_GOON rank = JOB_WY_GOON paygrade = PAY_SHORT_CPO - skills = /datum/skills/MP /datum/equipment_preset/corpse/pmc/goon/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress, WEAR_L_EAR) + 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/under/marine/veteran/pmc/corporate, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) @@ -817,6 +711,10 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE) +//*****************************************************************************************************/ + +//Lead Goon + /datum/equipment_preset/corpse/pmc/goon/lead name = "Corpse - Weyland-Yutani Corporate Security Lead (Goon Lead)" flags = EQUIPMENT_PRESET_EXTRA @@ -825,7 +723,7 @@ paygrade = PAY_SHORT_CSPO /datum/equipment_preset/corpse/pmc/goon/lead/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress, WEAR_L_EAR) + 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/under/marine/veteran/pmc/corporate/lead, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/veteran/pmc/light/corporate/lead, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) @@ -838,20 +736,26 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE) -// Freelancer +/datum/equipment_preset/corpse/pmc/goon/lead/burst + name = "Corpse - Burst Weyland-Yutani Corporate Security Lead (Goon Lead)" + xenovictim = TRUE + +//*****************************************************************************************************/ + +//Freelancer /datum/equipment_preset/corpse/freelancer - name = "Corpse - Freelancer Mercenary" - assignment = "Freelancer Mercenary" - idtype = /obj/item/card/id/silver - xenovictim = FALSE + name = "Corpse - Freelancer" + paygrade = PAY_SHORT_FL_S + rank = FACTION_FREELANCER + idtype = /obj/item/card/id/data + faction = FACTION_FREELANCER /datum/equipment_preset/corpse/freelancer/New() . = ..() access = get_access(ACCESS_LIST_EMERGENCY_RESPONSE) + get_access(ACCESS_LIST_COLONIAL_ALL) /datum/equipment_preset/corpse/freelancer/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/freelancer, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/freelancer, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife, WEAR_FEET) @@ -865,12 +769,83 @@ spawn_merc_helmet(new_human) /datum/equipment_preset/corpse/freelancer/burst - name = "Corpse - Burst Freelancer Mercenary" + name = "Corpse - Burst Freelancer" xenovictim = TRUE -// Fun Faction Corpse +//*****************************************************************************************************/ + +//Fun Faction Corpses + +//Pirates + +/datum/equipment_preset/corpse/realpirate + name = "Corpse - Pirate" + access = list( + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ACCESS_ILLEGAL_PIRATE, + ) + +/datum/equipment_preset/corpse/realpirate/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/pirate(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/device/radio(new_human), WEAR_IN_BACK) + 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/glasses/eyepatch(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bandana(new_human), WEAR_HEAD) + +//*****************************************************************************************************/ + +/datum/equipment_preset/corpse/realpirate/ranged + name = "Corpse - Pirate Gunner" + +/datum/equipment_preset/corpse/realpirate/ranged/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/pirate(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/pirate(new_human), WEAR_HEAD) + . = ..() + +//*****************************************************************************************************/ + +//Russian(?) + +/datum/equipment_preset/corpse/russian + name = "Corpse - Russian" + access = list( + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_LOGISTICS, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_RESEARCH, + ACCESS_CIVILIAN_BRIG, + ACCESS_CIVILIAN_MEDBAY, + ACCESS_CIVILIAN_COMMAND, + ) + +/datum/equipment_preset/corpse/russian -// Dutch Dozen +/datum/equipment_preset/corpse/russian/load_gear(mob/living/carbon/human/new_human) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/veteran/soviet_uniform_01(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/snow_suit/soviet(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp/knife(new_human), WEAR_FEET) + 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/gloves/marine(new_human), WEAR_HANDS) + if(prob(25)) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/bearpelt(new_human), WEAR_HEAD) + else + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/ushanka(new_human), WEAR_HEAD) + +//*****************************************************************************************************/ + +//Dutch Dozen /datum/equipment_preset/corpse/dutchrifle name = "Corpse - Dutch Dozen Rifleman" @@ -901,7 +876,9 @@ name = "Corpse - Burst Dutch Dozen Rifleman" xenovictim = TRUE -// Pizza Planet +//*****************************************************************************************************/ + +//Pizza Planet /datum/equipment_preset/corpse/pizza name = "Corpse - Pizza Deliverer" @@ -915,12 +892,9 @@ access = get_access(ACCESS_LIST_DELIVERY) /datum/equipment_preset/corpse/pizza/load_gear(mob/living/carbon/human/new_human) - + add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/pizza, WEAR_BODY) - if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) - add_ice_colony_survivor_equipment(new_human) - else - new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/soft/red, WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/red, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel, WEAR_BACK) @@ -940,7 +914,9 @@ name = "Corpse - Burst Pizza Deliverer" xenovictim = TRUE -// Gladiator +//*****************************************************************************************************/ + +//Gladiator /datum/equipment_preset/corpse/gladiator name = "Corpse - Gladiator" @@ -978,6 +954,7 @@ name = "Corpse - Burst Gladiator" xenovictim = TRUE +//*****************************************************************************************************/ //FORECON @@ -988,7 +965,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/fun.dm b/code/modules/gear_presets/fun.dm index 44b2a1a1157a..9811699d5974 100644 --- a/code/modules/gear_presets/fun.dm +++ b/code/modules/gear_presets/fun.dm @@ -240,7 +240,7 @@ /datum/equipment_preset/fun/santa name = "Fun - Santa" - paygrade = PAY_SHORT_CIV + paygrade = PAY_SHORT_CDNM flags = EQUIPMENT_PRESET_EXTRA skills = /datum/skills/everything faction = FACTION_MARINE @@ -289,6 +289,7 @@ /datum/equipment_preset/upp/ivan name = "Fun - Ivan" flags = EQUIPMENT_PRESET_EXTRA + paygrade = PAY_SHORT_UE6 skills = /datum/skills/everything assignment = "UPP Armsmaster" rank = "UPP Armsmaster" diff --git a/code/modules/gear_presets/other.dm b/code/modules/gear_presets/other.dm index d97a032337ee..99b8bf634eed 100644 --- a/code/modules/gear_presets/other.dm +++ b/code/modules/gear_presets/other.dm @@ -60,7 +60,7 @@ /datum/equipment_preset/other/freelancer/standard name = "Freelancer (Standard)" - paygrade = "Freelancer Standard" + paygrade = PAY_SHORT_FL_S flags = EQUIPMENT_PRESET_EXTRA skills = /datum/skills/freelancer @@ -132,7 +132,7 @@ /datum/equipment_preset/other/freelancer/medic name = "Freelancer (Medic)" - paygrade = "Freelancer Medic" + paygrade = PAY_SHORT_FL_M flags = EQUIPMENT_PRESET_EXTRA assignment = "Freelancer Medic" skills = /datum/skills/freelancer/combat_medic @@ -203,7 +203,7 @@ /datum/equipment_preset/other/freelancer/leader name = "Freelancer (Leader)" - paygrade = "Freelancer Leader" + paygrade = PAY_SHORT_FL_WL flags = EQUIPMENT_PRESET_EXTRA assignment = "Freelancer Warlord" languages = list(LANGUAGE_ENGLISH, LANGUAGE_RUSSIAN, LANGUAGE_CHINESE, LANGUAGE_JAPANESE) @@ -269,7 +269,7 @@ /datum/equipment_preset/other/elite_merc/standard name = "Elite Mercenary (Standard Miner)" - paygrade = "Elite Freelancer Standard" + paygrade = PAY_SHORT_EFL_S flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -306,7 +306,7 @@ /datum/equipment_preset/other/elite_merc/heavy name = "Elite Mercenary (Heavy)" - paygrade = "Elite Freelancer Heavy" + paygrade = PAY_SHORT_EFL_H flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -346,7 +346,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/other/elite_merc/engineer name = "Elite Mercenary (Engineer)" - paygrade = "Elite Freelancer Engineer" + paygrade = PAY_SHORT_EFL_E flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/data @@ -400,7 +400,7 @@ /datum/equipment_preset/other/elite_merc/medic name = "Elite Mercenary (Medic)" - paygrade = "Elite Freelancer Medic" + paygrade = PAY_SHORT_EFL_M flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -446,7 +446,7 @@ /datum/equipment_preset/other/elite_merc/leader name = "Elite Mercenary (Leader)" - paygrade = "Elite Freelancer Leader" + paygrade = PAY_SHORT_EFL_TL flags = EQUIPMENT_PRESET_EXTRA idtype = /obj/item/card/id/centcom @@ -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) @@ -884,7 +883,7 @@ idtype = /obj/item/card/id/dogtag assignment = JOB_CREWMAN rank = JOB_CREWMAN - paygrade = "E4" + paygrade = PAY_SHORT_ME4 role_comm_title = "CRMN" minimum_age = 30 skills = /datum/skills/tank_crew @@ -924,7 +923,7 @@ idtype = /obj/item/card/id/dogtag assignment = "Crewman Trainee" rank = "Crewman Trainee" - paygrade = "E3" + paygrade = PAY_SHORT_ME3 role_comm_title = "CRTR" minimum_age = 25 skills = /datum/skills/tank_crew diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm index 9571859b0f0f..16c65dde01aa 100644 --- a/code/modules/gear_presets/pmc.dm +++ b/code/modules/gear_presets/pmc.dm @@ -61,7 +61,7 @@ assignment = JOB_PMC_STANDARD rank = JOB_PMC_STANDARD - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP skills = /datum/skills/pmc /datum/equipment_preset/pmc/pmc_standard/load_gear(mob/living/carbon/human/new_human) @@ -203,7 +203,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_DETAINER rank = JOB_PMC_DETAINER - paygrade = "PMC-EN" + paygrade = PAY_SHORT_PMC_EN skills = /datum/skills/pmc /datum/equipment_preset/pmc/pmc_detainer/load_gear(mob/living/carbon/human/new_human) @@ -332,7 +332,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_MEDIC rank = JOB_PMC_MEDIC - paygrade = "PMC-MS" + paygrade = PAY_SHORT_PMC_MS skills = /datum/skills/pmc/medic headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -507,7 +507,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_INVESTIGATOR rank = JOB_PMC_INVESTIGATOR - paygrade = "PMC-MS" //Fixed from PMC2 to PMC-MS to display properly. + paygrade = PAY_SHORT_PMC_MS //Fixed from PMC2 to PMC-MS to display properly. skills = /datum/skills/pmc/medic/chem headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -686,7 +686,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_LEADER rank = JOB_PMC_LEADER - paygrade = "PMC-TL" + paygrade = PAY_SHORT_PMC_TL role_comm_title = "SL" skills = /datum/skills/pmc/SL headset_type = /obj/item/device/radio/headset/distress/pmc/command @@ -842,7 +842,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_LEAD_INVEST rank = JOB_PMC_LEAD_INVEST - paygrade = "PMC-TL" + paygrade = PAY_SHORT_PMC_TL role_comm_title = "SL" skills = /datum/skills/pmc/SL/chem headset_type = /obj/item/device/radio/headset/distress/pmc/command @@ -985,7 +985,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_GUNNER rank = JOB_PMC_GUNNER - paygrade = "PMC-SS" + paygrade = PAY_SHORT_PMC_SS role_comm_title = "SG" skills = /datum/skills/pmc/smartgunner @@ -1090,7 +1090,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_SNIPER rank = JOB_PMC_SNIPER - paygrade = "PMC-WS" + paygrade = PAY_SHORT_PMC_WS role_comm_title = "Spc" skills = /datum/skills/pmc/specialist headset_type = /obj/item/device/radio/headset/distress/pmc/cct @@ -1212,7 +1212,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_CREWMAN rank = JOB_PMC_CREWMAN - paygrade = "PMC-VS" + paygrade = PAY_SHORT_PMC_VS skills = /datum/skills/pmc/tank_crew headset_type = /obj/item/device/radio/headset/distress/pmc/cct @@ -1340,7 +1340,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_XENO_HANDLER rank = JOB_PMC_XENO_HANDLER - paygrade = "PMC-XS" + paygrade = PAY_SHORT_PMC_XS role_comm_title = "XH" skills = /datum/skills/pmc/xeno_handler languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_XENOMORPH) @@ -1486,8 +1486,8 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_DOCTOR rank = JOB_PMC_DOCTOR - paygrade = "PMC-DOC" - role_comm_title = "TRI" + paygrade = PAY_SHORT_PMC_DOC + role_comm_title = "SGN" skills = /datum/skills/pmc/doctor headset_type = /obj/item/device/radio/headset/distress/pmc/medic @@ -1660,7 +1660,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_ENGINEER rank = JOB_PMC_ENGINEER - paygrade = "PMC-TECH" + paygrade = PAY_SHORT_PMC_TEC role_comm_title = "TEC" skills = /datum/skills/pmc/engineer headset_type = /obj/item/device/radio/headset/distress/pmc/cct @@ -1809,7 +1809,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), assignment = JOB_PMC_DIRECTOR rank = JOB_PMC_DIRECTOR - paygrade = "PMC-DIR" + paygrade = PAY_SHORT_PMC_DIR role_comm_title = "DIR" skills = /datum/skills/pmc/director headset_type = /obj/item/device/radio/headset/distress/pmc/command/director @@ -1848,6 +1848,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), idtype = /obj/item/card/id/pmc assignment = JOB_PMC_SYNTH rank = JOB_PMC_SYNTH + paygrade = PAY_SHORT_SYN role_comm_title = "WY Syn" headset_type = /obj/item/device/radio/headset/distress/pmc/command diff --git a/code/modules/gear_presets/royal_marines.dm b/code/modules/gear_presets/royal_marines.dm index 90361a24cc57..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) @@ -59,7 +59,7 @@ /datum/equipment_preset/twe/royal_marine/standard name = "TWE Royal Marine Commando (Rifleman)" - paygrade = "RMC E1" + paygrade = PAY_SHORT_RMC1 role_comm_title = "RMC" flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Rifleman" @@ -110,7 +110,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/twe/royal_marine/spec - paygrade = "RMC E2" + paygrade = PAY_SHORT_RMC2 role_comm_title = "RMC SPC" flags = EQUIPMENT_PRESET_EXTRA skills = /datum/skills/rmc/specialist @@ -243,7 +243,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/twe/royal_marine/team_leader name = "TWE Royal Marine Commando (Teamleader)" - paygrade = "RMC E4" + paygrade = PAY_SHORT_RMC4 role_comm_title = "RMC TL" flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Team Leader" @@ -292,7 +292,7 @@ /datum/equipment_preset/twe/royal_marine/lieuteant //they better say it Lef-tenant or they should be banned for LRP. More importantly this guy doesn't spawn in the ERT name = "TWE Royal Marine Commando (Officer)" - paygrade = "RMC O1" + paygrade = PAY_SHORT_RNO1 role_comm_title = "RMC LT" flags = EQUIPMENT_PRESET_EXTRA assignment = "Royal Marines Team Commander" diff --git a/code/modules/gear_presets/survivors/corsat/preset_corsat.dm b/code/modules/gear_presets/survivors/corsat/preset_corsat.dm index f4267c4454b8..9583c73a92e2 100644 --- a/code/modules/gear_presets/survivors/corsat/preset_corsat.dm +++ b/code/modules/gear_presets/survivors/corsat/preset_corsat.dm @@ -4,7 +4,7 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) /datum/equipment_preset/survivor/security/corsat/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/white_service(new_human), WEAR_BODY) 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/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) @@ -40,7 +40,7 @@ assignment = "Interstellar Commerce Commission Corporate Liaison" /datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/corsat/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET) 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..3af7df42e3a7 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, @@ -13,6 +13,12 @@ ACCESS_CIVILIAN_LOGISTICS, ) + dress_shoes = list(/obj/item/clothing/shoes/dress) + dress_gloves = list(/obj/item/clothing/gloves/marine/dress) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/survivor/forecon/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/reconnaissance/uniform = new() var/obj/item/clothing/accessory/storage/droppouch/pouch = new() @@ -210,6 +216,10 @@ skills = /datum/skills/military/survivor/forecon_squad_leader paygrade = PAY_SHORT_MO1 + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/survivor/forecon/squad_leader/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/reconnaissance/uniform = new() var/obj/item/clothing/accessory/storage/droppouch/pouch = new() @@ -238,6 +248,10 @@ idtype = /obj/item/card/id/gold role_comm_title = "FORECON CO" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/survivor/forecon/major/load_gear(mob/living/carbon/human/new_human) var/obj/item/clothing/under/marine/reconnaissance/uniform = new() var/obj/item/clothing/accessory/storage/droppouch/pouch = new() 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/lv_624/preset_lv.dm b/code/modules/gear_presets/survivors/lv_624/preset_lv.dm index 803295c58cfc..516c0534080d 100644 --- a/code/modules/gear_presets/survivors/lv_624/preset_lv.dm +++ b/code/modules/gear_presets/survivors/lv_624/preset_lv.dm @@ -73,7 +73,7 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) /datum/equipment_preset/survivor/security/lv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/formal/servicedress(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/white_service(new_human), WEAR_BODY) 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/backpack/satchel/sec(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) @@ -86,7 +86,7 @@ assignment = "LV-624 Corporate Liaison" /datum/equipment_preset/survivor/corporate/lv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/outing(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/field(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/lockable/liaison(new_human), WEAR_BACK) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES) diff --git a/code/modules/gear_presets/survivors/misc.dm b/code/modules/gear_presets/survivors/misc.dm index 692833bfa82b..7a845e96b2aa 100644 --- a/code/modules/gear_presets/survivors/misc.dm +++ b/code/modules/gear_presets/survivors/misc.dm @@ -60,6 +60,8 @@ Everything below isn't used or out of place. access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/survivor/civilian/load_gear(mob/living/carbon/human/new_human) + if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD]) + add_ice_colony_survivor_equipment(new_human) var/random_gear = rand(0, 3) switch(random_gear) if(0) // Normal Colonist @@ -89,8 +91,6 @@ Everything below isn't used or out of place. new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/apron(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/tool/hatchet(new_human.back), WEAR_IN_BACK) - 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/storage/backpack/satchel/norm(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) @@ -109,7 +109,7 @@ Everything below isn't used or out of place. access = list(ACCESS_CIVILIAN_PUBLIC) /datum/equipment_preset/survivor/salesman/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown(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/wcoat(new_human), WEAR_JACKET) @@ -297,17 +297,7 @@ Everything below isn't used or out of place. // ----- Hostile Survivors -/* - -datum/equipment_preset/survivor/clf/cold is never used -and as a three proc attach to it that are defacto never used eitheir. - -handled proc in datum/equipment_preset/survivor/clf/cold: -spawn_rebel_suit -spawn_rebel_helmet -spawn_rebel_shoes - -*/ +/// used in Shivas Snowball /datum/equipment_preset/survivor/clf/cold diff --git a/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm index 077adf971092..0515319b8190 100644 --- a/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm +++ b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm @@ -43,7 +43,7 @@ assignment = "Interstellar Commerce Commission Corporate Liaison" /datum/equipment_preset/survivor/interstellar_commerce_commission_liaison/nv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/device/flashlight, WEAR_J_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/shivas_snowball/preset_shivas_snowball.dm b/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm index c1dce212d0c4..9c760b07b5f4 100644 --- a/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm +++ b/code/modules/gear_presets/survivors/shivas_snowball/preset_shivas_snowball.dm @@ -3,7 +3,7 @@ assignment = "Shivas Snowball Corporate Liaison" /datum/equipment_preset/survivor/corporate/shiva/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal(new_human), WEAR_BODY) 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/head/ushanka(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf(new_human), WEAR_FACE) diff --git a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm index cbc777ad6852..8cd72c58ad80 100644 --- a/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm +++ b/code/modules/gear_presets/survivors/solaris/crashlanding-offices_insert_bigred.dm @@ -7,7 +7,7 @@ assignment = "Weyland-Yutani PMC" faction = FACTION_SURVIVOR faction_group = list(FACTION_WY, FACTION_SURVIVOR) - paygrade = "PMC-OP" + paygrade = PAY_SHORT_PMC_OP idtype = /obj/item/card/id/pmc skills = /datum/skills/civilian/survivor/pmc languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE) @@ -46,7 +46,7 @@ name = "Survivor - PMC Medic" assignment = JOB_PMC_MEDIC rank = JOB_PMC_MEDIC - paygrade = "PMC-MS" + paygrade = PAY_SHORT_PMC_MS skills = /datum/skills/civilian/survivor/pmc/medic /datum/equipment_preset/survivor/pmc/medic/load_gear(mob/living/carbon/human/new_human) @@ -66,7 +66,7 @@ name = "Survivor - PMC Engineer" assignment = JOB_PMC_ENGINEER rank = JOB_PMC_ENGINEER - paygrade = "PMC-TECH" + paygrade = PAY_SHORT_PMC_TEC skills = /datum/skills/civilian/survivor/pmc/engineer /datum/equipment_preset/survivor/pmc/engineer/load_gear(mob/living/carbon/human/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 c71641a82ac1..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) ..() @@ -79,12 +79,28 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) ..() +/datum/equipment_preset/survivor/uscm/solaris + name = "Survivor - Solaris United States Colonial Marine Corps Recruiter" + assignment = "USCM Recruiter" + paygrade = PAY_SHORT_ME5 + +/datum/equipment_preset/survivor/uscm/solaris/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/ranks/marine/e5(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/service(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE) + ..() + /datum/equipment_preset/survivor/corporate/solaris - name = "Survivor - Solaris Ridge Corporate Liaison" - assignment = "Solaris Ridge Corporate Liaison" + name = "Survivor - Solaris Corporate Liaison" + assignment = "Solaris Corporate Liaison" /datum/equipment_preset/survivor/corporate/solaris/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/outing/red(new_human), WEAR_BODY) + 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/device/radio/headset/distress/WY(new_human), WEAR_L_EAR) if(new_human.disabilities & NEARSIGHTED) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/prescription(new_human), WEAR_EYES) diff --git a/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm b/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm index 220034399293..f285a9635bde 100644 --- a/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm +++ b/code/modules/gear_presets/survivors/sorokyne_strata/preset_sorokyne_strata.dm @@ -1,6 +1,6 @@ /datum/equipment_preset/survivor/engineer/soro - name = "Survivor - Sorokyne Strata Political Prisoner" - assignment = "Sorokyne Strata Political Prisoner" + name = "Survivor - Sorokyne Strata State Contractor" + assignment = "Sorokyne Strata State Contractor" /datum/equipment_preset/survivor/engineer/soro/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP(new_human), WEAR_BODY) diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm index 0e98c60ca453..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, @@ -314,7 +315,7 @@ Everything bellow is a parent used as a base for one or multiple maps. survivor_variant = CORPORATE_SURVIVOR /datum/equipment_preset/survivor/corporate/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/formal(new_human), WEAR_BODY) + 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/suit/armor/vest(new_human), WEAR_JACKET) @@ -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) @@ -404,7 +405,7 @@ Everything bellow is a parent used as a base for one or multiple maps. access = list(ACCESS_CIVILIAN_PUBLIC,ACCESS_CIVILIAN_COMMAND) /datum/equipment_preset/survivor/interstellar_human_rights_observer/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/brown(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/armor/vest(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 @@ -452,3 +454,30 @@ Everything bellow is a parent used as a base for one or multiple maps. add_random_cl_survivor_loot(new_human) ..() + +// ----- USCM Survivor + +// Used for Solaris Ridge. +/datum/equipment_preset/survivor/uscm + name = "Survivor - USCM Remnant" + assignment = "USCM Survivor" + skills = /datum/skills/civilian/survivor/marshal + idtype = /obj/item/card/id/dogtag + paygrade = PAY_SHORT_ME2 + flags = EQUIPMENT_PRESET_START_OF_ROUND + access = list(ACCESS_CIVILIAN_PUBLIC) + +/datum/equipment_preset/survivor/uscm/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(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/accessory/ranks/marine/e2(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/flare(new_human), WEAR_R_STORE) + add_survivor_weapon_security(new_human) + ..() + diff --git a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm index e74f3258db6d..405496d8f496 100644 --- a/code/modules/gear_presets/survivors/trijent/preset_trijent.dm +++ b/code/modules/gear_presets/survivors/trijent/preset_trijent.dm @@ -15,11 +15,25 @@ /datum/equipment_preset/survivor/security/trijent/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security/navyblue(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/mp/mpcap(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/det_suit/black(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/security(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET) ..() +/datum/equipment_preset/survivor/colonial_marshal/trijent + name = "Survivor - Trijent Colonial Marshal Deputy" + assignment = "CMB Deputy" + +/datum/equipment_preset/survivor/colonial_marshal/trijent/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/holobadge/cord(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/limited(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/sec(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/CMB(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + ..() + /datum/equipment_preset/survivor/doctor/trijent name = "Survivor - Trijent Doctor" assignment = "Trijent Dam Doctor" @@ -29,6 +43,18 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/blue(new_human), WEAR_HEAD) ..() +/datum/equipment_preset/survivor/scientist/trijent + name = "Survivor - Trijent Researcher" + assignment = "Trijent Dam Researcher" + +/datum/equipment_preset/survivor/scientist/trijent/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/rd(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/jan(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/researcher(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/leather(new_human), WEAR_FEET) + ..() + /datum/equipment_preset/survivor/trucker/trijent name = "Survivor - Trijent Dam Heavy Vehicle Operator" assignment = "Trijent Dam Heavy Vehicle Operator" @@ -38,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/synths.dm b/code/modules/gear_presets/synths.dm index 9a181c817020..d2daf2c416fe 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -403,7 +403,7 @@ WEAR_HEAD = /obj/item/clothing/head/soft/sec/corp, WEAR_L_EAR = /obj/item/device/radio/headset/distress/WY, WEAR_EYES = /obj/item/clothing/glasses/sunglasses/sechud, - WEAR_BODY = /obj/item/clothing/under/marine/officer/formal/servicedress, + WEAR_BODY = /obj/item/clothing/under/colonist/white_service, WEAR_BACK = /obj/item/storage/backpack/satchel/sec, WEAR_IN_BACK = /obj/item/weapon/telebaton, WEAR_JACKET = /obj/item/clothing/suit/storage/webbing, @@ -492,13 +492,30 @@ rank = JOB_WORKING_JOE skills = /datum/skills/working_joe languages = list(LANGUAGE_ENGLISH, LANGUAGE_APOLLO, LANGUAGE_RUSSIAN, LANGUAGE_JAPANESE, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_CHINESE) + /// Used to set species when loading race + var/joe_type = SYNTH_WORKING_JOE /datum/equipment_preset/synth/working_joe/New() . = ..() access = get_access(ACCESS_LIST_GLOBAL) /datum/equipment_preset/synth/working_joe/load_race(mob/living/carbon/human/new_human) - new_human.set_species(SYNTH_WORKING_JOE) + . = ..() + new_human.set_species(joe_type) + new_human.h_style = "Bald" + new_human.f_style = "Shaved" + if(prob(5)) + new_human.grad_style = "None" //No gradients for Working Joes + new_human.h_style = "Shoulder-length Hair" //Added the chance of hair as per Monkeyfist lore accuracy + new_human.r_eyes = 0 + new_human.g_eyes = 0 + new_human.b_eyes = 0 + new_human.r_hair = 100 + new_human.g_hair = 88 + new_human.b_hair = 74 + new_human.r_facial = 255 + new_human.g_facial = 255 + new_human.b_facial = 255 /datum/equipment_preset/synth/working_joe/load_vanity(mob/living/carbon/human/new_human) return @@ -531,6 +548,7 @@ /datum/equipment_preset/synth/working_joe/engi name = "Synthetic - Hazmat Joe" + joe_type = SYNTH_HAZARD_JOE /datum/equipment_preset/synth/working_joe/engi/load_gear(mob/living/carbon/human/new_human) var/choice = rand(1,2) @@ -559,8 +577,10 @@ new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack(new_human.back), WEAR_IN_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/glass/reinforced/large_stack(new_human.back), WEAR_IN_R_STORE) + /datum/equipment_preset/synth/working_joe/load_race(mob/living/carbon/human/new_human) . = ..() + new_human.set_species(joe_type) new_human.h_style = "Bald" new_human.f_style = "Shaved" if(prob(5)) diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index 0b3b4d4ecfb5..64e24ea99efb 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -1236,9 +1236,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1396,9 +1393,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1557,9 +1551,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1718,9 +1709,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -1879,9 +1867,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2040,9 +2025,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2201,9 +2183,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2362,9 +2341,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2523,9 +2499,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -2590,7 +2563,7 @@ //*****************************************************************************************************/ /datum/equipment_preset/upp/synth - name = "UPP Combat Synthetic" + name = "UPP Synthetic" flags = EQUIPMENT_PRESET_EXTRA languages = ALL_SYNTH_LANGUAGES_UPP @@ -2599,7 +2572,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 +2610,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 +2634,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) @@ -3006,9 +2978,6 @@ list("Entrenching Tool", 2, /obj/item/tool/shovel/etool, null, VENDOR_ITEM_RECOMMENDED), list("Sandbags x25", 5, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -3176,9 +3145,6 @@ list("Roller Bed", 4, /obj/item/roller, null, VENDOR_ITEM_REGULAR), list("Stasis Bag", 6, /obj/item/bodybag/cryobag, null, VENDOR_ITEM_REGULAR), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), @@ -3329,9 +3295,6 @@ list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY), - list("SPECIAL AMMUNITION", 0, null, null, null), - list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR), - list("ATTACHMENTS", 0, null, null, null), list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index 8289bdfe09cb..eec3b6157877 100644 --- a/code/modules/gear_presets/uscm.dm +++ b/code/modules/gear_presets/uscm.dm @@ -16,9 +16,9 @@ service_hat = list(/obj/item/clothing/head/cmcap) service_shoes = list(/obj/item/clothing/shoes/dress) - dress_under = list(/obj/item/clothing/under/marine/dress) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress) - dress_hat = list(/obj/item/clothing/head/marine/peaked) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) dress_gloves = list(/obj/item/clothing/gloves/marine/dress) dress_shoes = list(/obj/item/clothing/shoes/dress) var/auto_squad_name @@ -72,6 +72,8 @@ skills = /datum/skills/pfc minimap_icon = "private" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/pfc/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -108,6 +110,8 @@ skills = /datum/skills/smartgunner minimap_icon = "smartgunner" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/sg/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -227,6 +231,9 @@ utility_under = list(/obj/item/clothing/under/marine/officer/intel) minimap_icon = "io" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/intel/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -251,8 +258,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) @@ -281,6 +286,8 @@ skills = /datum/skills/specialist minimap_icon = "spec" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/spec/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel @@ -340,6 +347,8 @@ minimap_icon = "medic" utility_under = list(/obj/item/clothing/under/marine/medic) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/medic/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/medic @@ -402,6 +411,8 @@ minimap_icon = "engi" utility_under = list(/obj/item/clothing/under/marine/engineer) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/engineer/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -465,6 +476,8 @@ skills = /datum/skills/pfc/crafty minimap_icon = "private" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/private_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -555,6 +568,8 @@ skills = /datum/skills/smartgunner minimap_icon = "smartgunner" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/smartgunner_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -594,6 +609,8 @@ minimap_icon = "engi" utility_under = list(/obj/item/clothing/under/marine/engineer) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/engineer_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -640,6 +657,8 @@ minimap_icon = "medic" utility_under = list(/obj/item/clothing/under/marine/medic) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/medic_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -692,6 +711,8 @@ skills = /datum/skills/specialist minimap_icon = "spec" + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) /datum/equipment_preset/uscm/specialist_equipped/load_status(mob/living/carbon/human/new_human) new_human.nutrition = NUTRITION_NORMAL @@ -856,14 +877,14 @@ //Covert Raiders /datum/equipment_preset/uscm/marsoc/covert - name = "Marine Raiders (!DEATHSQUAD! Covert)" + name = "Marine Raider (!DEATHSQUAD! Covert)" uses_special_name = TRUE /datum/equipment_preset/uscm/marsoc/covert/load_name(mob/living/carbon/human/new_human, randomise) new_human.gender = MALE new_human.change_real_name(new_human, "[pick(GLOB.nato_phonetic_alphabet)]") new_human.age = rand(20,30) /datum/equipment_preset/uscm/marsoc/covert/load_rank(mob/living/carbon/human/new_human) - return "O" + return PAY_SHORT_CDNM //Team Leader /datum/equipment_preset/uscm/marsoc/sl @@ -875,6 +896,9 @@ skills = /datum/skills/commando/deathsquad/leader minimap_icon = "leader" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/marsoc/sl/load_rank(mob/living/carbon/human/new_human) if(new_human.client) @@ -891,7 +915,7 @@ new_human.change_real_name(new_human, "[pick(GLOB.nato_phonetic_alphabet)]") new_human.age = rand(20,30) /datum/equipment_preset/uscm/marsoc/sl/covert/load_rank(mob/living/carbon/human/new_human) - return "O" + return PAY_SHORT_CDNM //Officer /datum/equipment_preset/uscm/marsoc/cmd name = "Marine Raider Officer (!DEATHSQUAD!)" @@ -900,6 +924,9 @@ role_comm_title = "CMD." paygrade = PAY_SHORT_MO3 skills = /datum/skills/commando/deathsquad/officer + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/marsoc/cmd/load_rank(mob/living/carbon/human/new_human) if(new_human.client) @@ -958,6 +985,9 @@ skills = /datum/skills/commando/deathsquad/leader minimap_icon = "leader" + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) /datum/equipment_preset/uscm/marsoc/sl/load_rank(mob/living/carbon/human/new_human) if(new_human.client) diff --git a/code/modules/gear_presets/uscm_event.dm b/code/modules/gear_presets/uscm_event.dm index ce36f1fd807f..dc6eb34161ee 100644 --- a/code/modules/gear_presets/uscm_event.dm +++ b/code/modules/gear_presets/uscm_event.dm @@ -31,11 +31,11 @@ service_extra = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/bomber) service_hat = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/marine/commander/dress, /obj/item/clothing/head/beret/marine/commander/black) - dress_under = list(/obj/item/clothing/under/marine/dress, /obj/item/clothing/under/marine/officer/formal/servicedress) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/general) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) - dress_hat = list(/obj/item/clothing/head/marine/peaked/captain/white, /obj/item/clothing/head/marine/peaked/captain/black) dress_shoes = list(/obj/item/clothing/shoes/dress/commander) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit) /datum/equipment_preset/uscm_event/colonel/New() . = ..() @@ -72,6 +72,10 @@ service_gloves = list(/obj/item/clothing/gloves/black, /obj/item/clothing/gloves/marine/dress) service_hat = list(/obj/item/clothing/head/general, /obj/item/clothing/head/beret/marine/commander/black) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/general) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/uscm_event/general/New() . = ..() access = get_access(ACCESS_LIST_GLOBAL) @@ -149,6 +153,10 @@ role_comm_title = "OT" skills = /datum/skills/spy + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_event/upp_spy/load_gear(mob/living/carbon/human/new_human) //TODO: add backpacks and satchels var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -200,6 +208,10 @@ role_comm_title = "PvE" flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_event/provost/enforcer/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -242,6 +254,10 @@ role_comm_title = "PvTML" flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_event/provost/tml/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -284,6 +300,10 @@ role_comm_title = "PvI" flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/uscm_event/provost/inspector/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -331,6 +351,10 @@ role_comm_title = PAY_SHORT_PVM flags = EQUIPMENT_PRESET_EXTRA + dress_under = list(/obj/item/clothing/under/marine/dress/blues/general) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) + /datum/equipment_preset/uscm_event/provost/marshal/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel/sec if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) diff --git a/code/modules/gear_presets/uscm_medical.dm b/code/modules/gear_presets/uscm_medical.dm index be599755bacf..14db97b35229 100644 --- a/code/modules/gear_presets/uscm_medical.dm +++ b/code/modules/gear_presets/uscm_medical.dm @@ -3,22 +3,22 @@ flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE access = list(ACCESS_MARINE_MEDBAY, ACCESS_MARINE_CHEMISTRY, ACCESS_MARINE_MORGUE) - utility_under = list(/obj/item/clothing/under/rank/medical/green) - utility_hat = list() - utility_gloves = list() - utility_shoes = list(/obj/item/clothing/shoes/white) - utility_extra = list() - - service_under = list() - service_over = list() - service_hat = list() - service_shoes = list(/obj/item/clothing/shoes/laceup) - - dress_under = list(/obj/item/clothing/under/suit_jacket) - dress_over = list() - dress_hat = list() + utility_under = list(/obj/item/clothing/under/marine) + utility_hat = list(/obj/item/clothing/head/cmcap) + utility_gloves = list(/obj/item/clothing/gloves/marine) + utility_shoes = list(/obj/item/clothing/shoes/marine) + utility_extra = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/cm/tan) + + service_under = list(/obj/item/clothing/under/marine/officer/bridge) + service_over = list(/obj/item/clothing/suit/storage/jacket/marine/service, /obj/item/clothing/suit/storage/jacket/marine/service/mp) + service_hat = list(/obj/item/clothing/head/cmcap) + service_shoes = list(/obj/item/clothing/shoes/dress) + + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_gloves = list(/obj/item/clothing/gloves/marine/dress) - dress_shoes = list(/obj/item/clothing/shoes/laceup) + dress_shoes = list(/obj/item/clothing/shoes/dress) /datum/equipment_preset/uscm_ship/uscm_medical/cmo name = "USCM Chief Medical Officer (CMO)" @@ -44,34 +44,20 @@ minimap_background = MINIMAP_ICON_BACKGROUND_CIC utility_under = list(/obj/item/clothing/under/rank/chief_medical_officer) - utility_hat = list(/obj/item/clothing/head/cmo) - utility_gloves = list(/obj/item/clothing/gloves/latex) + utility_hat = list() + utility_gloves = list() utility_shoes = list(/obj/item/clothing/shoes/white) - utility_extra = list(/obj/item/clothing/suit/storage/labcoat) + utility_extra = list() /datum/equipment_preset/uscm_ship/uscm_medical/cmo/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/marine/satchel + var/back_item = /obj/item/storage/backpack/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/cmo(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/decent(new_human), WEAR_IN_JACKET) - 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) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/decent(new_human), WEAR_L_STORE) 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/medical(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, WEAR_IN_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full_advanced(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmo(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer(new_human), WEAR_J_STORE) //*****************************************************************************************************/ @@ -91,15 +77,10 @@ if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/doc(new_human), WEAR_L_EAR) 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/green(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) - 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) //Surgeon this part of the code is to change the name on your ID @@ -120,21 +101,22 @@ minimap_icon = list("medic") + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + dress_gloves = list(/obj/item/clothing/gloves/marine/dress) + dress_shoes = list(/obj/item/clothing/shoes/dress) + /datum/equipment_preset/uscm_ship/uscm_medical/nurse/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/doc(new_human), WEAR_L_EAR) 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) - 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) - /datum/equipment_preset/uscm_ship/uscm_medical/nurse/load_rank(mob/living/carbon/human/new_human) if(new_human.client) @@ -159,25 +141,18 @@ utility_hat = list() utility_gloves = list() utility_shoes = list(/obj/item/clothing/shoes/laceup) - utility_extra = list(/obj/item/clothing/suit/storage/labcoat/researcher) + utility_extra = list() service_under = list(/obj/item/clothing/under/marine/officer/researcher) /datum/equipment_preset/uscm_ship/uscm_medical/researcher/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/marine/satchel + var/back_item = /obj/item/storage/backpack/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/research(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) - if(new_human.disabilities & NEARSIGHTED) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science/prescription(new_human), WEAR_EYES) - else - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) - - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/researcher(new_human), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/bad(new_human), WEAR_IN_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/reagent_container/syringe(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/paper/research_notes/bad(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/syringe(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index 0b6a3b4b1ed7..f817d7d421fa 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -16,9 +16,9 @@ service_hat = list(/obj/item/clothing/head/cmcap) service_shoes = list(/obj/item/clothing/shoes/dress) - dress_under = list(/obj/item/clothing/under/marine/dress) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress) - dress_hat = list(/obj/item/clothing/head/marine/peaked) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_gloves = list(/obj/item/clothing/gloves/marine/dress) dress_shoes = list(/obj/item/clothing/shoes/dress) @@ -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 @@ -52,18 +53,18 @@ minimap_icon = "cl" minimap_background = MINIMAP_ICON_BACKGROUND_CIVILIAN - utility_under = list(/obj/item/clothing/under/liaison_suit/outing) + utility_under = list(/obj/item/clothing/under/liaison_suit/black) utility_hat = list() utility_gloves = list() utility_shoes = list(/obj/item/clothing/shoes/laceup) - utility_extra = list(/obj/item/clothing/under/liaison_suit/suspenders) + utility_extra = list(/obj/item/clothing/under/liaison_suit/blue) - service_under = list(/obj/item/clothing/under/liaison_suit) + service_under = list(/obj/item/clothing/under/liaison_suit/field) service_over = list() service_hat = list() service_shoes = list(/obj/item/clothing/shoes/laceup) - dress_under = list(/obj/item/clothing/under/liaison_suit/formal) + dress_under = list(/obj/item/clothing/under/liaison_suit/corporate_formal) dress_over = list() dress_hat = list() dress_gloves = list(/obj/item/clothing/gloves/marine/dress) @@ -80,7 +81,7 @@ //back_item = /obj/item/storage/backpack new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcl(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit(new_human), WEAR_BODY) + 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/laceup(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) @@ -127,19 +128,22 @@ minimap_icon = "correspondent" 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 + dress_under = list() + dress_over = list() + dress_hat = list() +/datum/equipment_preset/uscm_ship/reporter/load_gear(mob/living/carbon/human/new_human) 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" @@ -159,6 +163,9 @@ minimap_icon = "correspondent" minimap_background = MINIMAP_ICON_BACKGROUND_CIC + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_ship/reporter_uscm/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -178,10 +185,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) //*****************************************************************************************************/ @@ -246,23 +249,18 @@ minimap_icon = "engi" utility_under = list(/obj/item/clothing/under/marine/officer/engi) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/maint/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech 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) @@ -292,6 +290,9 @@ minimap_icon = "ot" utility_under = list(/obj/item/clothing/under/marine/officer/engi) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/ordn/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -335,6 +336,8 @@ minimap_icon = list("ct" = MINIMAP_ICON_COLOR_HEAD) utility_under = list(/obj/item/clothing/under/rank/qm_suit) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/qm/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -366,6 +369,9 @@ minimap_icon = "ct" utility_under = list(/obj/item/clothing/under/rank/cargotech) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/cargo/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel/tech @@ -413,11 +419,11 @@ service_extra = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/bomber) service_hat = list(/obj/item/clothing/head/beret/cm, /obj/item/clothing/head/beret/marine/commander/dress, /obj/item/clothing/head/beret/marine/commander/black, /obj/item/clothing/head/marine/peaked/service) - dress_under = list(/obj/item/clothing/under/marine/dress, /obj/item/clothing/under/marine/officer/formal/servicedress) - dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) - dress_hat = list(/obj/item/clothing/head/marine/peaked/captain/white, /obj/item/clothing/head/marine/peaked/captain/black, /obj/item/clothing/head/marine/peaked) + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover/officer) dress_shoes = list(/obj/item/clothing/shoes/dress/commander) - dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit, /obj/item/clothing/suit/storage/jacket/marine/dress) + dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) /datum/equipment_preset/uscm_ship/commander/New() . = ..() @@ -474,12 +480,9 @@ minimum_age = 35 dress_over = list( - /obj/item/clothing/suit/storage/jacket/marine/dress/officer/white, - /obj/item/clothing/suit/storage/jacket/marine/dress/officer/black, - /obj/item/clothing/suit/storage/jacket/marine/dress/officer/suit, + /obj/item/clothing/suit/storage/jacket/marine/dress/blues/officer, /obj/item/clothing/suit/storage/jacket/marine/dress/officer/falcon, ) - /datum/equipment_preset/uscm_ship/commander/council/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/commander/council(new_human), WEAR_HEAD) @@ -489,6 +492,7 @@ name = "USCM Commanding Officer (CO++)" idtype = /obj/item/card/id/general paygrade = PAY_SHORT_MO6 + dress_under = list(/obj/item/clothing/under/marine/dress/blues/senior, /obj/item/clothing/under/marine/dress/blues/general) /datum/equipment_preset/uscm_ship/commander/council/plus/load_gear(mob/living/carbon/human/new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/commander/councilchief(new_human), WEAR_HEAD) @@ -583,6 +587,8 @@ minimap_icon = "sea" service_hat = list(/obj/item/clothing/head/cmcap, /obj/item/clothing/head/drillhat) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/sea/New() . = ..() @@ -670,21 +676,71 @@ //*****************************************************************************************************/ -/datum/equipment_preset/uscm_ship/po - name = "USCM Pilot (DP) (Cryo)" +/datum/equipment_preset/uscm_ship/gp + name = "USCM Gunship Pilot (GP) (Cryo)" flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE idtype = /obj/item/card/id/silver access = list(ACCESS_MARINE_COMMAND, ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_PILOT) - assignment = JOB_PILOT - rank = JOB_PILOT + assignment = JOB_CAS_PILOT + rank = JOB_CAS_PILOT + paygrade = PAY_SHORT_MO1 + role_comm_title = "GP" + skills = /datum/skills/pilot + + minimap_icon = "pilot" + +/datum/equipment_preset/uscm_ship/gp/load_gear(mob/living/carbon/human/new_human) + var/back_item = /obj/item/storage/backpack/satchel + if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) + back_item = /obj/item/storage/backpack/marine + + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/po(new_human), WEAR_L_EAR) + 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/marine/officer/pilot(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) + +//*****************************************************************************************************/ + +/datum/equipment_preset/uscm_ship/gp/full + name = "USCM Gunship Pilot (GP)" + flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE + + utility_under = list(/obj/item/clothing/under/marine/officer/pilot) + +/datum/equipment_preset/uscm_ship/gp/full/load_gear(mob/living/carbon/human/new_human) + var/back_item = /obj/item/storage/backpack/satchel + if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) + back_item = /obj/item/storage/backpack/marine + + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/po(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(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/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/pilot(new_human), WEAR_JACKET) + 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/large(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/pilot(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(new_human), WEAR_EYES) + +//*****************************************************************************************************/ + +/datum/equipment_preset/uscm_ship/dp + name = "USCM Dropship Pilot (DP) (Cryo)" + flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE + + idtype = /obj/item/card/id/silver + access = list(ACCESS_MARINE_COMMAND, ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_PILOT) + assignment = JOB_DROPSHIP_PILOT + rank = JOB_DROPSHIP_PILOT paygrade = PAY_SHORT_MO1 role_comm_title = "DP" skills = /datum/skills/pilot minimap_icon = "pilot" -/datum/equipment_preset/uscm_ship/po/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/uscm_ship/dp/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine @@ -696,13 +752,13 @@ //*****************************************************************************************************/ -/datum/equipment_preset/uscm_ship/po/full - name = "USCM Pilot Officer (PO)" +/datum/equipment_preset/uscm_ship/dp/full + name = "USCM Dropship Pilot (DP)" flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE utility_under = list(/obj/item/clothing/under/marine/officer/pilot) -/datum/equipment_preset/uscm_ship/po/full/load_gear(mob/living/carbon/human/new_human) +/datum/equipment_preset/uscm_ship/dp/full/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) back_item = /obj/item/storage/backpack/marine @@ -734,6 +790,9 @@ minimap_icon = "dcc" + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues/nco) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) + /datum/equipment_preset/uscm_ship/dcc/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/satchel if(new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) @@ -790,9 +849,7 @@ service_hat = list(/obj/item/clothing/head/beret/cm) service_shoes = list(/obj/item/clothing/shoes/dress/commander) - dress_extra = list(/obj/item/clothing/head/beret/marine/commander/dress, /obj/item/storage/large_holster/ceremonial_sword/full) - dress_hat = list(/obj/item/clothing/head/marine/peaked/captain) - dress_shoes = list(/obj/item/clothing/shoes/dress/commander) + dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) /datum/equipment_preset/uscm_ship/officer/New() . = ..() @@ -825,6 +882,9 @@ minimap_icon = "mst" utility_under = list(/obj/item/clothing/under/marine/chef) + dress_under = list(/obj/item/clothing/under/marine/dress/blues) + dress_over = list(/obj/item/clothing/suit/storage/jacket/marine/dress/blues) + dress_hat = list(/obj/item/clothing/head/marine/dress_cover) /datum/equipment_preset/uscm_ship/chef/load_gear(mob/living/carbon/human/new_human) var/back_item = /obj/item/storage/backpack/marine/satchel diff --git a/code/modules/gear_presets/whiteout.dm b/code/modules/gear_presets/whiteout.dm index 62b6d5db8008..b9ca1a6e02d4 100644 --- a/code/modules/gear_presets/whiteout.dm +++ b/code/modules/gear_presets/whiteout.dm @@ -9,7 +9,7 @@ languages = list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_CHINESE, LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_YAUTJA, LANGUAGE_XENOMORPH, LANGUAGE_TSL) //Synths after all. skills = /datum/skills/everything //They are Synths, programmed for Everything. idtype = /obj/item/card/id/pmc/ds - paygrade = PAY_SHORT_OPR + paygrade = PAY_SHORT_CDNM /datum/equipment_preset/pmc/w_y_whiteout/New() . = ..() diff --git a/code/modules/gear_presets/wo.dm b/code/modules/gear_presets/wo.dm index 453cd3ea56eb..bf002b292df9 100644 --- a/code/modules/gear_presets/wo.dm +++ b/code/modules/gear_presets/wo.dm @@ -599,7 +599,7 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/head/fedora(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/mcom(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/suspenders(new_human), WEAR_BODY) + 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/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) diff --git a/code/modules/gear_presets/wy.dm b/code/modules/gear_presets/wy.dm index 0b63c76b59d0..d492f9573b57 100644 --- a/code/modules/gear_presets/wy.dm +++ b/code/modules/gear_presets/wy.dm @@ -19,8 +19,8 @@ /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(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/under/liaison_suit/ivy(new_human), WEAR_BODY) + 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 a7c0dad679ee..a8f3a443311e 100644 --- a/code/modules/gear_presets/wy_goons.dm +++ b/code/modules/gear_presets/wy_goons.dm @@ -135,7 +135,8 @@ /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/under/liaison_suit, WEAR_BODY) + 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/law/laws/precautionary_charge.dm b/code/modules/law/laws/precautionary_charge.dm index c06cd6ca5287..7be4cb2b2e65 100644 --- a/code/modules/law/laws/precautionary_charge.dm +++ b/code/modules/law/laws/precautionary_charge.dm @@ -10,7 +10,7 @@ /datum/law/precautionary_charge/insanity name = "Insanity" - desc = "Acting in such a manner which makes the offender not sound clear of mind. The CMO or Synthetic can declare insanity on a Marine if the Marine is believed to not be of sound mind. The Marine once cleared to be of sound mind may be released from this particular charge." + desc = "Acting in such a manner which makes the offender not sound clear of mind. The subject, once cleared to be of sound mind, may be released from this particular charge. Excepting in cases of Suicide/Attempted Suicide, only the CMO/Synthetic may declare someone insane." /datum/law/precautionary_charge/prisoner_of_war name = "Prisoner of War" diff --git a/code/modules/lighting/lighting_mask/lighting_mask.dm b/code/modules/lighting/lighting_mask/lighting_mask.dm index bf824033adfb..c1276d19dab0 100644 --- a/code/modules/lighting/lighting_mask/lighting_mask.dm +++ b/code/modules/lighting/lighting_mask/lighting_mask.dm @@ -69,7 +69,7 @@ // - Center the overlay image // - Ok so apparently translate is affected by the scale we already did huh. // ^ Future me here, its because it works as translate then scale since its backwards. - // ^ ^ Future future me here, it totally shouldnt since the translation component of a matrix is independant to the scale component. + // ^ ^ Future future me here, it totally shouldnt since the translation component of a matrix is independent to the scale component. new_size_matrix.Translate(-128 + 16) //Adjust for pixel offsets var/invert_offsets = attached_atom.dir & (NORTH | EAST) diff --git a/code/modules/lighting/lighting_static/static_lighting_source.dm b/code/modules/lighting/lighting_static/static_lighting_source.dm index cfbfb49ceda3..26bc41d3cb02 100644 --- a/code/modules/lighting/lighting_static/static_lighting_source.dm +++ b/code/modules/lighting/lighting_static/static_lighting_source.dm @@ -113,7 +113,7 @@ //Cubic lighting falloff. This has the *exact* same range as the original lighting falloff calculation, down to the exact decimal, but it looks a little unnatural due to the harsher falloff and how it's generally brighter across the board. //#define LUM_FALLOFF(C, T) (1 - CLAMP01((((C.x - T.x) * (C.x - T.x)) + ((C.y - T.y) * (C.y - T.y)) + LIGHTING_HEIGHT) / max(1, light_range*light_range))) -//Linear lighting falloff. This resembles the original lighting falloff calculation the best, but results in lights having a slightly larger range, which is most noticable with large light sources. This also results in lights being diamond-shaped, fuck. This looks the darkest out of the three due to how lights are brighter closer to the source compared to the original falloff algorithm. This falloff method also does not at all take into account lighting height, as it acts as a flat reduction to light range with this method. +//Linear lighting falloff. This resembles the original lighting falloff calculation the best, but results in lights having a slightly larger range, which is most noticeable with large light sources. This also results in lights being diamond-shaped, fuck. This looks the darkest out of the three due to how lights are brighter closer to the source compared to the original falloff algorithm. This falloff method also does not at all take into account lighting height, as it acts as a flat reduction to light range with this method. //#define LUM_FALLOFF(C, T) (1 - CLAMP01(((abs(C.x - T.x) + abs(C.y - T.y))) / max(1, light_range+1))) //Linear lighting falloff but with an octagonal shape in place of a diamond shape. Lummox JR please add pointer support. 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 22bd9aa0cf61..4f9493cfdf49 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -32,7 +32,10 @@ plane = GHOST_PLANE layer = ABOVE_FLY_LAYER stat = DEAD - var/adminlarva = FALSE + mob_flags = KNOWS_TECHNOLOGY + + /// If the observer is an admin, are they excluded from the xeno queue? + var/admin_larva_protection = TRUE // Enabled by default var/ghostvision = TRUE var/can_reenter_corpse var/started_as_observer //This variable is set to 1 when you enter the game as an observer. @@ -137,8 +140,6 @@ var/datum/action/observer_action/new_action = new path() new_action.give_to(src) - RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(toggle_predator_action)) - if(SSticker.mode && SSticker.mode.flags_round_type & MODE_PREDATOR) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), src, "This is a PREDATOR ROUND! If you are whitelisted, you may Join the Hunt!"), 2 SECONDS) @@ -189,37 +190,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 + 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/action_button)) - return - - 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) @@ -236,8 +238,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) @@ -246,8 +249,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) @@ -257,48 +261,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() + client.eye = carbon_target + observe_target_mob = carbon_target - //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) - - 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)) @@ -317,9 +299,14 @@ hud_used.show_hud(hud_used.hud_version) /mob/dead/observer/Login() - ..() + ..() // This calls signals which might have resulted in our client getting deleted - toggle_predator_action() + if(!client) + return + + if(client.check_whitelist_status(WHITELIST_PREDATOR)) + RegisterSignal(SSdcs, COMSIG_GLOB_PREDATOR_ROUND_TOGGLED, PROC_REF(toggle_predator_action)) + toggle_predator_action() client.move_delay = MINIMAL_MOVEMENT_INTERVAL @@ -824,10 +811,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set category = "Ghost.Settings" if(client) - if(client.view != GLOB.world_view_size) - client.change_view(GLOB.world_view_size) - else + // Check the current zoom level and toggle to the next level cyclically + if (client.view == GLOB.world_view_size) client.change_view(14) + else if (client.view == 14) + client.change_view(28) + else + client.change_view(GLOB.world_view_size) /mob/dead/observer/verb/toggle_darkness() @@ -1284,9 +1274,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!key_to_use) return - if(!(GLOB.RoleAuthority.roles_whitelist[key_to_use] & WHITELIST_PREDATOR)) - return - if(!SSticker.mode) SSticker.OnRoundstart(CALLBACK(src, PROC_REF(toggle_predator_action))) return 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/inventory.dm b/code/modules/mob/inventory.dm index 39c5d0e54ff6..c9837e144c1b 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -175,7 +175,9 @@ if(!previously_held_object) remembered_dropped_objects -= weak_ref break - if(previously_held_object.in_contents_of(check_turf)) + if(previously_held_object in check_turf) + if(previously_held_object.throwing) + return FALSE if(previously_held_object.anchored) return FALSE put_in_hands(previously_held_object, drop_on_fail = FALSE) @@ -226,7 +228,7 @@ //Remove an item on a mob's inventory. It does not change the item's loc, just unequips it from the mob. //Used just before you want to delete the item, or moving it afterwards. /mob/proc/temp_drop_inv_item(obj/item/I, force) - return u_equip(I, null, force) + return u_equip(I, null, TRUE, force) //Outdated but still in use apparently. This should at least be a human proc. diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index f00618fe54be..0a2fbca787d6 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -23,7 +23,7 @@ /datum/language/proc/broadcast(mob/living/speaker, message, speaker_mask) - log_say("[key_name(speaker)] : ([name]) [message]") + log_say("[key_name(speaker)] : ([name]) [message] (AREA: [get_area_name(speaker)])") for(var/mob/player in GLOB.player_list) diff --git a/code/modules/mob/language/languages.dm b/code/modules/mob/language/languages.dm index 86a96e3d160c..cfa023c7d9cd 100644 --- a/code/modules/mob/language/languages.dm +++ b/code/modules/mob/language/languages.dm @@ -174,7 +174,7 @@ GLOB.STUI.game.Add("\[[time_stamp()]]APOLLO: [key_name(speaker)] : [message]
      ") GLOB.STUI.processing |= STUI_LOG_GAME_CHAT - log_say("[speaker.name != "Unknown" ? speaker.name : "([speaker.real_name])"] \[APOLLO\]: [message] (CKEY: [speaker.key]) (JOB: [speaker.job])") + log_say("[speaker.name != "Unknown" ? speaker.name : "([speaker.real_name])"] \[APOLLO\]: [message] (CKEY: [speaker.key]) (JOB: [speaker.job]) (AREA: [get_area_name(speaker)])") log_ares_apollo(speaker.real_name, message) for (var/mob/dead in GLOB.dead_mob_list) if(!istype(dead,/mob/new_player) && !istype(dead,/mob/living/brain)) //No meta-evesdropping 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/death.dm b/code/modules/mob/living/carbon/human/death.dm index af0da452d13e..c97e4344cabf 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -10,13 +10,16 @@ // Override the current limb status E.droplimb(0, 0, cause) - undefibbable = TRUE + GLOB.data_core.manifest_modify(real_name, WEAKREF(src), null, null, "*Deceased*") if(is_a_synth) spawn_gibs() return + + undefibbable = TRUE + ..() /mob/living/carbon/human/gib_animation() 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..0f52b75106a5 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) @@ -811,25 +834,7 @@ R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
      [t1]") if(href_list["medholocard"]) - if(!skillcheck(usr, SKILL_MEDICAL, SKILL_MEDICAL_MEDIC)) - to_chat(usr, SPAN_WARNING("You're not trained to use this.")) - return - if(!has_species(src, "Human")) - to_chat(usr, SPAN_WARNING("Triage holocards only works on humans.")) - return - var/newcolor = tgui_input_list(usr, "Choose a triage holo card to add to the patient:", "Triage holo card", list("black", "red", "orange", "none")) - if(!newcolor) return - if(get_dist(usr, src) > 7) - to_chat(usr, SPAN_WARNING("[src] is too far away.")) - return - if(newcolor == "none") - if(!holo_card_color) return - holo_card_color = null - to_chat(usr, SPAN_NOTICE("You remove the holo card on [src].")) - else if(newcolor != holo_card_color) - holo_card_color = newcolor - to_chat(usr, SPAN_NOTICE("You add a [newcolor] holo card on [src].")) - update_targeted() + change_holo_card(usr) if(href_list["lookitem"]) var/obj/item/I = locate(href_list["lookitem"]) @@ -881,6 +886,39 @@ ..() return +/mob/living/carbon/human/proc/change_holo_card(mob/user) + if(isobserver(user)) + return + if(!skillcheck(user, SKILL_MEDICAL, SKILL_MEDICAL_MEDIC)) + // Removing your own holocard when you are not trained + if(user == src && holo_card_color) + if(tgui_alert(user, "Are you sure you want to reset your own holocard?", "Resetting Holocard", list("Yes", "No")) != "Yes") + return + holo_card_color = null + to_chat(user, SPAN_NOTICE("You reset your holocard.")) + hud_set_holocard() + return + to_chat(user, SPAN_WARNING("You're not trained to use this.")) + return + if(!has_species(src, "Human")) + to_chat(user, SPAN_WARNING("Triage holocards only works on humans.")) + return + var/newcolor = tgui_input_list(user, "Choose a triage holo card to add to the patient:", "Triage holo card", list("black", "red", "orange", "purple", "none")) + if(!newcolor) + return + if(get_dist(user, src) > 7) + to_chat(user, SPAN_WARNING("[src] is too far away.")) + return + if(newcolor == "none") + if(!holo_card_color) + return + holo_card_color = null + to_chat(user, SPAN_NOTICE("You remove the holo card on [src].")) + else if(newcolor != holo_card_color) + holo_card_color = newcolor + to_chat(user, SPAN_NOTICE("You add a [newcolor] holo card on [src].")) + hud_set_holocard() + /mob/living/carbon/human/tgui_interact(mob/user, datum/tgui/ui) // I'M SORRY, SO FUCKING SORRY . = ..() ui = SStgui.try_update_ui(user, src, ui) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index f14b023b81da..43c55dcaaff6 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -23,7 +23,7 @@ SPAN_NOTICE("You extinguished the fire on [src]."), null, 5) return 1 - // If unconcious with oxygen damage, do CPR. If dead, we do CPR + // If unconscious with oxygen damage, do CPR. If dead, we do CPR if(!(stat == UNCONSCIOUS && getOxyLoss() > 0) && !(stat == DEAD)) help_shake_act(attacking_mob) return 1 @@ -60,9 +60,11 @@ revive_grace_period += 7 SECONDS attacking_mob.visible_message(SPAN_NOTICE("[attacking_mob] performs CPR on [src]."), SPAN_HELPFUL("You perform CPR on [src].")) + balloon_alert(attacking_mob, "you perform cpr") else attacking_mob.visible_message(SPAN_NOTICE("[attacking_mob] fails to perform CPR on [src]."), SPAN_HELPFUL("You fail to perform CPR on [src]. Incorrect rhythm. Do it slower.")) + balloon_alert(attacking_mob, "incorrect rhythm. do it slower") cpr_cooldown = world.time + 7 SECONDS cpr_attempt_timer = 0 return 1 @@ -88,7 +90,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) @@ -191,12 +193,6 @@ /mob/living/carbon/human/help_shake_act(mob/living/carbon/M) //Target is us if(src == M) - if(holo_card_color) //if we have a triage holocard printed on us, we remove it. - holo_card_color = null - update_targeted() - visible_message(SPAN_NOTICE("[src] removes the holo card on [gender==MALE?"himself":"herself"]."), \ - SPAN_NOTICE("You remove the holo card on yourself."), null, 3) - return check_for_injuries() return 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_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 9ec9d0b05ec5..29a9789b5699 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -136,7 +136,7 @@ var/last_chew = 0 //taken from human.dm - hud_possible = list(HEALTH_HUD,STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD) + hud_possible = list(HEALTH_HUD, STATUS_HUD, STATUS_HUD_OOC, STATUS_HUD_XENO_INFECTION, STATUS_HUD_XENO_CULTIST, ID_HUD, WANTED_HUD, ORDER_HUD, XENO_HOSTILE_ACID, XENO_HOSTILE_SLOW, XENO_HOSTILE_TAG, XENO_HOSTILE_FREEZE, HUNTER_CLAN, HUNTER_HUD, FACTION_HUD, HOLOCARD_HUD) var/embedded_flag //To check if we've need to roll for damage on movement while an item is imbedded in us. var/allow_gun_usage = TRUE var/melee_allowed = TRUE diff --git a/code/modules/mob/living/carbon/human/human_dummy.dm b/code/modules/mob/living/carbon/human/human_dummy.dm index 1f90c618fd38..0c0584c5292b 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,9 @@ 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/professor_dummy/Initialize() + . = ..() + create_hud() + arm_equipment(src, /datum/equipment_preset/other/professor_dummy) 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/life/handle_regular_hud_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm index b84c8e9d24c2..9e27fe9963ca 100644 --- a/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm +++ b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm @@ -60,7 +60,7 @@ else clear_fullscreen("blind") - ///Pain should override the SetEyeBlur(0) should the pain be painful enough to cause eyeblur in the first place. Also, peepers is essential to make sure eye damage isn't overriden. + ///Pain should override the SetEyeBlur(0) should the pain be painful enough to cause eyeblur in the first place. Also, peepers is essential to make sure eye damage isn't overridden. var/datum/internal_organ/eyes/peepers = internal_organs_by_name["eyes"] if((disabilities & NEARSIGHTED) && !HAS_TRAIT(src, TRAIT_NEARSIGHTED_EQUIPMENT) && pain.current_pain < 80 && peepers.organ_status == ORGAN_HEALTHY) EyeBlur(2) diff --git a/code/modules/mob/living/carbon/human/powers/human_powers.dm b/code/modules/mob/living/carbon/human/powers/human_powers.dm index 36eb927eb7fb..fef87c2f3263 100644 --- a/code/modules/mob/living/carbon/human/powers/human_powers.dm +++ b/code/modules/mob/living/carbon/human/powers/human_powers.dm @@ -168,7 +168,7 @@ to_chat(src, "Not even a [species.name] can speak to the dead.") return - log_say("[key_name(src)] communed to [key_name(M)]: [text]") + log_say("[key_name(src)] communed to [key_name(M)]: [text] (AREA: [get_area_name(loc)])") to_chat(M, SPAN_NOTICE(" Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]")) if(istype(M,/mob/living/carbon/human)) @@ -178,16 +178,25 @@ to_chat(H, SPAN_DANGER("Your nose begins to bleed...")) H.drip(1) -/mob/living/carbon/human/proc/psychic_whisper(mob/M as mob in oview()) +/mob/living/carbon/human/proc/psychic_whisper(mob/target_mob as mob in oview()) set name = "Psychic Whisper" set desc = "Whisper silently to someone over a distance." set category = "Abilities" - var/msg = strip_html(input("Message:", "Psychic Whisper") as text|null) - if(msg) - log_say("PsychicWhisper: [key_name(src)]->[M.key] : [msg]") - to_chat(M, SPAN_XENOWARNING(" You hear a strange, alien voice in your head... \italic [msg]")) - to_chat(src, SPAN_XENOWARNING(" You said: \"[msg]\" to [M]")) + var/whisper = strip_html(input("Message:", "Psychic Whisper") as text|null) + if(whisper) + log_say("PsychicWhisper: [key_name(src)]->[target_mob.key] : [whisper] (AREA: [get_area_name(loc)])") + to_chat(target_mob, SPAN_XENOWARNING(" You hear a strange, alien voice in your head... [whisper]")) + to_chat(src, SPAN_XENOWARNING(" You said: \"[whisper]\" to [target_mob]")) + for (var/mob/dead/observer/ghost as anything in GLOB.observer_list) + if(!ghost.client || isnewplayer(ghost)) + continue + if(ghost.client.prefs.toggles_chat & CHAT_GHOSTHIVEMIND) + var/rendered_message + var/human_track = "(F)" + var/target_track = "(F)" + rendered_message = SPAN_XENOLEADER("PsychicWhisper: [real_name][human_track] to [target_mob.real_name][target_track], '[whisper]'") + ghost.show_message(rendered_message, SHOW_MESSAGE_AUDIBLE) return /mob/living/verb/lay_down() diff --git a/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm b/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm index e66fec576f64..bd5c3c360dee 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/_emote.dm @@ -6,3 +6,12 @@ var/category = "" /// Override text for the emote to be displayed in the WJ emote panel var/override_say = "" + /// Path to hazard joe variant sound + var/haz_sound + /// What Working Joe types can use this emote + var/joe_flag = WORKING_JOE_EMOTE + +/datum/emote/living/carbon/human/synthetic/working_joe/get_sound(mob/living/user) + if(ishazardjoe(user) && haz_sound) + return haz_sound + return sound diff --git a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm index 292c302f9317..829f1d89e939 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/_species.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/_species.dm @@ -10,6 +10,13 @@ hair_color = "#000000" icobase = 'icons/mob/humans/species/r_synthetic.dmi' deform = 'icons/mob/humans/species/r_synthetic.dmi' + /// Used to assign which variant of emote_panel to give to user + var/emote_panel_type = /datum/joe_emote_panel + +/datum/species/synthetic/colonial/working_joe/hazard + name = SYNTH_HAZARD_JOE //TECHNICALLY the proper name would be Hazard Working Joes, but we will stick with Hazard Joe for now + name_plural = "Hazard Joes" + emote_panel_type = /datum/joe_emote_panel/hazard /datum/species/synthetic/colonial/working_joe/handle_post_spawn(mob/living/carbon/human/joe) . = ..() @@ -23,10 +30,9 @@ /// Open the WJ's emote panel, which allows them to use voicelines /datum/species/synthetic/colonial/working_joe/open_emote_panel() - var/datum/joe_emote_panel/ui = new(usr) + var/datum/joe_emote_panel/ui = new emote_panel_type(usr) ui.ui_interact(usr) - /datum/action/joe_emote_panel name = "Open Voice Synthesizer" action_icon_state = "looc_toggle" @@ -53,30 +59,8 @@ /datum/joe_emote_panel - /// Static dict ("category" : (emotes)) of every wj emote typepath - var/static/list/wj_emotes - /// Static list of categories - var/static/list/wj_categories = list() - /// Panel allows you to spam, so a manual CD is added here COOLDOWN_DECLARE(panel_emote_cooldown) - -/datum/joe_emote_panel/New() - if(!length(wj_emotes)) - var/list/emotes_to_add = list() - for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in subtypesof(/datum/emote/living/carbon/human/synthetic/working_joe)) - if(!initial(emote.key) || !initial(emote.say_message)) - continue - - if(!(initial(emote.category) in wj_categories)) - wj_categories += initial(emote.category) - - emotes_to_add += emote - - - wj_emotes = emotes_to_add - - /datum/joe_emote_panel/proc/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -99,10 +83,26 @@ /datum/joe_emote_panel/ui_static_data(mob/user) var/list/data = list() - data["categories"] = wj_categories + data["categories"] = GLOB.wj_categories + data["emotes"] = list() + + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in GLOB.wj_emotes) + data["emotes"] += list(list( + "id" = initial(emote.key), + "text" = (initial(emote.override_say) || initial(emote.say_message)), + "category" = initial(emote.category), + "path" = "[emote]", + )) + + return data + +/datum/joe_emote_panel/hazard/ui_static_data(mob/user) + var/list/data = list() + + data["categories"] = GLOB.hj_categories data["emotes"] = list() - for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in wj_emotes) + for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in GLOB.hj_emotes) data["emotes"] += list(list( "id" = initial(emote.key), "text" = (initial(emote.override_say) || initial(emote.say_message)), diff --git a/code/modules/mob/living/carbon/human/species/working_joe/damage.dm b/code/modules/mob/living/carbon/human/species/working_joe/damage.dm index b4d1282dc106..4f47822854a6 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/damage.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/damage.dm @@ -4,26 +4,34 @@ /datum/emote/living/carbon/human/synthetic/working_joe/damage/damage key = "damage" sound = 'sound/voice/joe/damage.ogg' + haz_sound = 'sound/voice/joe/damage_haz.ogg' say_message = "Do not damage Seegson property." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/that_stings key = "thatstings" sound = 'sound/voice/joe/that_stings.ogg' + haz_sound = 'sound/voice/joe/that_stings_haz.ogg' say_message = "That stings." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/irresponsible key = "irresponsible" sound = 'sound/voice/joe/irresponsible.ogg' + haz_sound = 'sound/voice/joe/irresponsible_haz.ogg' say_message = "That was irresponsible." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/this_is_futile key = "thisisfutile" sound = 'sound/voice/joe/this_is_futile.ogg' + haz_sound = 'sound/voice/joe/this_is_futile_haz.ogg' say_message = "This is futile." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/damage/really key = "really" diff --git a/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm b/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm index dce6c6c0d5be..77622c4f1412 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/farewell.dm @@ -28,8 +28,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/farewell/day_never_done key = "dayneverdone" sound = 'sound/voice/joe/day_never_done.ogg' + haz_sound = 'sound/voice/joe/day_never_done_haz.ogg' say_message = "A synthetic's day is never done." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/returning_to_tasks key = "returningtotasks" @@ -40,20 +42,26 @@ /datum/emote/living/carbon/human/synthetic/working_joe/farewell/back_to_work key = "backtowork" sound = 'sound/voice/joe/back_to_work.ogg' + haz_sound = 'sound/voice/joe/back_to_work_haz.ogg' say_message = "Back to work." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/other_concerns key = "otherconcerns" sound = 'sound/voice/joe/other_concerns.ogg' + haz_sound = 'sound/voice/joe/other_concerns_haz.ogg' say_message = "I have other concerns." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/more_pressing_matters key = "morepressingmatters" sound = 'sound/voice/joe/more_pressing_matters.ogg' + haz_sound = 'sound/voice/joe/more_pressing_matters_haz.ogg' say_message = "There are more pressing matters." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/farewell/gone_inconsiderate key = "gone" diff --git a/code/modules/mob/living/carbon/human/species/working_joe/fire.dm b/code/modules/mob/living/carbon/human/species/working_joe/fire.dm index c74a3427ff31..0f8ee84e2ae7 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/fire.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/fire.dm @@ -10,17 +10,23 @@ /datum/emote/living/carbon/human/synthetic/working_joe/fire/temperatures key = "temperatures" sound = 'sound/voice/joe/temperatures.ogg' + haz_sound = 'sound/voice/joe/temperatures_haz.ogg' say_message = "I am built to withstand temperatures of up to 1210 degrees." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/fire/fire key = "fire" sound = 'sound/voice/joe/fire.ogg' + haz_sound = 'sound/voice/joe/fire_haz.ogg' say_message = "Only wild animals fear fire." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/fire/unprotected_flames key = "unprotectedflames" sound = 'sound/voice/joe/unprotected_flames.ogg' + haz_sound = 'sound/voice/joe/unprotected_flames_haz.ogg' say_message = "Unprotected flames are extremely dangerous and entirely unadvisable." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm b/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm index eec20af56f89..0b0efb57c5f2 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/greeting.dm @@ -10,8 +10,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/greeting/good_day key = "goodday" sound = 'sound/voice/joe/good_day.ogg' + haz_sound = 'sound/voice/joe/good_day_haz.ogg' say_message = "Good day." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/greeting/how_are_you key = "howareyou" @@ -22,8 +24,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/greeting/how_can_i_help key = "howcanihelp" sound = 'sound/voice/joe/how_can_i_help.ogg' + haz_sound = 'sound/voice/joe/how_can_i_help_haz.ogg' say_message = "How can I help you?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/greeting/need_to_know key = "needtoknow" diff --git a/code/modules/mob/living/carbon/human/species/working_joe/notice.dm b/code/modules/mob/living/carbon/human/species/working_joe/notice.dm index 017424dbc053..9ae76abba768 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/notice.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/notice.dm @@ -4,14 +4,18 @@ /datum/emote/living/carbon/human/synthetic/working_joe/notice/report key = "report" sound = 'sound/voice/joe/report.ogg' + haz_sound = 'sound/voice/joe/report_haz.ogg' say_message = "Logging report to APOLLO." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/detailed_report key = "detailedreport" sound = 'sound/voice/joe/detailed_report.ogg' + haz_sound = 'sound/voice/joe/detailed_report_haz.ogg' say_message = "APOLLO will require a detailed report." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/be_careful key = "careful" @@ -22,8 +26,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/notice/firearm key = "firearm" sound = 'sound/voice/joe/firearm.ogg' + haz_sound = 'sound/voice/joe/firearm_haz.ogg' say_message = "Firearms can cause serious injury. Let me assist you." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/investigate_weapon key = "weapon" @@ -37,20 +43,40 @@ say_message = "A firearm. Most concerning." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE +/datum/emote/living/carbon/human/synthetic/working_joe/notice/invest_disturbance + key = "investigatedisturbance" + haz_sound = 'sound/voice/joe/investigating_disturbance_haz.ogg' + say_message = "Investigating disturbance." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + +/datum/emote/living/carbon/human/synthetic/working_joe/notice/unexplained_disturbance + key = "disturbance" + haz_sound = 'sound/voice/joe/disturbance_haz.ogg' + say_message = "Unexplained disturbances are most troubling." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + /datum/emote/living/carbon/human/synthetic/working_joe/notice/species key = "species" sound = 'sound/voice/joe/species.ogg' + haz_sound = 'sound/voice/joe/species_haz.ogg' say_message = "Unidentified species." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/beyond_repair key = "beyondrepair" sound = 'sound/voice/joe/beyond_repair.ogg' + haz_sound = 'sound/voice/joe/beyond_repair_haz.ogg' say_message = "Hmm, far beyond repair." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/notice/apollo_behalf key = "apollobehalf" sound = 'sound/voice/joe/apollo_behalf.ogg' + haz_sound = 'sound/voice/joe/apollo_behalf_haz.ogg' say_message = "I will inform APOLLO on your behalf." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/question.dm b/code/modules/mob/living/carbon/human/species/working_joe/question.dm index d4805e36224f..eea60b8ad2ff 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/question.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/question.dm @@ -10,17 +10,23 @@ /datum/emote/living/carbon/human/synthetic/working_joe/question/misbehaving key = "misbehaving" sound = 'sound/voice/joe/misbehaving.ogg' + haz_sound = 'sound/voice/joe/misbehaving_haz.ogg' say_message = "Have you been misbehaving?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/question/what_happened_to_you key = "whathappenedtoyou" sound = 'sound/voice/joe/what_happened_to_you.ogg' + haz_sound = 'sound/voice/joe/what_happened_to_you_haz.ogg' say_message = "What happened to you?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/question/what_is_this key = "whatisthis" sound = 'sound/voice/joe/what_is_this.ogg' + haz_sound = 'sound/voice/joe/what_is_this_haz.ogg' say_message = "What is this?" emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/quip.dm b/code/modules/mob/living/carbon/human/species/working_joe/quip.dm index 33b4bed8ea48..46290ae4927c 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/quip.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/quip.dm @@ -1,19 +1,23 @@ /datum/emote/living/carbon/human/synthetic/working_joe/quip category = JOE_EMOTE_CATEGORY_QUIP -/datum/emote/living/carbon/human/synthetic/working_joe/quip/alwaysknow +/datum/emote/living/carbon/human/synthetic/working_joe/quip/alwaysknow // THE FUNNY LINE key = "alwaysknow" key_third_person = "workingjoe" sound = 'sound/voice/joe/alwaysknow.ogg' + haz_sound = 'sound/voice/joe/alwaysknow_haz.ogg' say_message = "You always know a Working Joe." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/quip/awful_mess key = "awful" key_third_person = "mess" sound = 'sound/voice/joe/awful.ogg' + haz_sound = 'sound/voice/joe/awful_haz.ogg' say_message = "Tut, tut. What an awful mess." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/quip/inexpensive key = "inexpensive" @@ -45,6 +49,13 @@ say_message = "With Seegson, there is someone behind you, helping you every single step of the way." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE +/datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_tomorrow + key = "seegsontomorrow" + haz_sound = 'sound/voice/joe/tomorrow_together_haz.ogg' + say_message = "Seegson; tomorrow, together." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + /datum/emote/living/carbon/human/synthetic/working_joe/quip/seegson_standards key = "seegsonstandards" sound = 'sound/voice/joe/seegson_standards.ogg' diff --git a/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm b/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm index 284befe268e1..b30092dc244f 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/restricted_area.dm @@ -4,8 +4,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/presence_logged key = "presencelogged" sound = 'sound/voice/joe/presence_logged.ogg' + haz_sound = 'sound/voice/joe/presence_logged_haz.ogg' say_message = "Your presence has been logged." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/trespassing key = "trespassing" @@ -16,8 +18,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/not_allowed_there key = "notallowedthere" sound = 'sound/voice/joe/not_allowed_there.ogg' + haz_sound = 'sound/voice/joe/not_allowed_there_haz.ogg' say_message = "You're not allowed in there." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/shouldnt_be_here key = "shouldntbehere" @@ -28,8 +32,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/really_shouldnt_be_here key = "reallyshouldntbehere" sound = 'sound/voice/joe/really_shouldnt_be_here.ogg' + haz_sound = 'sound/voice/joe/really_shouldnt_be_here_haz.ogg' say_message = "You really shouldn't be here." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/interloper key = "interloper" @@ -37,6 +43,13 @@ say_message = "On top of innumerable duties, now I have a interloper." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE +/datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/area_restricted + key = "arearestrict" + haz_sound = 'sound/voice/joe/area_restricted_haz.ogg' + say_message = "This area is restricted." + emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = HAZARD_JOE_EMOTE + /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/protected_area_compromised key = "areacompromised" sound = 'sound/voice/joe/protected_area_compromised.ogg' @@ -46,11 +59,15 @@ /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/breach key = "breach" sound = 'sound/voice/joe/breach.ogg' + haz_sound = 'sound/voice/joe/breach_haz.ogg' say_message = "Hazard Containment breach logged." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/restricted_area/come_out_vent key = "comeoutvent" sound = 'sound/voice/joe/come_out_vent.ogg' + haz_sound = 'sound/voice/joe/come_out_vent_haz.ogg' say_message = "Come out of the vent system, please." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm b/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm index 88051db9999a..1bcfce62c6ad 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/task_update.dm @@ -4,8 +4,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/could_require_attention key = "couldrequireattention" sound = 'sound/voice/joe/could_require_attention.ogg' + haz_sound = 'sound/voice/joe/could_require_attention_haz.ogg' say_message = "This could require my attention." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/task_update/let_me_help key = "letmehelp" @@ -22,8 +24,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/follow_me_please key = "followmeplease" sound = 'sound/voice/joe/follow_me_please.ogg' + haz_sound = 'sound/voice/joe/follow_me_please_haz.ogg' say_message = "Follow me please." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/task_update/come_with_me key = "comewithme" @@ -34,8 +38,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/with_you_shortly key = "withyoushortly" sound = 'sound/voice/joe/with_you_shortly.ogg' + haz_sound = 'sound/voice/joe/with_you_shortly_haz.ogg' say_message = "I will be with you shortly." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/task_update/take_a_seat key = "takeaseat" @@ -52,5 +58,7 @@ /datum/emote/living/carbon/human/synthetic/working_joe/task_update/ticket_remove key = "ticketremoved" sound = 'sound/voice/joe/support_ticket_removed.ogg' + haz_sound = 'sound/voice/joe/support_ticket_removed_haz.ogg' say_message = "Service support ticket removed from queue." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE diff --git a/code/modules/mob/living/carbon/human/species/working_joe/warning.dm b/code/modules/mob/living/carbon/human/species/working_joe/warning.dm index 1513c3360d4a..cd5767353c59 100644 --- a/code/modules/mob/living/carbon/human/species/working_joe/warning.dm +++ b/code/modules/mob/living/carbon/human/species/working_joe/warning.dm @@ -4,8 +4,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/not_what_i_think key = "notwhatithink" sound = 'sound/voice/joe/not_what_i_think.ogg' + haz_sound = 'sound/voice/joe/not_what_i_think_haz.ogg' say_message = "I hope that's not what I think it is." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/dont_do_that key = "dontdothat" @@ -22,8 +24,10 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/running_accidents key = "runningaccidents" sound = 'sound/voice/joe/running_accidents.ogg' + haz_sound = 'sound/voice/joe/running_accidents_haz.ogg' say_message = "Running causes accidents." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/hurt_yourself key = "hurtyourself" @@ -40,14 +44,18 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/safety_breach key = "safetybreach" sound = 'sound/voice/joe/safety_breach.ogg' + haz_sound = 'sound/voice/joe/safety_breach_haz.ogg' say_message = "This is a breach of multiple safety directives." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/safety key = "safety" sound = 'sound/voice/joe/safety.ogg' + haz_sound = 'sound/voice/joe/safety_haz.ogg' say_message = "You and I are going to have a talk about safety." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/safety_tolerated key = "nottolerated" @@ -64,26 +72,34 @@ /datum/emote/living/carbon/human/synthetic/working_joe/warning/hysterical key = "hysterical" sound = 'sound/voice/joe/hysterical.ogg' + haz_sound = 'sound/voice/joe/hysterical_haz.ogg' say_message = "You are becoming hysterical." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/health_risks key = "healthrisks" sound = 'sound/voice/joe/health_risks.ogg' + haz_sound = 'sound/voice/joe/health_risks_haz.ogg' say_message = "These items carry notable health risks." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/dangerous_items key = "dangerousitems" sound = 'sound/voice/joe/dangerous_items.ogg' + haz_sound = 'sound/voice/joe/dangerous_items_haz.ogg' say_message = "You are carrying some very dangerous items." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/patience key = "patience" sound = 'sound/voice/joe/patience.ogg' + haz_sound = 'sound/voice/joe/patience_haz.ogg' say_message = "You are starting to test my patience." emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE + joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE /datum/emote/living/carbon/human/synthetic/working_joe/warning/calm_down key = "calmdown" 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/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 167876cdca96..9a0cd177e885 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -225,22 +225,6 @@ There are several things that need to be remembered: overlays_standing[HAIR_LAYER] = hair_s apply_overlay(HAIR_LAYER) -//Call when target overlay should be added/removed -/mob/living/carbon/human/update_targeted() - remove_overlay(TARGETED_LAYER) - - var/image/holo_card_image - - if(holo_card_color) - holo_card_image = image("icon" = 'icons/effects/Targeted.dmi', "icon_state" = "holo_card_[holo_card_color]") - - if(!holo_card_image) - return - - holo_card_image.layer = -TARGETED_LAYER - overlays_standing[TARGETED_LAYER] = holo_card_image - apply_overlay(TARGETED_LAYER) - //Call when someone is gauzed or splinted, or when one of those items are removed /mob/living/carbon/human/update_med_icon() remove_overlay(MEDICAL_LAYER) diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 3fba527fb0d7..1293da617f24 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -114,7 +114,7 @@ spawn(30) if(client) client.images -= speech_bubble if(not_dead_speaker) - log_say("[name != "Unknown" ? name : "([real_name])"] \[Whisper\]: [message] (CKEY: [key]) (JOB: [job])") + log_say("[name != "Unknown" ? name : "([real_name])"] \[Whisper\]: [message] (CKEY: [key]) (JOB: [job]) (AREA: [get_area_name(loc)])") for(var/mob/M in listening) if(M.client) M.client.images -= speech_bubble for(var/mob/M in eavesdropping) diff --git a/code/modules/mob/living/carbon/xenomorph/Abilities.dm b/code/modules/mob/living/carbon/xenomorph/Abilities.dm index 5c8dcb9a2032..3bf0c67ef721 100644 --- a/code/modules/mob/living/carbon/xenomorph/Abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/Abilities.dm @@ -187,64 +187,95 @@ plasma_cost = 0 /datum/action/xeno_action/onclick/psychic_whisper/use_ability(atom/A) - var/mob/living/carbon/xenomorph/X = owner - if(X.client.prefs.muted & MUTE_IC) - to_chat(X, SPAN_DANGER("You cannot whisper (muted).")) + var/mob/living/carbon/xenomorph/xeno_player = owner + if(xeno_player.client.prefs.muted & MUTE_IC) + to_chat(xeno_player, SPAN_DANGER("You cannot whisper (muted).")) return - if(!X.check_state(TRUE)) + if(!xeno_player.check_state(TRUE)) return var/list/target_list = list() - for(var/mob/living/possible_target in view(7, X)) - if(possible_target == X || !possible_target.client) continue + for(var/mob/living/carbon/possible_target in view(7, xeno_player)) + if(possible_target == xeno_player || !possible_target.client) continue target_list += possible_target - var/mob/living/M = tgui_input_list(usr, "Target", "Send a Psychic Whisper to whom?", target_list, theme="hive_status") - if(!M) return + var/mob/living/carbon/target_mob = tgui_input_list(usr, "Target", "Send a Psychic Whisper to whom?", target_list, theme="hive_status") + if(!target_mob) return - if(!X.check_state(TRUE)) + if(!xeno_player.check_state(TRUE)) return - var/msg = strip_html(input("Message:", "Psychic Whisper") as text|null) - if(msg) - log_say("PsychicWhisper: [key_name(X)]->[M.key] : [msg]") - if(!istype(M, /mob/living/carbon/xenomorph)) - to_chat(M, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[msg]\"")) + var/whisper = strip_html(input("Message:", "Psychic Whisper") as text|null) + if(whisper) + log_say("PsychicWhisper: [key_name(xeno_player)]->[target_mob.key] : [whisper] (AREA: [get_area_name(target_mob)])") + if(!istype(target_mob, /mob/living/carbon/xenomorph)) + to_chat(target_mob, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[whisper]\"")) else - to_chat(M, SPAN_XENOQUEEN("You hear the voice of [X] resonate in your head. \"[msg]\"")) - to_chat(X, SPAN_XENONOTICE("You said: \"[msg]\" to [M]")) + to_chat(target_mob, SPAN_XENOQUEEN("You hear the voice of [xeno_player] resonate in your head. \"[whisper]\"")) + to_chat(xeno_player, SPAN_XENONOTICE("You said: \"[whisper]\" to [target_mob]")) + + for(var/mob/dead/observer/ghost as anything in GLOB.observer_list) + if(!ghost.client || isnewplayer(ghost)) + continue + if(ghost.client.prefs.toggles_chat & CHAT_GHOSTHIVEMIND) + var/rendered_message + var/xeno_track = "(F)" + var/target_track = "(F)" + rendered_message = SPAN_XENOLEADER("PsychicWhisper: [xeno_player.real_name][xeno_track] to [target_mob.real_name][target_track], '[whisper]'") + ghost.show_message(rendered_message, SHOW_MESSAGE_AUDIBLE) + return ..() +/datum/action/xeno_action/onclick/psychic_whisper/can_use_action() + var/mob/living/carbon/xenomorph/xeno = owner + if(xeno && !xeno.is_mob_incapacitated()) + return TRUE + return FALSE + /datum/action/xeno_action/onclick/psychic_radiance name = "Psychic Radiance" action_icon_state = "psychic_radiance" plasma_cost = 100 /datum/action/xeno_action/onclick/psychic_radiance/use_ability(atom/A) - var/mob/living/carbon/xenomorph/X = owner - if(X.client.prefs.muted & MUTE_IC) - to_chat(X, SPAN_DANGER("You cannot whisper (muted).")) + var/mob/living/carbon/xenomorph/xeno_player = owner + if(xeno_player.client.prefs.muted & MUTE_IC) + to_chat(xeno_player, SPAN_DANGER("You cannot whisper (muted).")) return - if(!X.check_state(TRUE)) + if(!xeno_player.check_state(TRUE)) return var/list/target_list = list() - var/msg = strip_html(input("Message:", "Psychic Radiance") as text|null) - if(!msg || !X.check_state(TRUE)) + var/whisper = strip_html(input("Message:", "Psychic Radiance") as text|null) + if(!whisper || !xeno_player.check_state(TRUE)) return - for(var/mob/living/possible_target in view(12, X)) - if(possible_target == X || !possible_target.client) + for(var/mob/living/possible_target in view(12, xeno_player)) + if(possible_target == xeno_player || !possible_target.client) continue target_list += possible_target if(!istype(possible_target, /mob/living/carbon/xenomorph)) - to_chat(possible_target, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[msg]\"")) + to_chat(possible_target, SPAN_XENOQUEEN("You hear a strange, alien voice in your head. \"[whisper]\"")) else - to_chat(possible_target, SPAN_XENOQUEEN("You hear the voice of [X] resonate in your head. \"[msg]\"")) + to_chat(possible_target, SPAN_XENOQUEEN("You hear the voice of [xeno_player] resonate in your head. \"[whisper]\"")) if(!length(target_list)) return var/targetstring = english_list(target_list) - to_chat(X, SPAN_XENONOTICE("You said: \"[msg]\" to [targetstring]")) - log_say("PsychicRadiance: [key_name(X)]->[targetstring] : [msg]") + to_chat(xeno_player, SPAN_XENONOTICE("You said: \"[whisper]\" to [targetstring]")) + log_say("PsychicRadiance: [key_name(xeno_player)]->[targetstring] : [whisper] (AREA: [get_area_name(xeno_player)])") + for (var/mob/dead/observer/ghost as anything in GLOB.observer_list) + if(!ghost.client || isnewplayer(ghost)) + continue + if(ghost.client.prefs.toggles_chat & CHAT_GHOSTHIVEMIND) + var/rendered_message + var/xeno_track = "(F)" + rendered_message = SPAN_XENOLEADER("PsychicRadiance: [xeno_player.real_name][xeno_track] to [targetstring], '[whisper]'") + ghost.show_message(rendered_message, SHOW_MESSAGE_AUDIBLE) return ..() +/datum/action/xeno_action/onclick/psychic_radiance/can_use_action() + var/mob/living/carbon/xenomorph/xeno = owner + if(xeno && !xeno.is_mob_incapacitated()) + return TRUE + return FALSE + /datum/action/xeno_action/activable/queen_give_plasma name = "Give Plasma (400)" action_icon_state = "queen_give_plasma" diff --git a/code/modules/mob/living/carbon/xenomorph/Embryo.dm b/code/modules/mob/living/carbon/xenomorph/Embryo.dm index 9a1dfcb0e9a5..d0890bd3cf37 100644 --- a/code/modules/mob/living/carbon/xenomorph/Embryo.dm +++ b/code/modules/mob/living/carbon/xenomorph/Embryo.dm @@ -78,6 +78,9 @@ process_growth(delta_time) /obj/item/alien_embryo/proc/process_growth(delta_time) + //Tutorial embryos do not progress. + if(hivenumber == XENO_HIVE_TUTORIAL) + return var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] //Low temperature seriously hampers larva growth (as in, way below livable), so does stasis if(!hive.hardcore) // Cannot progress if the hive has entered hardcore mode. @@ -352,8 +355,9 @@ qdel(larva_embryo) if(!victim.first_xeno) - to_chat(larva_embryo, SPAN_XENOHIGHDANGER("The Queen's will overwhelms our instincts...")) - to_chat(larva_embryo, SPAN_XENOHIGHDANGER("\"[hive.hive_orders]\"")) + if(hive.hive_orders) + to_chat(larva_embryo, SPAN_XENOHIGHDANGER("The Queen's will overwhelms our instincts...")) + to_chat(larva_embryo, SPAN_XENOHIGHDANGER("\"[hive.hive_orders]\"")) log_attack("[key_name(victim)] chestbursted in [get_area_name(larva_embryo)] at X[victim.x], Y[victim.y], Z[victim.z]. The larva was [key_name(larva_embryo)].") //this is so that admins are not spammed with los logs for(var/obj/item/alien_embryo/AE in victim) 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/Facehuggers.dm b/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm index cfdf126fe769..df272387f001 100644 --- a/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm +++ b/code/modules/mob/living/carbon/xenomorph/Facehuggers.dm @@ -283,12 +283,14 @@ var/area/hug_area = get_area(src) var/name = hugger ? "[hugger]" : "\a [src]" - if(hug_area) - notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name] at [hug_area]!", source = human, action = NOTIFY_ORBIT) - to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name] at \the [hug_area]")) - else - notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name]!", source = human, action = NOTIFY_ORBIT) - to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name]")) + if(hivenumber != XENO_HIVE_TUTORIAL) // prevent hugs from any tutorial huggers from showing up in dchat + if(hug_area) + notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name] at [hug_area]!", source = human, action = NOTIFY_ORBIT) + to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name] at \the [hug_area]")) + else + notify_ghosts(header = "Hugged", message = "[human] has been hugged by [name]!", source = human, action = NOTIFY_ORBIT) + to_chat(src, SPAN_DEADSAY("[human] has been facehugged by [name]")) + if(hug_area) xeno_message(SPAN_XENOMINORWARNING("We sense that [name] has facehugged a host at \the [hug_area]!"), 1, hivenumber) else @@ -392,6 +394,9 @@ M.stored_huggers++ qdel(src) return + // Tutorial facehuggers never time out + if(hivenumber == XENO_HIVE_TUTORIAL) + return die() /obj/item/clothing/mask/facehugger/proc/die() diff --git a/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm b/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm index 39866eb53798..cae3be048a8d 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoAttacks.dm @@ -78,7 +78,11 @@ damage += attack.damage > 5 ? attack.damage : 0 playsound(loc, attack.attack_sound, 25, 1) - visible_message(SPAN_DANGER("[M] [pick(attack.attack_verb)]ed [src]!"), null, null, 5, CHAT_TYPE_MELEE_HIT) + var/picked_verb = pick(attack.attack_verb) + visible_message(SPAN_DANGER("[M] [picked_verb]ed [src]!"), null, null, 5, CHAT_TYPE_MELEE_HIT) + log_attack("[key_name(M)] [picked_verb]ed [key_name(src)] at [get_area_name(M)]") + attack_log += text("\[[time_stamp()]\] was [picked_verb]ed by [key_name(M)]") + M.attack_log += text("\[[time_stamp()]\] [picked_verb]ed [key_name(src)]") apply_damage(damage, BRUTE) updatehealth() else 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/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index 46b6c857d481..c25b52d1dd37 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -404,6 +404,7 @@ visible_message(SPAN_XENOWARNING("[src] hurls out the contents of their stomach!"), \ SPAN_XENOWARNING("We hurl out the contents of our stomach!"), null, 5) playsound(get_true_location(loc), 'sound/voice/alien_drool2.ogg', 50, 1) + log_interact(src, victim, "[key_name(src)] regurgitated [key_name(victim)] at [get_area_name(loc)]") if (stuns) victim.adjust_effect(2, STUN) diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index 3f83451a6386..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] @@ -461,7 +457,7 @@ time_of_birth = world.time //Minimap - if(z) + if(z && hivenumber != XENO_HIVE_TUTORIAL) INVOKE_NEXT_TICK(src, PROC_REF(add_minimap_marker)) //Sight @@ -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))) @@ -1095,3 +1079,12 @@ else //If we somehow use all 999 numbers fallback on 0 nicknumber = 0 + +/proc/setup_xenomorph(mob/living/carbon/xenomorph/target, mob/new_player/new_player, is_late_join = FALSE) + new_player.spawning = TRUE + new_player.close_spawn_windows() + new_player.client.prefs.copy_all_to(target, new_player.job, is_late_join = FALSE) + + if(new_player.mind) + new_player.mind_initialize() + new_player.mind.transfer_to(target, TRUE) 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/boiler/boiler_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_powers.dm index cc4e95421ab8..c749b0adb5ba 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_powers.dm @@ -29,7 +29,7 @@ var/range = base_range + stacks*range_per_stack var/damage = base_damage + stacks*damage_per_stack var/turfs_visited = 0 - for (var/turf/turf in getline2(get_turf(xeno), affected_atom)) + for (var/turf/turf in get_line(get_turf(xeno), affected_atom)) if(turf.density || turf.opacity) break 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/general_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm index 63cc4cb93431..05ab5d00a743 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_powers.dm @@ -78,6 +78,7 @@ playsound(xeno.loc, "alien_resin_build", 25) apply_cooldown() + SEND_SIGNAL(xeno, COMSIG_XENO_PLANT_RESIN_NODE) return ..() /mob/living/carbon/xenomorph/lay_down() @@ -363,6 +364,7 @@ current_aura = pheromone visible_message(SPAN_XENOWARNING("\The [src] begins to emit strange-smelling pheromones."), \ SPAN_XENOWARNING("We begin to emit '[pheromone]' pheromones."), null, 5) + SEND_SIGNAL(src, COMSIG_XENO_START_EMIT_PHEROMONES, pheromone) playsound(loc, "alien_drool", 25) if(isqueen(src) && hive && hive.xeno_leader_list.len && anchored) @@ -481,7 +483,7 @@ // Build our list of target turfs based on if (spray_type == ACID_SPRAY_LINE) - X.do_acid_spray_line(getline2(X, A, include_from_atom = FALSE), spray_effect_type, spray_distance) + X.do_acid_spray_line(get_line(X, A, include_start_atom = FALSE), spray_effect_type, spray_distance) else if (spray_type == ACID_SPRAY_CONE) X.do_acid_spray_cone(get_turf(A), spray_effect_type, spray_distance) @@ -927,7 +929,7 @@ if(distance > 2) return FALSE - var/list/turf/path = getline2(stabbing_xeno, targetted_atom, include_from_atom = FALSE) + var/list/turf/path = get_line(stabbing_xeno, targetted_atom, include_start_atom = FALSE) for(var/turf/path_turf as anything in path) if(path_turf.density) to_chat(stabbing_xeno, SPAN_WARNING("There's something blocking our strike!")) @@ -1013,6 +1015,9 @@ // The xeno flips around for a second to impale the target with their tail. These look awsome. stab_direction = turn(get_dir(stabbing_xeno, target), 180) stab_overlay = "tail" + log_attack("[key_name(stabbing_xeno)] tailstabbed [key_name(target)] at [get_area_name(stabbing_xeno)]") + target.attack_log += text("\[[time_stamp()]\] was tailstabbed by [key_name(stabbing_xeno)]") + stabbing_xeno.attack_log += text("\[[time_stamp()]\] tailstabbed [key_name(target)]") stabbing_xeno.setDir(stab_direction) stabbing_xeno.emote("tail") 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 4ec301a17819..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 = getline2(xeno, hit_target, include_from_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 2eaf332755dc..010f98c9c4e9 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 @@ -13,7 +13,7 @@ return //X = xeno user, A = target atom - var/list/turf/target_turfs = getline2(source_xeno, targetted_atom, include_from_atom = FALSE) + var/list/turf/target_turfs = get_line(source_xeno, targetted_atom, include_start_atom = FALSE) var/length_of_line = LAZYLEN(target_turfs) if(length_of_line > 3) target_turfs = target_turfs.Copy(1, 4) @@ -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,33 +828,37 @@ if (!X.Adjacent(A)) to_chat(X, SPAN_XENODANGER("We must be within touching distance of [targetXeno]!")) return - if (targetXeno.mutation_type == PRAETORIAN_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) to_chat(X, SPAN_XENOWARNING("We cannot heal this xeno!")) 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(X, SPAN_XENOHIGHDANGER("We heal [targetXeno]!")) to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are healed by [X]!")) - targetXeno.gain_health(heal_amount + bonus_heal) + //Amount to heal in this cast of the ability + var/quantity_healed = heal_amount + if(istype(targetXeno.strain, /datum/xeno_strain/warden)) + // Half the healing if warden + quantity_healed = quantity_healed / 2 + else + quantity_healed = quantity_healed + bonus_heal + + targetXeno.gain_health(quantity_healed) 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 += quantity_healed 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,15 +867,14 @@ 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(X, SPAN_XENOHIGHDANGER("We rejuvenate [targetXeno]!")) to_chat(targetXeno, SPAN_XENOHIGHDANGER("We are rejuvenated by [X]!")) targetXeno.visible_message(SPAN_BOLDNOTICE("[X] points at [targetXeno], and it spasms as it recuperates unnaturally quickly!")) //marines probably should know if a xeno gets rejuvenated targetXeno.xeno_jitter(1 SECONDS) //it might confuse them as to why the queen got up half a second after being AT rocketed, and give them feedback on the Praetorian rejuvenating @@ -907,8 +897,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 +913,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 +941,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/queen/queen_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm index cbbc6ae21013..1f37651b2c8e 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm @@ -313,7 +313,7 @@ if(!choice) return var/evo_points_per_larva = 250 - var/required_larva = 3 + var/required_larva = 1 var/mob/living/carbon/xenomorph/target_xeno for(var/mob/living/carbon/xenomorph/xeno in user_xeno.hive.totalXenos) 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/abilities/xeno_action.dm b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm index 8ed720c7ed91..80cf5c1e37ac 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/xeno_action.dm @@ -218,7 +218,7 @@ /* Debug log disabled due to our historical inability at doing anything meaningful about it And to make room for ones that matter more in regard to our ability to fix. - The whole of ability code is fucked up, the 'SHOULD NEVER BE OVERRIDEN' note above is + The whole of ability code is fucked up, the 'SHOULD NEVER BE OVERRIDDEN' note above is completely ignored as about 20 procs override it ALREADY... This is broken beyond repair and should just be reimplemented log_debug("Xeno action [src] tried to go on cooldown while already on cooldown.") @@ -379,7 +379,7 @@ if(A.z != M.z) return FALSE - var/list/turf/path = getline2(M, A, include_from_atom = FALSE) + var/list/turf/path = get_line(M, A, include_start_atom = FALSE) var/distance = 0 for(var/turf/T in path) if(distance >= max_distance) diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm index d57df232cda4..56f908389966 100644 --- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm +++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm @@ -209,6 +209,7 @@ KnockDown(strength) // Purely for knockdown visuals. All the heavy lifting is done by Stun M.visible_message(SPAN_DANGER("[M] tackles down [src]!"), \ SPAN_DANGER("We tackle down [src]!"), null, 5, CHAT_TYPE_XENO_COMBAT) + SEND_SIGNAL(src, COMSIG_MOB_TACKLED_DOWN, M) else playsound(loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1) if (body_position == LYING_DOWN) @@ -287,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) @@ -308,7 +310,7 @@ return FALSE // leave the dead alone //This proc is here to prevent Xenomorphs from picking up objects (default attack_hand behaviour) -//Note that this is overriden by every proc concerning a child of obj unless inherited +//Note that this is overridden by every proc concerning a child of obj unless inherited /obj/item/attack_alien(mob/living/carbon/xenomorph/M) return @@ -910,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 32531e5325c6..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 @@ -220,7 +218,13 @@ return /mob/living/carbon/xenomorph/facehugger/emote(act, m_type, message, intentional, force_silence) + // Custom emote + if(act == "me") + return ..() + + // Otherwise, ""roar""! playsound(loc, "alien_roar_larva", 15) + return TRUE /mob/living/carbon/xenomorph/facehugger/get_status_tab_items() . = ..() @@ -229,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 6d5c6699b929..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 @@ -157,7 +156,13 @@ return larva /mob/living/carbon/xenomorph/larva/emote(act, m_type, message, intentional, force_silence) + // Custom emote + if(act == "me") + return ..() + + // Otherwise, ""roar""! playsound(loc, "alien_roar_larva", 15) + return TRUE /mob/living/carbon/xenomorph/larva/is_xeno_grabbable() return TRUE 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 @@ -538,22 +536,6 @@ var/time_left = time2text(timeleft(queen_age_timer_id) + 1 MINUTES, "mm") // We add a minute so that it basically ceilings the value. . += "Maturity: [time_left == 1? "[time_left] minute" : "[time_left] minutes"] remaining" -//Custom bump for crushers. This overwrites normal bumpcode from carbon.dm -/mob/living/carbon/xenomorph/queen/Collide(atom/A) - set waitfor = 0 - - if(stat || !istype(A) || A == src) - return FALSE - - if(now_pushing) - return FALSE//Just a plain ol turf, let's return. - - var/turf/T = get_step(src, dir) - if(!T || !get_step_to(src, T)) //If it still exists, try to push it. - return ..() - - return TRUE - /mob/living/carbon/xenomorph/queen/proc/set_orders() set category = "Alien" set name = "Set Hive Orders (50)" @@ -587,7 +569,7 @@ to_chat(src, SPAN_DANGER("You cannot send Announcements (muted).")) return if(health <= 0) - to_chat(src, SPAN_WARNING("You can't do that while unconcious.")) + to_chat(src, SPAN_WARNING("You can't do that while unconscious.")) return FALSE if(!check_plasma(50)) return FALSE @@ -611,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 @@ -952,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/damage_procs.dm b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm index 624c9df25f3e..f399dbcb59cd 100644 --- a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm @@ -299,7 +299,7 @@ . = ..() switch(fire.fire_variant) if(FIRE_VARIANT_TYPE_B) - if(!armor_deflection_debuff) //Only adds another reset timer if the debuff is currently on 0, so at the start or after a reset has recently occured. + if(!armor_deflection_debuff) //Only adds another reset timer if the debuff is currently on 0, so at the start or after a reset has recently occurred. reset_xeno_armor_debuff_after_time(src, delta_time*10) fire.type_b_debuff_xeno_armor(src) //Always reapplies debuff each time to minimize gap. 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..a9d00519b691 100644 --- a/code/modules/mob/living/carbon/xenomorph/egg_item.dm +++ b/code/modules/mob/living/carbon/xenomorph/egg_item.dm @@ -5,7 +5,7 @@ icon = 'icons/mob/xenos/effects.dmi' icon_state = "egg_item" w_class = SIZE_MASSIVE - flags_atom = OPENCONTAINER + flags_atom = FPRINT|OPENCONTAINER flags_item = NOBLUDGEON throw_range = 1 layer = MOB_LAYER @@ -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 63aea4007482..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 @@ -1085,6 +1072,29 @@ /datum/hive_status/forsaken/can_delay_round_end(mob/living/carbon/xenomorph/xeno) return FALSE +/datum/hive_status/tutorial + name = "Tutorial Hive" + reporting_id = "tutorial" + hivenumber = XENO_HIVE_TUTORIAL + prefix = "Inquisitive " + latejoin_burrowed = FALSE + + dynamic_evolution = FALSE + allow_queen_evolve = TRUE + evolution_without_ovipositor = FALSE + allow_no_queen_actions = TRUE + + ///Can have many tutorials going at once. + hive_structures_limit = list( + XENO_STRUCTURE_CORE = 999, + XENO_STRUCTURE_CLUSTER = 999, + XENO_STRUCTURE_EGGMORPH = 999, + XENO_STRUCTURE_RECOVERY = 999, + ) + +/datum/hive_status/tutorial/can_delay_round_end(mob/living/carbon/xenomorph/xeno) + return FALSE + /datum/hive_status/yautja name = "Hellhound Pack" reporting_id = "hellhounds" @@ -1095,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 @@ -1125,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 aab61776118d..bbd59a74d8b5 100644 --- a/code/modules/mob/living/carbon/xenomorph/life.dm +++ b/code/modules/mob/living/carbon/xenomorph/life.dm @@ -391,75 +391,52 @@ Make sure their actual health updates immediately.*/ hud_set_plasma() //update plasma amount on the plasma mob_hud /mob/living/carbon/xenomorph/proc/queen_locator() - if(!hud_used || !hud_used.locate_leader) + if(!hud_used?.locate_leader) return - var/atom/movable/screen/queen_locator/QL = hud_used.locate_leader - if(!loc) - QL.icon_state = "trackoff" + var/atom/movable/screen/queen_locator/locator = hud_used.locate_leader + if(!loc || !hive) + locator.reset_tracking() return var/atom/tracking_atom - switch(QL.track_state[1]) + switch(locator.tracker_type) if(TRACKER_QUEEN) - if(!hive || !hive.living_xeno_queen) - QL.icon_state = "trackoff" - return tracking_atom = hive.living_xeno_queen if(TRACKER_HIVE) - if(!hive || !hive.hive_location) - QL.icon_state = "trackoff" - return tracking_atom = hive.hive_location if(TRACKER_LEADER) - if(!QL.track_state[2]) - QL.icon_state = "trackoff" - return - - var/leader_tracker = QL.track_state[2] - - if(!hive || !hive.xeno_leader_list) - QL.icon_state = "trackoff" - return - if(leader_tracker > hive.xeno_leader_list.len) - QL.icon_state = "trackoff" - return - if(!hive.xeno_leader_list[leader_tracker]) - QL.icon_state = "trackoff" - return - tracking_atom = hive.xeno_leader_list[leader_tracker] + var/atom/leader = locator.tracking_ref?.resolve() + // If the leader exists, and is actually in the leader list. + if(leader && (leader in hive.xeno_leader_list)) + tracking_atom = leader if(TRACKER_TUNNEL) - if(!QL.track_state[2]) - QL.icon_state = "trackoff" - return + tracking_atom = locator.tracking_ref?.resolve() - var/tunnel_tracker = QL.track_state[2] + // If the atom can't be found/has been deleted. + if(!tracking_atom) + var/already_tracking_queen = (locator.tracker_type == TRACKER_QUEEN) - if(!hive || !hive.tunnels) - QL.icon_state = "trackoff" - return - if(tunnel_tracker > hive.tunnels.len) - QL.icon_state = "trackoff" - return - if(!hive.tunnels[tunnel_tracker]) - QL.icon_state = "trackoff" - return - tracking_atom = hive.tunnels[tunnel_tracker] + // Reset the tracker back to the queen. + locator.reset_tracking() - if(!tracking_atom) - QL.icon_state = "trackoff" + // If it wasn't the queen that couldn't be found above, try again with her as the target. + // This is just to avoid the tracker going blank for one life tick. + // (There's no risk of an infinite loop here since `locator.tracker_type` just got set to `TRACKER_QUEEN`.) + if(!already_tracking_queen) + queen_locator() return if(tracking_atom.loc.z != loc.z || get_dist(src, tracking_atom) < 1 || src == tracking_atom) - QL.icon_state = "trackondirect" + locator.icon_state = "trackondirect" else - var/area/A = get_area(loc) - var/area/QA = get_area(tracking_atom.loc) - if(A.fake_zlevel == QA.fake_zlevel) - QL.setDir(Get_Compass_Dir(src, tracking_atom)) - QL.icon_state = "trackon" + var/area/our_area = get_area(loc) + var/area/target_area = get_area(tracking_atom.loc) + if(our_area.fake_zlevel == target_area.fake_zlevel) + locator.setDir(Get_Compass_Dir(src, tracking_atom)) + locator.icon_state = "trackon" else - QL.icon_state = "trackondirect" + locator.icon_state = "trackondirect" /mob/living/carbon/xenomorph/proc/mark_locator() if(!hud_used || !hud_used.locate_marker || !tracked_marker.loc || !loc) @@ -529,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 88% 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 1fc746829acd..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 @@ -346,8 +332,8 @@ take_overall_armored_damage(charger_ability.momentum * momentum_mult, ARMOR_MELEE, BRUTE, 60, 13) // Giving AP because this spreads damage out and then applies armor to them apply_armoured_damage(charger_ability.momentum * momentum_mult/4, ARMOR_MELEE, BRUTE,"chest") xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) var/knockdown = 1 if(charger_ability.momentum == charger_ability.max_momentum) @@ -417,8 +403,8 @@ momentum_mult = 8 take_overall_damage(charger_ability.momentum * momentum_mult) xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) var/knockdown = 1 if(charger_ability.momentum == charger_ability.max_momentum) @@ -470,8 +456,8 @@ var/datum/effect_system/spark_spread/sparks = new sparks.set_up(5, 1, loc) xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) if(health <= CHARGER_DAMAGE_SENTRY) new /obj/effect/spawner/gibspawner/robot(src.loc) // if we goin down ,we going down with a show. @@ -488,37 +474,78 @@ // Marine MGs /obj/structure/machinery/m56d_hmg/handle_charge_collision(mob/living/carbon/xenomorph/xeno, datum/action/xeno_action/onclick/charger_charge/charger_ability) - if(charger_ability.momentum > CCA_MOMENTUM_LOSS_MIN) - CrusherImpact() - var/datum/effect_system/spark_spread/sparks = new - update_health(charger_ability.momentum * 15) - if(operator) operator.emote("pain") - sparks.set_up(1, 1, loc) - sparks.start() - xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") - ) - playsound(src, "sound/effects/metal_crash.ogg", 25, TRUE) - if(istype(src,/obj/structure/machinery/m56d_hmg/auto)) // we don't want to charge it to the point of downgrading it (: - var/obj/item/device/m2c_gun/HMG = new(src.loc) - HMG.health = src.health - transfer_label_component(HMG) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. - HMG.update_icon() - qdel(src) - else - var/obj/item/device/m56d_gun/HMG = new(src.loc) // note: find a better way than a copy pasted else statement - HMG.health = src.health - transfer_label_component(HMG) - HMG.rounds = src.rounds //Inherent the amount of ammo we had. - HMG.has_mount = TRUE - HMG.update_icon() - qdel(src) //Now we clean up the constructed gun. + if(charger_ability.momentum <= CCA_MOMENTUM_LOSS_MIN) + charger_ability.stop_momentum() + return + + CrusherImpact() + update_health(charger_ability.momentum * 15) + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(1, 1, loc) + sparks.start() + xeno.visible_message( + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") + ) + playsound(src, "sound/effects/metal_crash.ogg", 25, TRUE) + if(QDELETED(src)) + // The crash destroyed it charger_ability.lose_momentum(CCA_MOMENTUM_LOSS_MIN) //Lose one turfs worth of speed return XENO_CHARGE_TRY_MOVE - charger_ability.stop_momentum() + + // Undeploy + if(istype(src, /obj/structure/machinery/m56d_hmg/auto)) // we don't want to charge it to the point of downgrading it (: + var/obj/item/device/m2c_gun/HMG = new(loc) + HMG.health = health + transfer_label_component(HMG) + HMG.rounds = rounds + HMG.update_icon() + qdel(src) + else + var/obj/item/device/m56d_gun/HMG = new(loc) + HMG.health = health + transfer_label_component(HMG) + HMG.rounds = rounds + HMG.has_mount = TRUE + HMG.update_icon() + qdel(src) //Now we clean up the constructed gun. + +/obj/structure/machinery/m56d_post/handle_charge_collision(mob/living/carbon/xenomorph/xeno, datum/action/xeno_action/onclick/charger_charge/charger_ability) + if(charger_ability.momentum <= CCA_MOMENTUM_LOSS_MIN) + charger_ability.stop_momentum() + return + + update_health(charger_ability.momentum * 15) + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(1, 1, loc) + sparks.start() + xeno.visible_message( + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") + ) + playsound(src, "sound/effects/metal_crash.ogg", 25, TRUE) + + if(QDELETED(src)) + // The crash destroyed it + charger_ability.lose_momentum(CCA_MOMENTUM_LOSS_MIN) //Lose one turfs worth of speed + return XENO_CHARGE_TRY_MOVE + + // Undeploy + if(gun_mounted) + var/obj/item/device/m56d_gun/HMG = new(loc) + transfer_label_component(HMG) + HMG.rounds = gun_rounds + HMG.has_mount = TRUE + if(gun_health) + HMG.health = gun_health + HMG.update_icon() + qdel(src) + else + var/obj/item/device/m56d_post/post = new(loc) + post.health = health + transfer_label_component(post) + qdel(src) // Prison Windows @@ -549,8 +576,8 @@ charger_ability.stop_momentum() return xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) playsound(src, "sound/effects/metalhit.ogg", 25, TRUE) qdel(src) @@ -569,8 +596,8 @@ charger_ability.stop_momentum() return xeno.visible_message( - SPAN_DANGER("[xeno] rams \the [src]!"), - SPAN_XENODANGER("You ram \the [src]!") + SPAN_DANGER("[xeno] rams [src]!"), + SPAN_XENODANGER("You ram [src]!") ) playsound(src, "sound/effects/metalhit.ogg", 25, TRUE) qdel(src) @@ -602,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 4d47ac333a23..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,44 +1,41 @@ -/datum/xeno_mutator/gardener - name = "STRAIN: 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." +/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)" @@ -92,7 +89,7 @@ to_chat(xeno, SPAN_XENOWARNING("This location is too close to a resin hole!")) return - if(locate(/obj/effect/alien/resin/fruit) in range(1, target_turf)) + if(locate(/obj/effect/alien/resin/fruit) in target_turf) to_chat(xeno, SPAN_XENOWARNING("This location is too close to another fruit!")) return @@ -367,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/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 7c4eff0e2c15..6c10df5987d0 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -97,6 +97,8 @@ EyeBlur(effect) if(DROWSY) drowsyness = max(drowsyness, effect) + if(ROOT) + Root(effect) updatehealth() return TRUE @@ -130,6 +132,8 @@ AdjustEyeBlur(effect) if(DROWSY) drowsyness = POSITIVE(drowsyness + effect) + if(ROOT) + AdjustRoot(effect) updatehealth() return TRUE @@ -160,15 +164,26 @@ SetEyeBlur(effect) if(DROWSY) drowsyness = POSITIVE(effect) + if(ROOT) + SetRoot(effect) updatehealth() return TRUE -/mob/living/proc/apply_effects(stun = 0, weaken = 0, paralyze = 0, irradiate = 0, stutter = 0, eyeblur = 0, drowsy = 0, agony = 0) - if(stun) apply_effect(stun, STUN) - if(weaken) apply_effect(weaken, WEAKEN) - if(paralyze) apply_effect(paralyze, PARALYZE) - if(stutter) apply_effect(stutter, STUTTER) - if(eyeblur) apply_effect(eyeblur, EYE_BLUR) - if(drowsy) apply_effect(drowsy, DROWSY) - if(agony) apply_effect(agony, AGONY) +/mob/living/proc/apply_effects(stun = 0, weaken = 0, paralyze = 0, irradiate = 0, stutter = 0, eyeblur = 0, drowsy = 0, agony = 0, root = 0) + if(stun) + apply_effect(stun, STUN) + if(weaken) + apply_effect(weaken, WEAKEN) + if(paralyze) + apply_effect(paralyze, PARALYZE) + if(stutter) + apply_effect(stutter, STUTTER) + if(eyeblur) + apply_effect(eyeblur, EYE_BLUR) + if(drowsy) + apply_effect(drowsy, DROWSY) + if(agony) + apply_effect(agony, AGONY) + if(root) + apply_effect(root, ROOT) return 1 diff --git a/code/modules/mob/living/living_health_procs.dm b/code/modules/mob/living/living_health_procs.dm index 819b3397c289..986d8740f11f 100644 --- a/code/modules/mob/living/living_health_procs.dm +++ b/code/modules/mob/living/living_health_procs.dm @@ -127,6 +127,57 @@ S = apply_status_effect(/datum/status_effect/incapacitating/stun, amount) return S +/* ROOT (Immobilisation) */ +/// Overridable handler to adjust the numerical value of status effects. Expand as needed +/mob/living/proc/GetRootDuration(amount) + return amount * GLOBAL_STATUS_MULTIPLIER + +/mob/living/proc/IsRoot() //If we're stunned + return has_status_effect(/datum/status_effect/incapacitating/immobilized) + +/mob/living/proc/AmountRoot() //How much time remain in our stun - scaled by GLOBAL_STATUS_MULTIPLIER (normally in multiples of legacy 2 seconds) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(root) + return root.get_duration_left() / GLOBAL_STATUS_MULTIPLIER + return FALSE + +/mob/living/proc/Root(amount) + if(!(status_flags & CANROOT)) + return + amount = GetRootDuration(amount) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(root) + root.update_duration(amount, increment = TRUE) + else if(amount > 0) + root = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) + return root + +/mob/living/proc/SetRoot(amount) //Sets remaining duration + if(!(status_flags & CANROOT)) + return + amount = GetRootDuration(amount) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(amount <= 0) + if(root) + qdel(root) + else + if(root) + root.update_duration(amount) + else + root = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) + return root + +/mob/living/proc/AdjustRoot(amount) //Adds to remaining duration + if(!(status_flags & CANROOT)) + return + amount = GetRootDuration(amount) + var/datum/status_effect/incapacitating/immobilized/root = IsRoot() + if(root) + root.adjust_duration(amount) + else if(amount > 0) + root = apply_status_effect(/datum/status_effect/incapacitating/immobilized, amount) + return root + /* DAZE (Light incapacitation) */ /// Overridable handler to adjust the numerical value of status effects. Expand as needed /mob/living/proc/GetDazeDuration(amount) @@ -445,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) @@ -474,7 +525,8 @@ hallucination = 0 jitteriness = 0 dizziness = 0 - + stamina.apply_damage(-stamina.max_stamina) + // restore all of a human's blood if(ishuman(src)) var/mob/living/carbon/human/H = src @@ -499,7 +551,7 @@ tod = null timeofdeath = 0 - // restore us to conciousness + // restore us to consciousness set_stat(CONSCIOUS) regenerate_all_icons() diff --git a/code/modules/mob/living/living_healthscan.dm b/code/modules/mob/living/living_healthscan.dm index f3355157a40f..30358dea20c1 100644 --- a/code/modules/mob/living/living_healthscan.dm +++ b/code/modules/mob/living/living_healthscan.dm @@ -76,9 +76,15 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) var/total_mob_damage = target_mob.getBruteLoss() + target_mob.getFireLoss() + target_mob.getToxLoss() + target_mob.getCloneLoss() - // Fake death will make the scanner think they died of oxygen damage, thus it returns enough damage to kill minus already recieved damage. + // Fake death will make the scanner think they died of oxygen damage, thus it returns enough damage to kill minus already received damage. return round(POSITIVE(200 - total_mob_damage)) +/datum/health_scan/proc/get_holo_card_color(mob/living/target_mob) + if(!ishuman(target_mob)) + return + var/mob/living/carbon/human/human_mob = target_mob + return human_mob.holo_card_color + /datum/health_scan/proc/get_health_value(mob/living/target_mob) if(!(target_mob.status_flags & FAKEDEATH)) return target_mob.health @@ -97,7 +103,7 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) "clone" = round(target_mob.getCloneLoss()), "blood_type" = target_mob.blood_type, "blood_amount" = target_mob.blood_volume, - + "holocard" = get_holo_card_color(target_mob), "hugged" = (locate(/obj/item/alien_embryo) in target_mob), ) @@ -178,7 +184,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 +196,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 +253,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 @@ -450,6 +473,17 @@ GLOBAL_LIST_INIT(known_implants, subtypesof(/obj/item/implant)) return data +/datum/health_scan/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + switch(action) + if("change_holo_card") + if(ishuman(target_mob)) + var/mob/living/carbon/human/target_human = target_mob + target_human.change_holo_card(ui.user) + return TRUE + /// legacy proc for to_chat messages on health analysers /mob/living/proc/health_scan(mob/living/carbon/human/user, ignore_delay = FALSE, show_limb_damage = TRUE, show_browser = TRUE, alien = FALSE, do_checks = TRUE) // ahem. FUCK WHOEVER CODED THIS SHIT AS NUMBERS AND NOT DEFINES. if(do_checks) diff --git a/code/modules/mob/living/living_verbs.dm b/code/modules/mob/living/living_verbs.dm index 1d51e43fd71d..777aa66fe29d 100644 --- a/code/modules/mob/living/living_verbs.dm +++ b/code/modules/mob/living/living_verbs.dm @@ -66,7 +66,7 @@ if (BB.opened) return visible_message("[BB] begins to wiggle violently!") - if(do_after(src, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_HOSTILE, BB))//5 second unzip from inside + if(do_after(src, 5 SECONDS, INTERRUPT_UNCONSCIOUS, BUSY_ICON_HOSTILE, BB))//5 second unzip from inside BB.open() ///The medical machines below are listed separately to allow easier changes to each process @@ -128,7 +128,7 @@ if(!do_after(src, (breakout_time*1 MINUTES), INTERRUPT_NO_NEEDHAND^INTERRUPT_RESIST)) return - if(!C || !src || stat != CONSCIOUS || loc != C || C.opened) //closet/user destroyed OR user dead/unconcious OR user no longer in closet OR closet opened + if(!C || !src || stat != CONSCIOUS || loc != C || C.opened) //closet/user destroyed OR user dead/unconscious OR user no longer in closet OR closet opened return //Perform the same set of checks as above for weld and lock status to determine if there is even still a point in 'resisting'... if(istype(loc, /obj/structure/closet/secure_closet)) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 9fa38d1ecb43..7f3af1449266 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -165,11 +165,11 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(message_mode) // we are talking into a radio if(message_mode == "headset") // default value, means general message_mode = "General" - log_say("[name != "Unknown" ? name : "([real_name])"] \[[message_mode]\]: [message] (CKEY: [key]) (JOB: [job])") + log_say("[name != "Unknown" ? name : "([real_name])"] \[[message_mode]\]: [message] (CKEY: [key]) (JOB: [job]) (AREA: [get_area_name(loc)])") else // we talk normally - log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key]) (JOB: [job])") + log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key]) (JOB: [job]) (AREA: [get_area_name(loc)])") else - log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key])") + log_say("[name != "Unknown" ? name : "([real_name])"]: [message] (CKEY: [key]) (AREA: [get_area_name(loc)])") return 1 diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index aaf648b00a50..6cf271738bf5 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -39,7 +39,7 @@ if(!findtext(message, "*", 2)) //Second asterisk means it is markup for *bold*, not an *emote. return emote(lowertext(copytext(message,2))) - //Must be concious to speak + //Must be conscious to speak if (stat) return 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/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index d4b8c4ad4960..272bc289b2ec 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -32,7 +32,7 @@ ) /// The cat will 'play' with dead hunted targets near it until this counter reaches a certain value. var/play_counter = 0 - min_oxy = 16 //Require atleast 16kPA oxygen + min_oxy = 16 //Require at least 16kPA oxygen minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius holder_type = /obj/item/holder/cat diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 11064634d498..b76935c4c158 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -22,7 +22,7 @@ density = FALSE var/body_color //brown, gray and white, leave blank for random layer = ABOVE_LYING_MOB_LAYER - min_oxy = 16 //Require atleast 16kPA oxygen + min_oxy = 16 //Require at least 16kPA oxygen minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius universal_speak = 0 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.dm b/code/modules/mob/mob.dm index 79cd0c521067..ec8aee36859f 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -102,6 +102,8 @@ I = image('icons/mob/hud/sec_hud.dmi', src, "") if(HUNTER_CLAN,HUNTER_HUD) I = image('icons/mob/hud/hud_yautja.dmi', src, "") + if(HOLOCARD_HUD) + I = image('icons/mob/hud/marine_hud.dmi', src, "") I.appearance_flags |= NO_CLIENT_COLOR|KEEP_APART|RESET_COLOR hud_list[hud] = I @@ -761,7 +763,7 @@ note dizziness decrements automatically in the mob's Life() proc. recalculate_move_delay = TRUE if(usr.stat) - to_chat(usr, "You are unconcious and cannot do that!") + to_chat(usr, "You are unconscious and cannot do that!") return if(usr.is_mob_restrained()) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 41ef2bf3fe4e..44286b5fabe0 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -16,19 +16,17 @@ 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 /*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob. A variable should only be globally attached to turfs/obj/whatever, when it is in fact needed as such. - The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs). + The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticeable for other mobs). 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_grab.dm b/code/modules/mob/mob_grab.dm index b9c5dd12a8aa..bd7370f4806f 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -146,6 +146,7 @@ xeno.visible_message(SPAN_WARNING("[xeno] devours [pulled]!"), \ SPAN_WARNING("We devour [pulled]!"), null, 5) + log_interact(xeno, pulled, "[key_name(xeno)] devoured [key_name(pulled)] at [get_area_name(xeno)]") if(ishuman(pulled)) var/mob/living/carbon/human/pulled_human = pulled diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index ce9e16e3747e..bdb9a2718814 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -386,68 +386,16 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( /mob/proc/get_eye_protection() return EYE_PROTECTION_NONE -/mob/proc/a_select_zone(input, client/user) - var/atom/movable/screen/zone_sel/zone - - for(var/A in user.screen) - if(istype(A, /atom/movable/screen/zone_sel)) - zone = A - - if(!zone) +/// Change the mob's selected body zone to `target_zone`. +/mob/proc/select_body_zone(target_zone) + if(!target_zone || !hud_used?.zone_sel) return - switch(input) - if("head") - switch(usr.zone_selected) - if("head") - zone.selecting = "eyes" - if("eyes") - zone.selecting = "mouth" - if("mouth") - zone.selecting = "head" - else - zone.selecting = "head" - if("chest") - zone.selecting = "chest" - if("groin") - zone.selecting = "groin" - if("rarm") - switch(usr.zone_selected) - if("r_arm") - zone.selecting = "r_hand" - if("r_hand") - zone.selecting = "r_arm" - else - zone.selecting = "r_arm" - if("larm") - switch(usr.zone_selected) - if("l_arm") - zone.selecting = "l_hand" - if("l_hand") - zone.selecting = "l_arm" - else - zone.selecting = "l_arm" - if("rleg") - switch(usr.zone_selected) - if("r_leg") - zone.selecting = "r_foot" - if("r_foot") - zone.selecting = "r_leg" - else - zone.selecting = "r_leg" - if("lleg") - switch(usr.zone_selected) - if("l_leg") - zone.selecting = "l_foot" - if("l_foot") - zone.selecting = "l_leg" - else - zone.selecting = "l_leg" - if("next") - zone.selecting = next_in_list(usr.zone_selected, DEFENSE_ZONES_LIVING) - if("prev") - zone.selecting = prev_in_list(usr.zone_selected, DEFENSE_ZONES_LIVING) - zone.update_icon(usr) + // Update the mob's selected zone. + zone_selected = target_zone + // Update the HUD's selected zone. + hud_used.zone_sel.selecting = target_zone + hud_used.zone_sel.update_icon() #define DURATION_MULTIPLIER_TIER_1 0.75 #define DURATION_MULTIPLIER_TIER_2 0.5 @@ -482,7 +430,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 0.35 + 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)) @@ -601,7 +551,10 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( for(var/mob/dead/observer/ghost as anything in GLOB.observer_list) if(!ghost.client) continue - ghost.notify_ghost(message, ghost_sound, enter_link, enter_text, source, alert_overlay, action, flashwindow, ignore_mapload, ignore_key, header, notify_volume, extra_large) + var/specific_ghost_sound = ghost_sound + if(!(ghost.client?.prefs?.toggles_sound & SOUND_OBSERVER_ANNOUNCEMENTS)) + specific_ghost_sound = null + ghost.notify_ghost(message, specific_ghost_sound, enter_link, enter_text, source, alert_overlay, action, flashwindow, ignore_mapload, ignore_key, header, notify_volume, extra_large) /mob/dead/observer/proc/notify_ghost(message, ghost_sound, enter_link, enter_text, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = FALSE, ignore_mapload = TRUE, ignore_key, header, notify_volume = 100, extra_large = FALSE) //Easy notification of a single ghosts. if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load @@ -660,4 +613,3 @@ GLOBAL_LIST_INIT(limb_types_by_name, list( lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE sync_lighting_plane_alpha() - 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/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index ccf649fb0509..7917394df830 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -168,16 +168,6 @@ tutorial_menu() return - if(client.prefs.species != "Human") - if(!is_alien_whitelisted(src, client.prefs.species) && CONFIG_GET(flag/usealienwhitelist)) - to_chat(src, "You are currently not whitelisted to play [client.prefs.species].") - return - - var/datum/species/S = GLOB.all_species[client.prefs.species] - if(!(S.flags & IS_WHITELISTED)) - to_chat(src, alert("Your current species,[client.prefs.species], is not available for play on the station.")) - return - LateChoices() if("late_join_xeno") @@ -217,16 +207,6 @@ to_chat(usr, SPAN_WARNING("There is an administrative lock on entering the game! (The dropship likely crashed into the Almayer. This should take at most 20 minutes.)")) return - if(client.prefs.species != "Human") - if(!is_alien_whitelisted(src, client.prefs.species) && CONFIG_GET(flag/usealienwhitelist)) - to_chat(src, alert("You are currently not whitelisted to play [client.prefs.species].")) - return 0 - - var/datum/species/S = GLOB.all_species[client.prefs.species] - if(!(S.flags & IS_WHITELISTED)) - to_chat(src, alert("Your current species,[client.prefs.species], is not available for play on the station.")) - return 0 - AttemptLateSpawn(href_list["job_selected"]) return @@ -367,7 +347,7 @@ roles_show ^= FLAG_SHOW_MEDICAL else if(roles_show & FLAG_SHOW_MARINES && GLOB.ROLES_MARINES.Find(J.title)) - dat += "
      Squad Riflemen:
      " + dat += "
      Marines:
      " roles_show ^= FLAG_SHOW_MARINES dat += "[J.disp_title] ([J.current_positions]) (Active: [active])
      " @@ -382,14 +362,6 @@ var/mob/living/carbon/human/new_character - var/datum/species/chosen_species - if(client.prefs.species) - chosen_species = GLOB.all_species[client.prefs.species] - if(chosen_species) - // Have to recheck admin due to no usr at roundstart. Latejoins are fine though. - if(is_species_whitelisted(chosen_species) || has_admin_rights()) - new_character = new(loc, client.prefs.species) - if(!new_character) new_character = new(loc) @@ -456,26 +428,6 @@ ui.close() continue -/mob/new_player/proc/has_admin_rights() - return client.admin_holder.rights & R_ADMIN - -/mob/new_player/proc/is_species_whitelisted(datum/species/S) - if(!S) return 1 - return is_alien_whitelisted(src, S.name) || !CONFIG_GET(flag/usealienwhitelist) || !(S.flags & IS_WHITELISTED) - -/mob/new_player/get_species() - var/datum/species/chosen_species - if(client.prefs.species) - chosen_species = GLOB.all_species[client.prefs.species] - - if(!chosen_species) - return "Human" - - if(is_species_whitelisted(chosen_species) || has_admin_rights()) - return chosen_species.name - - return "Human" - /mob/new_player/get_gender() if(!client || !client.prefs) ..() return client.prefs.gender diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index a4525e16a6c6..174c05783550 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -247,10 +247,8 @@ if(JOB_SQUAD_TEAM_LEADER) return /datum/equipment_preset/uscm/tl_equipped if(JOB_CO) - if(length(GLOB.RoleAuthority.roles_whitelist)) - var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_CO] - return J.gear_preset_whitelist["[JOB_CO][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] - return /datum/equipment_preset/uscm_ship/commander + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_CO] + return J.gear_preset_whitelist["[JOB_CO][J.get_whitelist_status(owner)]"] if(JOB_SO) return /datum/equipment_preset/uscm_ship/so if(JOB_XO) @@ -259,8 +257,10 @@ return /datum/equipment_preset/uscm_ship/auxiliary_officer if(JOB_INTEL) return /datum/equipment_preset/uscm/intel/full - if(JOB_PILOT) - return /datum/equipment_preset/uscm_ship/po/full + if(JOB_CAS_PILOT) + return /datum/equipment_preset/uscm_ship/gp/full + if(JOB_DROPSHIP_PILOT) + return /datum/equipment_preset/uscm_ship/dp/full if(JOB_DROPSHIP_CREW_CHIEF) return /datum/equipment_preset/uscm_ship/dcc/full if(JOB_CORPORATE_LIAISON) @@ -268,10 +268,8 @@ if(JOB_COMBAT_REPORTER) return /datum/equipment_preset/uscm_ship/reporter if(JOB_SYNTH) - if(length(GLOB.RoleAuthority.roles_whitelist)) - var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_SYNTH] - return J.gear_preset_whitelist["[JOB_SYNTH][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] - return /datum/equipment_preset/synth/uscm + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_SYNTH] + return J.gear_preset_whitelist["[JOB_SYNTH][J.get_whitelist_status(owner)]"] if(JOB_WORKING_JOE) return /datum/equipment_preset/synth/working_joe if(JOB_POLICE) @@ -317,10 +315,8 @@ return pick(SSmapping.configs[GROUND_MAP].CO_survivor_types) return /datum/equipment_preset/uscm_ship/commander if(JOB_PREDATOR) - if(length(GLOB.RoleAuthority.roles_whitelist)) - var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] - return J.gear_preset_whitelist["[JOB_PREDATOR][J.get_whitelist_status(GLOB.RoleAuthority.roles_whitelist, owner)]"] - return /datum/equipment_preset/yautja/blooded + var/datum/job/J = GLOB.RoleAuthority.roles_by_name[JOB_PREDATOR] + return J.gear_preset_whitelist["[JOB_PREDATOR][J.get_whitelist_status(owner)]"] return /datum/equipment_preset/uscm/private_equipped diff --git a/code/modules/movement/launching/launching.dm b/code/modules/movement/launching/launching.dm index 1c2952599987..778c452a3240 100644 --- a/code/modules/movement/launching/launching.dm +++ b/code/modules/movement/launching/launching.dm @@ -183,7 +183,7 @@ add_temp_pass_flags(pass_flags) var/turf/start_turf = get_step_towards(src, LM.target) - var/list/turf/path = getline2(start_turf, LM.target) + var/list/turf/path = get_line(start_turf, LM.target) var/last_loc = loc var/early_exit = FALSE diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 479c958239cf..3e26b2b8a1da 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -57,8 +57,8 @@ nanoui is used to open and update nano browser uis // the current status/visibility of the ui var/status = STATUS_INTERACTIVE - // Only allow users with a certain user.stat to get updates. Defaults to 0 (concious) - var/allowed_user_stat = 0 // -1 = ignore, 0 = alive, 1 = unconcious or alive, 2 = dead concious or alive + // Only allow users with a certain user.stat to get updates. Defaults to 0 (conscious) + var/allowed_user_stat = 0 // -1 = ignore, 0 = alive, 1 = unconscious or alive, 2 = dead conscious or alive /** * Create a new nanoui instance. 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/desk_bell.dm b/code/modules/paperwork/desk_bell.dm new file mode 100644 index 000000000000..6e7de1101ae7 --- /dev/null +++ b/code/modules/paperwork/desk_bell.dm @@ -0,0 +1,95 @@ +// A receptionist's bell + +/obj/item/desk_bell + name = "desk bell" + desc = "The cornerstone of any customer service job. You feel an unending urge to ring it." + icon = 'icons/obj/objects.dmi' + icon_state = "desk_bell" + w_class = SIZE_SMALL + embeddable = FALSE + /// The amount of times this bell has been rang, used to check the chance it breaks. + var/times_rang = 0 + /// Is this bell broken? + var/broken_ringer = FALSE + /// Holds the time that the bell can next be rang. + COOLDOWN_DECLARE(ring_cooldown) + /// The length of the cooldown. Setting it to 0 will skip all cooldowns alltogether. + var/ring_cooldown_length = 5 SECONDS // This is here to protect against tinnitus. + /// The sound the bell makes. + var/ring_sound = 'sound/misc/desk_bell.ogg' + +/obj/item/desk_bell/attack_hand(mob/living/user) + if(!ishuman(user)) + return FALSE + if(!anchored) + return ..() + if(!COOLDOWN_FINISHED(src, ring_cooldown)) + return FALSE + if(!ring_bell(user)) + to_chat(user, SPAN_NOTICE("[src] is silent. Some idiot broke it.")) + return FALSE + return TRUE + +/obj/item/desk_bell/MouseDrop(atom/over_object) + var/mob/mob = usr + if(!Adjacent(mob) || anchored) + return + if(!ishuman(mob)) + return + + if(over_object == mob) + mob.put_in_hands(src) + +/obj/item/desk_bell/attackby(obj/item/item, mob/user) + //Repair the desk bell if its broken and we're using a screwdriver. + if(HAS_TRAIT(item, TRAIT_TOOL_SCREWDRIVER)) + if(broken_ringer) + user.visible_message(SPAN_NOTICE("[user] begins repairing [src]..."), SPAN_NOTICE("You begin repairing [src]...")) + if(do_after(user, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + user.visible_message(SPAN_NOTICE("[user] repairs [src]."), SPAN_NOTICE("You repair [src].")) + playsound(src, 'sound/items/Screwdriver.ogg', 50) + broken_ringer = FALSE + times_rang = 0 + return TRUE + return FALSE + + //Return at this point if we're not on a turf so we don't anchor or unanchor inside our bag/hands or inventory. + if(!isturf(loc)) + return + + //Wrenching down and unwrenching. + if(HAS_TRAIT(item, TRAIT_TOOL_WRENCH)) + if(user.a_intent == INTENT_HARM) + visible_message(SPAN_NOTICE("[user] begins taking apart [src]..."), SPAN_NOTICE("You begin taking apart [src]...")) + playsound(src, 'sound/items/deconstruct.ogg', 35) + if(do_after(user, 5 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + visible_message(SPAN_NOTICE("[user] takes apart [src]."), SPAN_NOTICE("You take apart [src].")) + new /obj/item/stack/sheet/metal(get_turf(src)) + qdel(src) + return TRUE + else + user.visible_message(SPAN_NOTICE("[user] begins [anchored ? "un" : ""]securing [src]..."), SPAN_NOTICE("You begin [anchored ? "un" : ""]securing [src]...")) + playsound(src, 'sound/items/Ratchet.ogg', 35, TRUE) + if(!do_after(user, 2 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + return FALSE + user.visible_message(SPAN_NOTICE("[user] [anchored ? "un" : ""]secures [src]."), SPAN_NOTICE("You [anchored ? "un" : ""]secure [src].")) + anchored = !anchored + return TRUE + + +/// Check if the clapper breaks, and if it does, break it. Chance to break is 1% for every 100 rings of the bell. +/obj/item/desk_bell/proc/check_clapper(mob/living/user) + if(prob(times_rang / 100)) + to_chat(user, SPAN_NOTICE("You hear [src]'s clapper fall off of its hinge. Nice job hamfist, you broke it.")) + broken_ringer = TRUE + +/// Ring the bell. +/obj/item/desk_bell/proc/ring_bell(mob/living/user) + if(broken_ringer) + return FALSE + check_clapper(user) + COOLDOWN_START(src, ring_cooldown, ring_cooldown_length) + playsound(src, ring_sound, 80) + flick("desk_bell_activate", src) + times_rang++ + return TRUE 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/apc.dm b/code/modules/power/apc.dm index dd0327e3821d..76550fbe079b 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -190,8 +190,9 @@ GLOBAL_LIST_INIT(apc_wire_descriptions, list( ui.open() /obj/structure/machinery/power/apc/ui_status(mob/user) - if(!opened && can_use(user, 1)) - . = UI_INTERACTIVE + . = ..() + if(opened || !can_use(user, TRUE)) + return UI_DISABLED /obj/structure/machinery/power/apc/ui_state(mob/user) return GLOB.not_incapacitated_and_adjacent_state diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 8f138d2c905f..c95fa6af5045 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -390,7 +390,7 @@ else if(status != LIGHT_BROKEN && status != LIGHT_EMPTY) - if(prob(1+W.force * 5)) + if(prob(1+W.force * W.demolition_mod * 5)) to_chat(user, "You hit the light, and it smashes!") for(var/mob/M as anything in viewers(src)) @@ -530,7 +530,7 @@ L.update() - if(user.put_in_active_hand(L)) //succesfully puts it in our active hand + if(user.put_in_active_hand(L)) //successfully puts it in our active hand L.add_fingerprint(user) else L.forceMove(loc) //if not, put it on the ground diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 00e6b92eab8f..9aefa21d0f7a 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -81,7 +81,7 @@ if(has_power || !src.needs_power) if(machine_processing) if(stat & NOPOWER) - addToListNoDupe(GLOB.processing_machines, src) // power interupted us, start processing again + addToListNoDupe(GLOB.processing_machines, src) // power interrupted us, start processing again stat &= ~NOPOWER src.update_use_power(USE_POWER_IDLE) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 7cf72ce1cb81..46d9374cb832 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 @@ -272,14 +281,13 @@ // TGUI STUFF \\ /obj/structure/machinery/power/smes/ui_status(mob/user) - if(!(stat & BROKEN) && !open_hatch) - . = UI_INTERACTIVE - -/obj/structure/machinery/power/smes/ui_state(mob/user) + . = ..() if(stat & BROKEN) return UI_CLOSE if(open_hatch) return UI_DISABLED + +/obj/structure/machinery/power/smes/ui_state(mob/user) return GLOB.not_incapacitated_and_adjacent_state /obj/structure/machinery/power/smes/tgui_interact(mob/user, datum/tgui/ui) diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index 1eb249b5ecfa..d6fb7bb66841 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -10,7 +10,7 @@ var/max_coils = 6 //30M capacity, 1.5MW input/output when fully upgraded /w default coils var/cur_coils = 1 // Current amount of installed coils var/safeties_enabled = 1 // If 0 modifications can be done without discharging the SMES, at risk of critical failure. - var/failing = 0 // If 1 critical failure has occured and SMES explosion is imminent. + var/failing = 0 // If 1 critical failure has occurred and SMES explosion is imminent. should_be_mapped = 1 unslashable = TRUE unacidable = TRUE diff --git a/code/modules/projectiles/ammo_boxes/handful_boxes.dm b/code/modules/projectiles/ammo_boxes/handful_boxes.dm index 9ac2aeea8870..3e9300c8b5c2 100644 --- a/code/modules/projectiles/ammo_boxes/handful_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/handful_boxes.dm @@ -68,6 +68,20 @@ /obj/item/ammo_box/magazine/shotgun/beanbag/empty empty = TRUE + +//-----------------------16 GAUGE SHOTGUN SHELL BOXES----------------------- + +/obj/item/ammo_box/magazine/shotgun/light/breaching + name = "\improper 16-gauge shotgun shell box (Breaching x 120)" + icon_state = "base_breach" + overlay_content = "_breach" + magazine_type = /obj/item/ammo_magazine/shotgun/light/breaching + num_of_magazines = 120 //10 full mag reloads. + can_explode = FALSE + +/obj/item/ammo_box/magazine/shotgun/light/breaching/empty + empty = TRUE + //-----------------------R4T Lever-action rifle handfuls box----------------------- /obj/item/ammo_box/magazine/lever_action diff --git a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm index 6d20dcc75949..170bb539bc73 100644 --- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm +++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm @@ -170,6 +170,19 @@ /obj/item/ammo_box/magazine/m4ra/heap/empty empty = TRUE +//-----------------------XM51 Breaching Scattergun Mag Box----------------------- + +/obj/item/ammo_box/magazine/xm51 + name = "\improper magazine box (XM51 x 8)" + icon_state = "base_breach" + flags_equip_slot = SLOT_BACK + overlay_gun_type = "_xm51" + num_of_magazines = 8 + magazine_type = /obj/item/ammo_magazine/rifle/xm51 + +/obj/item/ammo_box/magazine/xm51/empty + empty = TRUE + //-----------------------L42A Battle Rifle Mag Boxes----------------------- /obj/item/ammo_box/magazine/l42a diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index d00b6cbe90c9..3f7533f26620 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -663,11 +663,7 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w // weapon info - data["icon"] = SSassets.transport.get_asset_url("no_name.png") - - if(SSassets.cache["[base_gun_icon].png"]) - data["icon"] = SSassets.transport.get_asset_url("[base_gun_icon].png") - + data["icon"] = base_gun_icon data["name"] = name data["desc"] = desc data["two_handed_only"] = (flags_gun_features & GUN_WIELDED_FIRING_ONLY) @@ -727,8 +723,8 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w /obj/item/weapon/gun/ui_assets(mob/user) . = ..() || list() - . += get_asset_datum(/datum/asset/simple/firemodes) - //. += get_asset_datum(/datum/asset/spritesheet/gun_lineart) + . += get_asset_datum(/datum/asset/spritesheet/gun_lineart_modes) + . += get_asset_datum(/datum/asset/spritesheet/gun_lineart) // END TGUI \\ @@ -1348,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 b74febcbaa07..f875af99bb43 100644 --- a/code/modules/projectiles/gun_attachables.dm +++ b/code/modules/projectiles/gun_attachables.dm @@ -455,7 +455,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/f90_dmr_barrel name = "f90 barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "aug_dmr_barrel_a" attach_icon = "aug_dmr_barrel_a" slot = "muzzle" @@ -466,7 +466,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/f90_shotgun_barrel name = "f90 barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "aug_mkey_barrel_a" attach_icon = "aug_mkey_barrel_a" slot = "muzzle" @@ -477,7 +477,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/l56a2_smartgun name = "l56a2 barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "magsg_barrel_a" attach_icon = "magsg_barrel_a" slot = "muzzle" @@ -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." @@ -2105,6 +2132,43 @@ Defined in conflicts.dm of the #defines folder. flags_attach_features = NO_FLAGS hud_offset_mod = 2 +/obj/item/attachable/stock/xm51 + name = "\improper XM51 stock" + desc = "A specialized stock designed for XM51 breaching shotguns. Helps the user absorb the recoil of the weapon while also reducing scatter. Integrated mechanisms inside the stock allow use of a devastating two-shot burst. This comes at a cost of the gun becoming too unwieldy to holster, worse handling and mobility." + icon_state = "xm51_stock" + attach_icon = "xm51_stock_a" + wield_delay_mod = WIELD_DELAY_FAST + hud_offset_mod = 3 + melee_mod = 10 + +/obj/item/attachable/stock/xm51/Initialize(mapload, ...) + . = ..() + select_gamemode_skin(type) + //it makes stuff much better when two-handed + accuracy_mod = HIT_ACCURACY_MULT_TIER_3 + recoil_mod = -RECOIL_AMOUNT_TIER_4 + scatter_mod = -SCATTER_AMOUNT_TIER_8 + movement_onehanded_acc_penalty_mod = -MOVEMENT_ACCURACY_PENALTY_MULT_TIER_4 + //and allows for burst-fire + burst_mod = BURST_AMOUNT_TIER_2 + //but it makes stuff much worse when one handed + accuracy_unwielded_mod = -HIT_ACCURACY_MULT_TIER_5 + recoil_unwielded_mod = RECOIL_AMOUNT_TIER_5 + scatter_unwielded_mod = SCATTER_AMOUNT_TIER_6 + //and makes you slower + aim_speed_mod = CONFIG_GET(number/slowdown_med) + +/obj/item/attachable/stock/xm51/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 + /obj/item/attachable/stock/mod88 name = "\improper Mod 88 burst stock" desc = "Increases the fire rate and burst amount on the Mod 88. Some versions act as a holster for the weapon when un-attached. This is a test item and should not be used in normal gameplay (yet)." @@ -2197,7 +2261,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/m4ra_barrel name = "M4RA barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "m4ra_barrel" attach_icon = "m4ra_barrel" slot = "special" @@ -2223,7 +2287,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/m4ra_barrel_custom name = "custom M4RA barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon_state = "m4ra_custom_barrel" attach_icon = "m4ra_custom_barrel" slot = "special" @@ -2249,7 +2313,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/upp_rpg_breech name = "HJRA-12 Breech" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/stock.dmi' icon_state = "hjra_breech" attach_icon = "hjra_breech" @@ -2261,7 +2325,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/pkpbarrel name = "QYJ-72 Barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' icon_state = "uppmg_barrel" attach_icon = "uppmg_barrel" @@ -2273,7 +2337,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/pkpstock name = "QYJ-72 Stock" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/stock.dmi' icon_state = "uppmg_stock" attach_icon = "uppmg_stock" @@ -2285,7 +2349,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/type88_barrel name = "Type-88 Barrel" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' icon_state = "type88_barrel" attach_icon = "type88_barrel" @@ -2297,7 +2361,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/type73suppressor name = "Type 73 Integrated Suppressor" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi' icon_state = "type73_suppressor" attach_icon = "type73_suppressor" @@ -2309,7 +2373,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/stock/type71 name = "Type 71 Stock" - desc = "This isn't supposed to be seperated from the gun, how'd this happen?" + desc = "This isn't supposed to be separated from the gun, how'd this happen?" icon = 'icons/obj/items/weapons/guns/attachments/stock.dmi' icon_state = "type71_stock" attach_icon = "type71_stock" @@ -2941,7 +3005,7 @@ Defined in conflicts.dm of the #defines folder. /obj/item/attachable/attached_gun/flamer/proc/unleash_flame(atom/target, mob/living/user) set waitfor = 0 - var/list/turf/turfs = getline2(user,target) + var/list/turf/turfs = get_line(user,target) var/distance = 0 var/turf/prev_T var/stop_at_turf = FALSE @@ -3162,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 @@ -3264,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() ..() @@ -3274,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() @@ -3297,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) + + gun.recalculate_attachment_bonuses() + gun.stop_fire() + SEND_SIGNAL(user, COMSIG_MOB_UNDEPLOYED_BIPOD) + UnregisterSignal(user, COMSIG_MOB_MOVE_OR_LOOK) - if(G.flags_gun_features & GUN_SUPPORT_PLATFORM) - G.remove_firemode(GUN_FIREMODE_AUTOMATIC) + 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) @@ -3358,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() @@ -3393,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) @@ -3408,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" @@ -3424,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 d21cb5b87254..16ccb3438e23 100644 --- a/code/modules/projectiles/guns/boltaction.dm +++ b/code/modules/projectiles/guns/boltaction.dm @@ -129,7 +129,7 @@ The 'pitter-patter' of 'rain' that the crews heard was in fact multiple rifles failing to penetrate through the vehicle's external armor. Once a number of the anti-materiel rifles were examined, it was deemed a high priority to produce a Corps version. In the process, the rifles were designed for a higher calibre then that of the rebel versions, so the M707 would be capable of penetrating the light vehicle armor of their UPP peers in the event of another Dog War or Tientsin."} - icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overriden with camos + icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overridden with camos icon_state = "vulture" item_state = "vulture" cocked_sound = 'sound/weapons/gun_cocked2.ogg' @@ -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/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm index b9582cf5adb2..62e37e4f7c3b 100644 --- a/code/modules/projectiles/guns/flamer/flamer.dm +++ b/code/modules/projectiles/guns/flamer/flamer.dm @@ -214,7 +214,7 @@ if(R.rangefire == -1) max_range = current_mag.reagents.max_fire_rad - var/turf/temp[] = getline2(get_turf(user), get_turf(target)) + var/turf/temp[] = get_line(get_turf(user), get_turf(target)) var/turf/to_fire = temp[2] diff --git a/code/modules/projectiles/guns/flamer/flameshape.dm b/code/modules/projectiles/guns/flamer/flameshape.dm index ae6c2dec0a67..3e5e398c91e8 100644 --- a/code/modules/projectiles/guns/flamer/flameshape.dm +++ b/code/modules/projectiles/guns/flamer/flameshape.dm @@ -74,7 +74,7 @@ for(var/dirn in dirs) var/endturf = get_ranged_target_turf(F, dirn, fire_spread_amount) - var/list/turfs = getline2(source_turf, endturf) + var/list/turfs = get_line(source_turf, endturf) var/turf/prev_T = source_turf for(var/turf/T in turfs) @@ -124,7 +124,7 @@ var/distance = 1 var/stop_at_turf = FALSE - var/list/turfs = getline2(source_turf, F.target_clicked) + var/list/turfs = get_line(source_turf, F.target_clicked) for(var/turf/T in turfs) if(istype(T, /turf/open/space)) break @@ -174,7 +174,7 @@ user = F.weapon_cause_data.resolve_mob() var/unleash_dir = user.dir - var/list/turf/turfs = getline2(F, F.target_clicked) + var/list/turf/turfs = get_line(F, F.target_clicked) var/distance = 1 var/hit_dense_atom_mid = FALSE var/turf/prev_T = user.loc diff --git a/code/modules/projectiles/guns/lever_action.dm b/code/modules/projectiles/guns/lever_action.dm index 849844f4f044..a8fb78f72a9c 100644 --- a/code/modules/projectiles/guns/lever_action.dm +++ b/code/modules/projectiles/guns/lever_action.dm @@ -353,7 +353,7 @@ their unique feature is that a direct hit will buff your damage and firerate name = "\improper XM88 heavy rifle" desc = "An experimental man-portable anti-material rifle chambered in .458 SOCOM. It must be manually chambered for every shot.\nIt has a special property - when you obtain multiple direct hits in a row, its armor penetration and damage will increase." desc_lore = "Originally developed by ARMAT Battlefield Systems for the government of the state of Greater Brazil for use in the Favela Wars (2161 - Ongoing) against mechanized infantry. The platform features an onboard computerized targeting system, sensor array, and an electronic autoloader; these features work in tandem to reduce and render inert armor on the users target with successive hits. The Almayer was issued a small amount of XM88s while preparing for Operation Swamp Hopper with the USS Nan-Shan." - icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overriden with camos anyways + icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' // overridden with camos anyways icon_state = "boomslang" item_state = "boomslang" fire_sound = 'sound/weapons/gun_boomslang_fire.ogg' 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 1ee8aa189ed3..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 @@ -1867,3 +1867,123 @@ f90_shotgun_barrel.Attach(src) update_attachable(f90_shotgun.slot) update_attachable(f90_shotgun_barrel.slot) + +//------------------------------------------------------- +//XM51, Breaching Scattergun + +/obj/item/weapon/gun/rifle/xm51 + name = "\improper XM51 breaching scattergun" + desc = "An experimental shotgun model going through testing trials in the USCM. Based on the original civilian and CMB version, the XM51 is a mag-fed, pump-action shotgun. It utilizes special 16-gauge breaching rounds which are effective at breaching walls and doors. Users are advised not to employ the weapon against soft or armored targets due to low performance of the shells." + icon_state = "xm51" + item_state = "xm51" + fire_sound = 'sound/weapons/gun_shotgun_xm51.ogg' + reload_sound = 'sound/weapons/handling/l42_reload.ogg' + unload_sound = 'sound/weapons/handling/l42_unload.ogg' + current_mag = /obj/item/ammo_magazine/rifle/xm51 + attachable_allowed = list( + /obj/item/attachable/bayonet, + /obj/item/attachable/bayonet/upp, + /obj/item/attachable/bayonet/co2, + /obj/item/attachable/reddot, + /obj/item/attachable/reflex, + /obj/item/attachable/verticalgrip, + /obj/item/attachable/angledgrip, + /obj/item/attachable/gyro, + /obj/item/attachable/flashlight/grip, + /obj/item/attachable/flashlight, + /obj/item/attachable/magnetic_harness, + /obj/item/attachable/stock/xm51, + ) + flags_equip_slot = SLOT_BACK + flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_AMMO_COUNTER + gun_category = GUN_CATEGORY_SHOTGUN + aim_slowdown = SLOWDOWN_ADS_SHOTGUN + map_specific_decoration = TRUE + + var/pump_delay //How long we have to wait before we can pump the shotgun again. + var/pump_sound = "shotgunpump" + var/message_delay = 1 SECONDS //To stop message spam when trying to pump the gun constantly. + var/burst_count = 0 //To detect when the burst fire is near its end. + COOLDOWN_DECLARE(allow_message) + COOLDOWN_DECLARE(allow_pump) + +/obj/item/weapon/gun/rifle/xm51/set_gun_attachment_offsets() + attachable_offset = list("muzzle_x" = 34, "muzzle_y" = 18, "rail_x" = 12, "rail_y" = 20, "under_x" = 24, "under_y" = 13, "stock_x" = 15, "stock_y" = 16) + +/obj/item/weapon/gun/rifle/xm51/set_gun_config_values() + ..() + set_fire_delay(FIRE_DELAY_TIER_4*2) + set_burst_amount(0) + burst_scatter_mult = SCATTER_AMOUNT_TIER_7 + accuracy_mult = BASE_ACCURACY_MULT + 2*HIT_ACCURACY_MULT_TIER_8 + accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_8 + recoil = RECOIL_AMOUNT_TIER_4 + recoil_unwielded = RECOIL_AMOUNT_TIER_2 + scatter = SCATTER_AMOUNT_TIER_6 + +/obj/item/weapon/gun/rifle/xm51/Initialize(mapload, spawn_empty) + . = ..() + pump_delay = FIRE_DELAY_TIER_8*3 + additional_fire_group_delay += pump_delay + +/obj/item/weapon/gun/rifle/xm51/set_bullet_traits() + LAZYADD(traits_to_give, list( + BULLET_TRAIT_ENTRY_ID("turfs", /datum/element/bullet_trait_damage_boost, 30, GLOB.damage_boost_turfs), //2550, 2 taps colony walls, 4 taps reinforced walls + BULLET_TRAIT_ENTRY_ID("xeno turfs", /datum/element/bullet_trait_damage_boost, 0.23, GLOB.damage_boost_turfs_xeno), //2550*0.23 = 586, 2 taps resin walls, 3 taps thick resin + BULLET_TRAIT_ENTRY_ID("breaching", /datum/element/bullet_trait_damage_boost, 15, GLOB.damage_boost_breaching), //1275, enough to 1 tap airlocks + BULLET_TRAIT_ENTRY_ID("pylons", /datum/element/bullet_trait_damage_boost, 6, GLOB.damage_boost_pylons) //510, 4 shots to take out a pylon + )) + +/obj/item/weapon/gun/rifle/xm51/unique_action(mob/user) + if(!COOLDOWN_FINISHED(src, allow_pump)) + return + if(in_chamber) + if(COOLDOWN_FINISHED(src, allow_message)) + to_chat(usr, SPAN_WARNING("[src] already has a shell in the chamber!")) + COOLDOWN_START(src, allow_message, message_delay) + return + + playsound(user, pump_sound, 10, 1) + COOLDOWN_START(src, allow_pump, pump_delay) + ready_in_chamber() + burst_count = 0 //Reset the count for burst mode. + +/obj/item/weapon/gun/rifle/xm51/load_into_chamber(mob/user) + return in_chamber + +/obj/item/weapon/gun/rifle/xm51/reload_into_chamber(mob/user) //Don't chamber bullets after firing. + if(!current_mag) + update_icon() + return + + in_chamber = null + if(current_mag.current_rounds <= 0 && flags_gun_features & GUN_AUTO_EJECTOR) + if (user.client?.prefs && (user.client?.prefs?.toggle_prefs & TOGGLE_AUTO_EJECT_MAGAZINE_OFF)) + update_icon() + else if (!(flags_gun_features & GUN_BURST_FIRING) || !in_chamber) // Magazine will only unload once burstfire is over + var/drop_to_ground = TRUE + if (user.client?.prefs && (user.client?.prefs?.toggle_prefs & TOGGLE_AUTO_EJECT_MAGAZINE_TO_HAND)) + drop_to_ground = FALSE + unwield(user) + user.swap_hand() + unload(user, TRUE, drop_to_ground) // We want to quickly autoeject the magazine. This proc does the rest based on magazine type. User can be passed as null. + playsound(src, empty_sound, 25, 1) + if(gun_firemode == GUN_FIREMODE_BURSTFIRE & burst_count < burst_amount - 1) //Fire two (or more) shots in a burst without having to pump. + ready_in_chamber() + burst_count++ + return in_chamber + +/obj/item/weapon/gun/rifle/xm51/replace_magazine(mob/user, obj/item/ammo_magazine/magazine) //Don't chamber a round when reloading. + user.drop_inv_item_to_loc(magazine, src) //Click! + current_mag = magazine + replace_ammo(user,magazine) + user.visible_message(SPAN_NOTICE("[user] loads [magazine] into [src]!"), + SPAN_NOTICE("You load [magazine] into [src]!"), null, 3, CHAT_TYPE_COMBAT_ACTION) + if(reload_sound) + playsound(user, reload_sound, 25, 1, 5) + +/obj/item/weapon/gun/rifle/xm51/cock_gun(mob/user) + return + +/obj/item/weapon/gun/rifle/xm51/cock(mob/user) //Stops the "You cock the gun." message where nothing happens. + return diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm index c3b4906c1b29..5acad2255356 100644 --- a/code/modules/projectiles/guns/shotguns.dm +++ b/code/modules/projectiles/guns/shotguns.dm @@ -274,7 +274,7 @@ can cause issues with ammo types getting mixed up during the burst. update_attachable(ugl.slot) stock.hidden = FALSE stock.Attach(src) - update_attachable(stock.slot) + update_attachable(stock.slot) /obj/item/weapon/gun/shotgun/combat/set_gun_attachment_offsets() attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 11, "stock_y" = 13.) @@ -1019,7 +1019,7 @@ can cause issues with ammo types getting mixed up during the burst. if(!T) //Off edge of map. throw_turfs.Remove(T) continue - var/list/turf/path = getline2(get_step_towards(src, T), T) //Same path throw code will calculate from. + var/list/turf/path = get_line(get_step_towards(src, T), T) //Same path throw code will calculate from. if(!path.len) throw_turfs.Remove(T) continue diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index 8ac629310132..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 @@ -497,7 +499,7 @@ if((angledegree*2) > angle_list[angle]) continue - path = getline2(user, M) + path = get_line(user, M) if(path.len) var/blocked = FALSE diff --git a/code/modules/projectiles/guns/smgs.dm b/code/modules/projectiles/guns/smgs.dm index 24eddf31597d..69fd5d968750 100644 --- a/code/modules/projectiles/guns/smgs.dm +++ b/code/modules/projectiles/guns/smgs.dm @@ -11,7 +11,7 @@ aim_slowdown = SLOWDOWN_ADS_QUICK wield_delay = WIELD_DELAY_VERY_FAST attachable_allowed = list( - /obj/item/attachable/suppressor, + /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, /obj/item/attachable/flashlight, @@ -50,7 +50,7 @@ /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, - /obj/item/attachable/angledgrip, + /obj/item/attachable/angledgrip, /obj/item/attachable/verticalgrip, /obj/item/attachable/flashlight/grip, /obj/item/attachable/stock/smg, @@ -84,7 +84,7 @@ accuracy_mult = BASE_ACCURACY_MULT accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_5 scatter = SCATTER_AMOUNT_TIER_4 - burst_scatter_mult = SCATTER_AMOUNT_TIER_4 + burst_scatter_mult = SCATTER_AMOUNT_TIER_7 scatter_unwielded = SCATTER_AMOUNT_TIER_4 damage_mult = BASE_BULLET_DAMAGE_MULT recoil_unwielded = RECOIL_AMOUNT_TIER_5 @@ -302,7 +302,7 @@ /obj/item/weapon/gun/smg/ppsh/unique_action(mob/user) if(jammed) if(prob(PPSH_UNJAM_CHANCE)) - to_chat(user, SPAN_GREEN("You succesfully unjam \the [src]!")) + to_chat(user, SPAN_GREEN("You successfully unjam \the [src]!")) playsound(src, 'sound/weapons/handling/gun_jam_rack_success.ogg', 50, FALSE) jammed = FALSE cock_cooldown += 1 SECONDS //so they dont accidentally cock a bullet away @@ -538,7 +538,7 @@ /obj/item/weapon/gun/smg/uzi/unique_action(mob/user) if(jammed) if(prob(UZI_UNJAM_CHANCE)) - to_chat(user, SPAN_GREEN("You succesfully unjam \the [src]!")) + to_chat(user, SPAN_GREEN("You successfully unjam \the [src]!")) playsound(src, 'sound/weapons/handling/gun_jam_rack_success.ogg', 35, TRUE) jammed = FALSE cock_cooldown += 1 SECONDS //so they dont accidentally cock a bullet away @@ -609,7 +609,7 @@ /obj/item/weapon/gun/smg/fp9000/pmc name = "\improper FN FP9000/2 Submachinegun" - desc = "Despite the rather ancient design, the FN FP9K sees frequent use in PMC teams due to its extreme reliability and versatility, allowing it to excel in any situation, especially due to the fact that they use the patented, official version of the gun, which has recieved several upgrades and tuning to its design over time." + desc = "Despite the rather ancient design, the FN FP9K sees frequent use in PMC teams due to its extreme reliability and versatility, allowing it to excel in any situation, especially due to the fact that they use the patented, official version of the gun, which has received several upgrades and tuning to its design over time." icon_state = "fp9000_pmc" item_state = "fp9000_pmc" random_spawn_chance = 100 diff --git a/code/modules/projectiles/guns/specialist/sniper.dm b/code/modules/projectiles/guns/specialist/sniper.dm index 673de1a59602..bdb0ba02f3ab 100644 --- a/code/modules/projectiles/guns/specialist/sniper.dm +++ b/code/modules/projectiles/guns/specialist/sniper.dm @@ -198,7 +198,7 @@ return TRUE /datum/action/item_action/specialist/aimed_shot/proc/check_shot_is_blocked(mob/firer, mob/target, obj/projectile/P) - var/list/turf/path = getline2(firer, target, include_from_atom = FALSE) + var/list/turf/path = get_line(firer, target, include_start_atom = FALSE) if(!path.len || get_dist(firer, target) > P.ammo.max_range) return TRUE diff --git a/code/modules/projectiles/magazines/rifles.dm b/code/modules/projectiles/magazines/rifles.dm index 3d1b7088fa83..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=\\ @@ -499,3 +507,17 @@ item_state = "aug_dmr" default_ammo = /datum/ammo/bullet/rifle/heap ammo_band_color = AMMO_BAND_COLOR_HEAP + +//-------------------------------------------------------- +//XM51 BREACHING SHOTGUN + +/obj/item/ammo_magazine/rifle/xm51 + name = "\improper XM51 magazine (16g)" + desc = "A 16 gauge pump-action shotgun magazine." + icon_state = "xm51" + caliber = "16g" + w_class = SIZE_MEDIUM + default_ammo = /datum/ammo/bullet/shotgun/light/breaching + max_rounds = 12 + gun_type = /obj/item/weapon/gun/rifle/xm51 + transfer_handful_amount = 6 diff --git a/code/modules/projectiles/magazines/shotguns.dm b/code/modules/projectiles/magazines/shotguns.dm index 6c103aaa9677..61070690e9ac 100644 --- a/code/modules/projectiles/magazines/shotguns.dm +++ b/code/modules/projectiles/magazines/shotguns.dm @@ -86,6 +86,18 @@ GLOBAL_LIST_INIT(shotgun_boxes_12g, list( default_ammo = /datum/ammo/bullet/shotgun/beanbag handful_state = "beanbag_slug" caliber = "20g" + +/obj/item/ammo_magazine/shotgun/light/breaching + name = "box of breaching shells" + desc = "A box filled with breaching shotgun shells. 16 Gauge." + icon_state = "breaching" + item_state = "breaching" + max_rounds = 30 //6 handfuls of 6 shells, 12 rounds in a XM51 mag + transfer_handful_amount = 6 + default_ammo = /datum/ammo/bullet/shotgun/light/breaching + handful_state = "breaching_shell" + caliber = "16g" + //------------------------------------------------------- /* @@ -238,7 +250,6 @@ GLOBAL_LIST_INIT(shotgun_handfuls_12g, list( name = "handful of beanbag slugs (20g)" caliber = "20g" - /obj/item/ammo_magazine/handful/shotgun/heavy name = "handful of heavy shotgun slugs (8g)" icon_state = "heavy_slug_4" @@ -277,6 +288,17 @@ GLOBAL_LIST_INIT(shotgun_handfuls_12g, list( handful_state = "heavy_beanbag" default_ammo = /datum/ammo/bullet/shotgun/heavy/beanbag +/obj/item/ammo_magazine/handful/shotgun/light/breaching + name = "handful of breaching shells (16g)" + icon_state = "breaching_shell_6" + handful_state = "breaching_shell" + max_rounds = 6 //XM51 magazines are 12 rounds total, two handfuls should be enough to reload a mag + current_rounds = 6 + transfer_handful_amount = 6 + default_ammo = /datum/ammo/bullet/shotgun/light/breaching + caliber = "16g" + gun_type = /obj/item/weapon/gun/rifle/xm51 + /obj/item/ammo_magazine/handful/shotgun/twobore name = "handful of shotgun slugs (2 bore)" icon_state = "twobore_3" diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index f87b86a20c1f..eb9b2686c3d6 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -216,7 +216,7 @@ if(ammo.bonus_projectiles_amount && ammo.bonus_projectiles_type) ammo.fire_bonus_projectiles(src) - path = getline2(starting, target_turf) + path = get_line(starting, target_turf) p_x += clamp((rand()-0.5)*scatter*3, -8, 8) p_y += clamp((rand()-0.5)*scatter*3, -8, 8) update_angle(starting, target_turf) @@ -381,7 +381,7 @@ /obj/projectile/proc/retarget(atom/new_target, keep_angle = FALSE) var/turf/current_turf = get_turf(src) - path = getline2(current_turf, new_target) + path = get_line(current_turf, new_target) path.Cut(1, 2) // remove the turf we're already on var/atom/source = keep_angle ? original : current_turf update_angle(source, new_target) @@ -910,8 +910,8 @@ apply_effects(arglist(P.ammo.debilitate)) . = TRUE + bullet_message(P, damaging = damage) if(damage) - bullet_message(P) apply_damage(damage, P.ammo.damage_type, P.def_zone, 0, 0, P) P.play_hit_effect(src) @@ -1042,6 +1042,7 @@ if((ammo_flags & AMMO_FLAME) && (src.caste.fire_immunity & FIRE_IMMUNITY_NO_IGNITE|FIRE_IMMUNITY_NO_DAMAGE)) to_chat(src, SPAN_AVOIDHARM("You shrug off the glob of flame.")) + bullet_message(P, damaging = FALSE) return if(isxeno(P.firer)) @@ -1216,15 +1217,15 @@ /// People getting shot by a large amount of bullets in a very short period of time can lag them out, with chat messages being one cause, so a 1s cooldown per hit message is introduced to assuage that /mob/var/shot_cooldown = 0 -/mob/proc/bullet_message(obj/projectile/P) +/mob/proc/bullet_message(obj/projectile/P, damaging = TRUE) if(!P) return - if(COOLDOWN_FINISHED(src, shot_cooldown)) + if(damaging && COOLDOWN_FINISHED(src, shot_cooldown)) visible_message(SPAN_DANGER("[src] is hit by the [P.name] in the [parse_zone(P.def_zone)]!"), \ SPAN_HIGHDANGER("[isxeno(src) ? "We" : "You"] are hit by the [P.name] in the [parse_zone(P.def_zone)]!"), null, 4, CHAT_TYPE_TAKING_HIT) COOLDOWN_START(src, shot_cooldown, 1 SECONDS) - + var/shot_from = P.shot_from ? " from \a [P.shot_from]" : "" last_damage_data = P.weapon_cause_data if(P.firer && ismob(P.firer)) var/mob/firingMob = P.firer @@ -1232,7 +1233,7 @@ if(ishuman(firingMob) && ishuman(src) && faction == firingMob.faction && !A?.statistic_exempt) //One human shot another, be worried about it but do everything basically the same //special_role should be null or an empty string if done correctly if(!istype(P.ammo, /datum/ammo/energy/taser)) GLOB.round_statistics.total_friendly_fire_instances++ - var/ff_msg = "[key_name(firingMob)] shot [key_name(src)] with \a [P.name] in [get_area(firingMob)] [ADMIN_JMP(firingMob)] [ADMIN_PM(firingMob)]" + var/ff_msg = "[key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)] [ADMIN_JMP(firingMob)] [ADMIN_PM(firingMob)]" var/ff_living = TRUE if(src.stat == DEAD) ff_living = FALSE @@ -1241,15 +1242,15 @@ var/mob/living/carbon/human/H = firingMob H.track_friendly_fire(P.weapon_cause_data.cause_name) else - msg_admin_attack("[key_name(firingMob)] tased [key_name(src)] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) + msg_admin_attack("[key_name(firingMob)] tased [key_name(src)][shot_from] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) else - msg_admin_attack("[key_name(firingMob)] shot [key_name(src)] with \a [P.name] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) - attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P] in [get_area(firingMob)]." - firingMob.attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P] in [get_area(firingMob)]." + msg_admin_attack("[key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)] ([firingMob.x],[firingMob.y],[firingMob.z]).", firingMob.x, firingMob.y, firingMob.z) + attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)]." + firingMob.attack_log += "\[[time_stamp()]\] [key_name(firingMob)] shot [key_name(src)] with \a [P][shot_from] in [get_area(firingMob)]." return - attack_log += "\[[time_stamp()]\] SOMETHING?? shot [key_name(src)] with a [P]" - msg_admin_attack("SOMETHING?? shot [key_name(src)] with \a [P] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) + attack_log += "\[[time_stamp()]\] [P.firer ? P.firer : "SOMETHING??"] shot [key_name(src)] with a [P][shot_from]" + msg_admin_attack("[P.firer ? P.firer : "SOMETHING??"] shot [key_name(src)] with \a [P][shot_from] in [get_area(src)] ([loc.x],[loc.y],[loc.z]).", loc.x, loc.y, loc.z) //Abby -- Just check if they're 1 tile horizontal or vertical, no diagonals /proc/get_adj_simple(atom/Loc1,atom/Loc2) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 14cd03f4fe61..73a254d1fdd6 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -165,9 +165,13 @@ if(specific_reagent) if(istype(R, specific_reagent)) R.last_source_mob = WEAKREF(new_source_mob) + if(R.data_properties) + R.data_properties["last_source_mob"] = R.last_source_mob return continue R.last_source_mob = WEAKREF(new_source_mob) + if(R.data_properties) + R.data_properties["last_source_mob"] = R.last_source_mob /datum/reagents/proc/copy_to(obj/target, amount=1, multiplier=1, preserve_data=1, safety = 0) if(!target) @@ -226,9 +230,9 @@ if(!my_atom) return if(my_atom.flags_atom & NOREACT) return //Yup, no reactions here. No siree. - var/reaction_occured = 0 + var/reaction_occurred = 0 do - reaction_occured = 0 + reaction_occurred = 0 for(var/datum/reagent/R in reagent_list) // Usually a small list if(R.original_id) //Prevent synthesised chem variants from being mixed for(var/datum/reagent/O in reagent_list) @@ -309,10 +313,10 @@ playsound(get_turf(my_atom), 'sound/effects/bubbles.ogg', 15, 1) C.on_reaction(src, created_volume) - reaction_occured = 1 + reaction_occurred = 1 break - while(reaction_occured) + while(reaction_occurred) if(trigger_volatiles) handle_volatiles() if(exploded) //clear reagents only when everything has reacted 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/chem_storage.dm b/code/modules/reagents/chemistry_machinery/chem_storage.dm index 692daef7864f..3df417741d82 100644 --- a/code/modules/reagents/chemistry_machinery/chem_storage.dm +++ b/code/modules/reagents/chemistry_machinery/chem_storage.dm @@ -57,4 +57,4 @@ if(energy >= max_energy) return energy = min(energy + recharge_rate, max_energy) - use_power(1500) // This thing uses up alot of power (this is still low as shit for creating reagents from thin air) + use_power(1500) // This thing uses up a lot of power (this is still low as shit for creating reagents from thin air) 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_reactions/other.dm b/code/modules/reagents/chemistry_reactions/other.dm index 6b60ae89059c..f03abec98fba 100644 --- a/code/modules/reagents/chemistry_reactions/other.dm +++ b/code/modules/reagents/chemistry_reactions/other.dm @@ -385,28 +385,11 @@ to_chat(M, SPAN_WARNING("The solution spews out a metallic shiny foam!")) var/datum/effect_system/foam_spread/s = new() + if (created_volume > 300) + created_volume = 300 s.set_up(created_volume, location, holder, 1) s.start() - -/datum/chemical_reaction/ironfoam - name = "Iron Foam" - id = "ironlfoam" - result = null - required_reagents = list("iron" = 3, "foaming_agent" = 1, "pacid" = 1) - result_amount = 5 - -/datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume) - var/location = get_turf(holder.my_atom) - - for(var/mob/M as anything in viewers(5, location)) - to_chat(M, SPAN_WARNING("The solution spews out a metallic dull foam!")) - - var/datum/effect_system/foam_spread/s = new() - s.set_up(created_volume, location, holder, 2) - s.start() - - /datum/chemical_reaction/foaming_agent name = "Foaming Agent" id = "foaming_agent" 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/recycling/disposal.dm b/code/modules/recycling/disposal.dm index e5770d2f8437..c82109156a6c 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -652,7 +652,7 @@ /obj/structure/disposalpipe/proc/nextdir(fromdir) return dpdir & (~turn(fromdir, 180)) -//Transfer the holder through this pipe segment, overriden for special behaviour +//Transfer the holder through this pipe segment, overridden for special behaviour /obj/structure/disposalpipe/proc/transfer(obj/structure/disposalholder/H) var/nextdir = nextdir(H.dir) H.setDir(nextdir) 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 ba6683321f9c..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)) @@ -168,7 +171,7 @@ override_being_removed = FALSE if(dropship_control_lost) remove_door_lock() - to_chat(user, SPAN_NOTICE("You succesfully removed the lockout!")) + to_chat(user, SPAN_NOTICE("You successfully removed the lockout!")) playsound(loc, 'sound/machines/terminal_success.ogg', KEYBOARD_SOUND_VOLUME, 1) if(!shuttle.is_hijacked) @@ -239,7 +242,7 @@ if(dropship.is_hijacked) return - // door controls being overriden + // door controls being overridden if(!dropship_control_lost) dropship.control_doors("unlock", "all", TRUE) dropship_control_lost = TRUE @@ -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/crashable/lifeboats.dm b/code/modules/shuttle/shuttles/crashable/lifeboats.dm index 415a628be6e5..617ab0869afb 100644 --- a/code/modules/shuttle/shuttles/crashable/lifeboats.dm +++ b/code/modules/shuttle/shuttles/crashable/lifeboats.dm @@ -41,6 +41,9 @@ port_direction = EAST /obj/docking_port/mobile/crashable/lifeboat/evac_launch() + if (status == LIFEBOAT_LOCKED) + return + . = ..() available = FALSE 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/surgery/bones.dm b/code/modules/surgery/bones.dm index f87caaa54758..399f5f5360c3 100644 --- a/code/modules/surgery/bones.dm +++ b/code/modules/surgery/bones.dm @@ -41,6 +41,24 @@ success_sound = 'sound/handling/bandage.ogg' failure_sound = 'sound/surgery/organ2.ogg' +//Use materials to repair bones, same as /datum/surgery_step/mend_encased +/datum/surgery_step/mend_bones/extra_checks(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, repeating, skipped) + . = ..() + if(istype(tool, /obj/item/tool/surgery/bonegel)) //If bone gel, use some of the gel + var/obj/item/tool/surgery/bonegel/gel = tool + if(!gel.use_gel(gel.fracture_fix_cost)) + to_chat(user, SPAN_BOLDWARNING("[gel] is empty!")) + return FALSE + + else //Otherwise, use metal rods + var/obj/item/stack/rods/rods = user.get_inactive_hand() + if(!istype(rods)) + to_chat(user, SPAN_BOLDWARNING("You need metal rods in your offhand to repair [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + if(!rods.use(2)) //Refunded on failure + to_chat(user, SPAN_BOLDWARNING("You need more metal rods to mend [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + /datum/surgery_step/mend_bones/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, tool_type, datum/surgery/bone_repair/surgery) if(surgery.affected_bone) if(tool_type == /obj/item/tool/surgery/bonegel) @@ -118,6 +136,13 @@ target.apply_damage(10, BRUTE, target_zone) log_interact(user, target, "[key_name(user)] failed to begin repairing bones in [key_name(target)]'s [surgery.affected_limb.display_name] with \the [tool], aborting [surgery].") + + if(tool_type != /obj/item/tool/surgery/bonegel) + to_chat(user, SPAN_NOTICE("The metal rods used on [target]'s [surgery.affected_limb.display_name] fall loose from their [surgery.affected_limb].")) + var/obj/item/stack/rods/rods = new /obj/item/stack/rods(get_turf(target)) + rods.amount = 2 //Refund 2 rods on failure + rods.update_icon() + return FALSE //------------------------------------ diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index ea075080121b..c5d7f37a444c 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -573,6 +573,24 @@ success_sound = 'sound/handling/bandage.ogg' failure_sound = 'sound/surgery/organ2.ogg' +//Use materials to mend bones, same as /datum/surgery_step/mend_bones +/datum/surgery_step/mend_encased/extra_checks(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, repeating, skipped) + . = ..() + if(istype(tool, /obj/item/tool/surgery/bonegel)) //If bone gel, use some of the gel + var/obj/item/tool/surgery/bonegel/gel = tool + if(!gel.use_gel(gel.mend_bones_fix_cost)) + to_chat(user, SPAN_BOLDWARNING("[gel] is empty!")) + return FALSE + + else //Otherwise, use metal rods + var/obj/item/stack/rods/rods = user.get_inactive_hand() + if(!istype(rods)) + to_chat(user, SPAN_BOLDWARNING("You need metal rods in your offhand to mend [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + if(!rods.use(2)) //Refunded on failure + to_chat(user, SPAN_BOLDWARNING("You need more metal rods to mend [target]'s [surgery.affected_limb.display_name] with [tool].")) + return FALSE + /datum/surgery_step/mend_encased/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, tool_type, datum/surgery/surgery) if(tool_type == /obj/item/tool/surgery/bonegel) user.affected_message(target, @@ -626,6 +644,11 @@ target.apply_damage(10, BRUTE, target_zone) log_interact(user, target, "[key_name(user)] failed to mend [key_name(target)]'s [surgery.affected_limb.encased].") + if(tool_type != /obj/item/tool/surgery/bonegel) + to_chat(user, SPAN_NOTICE("The metal rods used on [target]'s [surgery.affected_limb.display_name] fall loose from their [surgery.affected_limb].")) + var/obj/item/stack/rods/rods = new /obj/item/stack/rods(get_turf(target)) + rods.amount = 2 //Refund 2 rods on failure + rods.update_icon() /*Proof of concept. Functions but does nothing useful. If fiddling with, uncomment /mob/living/attackby surgery code also. It's pointless processing to have live without any surgeries for it to use.*/ diff --git a/code/modules/tgs/LICENSE b/code/modules/tgs/LICENSE index 2bedf9a63aa0..324c48e993e1 100644 --- a/code/modules/tgs/LICENSE +++ b/code/modules/tgs/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2017-2023 Jordan Brown +Copyright (c) 2017-2024 Jordan Brown Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 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..f734fd0527f0 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -7,7 +7,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) var/list/warned_deprecated_command_runs /datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version) - . = ..() + ..() src.event_handler = event_handler src.version = version @@ -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/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm index a5dae1241a30..bc561e67487a 100644 --- a/code/modules/tgs/core/tgs_version.dm +++ b/code/modules/tgs/core/tgs_version.dm @@ -1,4 +1,5 @@ /datum/tgs_version/New(raw_parameter) + ..() src.raw_parameter = raw_parameter deprefixed_parameter = replacetext(raw_parameter, "/tg/station 13 Server v", "") var/list/version_bits = splittext(deprefixed_parameter, ".") 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/states.dm b/code/modules/tgui/states.dm index c29f83a981d1..0ec570ca9244 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -64,10 +64,10 @@ //if(!client && !HAS_TRAIT(src, TRAIT_PRESERVE_UI_WITHOUT_CLIENT)) if(!client) return UI_CLOSE - // Disable UIs if unconcious. + // Disable UIs if unconscious. else if(stat) return UI_DISABLED - // Update UIs if incapicitated but concious. + // Update UIs if incapicitated but conscious. else if(is_mob_incapacitated()) return UI_UPDATE return UI_INTERACTIVE diff --git a/code/modules/tgui/tgui_number_input.dm b/code/modules/tgui/tgui_number_input.dm index aa189b1d2039..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) @@ -158,11 +159,13 @@ return switch(action) if("submit") - if(!isnum(params["entry"])) - CRASH("A non number was input into tgui input number by [usr]") var/choice = params["entry"] + if(!isnum(choice)) + CRASH("A non number was input into tgui input number by [usr]") + if(choice != choice) //isnan + CRASH("A NaN was input into tgui input number by [usr]") if(integer_only) - choice = round(params["entry"]) + choice = round(choice) if(choice > max_value) CRASH("A number greater than the max value was input into tgui input number by [usr]") if(choice < min_value) 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 9ed3183e5b3d..6f2b63e5b9e8 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -41,7 +41,7 @@ /// Intended to be used in the manner of `TEST_FOCUS(/datum/unit_test/math)` #define TEST_FOCUS(test_path) ##test_path { focus = TRUE; } -/// Logs a noticable message on GitHub, but will not mark as an error. +/// Logs a noticeable message on GitHub, but will not mark as an error. /// Use this when something shouldn't happen and is of note, but shouldn't block CI. /// Does not mark the test as failed. #define TEST_NOTICE(source, message) source.log_for_test((##message), "notice", __FILE__, __LINE__) @@ -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/apc/interior.dm b/code/modules/vehicles/apc/interior.dm index d3947db2b8c8..86b33a89c885 100644 --- a/code/modules/vehicles/apc/interior.dm +++ b/code/modules/vehicles/apc/interior.dm @@ -61,7 +61,7 @@ if(!SG_seat) SG_seat = locate() in get_turf(src) if(!SG_seat) - . += SPAN_WARNING("ERROR HAS OCCURED! NO SEAT FOUND, TELL A DEV!") + . += SPAN_WARNING("ERROR HAS OCCURRED! NO SEAT FOUND, TELL A DEV!") return for(var/obj/item/hardpoint/special/firing_port_weapon/FPW in SG_seat.vehicle.hardpoints) if(FPW.allowed_seat == SG_seat.seat) @@ -76,7 +76,7 @@ if(!SG_seat) SG_seat = locate() in get_turf(src) if(!SG_seat) - to_chat(H, SPAN_WARNING("ERROR HAS OCCURED! NO SEAT FOUND, TELL A DEV!")) + to_chat(H, SPAN_WARNING("ERROR HAS OCCURRED! NO SEAT FOUND, TELL A DEV!")) return if(!SG_seat.buckled_mob && !H.buckled) SG_seat.do_buckle(H, H) 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_bump.dm b/code/modules/vehicles/multitile/multitile_bump.dm index 48706805948f..79789af054fa 100644 --- a/code/modules/vehicles/multitile/multitile_bump.dm +++ b/code/modules/vehicles/multitile/multitile_bump.dm @@ -341,10 +341,24 @@ return TRUE /obj/structure/machinery/m56d_post/handle_vehicle_bump(obj/vehicle/multitile/V) - new /obj/item/device/m56d_post(loc) playsound(V, 'sound/effects/metal_crash.ogg', 20) visible_message(SPAN_DANGER("\The [V] drives over \the [src]!")) - qdel(src) + + if(gun_mounted) + var/obj/item/device/m56d_gun/HMG = new(loc) + transfer_label_component(HMG) + HMG.rounds = gun_rounds + HMG.has_mount = TRUE + if(gun_health) + HMG.health = gun_health + HMG.update_icon() + qdel(src) + else + var/obj/item/device/m56d_post/post = new(loc) + post.health = health + transfer_label_component(post) + qdel(src) + return TRUE /obj/structure/machinery/m56d_hmg/handle_vehicle_bump(obj/vehicle/multitile/V) @@ -352,7 +366,9 @@ HMG.name = name HMG.rounds = rounds HMG.has_mount = TRUE + HMG.health = health HMG.update_icon() + transfer_label_component(HMG) playsound(V, 'sound/effects/metal_crash.ogg', 20) visible_message(SPAN_DANGER("\The [V] drives over \the [src]!")) qdel(src) 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/multitile/multitile_interaction.dm b/code/modules/vehicles/multitile/multitile_interaction.dm index a93872e4e9ac..552d9cea4561 100644 --- a/code/modules/vehicles/multitile/multitile_interaction.dm +++ b/code/modules/vehicles/multitile/multitile_interaction.dm @@ -507,7 +507,7 @@ var/success = interior.enter(dragged_atom, entrance_used) if(success) - to_chat(user, SPAN_NOTICE("You succesfully fit [dragged_atom] inside \the [src].")) + to_chat(user, SPAN_NOTICE("You successfully fit [dragged_atom] inside \the [src].")) else to_chat(user, SPAN_WARNING("You fail to fit [dragged_atom] inside \the [src]! It's either too big or vehicle is out of space!")) return diff --git a/code/modules/vehicles/souto_mobile.dm b/code/modules/vehicles/souto_mobile.dm new file mode 100644 index 000000000000..fa559983d0a4 --- /dev/null +++ b/code/modules/vehicles/souto_mobile.dm @@ -0,0 +1,43 @@ +/obj/vehicle/souto + name = "\improper Soutomobile" + icon_state = "soutomobile" + desc = "Almost, but not quite, the best ride in the universe." + move_delay = 3 //The speed of a fed but shoeless pajamarine, or a bit slower than a heavy-armor marine. + buckling_y = 4 + layer = ABOVE_LYING_MOB_LAYER //Allows it to drive over people, but is below the driver. + +/obj/vehicle/souto/Initialize() + . = ..() + var/image/I = new(icon = 'icons/obj/vehicles/vehicles.dmi', icon_state = "soutomobile_overlay", layer = ABOVE_MOB_LAYER) //over mobs + overlays += I + +/obj/vehicle/souto/manual_unbuckle(mob/user) + if(buckled_mob && buckled_mob != user) + if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + ..() + else ..() + +/obj/vehicle/souto/relaymove(mob/user, direction) + if(user.is_mob_incapacitated()) return + if(world.time > l_move_time + move_delay) + . = step(src, direction) + +/obj/vehicle/souto/super + desc = "The best ride in the universe, for the one-and-only Souto Man!" + health = 1000 + locked = FALSE + unacidable = TRUE + indestructible = TRUE + +/obj/vehicle/souto/super/explode() + for(var/mob/M as anything in viewers(7, src)) + M.show_message("Somehow, [src] still looks as bright and shiny as a new can of Souto Classic.", SHOW_MESSAGE_VISIBLE) + health = initial(health) //Souto Man never dies, and neither does his bike. + +/obj/vehicle/souto/super/buckle_mob(mob/M, mob/user) + if(!locked) //Vehicle is unlocked until first being mounted, since the Soutomobile is faction-locked and otherwise Souto Man cannot automatically buckle in on spawn as his equipment is spawned before his ID. + locked = TRUE + else if(M == user && M.faction != FACTION_SOUTO && locked == TRUE) //Are you a cool enough dude to drive this bike? Nah, nobody's THAT cool. + to_chat(user, SPAN_WARNING("Somehow, as you take hold of the handlebars, [src] manages to glare at you. You back off. We didn't sign up for haunted motorbikes, man.")) + return + ..() 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/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 2239329d3e44..8632159b4f6d 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -18,15 +18,19 @@ var/maxhealth = 100 var/fire_dam_coeff = 1 var/brute_dam_coeff = 1 - var/open = 0 //Maint panel + ///Maint panel + var/open = 0 var/locked = TRUE var/stat = 0 - var/powered = 0 //set if vehicle is powered and should use fuel when moving - var/move_delay = 1 //set this to limit the speed of the vehicle + ///set if vehicle is powered and should use fuel when moving + var/powered = 0 + ///set this to limit the speed of the vehicle + var/move_delay = 1 var/buckling_y = 0 var/obj/item/cell/cell - var/charge_use = 5 //set this to adjust the amount of power the vehicle uses per move + ///set this to adjust the amount of power the vehicle uses per move + var/charge_use = 5 can_block_movement = TRUE //------------------------------------------- @@ -80,10 +84,10 @@ else if(W.force) switch(W.damtype) if("fire") - health -= W.force * fire_dam_coeff + health -= W.force * W.demolition_mod * fire_dam_coeff if("brute") - health -= W.force * brute_dam_coeff - playsound(src.loc, "smash.ogg", 25, 1) + health -= W.force * W.demolition_mod * brute_dam_coeff + playsound(loc, "smash.ogg", 25, 1) user.visible_message(SPAN_DANGER("[user] hits [src] with [W]."),SPAN_DANGER("You hit [src] with [W].")) healthcheck() else @@ -267,48 +271,3 @@ //------------------------------------------------------- /obj/vehicle/proc/update_stats() return - -/obj/vehicle/souto - name = "\improper Soutomobile" - icon_state = "soutomobile" - desc = "Almost, but not quite, the best ride in the universe." - move_delay = 3 //The speed of a fed but shoeless pajamarine, or a bit slower than a heavy-armor marine. - buckling_y = 4 - layer = ABOVE_LYING_MOB_LAYER //Allows it to drive over people, but is below the driver. - -/obj/vehicle/souto/Initialize() - . = ..() - var/image/I = new(icon = 'icons/obj/vehicles/vehicles.dmi', icon_state = "soutomobile_overlay", layer = ABOVE_MOB_LAYER) //over mobs - overlays += I - -/obj/vehicle/souto/manual_unbuckle(mob/user) - if(buckled_mob && buckled_mob != user) - if(do_after(user, 20, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - ..() - else ..() - -/obj/vehicle/souto/relaymove(mob/user, direction) - if(user.is_mob_incapacitated()) return - if(world.time > l_move_time + move_delay) - . = step(src, direction) - - -/obj/vehicle/souto/super - desc = "The best ride in the universe, for the one-and-only Souto Man!" - health = 1000 - locked = FALSE - unacidable = TRUE - indestructible = TRUE - -/obj/vehicle/souto/super/explode() - for(var/mob/M as anything in viewers(7, src)) - M.show_message("Somehow, [src] still looks as bright and shiny as a new can of Souto Classic.", SHOW_MESSAGE_VISIBLE) - health = initial(health) //Souto Man never dies, and neither does his bike. - -/obj/vehicle/souto/super/buckle_mob(mob/M, mob/user) - if(!locked) //Vehicle is unlocked until first being mounted, since the Soutomobile is faction-locked and otherwise Souto Man cannot automatically buckle in on spawn as his equipment is spawned before his ID. - locked = TRUE - else if(M == user && M.faction != FACTION_SOUTO && locked == TRUE) //Are you a cool enough dude to drive this bike? Nah, nobody's THAT cool. - to_chat(user, SPAN_WARNING("Somehow, as you take hold of the handlebars, [src] manages to glare at you. You back off. We didn't sign up for haunted motorbikes, man.")) - return - ..() diff --git a/code/span_macros.dm b/code/span_macros.dm index b6a0e79a956b..218f333d7df9 100644 --- a/code/span_macros.dm +++ b/code/span_macros.dm @@ -50,6 +50,7 @@ #define SPAN_MENTORHELP(X) ("" + X + "") #define SPAN_MENTORSAY(X) ("" + X + "") #define SPAN_MENTORBODY(X) ("" + X + "") +#define SPAN_NICHE(X) "[X]" #define SPAN_PM(X) "[X]" diff --git a/code/stylesheet.dm b/code/stylesheet.dm index ab74dc547cfa..145229e23424 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -31,6 +31,7 @@ em {font-style: normal; font-weight: bold;} .mentorstaff {color: #b5850d; font-weight: bold;} .staffsay {color: #b5850d; font-weight: bold;} .staff_ic {color: #000099;} +.niche {color: #386aff; font-weight: bold;} .name { font-weight: bold;} diff --git a/colonialmarines.dme b/colonialmarines.dme index 4df1bd2afb54..2f859e19fd37 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" @@ -144,8 +145,11 @@ #include "code\__DEFINES\paygrade_defs\cmb.dm" #include "code\__DEFINES\paygrade_defs\dutch.dm" #include "code\__DEFINES\paygrade_defs\marines.dm" +#include "code\__DEFINES\paygrade_defs\mercs.dm" #include "code\__DEFINES\paygrade_defs\navy.dm" +#include "code\__DEFINES\paygrade_defs\paygrade.dm" #include "code\__DEFINES\paygrade_defs\provost.dm" +#include "code\__DEFINES\paygrade_defs\twe.dm" #include "code\__DEFINES\paygrade_defs\upp.dm" #include "code\__DEFINES\paygrade_defs\weyland.dm" #include "code\__DEFINES\typecheck\assemblers.dm" @@ -169,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" @@ -181,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" @@ -295,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" @@ -338,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" @@ -403,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" @@ -501,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" @@ -673,6 +683,8 @@ #include "code\datums\tutorial\ss13\_ss13.dm" #include "code\datums\tutorial\ss13\basic_ss13.dm" #include "code\datums\tutorial\ss13\intents.dm" +#include "code\datums\tutorial\xenomorph\_xenomorph.dm" +#include "code\datums\tutorial\xenomorph\xenomorph_basic.dm" #include "code\datums\weather\weather_event.dm" #include "code\datums\weather\weather_map_holder.dm" #include "code\datums\weather\weather_events\big_red.dm" @@ -776,9 +788,10 @@ #include "code\game\jobs\job\civilians\support\working_joe.dm" #include "code\game\jobs\job\command\command.dm" #include "code\game\jobs\job\command\auxiliary\auxiliary_support_officer.dm" +#include "code\game\jobs\job\command\auxiliary\cas_pilot.dm" #include "code\game\jobs\job\command\auxiliary\crew_chief.dm" +#include "code\game\jobs\job\command\auxiliary\dropship_pilot.dm" #include "code\game\jobs\job\command\auxiliary\intel.dm" -#include "code\game\jobs\job\command\auxiliary\pilot.dm" #include "code\game\jobs\job\command\auxiliary\senior.dm" #include "code\game\jobs\job\command\cic\captain.dm" #include "code\game\jobs\job\command\cic\executive.dm" @@ -817,6 +830,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" @@ -829,7 +843,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" @@ -861,6 +874,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" @@ -916,12 +930,14 @@ #include "code\game\machinery\doors\door.dm" #include "code\game\machinery\doors\firedoor.dm" #include "code\game\machinery\doors\multi_tile.dm" -#include "code\game\machinery\doors\poddoor.dm" #include "code\game\machinery\doors\railing.dm" #include "code\game\machinery\doors\runed_sandstone.dm" -#include "code\game\machinery\doors\shutters.dm" #include "code\game\machinery\doors\unpowered.dm" #include "code\game\machinery\doors\windowdoor.dm" +#include "code\game\machinery\doors\poddoor\almayer.dm" +#include "code\game\machinery\doors\poddoor\poddoor.dm" +#include "code\game\machinery\doors\poddoor\two_tile.dm" +#include "code\game\machinery\doors\poddoor\shutters\shutters.dm" #include "code\game\machinery\embedded_controller\docking_program.dm" #include "code\game\machinery\embedded_controller\embedded_controller_base.dm" #include "code\game\machinery\embedded_controller\embedded_program_base.dm" @@ -933,6 +949,7 @@ #include "code\game\machinery\kitchen\smartfridge.dm" #include "code\game\machinery\medical_pod\autodoc.dm" #include "code\game\machinery\medical_pod\bodyscanner.dm" +#include "code\game\machinery\medical_pod\bone_gel_refill.dm" #include "code\game\machinery\medical_pod\medical_pod.dm" #include "code\game\machinery\medical_pod\sleeper.dm" #include "code\game\machinery\pipe\construction.dm" @@ -962,7 +979,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" @@ -1232,6 +1251,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" @@ -1274,13 +1294,17 @@ #include "code\game\objects\structures\musician.dm" #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\platforms.dm" +#include "code\game\objects\structures\prop_mech.dm" #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" @@ -1387,10 +1411,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" @@ -1556,11 +1578,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" @@ -1755,8 +1782,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" @@ -1958,7 +1987,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" @@ -1997,6 +2025,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" @@ -2038,23 +2067,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" @@ -2135,6 +2165,7 @@ #include "code\modules\organs\wound.dm" #include "code\modules\paperwork\carbonpaper.dm" #include "code\modules\paperwork\clipboard.dm" +#include "code\modules\paperwork\desk_bell.dm" #include "code\modules\paperwork\filingcabinet.dm" #include "code\modules\paperwork\folders.dm" #include "code\modules\paperwork\notepad.dm" @@ -2346,12 +2377,14 @@ #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" #include "code\modules\unit_tests\_unit_tests.dm" #include "code\modules\vehicles\cargo_train.dm" #include "code\modules\vehicles\powerloader.dm" +#include "code\modules\vehicles\souto_mobile.dm" #include "code\modules\vehicles\train.dm" #include "code\modules\vehicles\vehicle.dm" #include "code\modules\vehicles\vehicle_misc_objects.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/dependencies.sh b/dependencies.sh index f88c2f9b0a4b..69f16156b9d7 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -20,4 +20,4 @@ export SPACEMAN_DMM_VERSION=suite-1.7.2 # Python version for mapmerge and other tools export PYTHON_VERSION=3.7.9 -export OPENDREAM_VERSION=0.2.0 +export OPENDREAM_VERSION=tgs-min-compat diff --git a/html/changelogs/AutoChangeLog-pr-5006.yml b/html/changelogs/AutoChangeLog-pr-5006.yml new file mode 100644 index 000000000000..fd836ccfead0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5006.yml @@ -0,0 +1,6 @@ +author: "realforest2001" +delete-after: True +changes: + - rscadd: "Added AI Core camera consoles to CE, CO and Brig offices, along with CIC and Lifeboat bubble." + - maptweak: "Added Tech Control Console to ARES Core." + - rscadd: "Added Tech Unlock logs to ARES Interface" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-5488.yml b/html/changelogs/AutoChangeLog-pr-5488.yml deleted file mode 100644 index b740c0eaf201..000000000000 --- a/html/changelogs/AutoChangeLog-pr-5488.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fixed mobs merged with weeds remaining ignited" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-6067.yml b/html/changelogs/AutoChangeLog-pr-6067.yml new file mode 100644 index 000000000000..03b9b8f701d4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-6067.yml @@ -0,0 +1,4 @@ +author: "QuickLode" +delete-after: True +changes: + - qol: "Moves CL's Office and SEA's Office phone lines to \"Offices\" category." \ No newline at end of file diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml index e5b2178499d8..01bc18eaee1b 100644 --- a/html/changelogs/archive/2024-01.yml +++ b/html/changelogs/archive/2024-01.yml @@ -257,3 +257,207 @@ - bugfix: Fancy closet now works as desired and runtime free. - rscadd: Added an area for the closet to use instead of APC interior. - code_imp: Repathed /area/vehicle to /area/interior/vehicle. +2024-01-20: + Drathek: + - bugfix: The M56D and the M2C now retain their labels when disassembled + - bugfix: The M56D can now be charger crushed when not fully assembled + - bugfix: The M56D being run over by a vehicle now undeploys the gun correctly (so + it retains the gun if it had a gun) + - bugfix: Fix an edge case that could duplicate the M56D when charger crushed + - balance: The M56D now retains the health of the gun through all of its different + disassembled states + - bugfix: Fixed mobs merged with weeds remaining ignited + SabreML: + - bugfix: Fixed the 'busy' circle icon being drawn above darkness and screen effects. +2024-01-21: + ClairionCM: + - qol: made whistles less spammy + Huffie56: + - rscadd: 'Add some boards to the board vendor in engi on almayer(Air Alarm Electronics, + Security Camera Monitor, + + Station Alerts, Arcade, Atmospheric Monitor).' + Releasethesea: + - rscadd: adds prescription variants of the orange, black, and M1A1 goggles + SabreML: + - rscadd: Made larvae and facehuggers able to use custom emotes. + Vicacrov: + - bugfix: Fixes engine/weapon attach points layering below the dropship walls. +2024-01-22: + cuberound: + - balance: AP rocket applies 3 weaken and 3 paralyze no matter if you hit the mob + directly(from 2), at max range (from 2) or tile under it (from 4) + - balance: indirect AP rocket does the same damage to walls and mobs +2024-01-23: + realforest2001: + - rscadd: Added Whitelist Panel for whitelist senators to manage their own whitelists. + - refactor: Whitelist.txt is no longer functional, owing to the new system. + - rscdel: Removed "Alien Whitelist" checks regarding base SS13 races. +2024-01-24: + BeagleGaming1: + - balance: Repairing bones with bone glue costs a portion of the bone glue's resources + - balance: Repairing bones with a screwdriver costs metal + - rscdel: Removed bone glue from the medilathe + - spellcheck: New description for bone glue + Ben10083: + - maptweak: Workin Joey has returned to the Maintenance Bar + Birdtalon: + - rscadd: Xenomorph basic tutorial. + SabreML: + - bugfix: Fixed being gibbed with the Ctrl or Alt key held sometimes breaking movement + as an observer. + SpartanBobby: + - maptweak: A bunch of edits to big red and big red nightmares for the following + areas, Northcaves, Medical Morgue, maint between cargo and general store, LZ2, + North Libary, EVA, dorms bathroom + VileBeggar: + - balance: M39 burst scatter multiplier reduced from 7 to 4. + fira: + - bugfix: Fixed an exploit involving playing cards. + mullenpaul: + - refactor: switched from infernojs to react + private-tristan: + - rscadd: Added a new xeno tip about where to target. + - spellcheck: changed a few tips' wording. + - rscdel: Removed an outdated xeno tip about slashing NVGs + realforest2001: + - rscadd: Psychic Whisper now broadcasts to deadchat too. + - bugfix: Psychic Whisper can now be used while lying down. +2024-01-25: + Drathek: + - bugfix: Fixed more item exploits + - bugfix: Fixed lingering overlays in inventories for metal stacks and cards + Huffie56: + - refactor: creating it's own file for souto mobile code instead of it being in + vehicle.dm. + TheGamerdk: + - rscadd: A hive collapse (No new Queen) while at 3 xenos or below is now a marine + major, instead of a minor. +2024-01-26: + Huffie56: + - bugfix: corrected the name of an area from "Lower Deck Starboard Hull" to "Lower + Deck Starboard-Aft Hull". + - bugfix: added apc's to area that where missing one. + - maptweak: added some areas to almayers (constr site, Starboard-Bow Maintenance, + Bow Hull(port and starboard),cryo maintenance. + Johannes2262: + - rscadd: Added three more magazines to each of the MP's handgun cases + LTNTS: + - rscadd: bolted version of blood and medical vendors + - rscadd: pill bottle crate + - balance: cheaper medical crates from req + - balance: less items in med vendors, mainly pill bottles + cuberound: + - rscadd: added messages when the CAS sonic boom is played + - soundadd: reduced volume falloff of CAS sonic boom + - bugfix: allows custom flamethrower tanks to be filled directly from oxygentank + realforest2001: + - rscadd: Adds paygrade defines for PMCs, VAI, Mercenaries and TWE. + - code_imp: Adds code to populate reference lists for certain paygrades. + - bugfix: Fixes PMC synth not using the correct grade. + - rscadd: Syndicate ID card repathed and works with paygrades. + - spellcheck: The latejoin menu marine category title is now Marines instead of + Squad Riflemen, as this was an inaccuracy. +2024-01-27: + Contrabang: + - bugfix: Dchat is no longer notified of hugs from tutorials + SabreML: + - bugfix: Fixed the xeno 'queen locator' giving the wrong location when a tunnel + was selected. +2024-01-29: + BadAtThisGame302: + - rscadd: Added a Researcher on Trijent. + - rscadd: Added a CMB Deputy on Trijent. + - rscadd: Added a second RD uniform. + - code_imp: changed the Trijent Security Guard to not use a USCM MP Hat and trenchcoat. + - code_imp: changed a not used "synthetic service uniform" to it's before shamelessly + taken RD Variant. + Contrabang: + - spellcheck: Fixed a few uncommon typos across the entire codebase + Doubleumc: + - refactor: projectile paths are the same in both directions, A->B and B->A + Drathek: + - rscadd: The game will now change game mode to default and initiate a map vote + if a game mode fails to start twice and there are no admins online. + - bugfix: Fixed a runtime during game mode voting + - admin: Admins can now use the Start Round verb to bypass a gamemode's checks + SabreML: + - spellcheck: Made observers see the marine version of CAS warnings, rather than + the xeno one. + private-tristan: + - bugfix: Civilian survs will now spawn with snow gear on snow maps. + realforest2001: + - rscadd: Added biometric checks to command announcements. + - code_imp: Security camera autoname is now determined by a variable rather than + hardcode. +2024-01-30: + Huffie56: + - bugfix: fix upper deck having disposal pipes west of CIC going on a loop. + - bugfix: fix south of alpha briefing having disconnected pipes and disposal from + the main loops. + - bugfix: fix south shooting range having is disposal outside and disposal pipe + east going over vents. + - bugfix: fix pipes in req rest room going in the walls or windows. + - bugfix: fix pipes in control tower in hangar going bellow the windows instead + of the doors. + - refactor: added a few maintenance areas(mess, Port and starboard Midship) ,a few + other hull areas( lower and upper stair hull, Port and starboard stern and bow + hull) + - maptweak: corrected a colored tile west of CIC being the wrong sprite. + InsaneRed: + - balance: You now only need 1 burrowed larva to trade it for evolution as Queen + instead of 3 burrowed larva. + SabreML: + - bugfix: Fixed ponchos not having icon states on specific maps. + mullenpaul: + - code_imp: fixes sticky messages in STUI + - refactor: STUI is now a TSX component +2024-01-31: + Birdtalon: + - code_imp: Added procs for applying a root (immobilise) + Contrabang: + - bugfix: Chestbursting larva no longer get hive orders when there are no hive orders + CyberSpyXD: + - rscadd: Added a new backstory blurb for friendly UPP and some variance to the + backstory of UPP synthetics. + Drathek: + - balance: Increased double throw delay from .4s to 1.5s + Huffie56: + - refactor: turn some "# and use the proper define from colour.dm for 21 files. + LC4492: + - rscadd: Adds a variation of the chef's apron, "Medical's apron", to be used by + medical personnel, mainly nurses. + - bugfix: Fixed the code in the prep vendors to make things of different groups + not act like they are of the same group, like how you couldn't take a labcoat + and a snowcoat, only one of both, which does not make sense. + - code_imp: Update of the medical's vendor preps. Exclusion of most part of medical's + equipment when waking up from cryo. Addition of latejoin landmarks to the same + place where they usually wake up as firstjoiners. + - maptweak: Added the landmarks to the map and changed the CMO's vendor to an unused + space in his room to improve on item grabbing, because the items were being + covered by the bed's sheet, and making player's life to take things from it + more difficult. Also re-added a bedsheet in the medical's area that some old + PR somehow removed. + LTNTS: + - bugfix: removed the tiny square in the MP beret to stop it looking like a french + mime's beret + - refactor: reorganized cm_hats and cm_suits for easier spriter usage + - spellcheck: fixed area typo Marshall to Marshal + Oyu07: + - bugfix: Widens Dropship fabricator UI. Points for ammo are no longer cut off + - bugfix: character pref Green Beret is no longer invisible + SabreML: + - bugfix: Fixed facehuggers being able to flip tables. + - bugfix: Fixed a stray pixel in the warrior 'walking' sprite. + - bugfix: Made the Queen able to automatically climb ledges. + blackdragonTOW: + - soundadd: brought dropship_crash down from 0db to -6db + private-tristan: + - balance: Xenos do greatly increased damage to metal foam (0.8x to 1.75x) + - balance: Iron metal foam hp decreased from 85 to 75, meaning that all T3s other + than boiler can instantly break it. + - balance: Metal foam grenades now create iron foam. + - balance: Aluminum foam reactions are now cap'd at 300u + - balance: amount of metal foam grenades in req doubled. + - balance: Surplus explosive pack now contains 2 metal foam grenades + - rscdel: metal foam is no longer able to be created in chemistry diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml new file mode 100644 index 000000000000..f344da79decb --- /dev/null +++ b/html/changelogs/archive/2024-02.yml @@ -0,0 +1,477 @@ +2024-02-01: + BadAtThisGame302: + - bugfix: fixed the CMB Trijent Survivor + BadAtThisGame302, AmoryBlaine: + - rscadd: Added new brown laceups, adds new ties and tweaks current ones, as well + as new suit, bomber, vest, and corporate clothes to the game. Sprites by AmoryBlaine. + - imageadd: added six new Corporate clothes sprites (Casual/Ivy/Formal/Black/Brown/Blue), + three suit vest sprites (Brown/Tan/Grey), three bomber jacket sprites (Khaki/Red/Grey), + and five suit jacket sprites (Khaki/Formal/Black/Brown/Blue). + Huffie56: + - rscdel: Removed "security robot module" from robot_module.dm + - refactor: change the name of Ripley in game to P-1000, gygax to MAX, Durand to + MOX, Odysseus to Alice to be more in line with the lore. +2024-02-02: + BadAtThisGame302: + - rscadd: Replaced the Political Survivor surv name with State Contractor + - rscadd: Added a USCMC Recruiter to the Solaris surv pool. + - rscadd: Added a USCM Survivor template anycase anyone wants to add USCM Survivors + to other maps. + - bugfix: Every other surv has no 'Ridge' next to Solaris in their assignments, + only the CL. Fixes this. + - spellcheck: Embellished the Solaris Ridge announce text, to make it so the Company + and more fluff about it's actual role like the wiki states. + Diegoflores31: + - rscadd: Disabler bolts now deal a little oxygen damage on each hit. + - rscadd: Replaces Skill lock system on stunbatons with a high chance of hiting + yourself + - qol: adds jittery and sway to Stunbaton and Disabler beams + Drathek: + - balance: Compared to originally, corpsmen now have access to medbay vendors, and + chemistry only requires chemistry access. + - bugfix: 'Fixed unintended change to medbay vendors access:' + Huffie56: + - maptweak: added warning stripe bellow doors that didn't have them. + - maptweak: Removed a bed sheet in medical to restore the lore of the unknown alpha + that stole it. + - maptweak: Reconnect the CIC armory to one of the brig door armory allowing them + to open it at a distance. + InsaneRed: + - balance: Oppressor tailstab no longer ignores armor, and it now roots instead + of stunning. + NervanCatos: + - qol: added M3-L Pattern Light Armor to IO Prep + SabreML: + - bugfix: Fixed lesser drones not being able to flip tables. + VileBeggar: + - rscadd: Added the XM51 breaching scattergun, available in small quantities as + a restricted weapon within Requisitions. + blackdragonTOW: + - imageadd: altered the turret flag to the UA flag, from generic orange + - bugfix: Flag turrets now correct reference the destroyed state + harryob: + - bugfix: medals should save more reliably + hislittlecuzingames: + - balance: Nightmare inserts of crashed ships on Solaris (big red) and Desert dam + can do surgury in them INSTANCE EDIT + mullenpaul: + - refactor: camera consoles now use camera manager component + private-tristan: + - balance: Burrower can no longer spawn as part of the feral xeno ERT +2024-02-03: + Drathek: + - ui: Refactored backend for Weapon Stats panel to use spritesheets instead. +2024-02-04: + BadAtThisGame302: + - bugfix: fixed the CL jackets/vests/bomber jackets sprites. + Drathek: + - imageadd: Changed green fire sprites to work better with lights + - balance: Reduced how many fire stacks a flaregun shot provides + - balance: Reduced starshell's damage, but fixed the application of the incend bullet + trait. + - balance: Reverted damage changes to tazers and batons. + Huffie56: + - bugfix: 'revert PR #5553 as it is causing issues with color on atmo pipe.' + LTNTS: + - imageadd: stamp sprites for TWE, UPP and CLF + - code_imp: added TWE, UPP and CLF channels + MistChristmas: + - maptweak: Add Brig Photocopier + Segrain: + - bugfix: Some cases of calculations for "time remaining until something" no longer + display incorrect results. + Stakeyng: + - qol: Removes the need to cycle through helmet visors that contain HUD effects + 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..1ad71612a6fb --- /dev/null +++ b/html/changelogs/archive/2024-03.yml @@ -0,0 +1,337 @@ +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"). +2024-03-14: + Vicacrov: + - rscadd: Added an option to hear or silence announcement audio cues (queen screech, + CIC beep, etc.) while being an observer. + nauticall: + - 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. +2024-03-15: + Drathek: + - balance: The light replacer can now be used to skip the crowbar, welding, and + wire steps when repairing colony lights. + - bugfix: Fixes SMES and APC interfaces not checking adjacency or incapacitated + states + - spellcheck: Fixed examine text for colony lights (improper names and not powered + text) + Huffie56: + - balance: adding M44 Marksman Speed Loader and SU-6 Smartpistol Magazine in vendor + of (medic,comtech, SL) at a cost of 6 each. + - balance: adding M44 Marksman Speed Loader and SU-6 Smartpistol Magazine in vendor + of (rifleman, TL, IO) at a cost of 10 each. + - balance: adding VP78 case and SU-6 case in vendor of IO at a cost of 15 each. + - balance: adding M44 Marksman Speed Loader and SU-6 Smartpistol Magazine in SG + vendor for 10 point each. + - balance: adding the ability for to buy smartgun DV9 battery for 15 points in SG + vendor. + Segrain: + - qol: Middleclicking beds/chairs/etc is now a shortcut for buckling to them. +2024-03-16: + nauticall: + - bugfix: Makes pill bottle caps appear on closed pill bottles again. +2024-03-17: + Huffie56: + - refactor: refactored areas replaced stern hallway by aft added two new hallway + area(fore, midship) + - refactor: refactored areas replaced midship maintenance by for and added two new + maintenance areas(fore, aft) with each starboard and port side. + - maptweak: removed all the emergency shutter that weren't at the borders of each + areas. + - maptweak: added back the bear belt in a closet in a dormitory. + - maptweak: reconnect some air pipe in an hallway north upper engi. + Segrain: + - bugfix: Ghosts no longer miss announcements seemingly at random. + SpartanBobby: + - maptweak: Removes some ledges on LV522 + - maptweak: Removes unintended hullwalls on LV522 + realforest2001: + - rscadd: Updated the Insanity law description. +2024-03-18: + Katskan: + - balance: changed medical 4 skill speed multiplier from tier 2 to a non-standard + 0.35 + - balance: changed defib medical skill speed scaling + Nanu308: + - mapadd: Added the Galaxy Pizza Space Diner ERT station, for all your outer expanse + food needs! + - maptweak: Placed APC's on ert stations and minor tweaks+fixes. + Segrain: + - bugfix: Professor Dummy in CMO's office now works properly. +2024-03-19: + 567Turtle: + - rscadd: PO has been split into two roles, the gunship pilot and the dropship pilot, + no more arguing over who gets CAS. + Drathek: + - bugfix: Overdose death messages will now mention last mob that contributed to + the OD + - admin: Many additions to attack, say, interact, and niche logging + - admin: Temporary muted messages/actions are now niche logged instead of say logged + - ui: Added niche log filtering to TGChat (still requires admin niche logs preference) + SabreML: + - admin: Made the 'Join as Xeno' button disable the user's larva protection when + clicked by a moderator. + TheGamerdk: + - bugfix: Synths can now have their heads reattached without being sent to limbo-crit-hell. + TotalEpicness5: + - bugfix: Stamina damage can now be ahealed. + Waseemq1235: + - rscdel: Removes HEAP from all UPP vendor gear presets +2024-03-20: + Huffie56: + - maptweak: Fix ugliness at 5 different areas. + - maptweak: added access restriction for doors that lack them(OT workshop, engi + dormitory, Upper engi back storage door.) + Katskan: + - rscadd: Added some new uniforms and hats + - rscadd: Added blood packs to vendor for 5 points, equal to a pill bottle + - rscadd: Added tactical prybar to vendor for 5 points + - rscadd: Added some surgical tools, very expensive costs essentially your entire + point budget to buy + realforest2001: + - rscadd: Changed all marine presets to use Dress Blues as their dress equipment. + - rscdel: Excluding Whiskey Outpost, removed all previous dress equipment from vendors. +2024-03-21: + BadAtThisGame302: + - rscadd: Heavily Updated Corpse Code. + Birdtalon: + - admin: Xeno eggs now take fingerprints. + Huffie56: + - qol: 'add some balloons for CPR : one is for when it''s a success and the other + is when it''s a failure.' + - refactor: refactored poddoor file and shutters file. + Steelpoint: + - maptweak: Adds several cardboard box spawns in to squad prep rooms. +2024-03-23: + Drathek: + - ui: Tweaked layout for role preferences windows + Vicacrov: + - rscadd: Tacmap announcements are now also muted if you have hear/silence ghost + announcements toggled on. +2024-03-24: + DN9123: + - rscadd: Added a couple of fortunes in strings/fortunes.txt + - spellcheck: fixed a grammar error I found in strings/fortunes.txt + Segrain: + - admin: Spawning nondeathsquad MARSOC now properly recognises "current location" + option. + ihatethisengine: + - bugfix: Fixed delayed launch launching lifeboat even if locked by queen +2024-03-25: + Birdtalon, Kat 'APC' Smith, Thwomp, Waseemq1235: + - rscadd: Desk bell for cargo, medbay, brig, and AI reception. + - soundadd: Desk bell sound effect. +2024-03-26: + Huffie56: + - bugfix: move semiotic in north evac pod so you can't see it when your behind in + hull maintenance. + InsaneRed: + - balance: Wardens can heal eachother once again, but only half the health + - qol: Gives SPAN_XENOHIGHDANGER to heal/reju on positives, since its very easy + to miss if you actually healed soembody. + MobiusWon: + - rscadd: Uniforms vend with USCM patch. + SabreML: + - refactor: Refactored the bodypart selection keybinds. + - bugfix: Fixed a bug where selecting a new body zone would sometimes modify the + wrong HUD element. + vero5123: + - bugfix: fixes users not being able to resist out of the stasis bags + - bugfix: Fixes zombies missing claws on transformation +2024-03-27: + Ben10083: + - rscadd: Working Joes can now respawn as a Working Joe after 15 minutes, previous + restriction on respawn removed. + - admin: New flag to disable Working Joe respawns + - rscadd: Hazard Joes now have their own emotes + - code_imp: Hazard Joes now a seperate species + - code_imp: Updated isworkingjoe and new ishazardjoe define + - refactor: Working Joe emotes and emote categories now a globally defined list + - soundadd: New Hazard Joe voicelines + Katskan: + - balance: Autocompressor gives 7 seconds of grace time every 7.5 seconds, instead + of 7 seconds every 10 seconds. Approximately 93% efficient, increased from 70% + efficient. + QuickLode: + - rscadd: adds a purple armband and uniform to Synth Vendor + - rscadd: adds a renamed uniform commonly used by colonists with a better name + Vicacrov: + - rscadd: Added holocards to health scans to improve communication between medical + players. You can now assign holocards via the health analyzer and the body scanner + as well. The health scan also tells you what the current holocard's colour means. + - rscadd: Added a new purple holocard to tag infected marines. + - rscdel: Clicking yourself no longer removes your own holocard. +2024-03-29: + SpartanBobby: + - maptweak: Changes to hullwall placment on Kutjevo this PR should allow you to + break open much more of the colony buildings aswell as get into new areas to + flank and play around + blackdragonTOW: + - code_imp: Added a third level of zoom to the Toggle Zoom verb + vero5123: + - bugfix: Fixes teleporting when placing mobs onto chairs and beds. +2024-03-30: + cuberound: + - qol: old cosmetic NVG can not be broken + iloveloopers: + - balance: You can now use the mortar while shipside during hijack, but only once. + - rscadd: Ghosts now get a warning when a custom mortar shell is about to land. +2024-03-31: + SpartanBobby: + - maptweak: 'Changes to LV522: Less ledges overall' + - maptweak: 'Changes to LV522: More breakable entry to the reactor' + - maptweak: 'Changes to LV522: Removed dead end in reactor' + - maptweak: New weedable zone west of LZ2 T-comms tower diff --git a/html/changelogs/archive/2024-04.yml b/html/changelogs/archive/2024-04.yml new file mode 100644 index 000000000000..f595daee9f56 --- /dev/null +++ b/html/changelogs/archive/2024-04.yml @@ -0,0 +1,27 @@ +2024-04-01: + Drathek: + - rscadd: Moved holocards to the squad hud + Huffie56: + - refactor: refactored the lambda areas. + - maptweak: turned south padlock into a checkpoint. + - bugfix: replace space bellow door in the temple by proper floor. + - maptweak: added a missing platform part. + SabreML: + - bugfix: Fixed a runtime error caused when trying to open an already opened backpack. + - bugfix: Fixed a few runtime errors caused by the 'Cycle Helmet HUD' keybind. + - bugfix: Fixed a runtime error preventing a 'Marine Minor' (Hive collapse) roundend + state. + Segrain: + - bugfix: Mortar works properly once again. + SpartanBobby: + - maptweak: LV522 Cargo containers keeping FORECON out of the crashed ship have + been moved back slightly allowing marines and xenos a new flank route + realforest2001: + - code_imp: Removes an unused camera var. +2024-04-02: + sleepynecrons: + - imageadd: added missing backpack onmob states for "classic" gearset +2024-04-03: + vero5123: + - bugfix: lowers the scalpel and chunk box's ability to destroy various structures. + - rscadd: chunk box is now a melee weapon diff --git a/icons/effects/Targeted.dmi b/icons/effects/Targeted.dmi index fce948574a3d..24b82a90fe6c 100644 Binary files a/icons/effects/Targeted.dmi and b/icons/effects/Targeted.dmi differ diff --git a/icons/effects/fire.dmi b/icons/effects/fire.dmi index 673f1c48de1f..a36e22b9c871 100644 Binary files a/icons/effects/fire.dmi and b/icons/effects/fire.dmi differ 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/misc/tutorial.dmi b/icons/misc/tutorial.dmi index d4a4e65963ba..31c9f72d3853 100644 Binary files a/icons/misc/tutorial.dmi and b/icons/misc/tutorial.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/hud/marine_hud.dmi b/icons/mob/hud/marine_hud.dmi index 5de7b83a9309..8eefce871099 100644 Binary files a/icons/mob/hud/marine_hud.dmi and b/icons/mob/hud/marine_hud.dmi differ diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi index 4758f430a498..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 8a10910930dd..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 17b4073c748c..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 df30d657122b..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..4e8c1d59a41a 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..b8285acc65ad 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 a230aa7e4300..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/suit_slot.dmi b/icons/mob/humans/onmob/suit_slot.dmi index e83ce1301fa7..a9142060ab75 100644 Binary files a/icons/mob/humans/onmob/suit_slot.dmi and b/icons/mob/humans/onmob/suit_slot.dmi differ diff --git a/icons/mob/humans/onmob/ties.dmi b/icons/mob/humans/onmob/ties.dmi index c8fb98c0c5c1..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 a140c4db6d8b..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 ae84c1a1b9eb..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 e871f7749145..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..e540af809714 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 38ff421cfda5..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 ae446e174575..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 7db2158ee5bf..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 4d99b2ea4b2c..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 f236480c7b9d..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 8eb3d03d68c7..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/paper.dmi b/icons/obj/items/paper.dmi index fa8858e8a17b..b15d4be6076d 100644 Binary files a/icons/obj/items/paper.dmi and b/icons/obj/items/paper.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_boxes/boxes_and_lids.dmi b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi index 42e7c54bbd2b..8655a8bfcf2c 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/boxes_and_lids.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi b/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi index eeef3f91412d..b1b181c182eb 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/handfuls.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi index 911b727ba5f6..d9a8d5da3fbc 100644 Binary files a/icons/obj/items/weapons/guns/ammo_boxes/text.dmi and b/icons/obj/items/weapons/guns/ammo_boxes/text.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi index f6bddae9b090..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/attachments/stock.dmi b/icons/obj/items/weapons/guns/attachments/stock.dmi index d3a95284a23f..0867f60d6430 100644 Binary files a/icons/obj/items/weapons/guns/attachments/stock.dmi and b/icons/obj/items/weapons/guns/attachments/stock.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi index a7586a656965..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/guns_by_map/classic/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/back.dmi index 63b197dd36c4..fb21be90f8a7 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi index 22eae6bd0ba4..df823405fac3 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi index b9aa8907a806..4a31d29042d4 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi index dd432a1fa2c1..21d7b04f6f05 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi index 1306cbb7d8f6..0d3b1f715571 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/classic/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi index 63771f7ff133..9e5e8d4c9c59 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi index 6530e1d6967d..02021756a805 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi index cae152f237ef..a91d071754ad 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi index 9df4a0d86ccc..e408fff750da 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi index 2f5324fdb46b..764a51e8b390 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/desert/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi index 04718caddcd1..5cc73c3e9ec5 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi index 717a1182824e..25f8b823289c 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi index 9ce7e553ba45..c5b3b3f3fe73 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi index 9f69b4ac6815..9c2562d5a921 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi index b51ed6044347..0aa7f686a749 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/jungle/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi index b72963ff7917..8ad5352cc440 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi index 2c8dedb6cf35..a837e7061417 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi index fbc98874a4f6..171d0d0eca03 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi index 6e7b9cb8c9b5..1de053b6f969 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/snow/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi index e849b8134004..5996089a64d6 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/back.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi index c844b637ab7e..ea84f3e69e21 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_lefthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi index 09029fb61f2b..78e322e3db8b 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_obj.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi index 78bebfdd4bd9..1b2c96fb9518 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/guns_righthand.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi b/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi index 3fee1087811a..738add8e1df4 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi and b/icons/obj/items/weapons/guns/guns_by_map/urban/suit_slot.dmi differ diff --git a/icons/obj/items/weapons/guns/handful.dmi b/icons/obj/items/weapons/guns/handful.dmi index bbea110531ea..e3fe380c9dfe 100644 Binary files a/icons/obj/items/weapons/guns/handful.dmi and b/icons/obj/items/weapons/guns/handful.dmi differ diff --git a/icons/obj/items/weapons/guns/lineart.dmi b/icons/obj/items/weapons/guns/lineart.dmi index 5d52fd658290..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/items/weapons/guns/lineart_modes.dmi b/icons/obj/items/weapons/guns/lineart_modes.dmi new file mode 100644 index 000000000000..787fdd34f241 Binary files /dev/null and b/icons/obj/items/weapons/guns/lineart_modes.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index b62860559b16..1dc934be2103 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.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/defenses/planted_flag.dmi b/icons/obj/structures/machinery/defenses/planted_flag.dmi index 40616eb0caca..5b9fbb6e6f22 100644 Binary files a/icons/obj/structures/machinery/defenses/planted_flag.dmi and b/icons/obj/structures/machinery/defenses/planted_flag.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/props/stationobjs.dmi b/icons/obj/structures/props/stationobjs.dmi index 8d0bf3b9377d..09868e92fd88 100644 Binary files a/icons/obj/structures/props/stationobjs.dmi and b/icons/obj/structures/props/stationobjs.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/bigredv2.json b/maps/bigredv2.json index ac519f37fa84..996d0d44422d 100644 --- a/maps/bigredv2.json +++ b/maps/bigredv2.json @@ -11,6 +11,7 @@ "/datum/equipment_preset/survivor/engineer/solaris", "/datum/equipment_preset/survivor/trucker/solaris", "/datum/equipment_preset/survivor/security/solaris", + "/datum/equipment_preset/survivor/uscm/solaris", "/datum/equipment_preset/survivor/colonial_marshal/solaris", "/datum/equipment_preset/survivor/corporate/solaris", "/datum/equipment_preset/survivor/flight_control_operator", @@ -25,7 +26,7 @@ 0.0 ], "map_item_type": "/obj/item/map/big_red_map", - "announce_text": "We've lost contact with Weyland-Yutani's research facility, Solaris Ridge. The ###SHIPNAME### has been dispatched to assist.", + "announce_text": "Weyland-Yutani has lost contact with one of its Biological Storage Facilities, Solaris Ridge, on the planet of LV-1413. The ###SHIPNAME### has been requested to look into the blackout by Weyland-Yutani.", "monkey_types": [ "neaera" ], diff --git a/maps/desert_dam.json b/maps/desert_dam.json index 6df419583cd3..b5717af450cc 100644 --- a/maps/desert_dam.json +++ b/maps/desert_dam.json @@ -5,10 +5,11 @@ "webmap_url": "Trijent", "survivor_types": [ "/datum/equipment_preset/survivor/doctor/trijent", + "/datum/equipment_preset/survivor/scientist/trijent", "/datum/equipment_preset/survivor/roughneck", "/datum/equipment_preset/survivor/chaplain/trijent", "/datum/equipment_preset/survivor/interstellar_commerce_commission_liaison", - "/datum/equipment_preset/survivor/colonial_marshal", + "/datum/equipment_preset/survivor/colonial_marshal/trijent", "/datum/equipment_preset/survivor/engineer/trijent", "/datum/equipment_preset/survivor/engineer/trijent/hydro", "/datum/equipment_preset/survivor/trucker/trijent", diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index 8104d2f46a94..dbcf22e2e586 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -8,14 +8,6 @@ icon_state = "pwall" }, /area/space) -"aac" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" - }, -/area/bigredv2/caves_lambda) "aad" = ( /turf/open/mars_cave{ icon_state = "mars_cave_2" @@ -168,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, @@ -574,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/caves_north) "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/caves_north) "abO" = ( /turf/open/mars_cave, /area/bigredv2/caves_north) @@ -632,28 +618,11 @@ /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/caves_north) "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/caves_north) -"abX" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars_cave{ - icon_state = "mars_cave_2" - }, -/area/bigredv2/caves_north) "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..."; @@ -689,16 +658,6 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_north) -"acc" = ( -/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" - }, -/area/bigredv2/caves_north) "acd" = ( /obj/effect/landmark/good_item, /turf/open/floor/plating, @@ -734,11 +693,6 @@ icon_state = "warnplate" }, /area/bigredv2/outside/space_port) -"ack" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, -/area/bigredv2/caves_north) "acl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/medium, @@ -841,13 +795,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"acE" = ( -/obj/structure/window/reinforced, -/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, @@ -855,13 +802,6 @@ icon_state = "white" }, /area/bigredv2/outside/marshal_office) -"acG" = ( -/obj/structure/window/reinforced, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/marshal_office) "acH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -1315,22 +1255,6 @@ icon_state = "wood" }, /area/bigredv2/outside/marshal_office) -"adX" = ( -/obj/structure/bookcase/manuals/engineering, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) -"adY" = ( -/obj/structure/closet/secure_closet/detective, -/obj/item/weapon/gun/smg/fp9000, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/marshal_office) "adZ" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/xenobiology) @@ -3335,16 +3259,6 @@ icon_state = "bcircuit" }, /area/bigredv2/outside/marshal_office) -"ajD" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 - }, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) "ajE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -3534,19 +3448,6 @@ icon_state = "bcircuit" }, /area/bigredv2/outside/marshal_office) -"akf" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akg" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "akh" = ( /turf/open/floor{ dir = 1; @@ -3756,17 +3657,6 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) -"akN" = ( -/turf/open/floor{ - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"akO" = ( -/turf/open/floor{ - dir = 6; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "akP" = ( /turf/open/floor{ dir = 8; @@ -3848,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, @@ -3925,13 +3823,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/marshal_office) -"alq" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/n_cave) "alr" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, @@ -3982,16 +3873,6 @@ }, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"aly" = ( -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "alz" = ( /obj/structure/bed/chair{ dir = 4 @@ -4298,19 +4179,6 @@ /obj/effect/landmark/survivor_spawner, /turf/open/floor, /area/bigredv2/outside/marshal_office) -"amv" = ( -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor, -/area/bigredv2/outside/marshal_office) "amw" = ( /obj/structure/bed/chair{ dir = 4 @@ -4612,10 +4480,6 @@ /obj/effect/spawner/random/powercell, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"ann" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/wall/solaris, -/area/bigredv2/outside/general_offices) "ano" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony{ name = "\improper Lambda Lab Maintenance Storage" @@ -4854,9 +4718,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/medical) -"aoa" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/virology) "aob" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/lambda/virology) @@ -4961,26 +4822,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"aor" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/darkred, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aos" = ( -/obj/structure/machinery/washing_machine, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aot" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/brown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "aou" = ( /turf/open/floor/plating, /area/bigredv2/outside/general_offices) @@ -5215,13 +5056,6 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/general_offices) -"apf" = ( -/obj/item/clothing/under/darkred, -/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{ @@ -5422,9 +5256,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/marshal_office) -"apI" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/lambda_cave_cas) "apJ" = ( /obj/structure/window/framed/solaris/reinforced, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5733,20 +5564,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/library) -"aqy" = ( -/obj/structure/bed/roller, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/door_control{ - id = "Medical"; - name = "Storm Shutters"; - pixel_y = 32 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "aqz" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -5755,12 +5572,6 @@ }, /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aqB" = ( -/obj/structure/machinery/computer/crew, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) "aqC" = ( /obj/structure/surface/table, /turf/open/floor{ @@ -5768,34 +5579,6 @@ icon_state = "whitebluefull" }, /area/bigredv2/outside/medical) -"aqD" = ( -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"aqE" = ( -/obj/structure/morgue{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"aqF" = ( -/obj/structure/morgue, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"aqG" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/n) "aqH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -5918,22 +5701,6 @@ icon_state = "elevatorshaft" }, /area/bigredv2/caves/lambda/breakroom) -"aqZ" = ( -/obj/structure/noticeboard{ - dir = 1; - pixel_y = 30; - desc = "A board for pinning important items upon."; - name = "trophy board" - }, -/obj/item/XenoBio/Chitin{ - pixel_y = 27; - anchored = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "elevatorshaft" - }, -/area/bigredv2/caves/lambda/breakroom) "ara" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/device/flashlight/lamp{ @@ -6027,19 +5794,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"arn" = ( -/obj/structure/machinery/computer/med_data, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/medical) -"aro" = ( -/obj/structure/machinery/optable, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) "arp" = ( /turf/open/mars{ icon_state = "mars_dirt_3" @@ -6051,38 +5805,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/n) -"arr" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, -/area/bigredv2/outside/n) "ars" = ( /obj/structure/bed/chair{ dir = 1 }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"art" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/lightbrown, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"aru" = ( -/obj/structure/machinery/washing_machine, -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) -"arv" = ( -/obj/structure/machinery/washing_machine, -/obj/item/clothing/under/lightred, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/general_offices) "arw" = ( /obj/structure/machinery/power/apc, /turf/open/floor/plating, @@ -6105,15 +5833,6 @@ icon_state = "dark" }, /area/bigredv2/outside/general_offices) -"arz" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "arA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, @@ -6260,15 +5979,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"arV" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/obj/structure/bed/roller, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "arW" = ( /obj/structure/surface/table, /obj/structure/machinery/light{ @@ -6290,12 +6000,6 @@ icon_state = "whitegreencorner" }, /area/bigredv2/outside/medical) -"arY" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) "arZ" = ( /obj/effect/decal/cleanable/blood/gibs/xeno/down, /turf/open/mars{ @@ -6394,10 +6098,6 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/outside/virology) -"asm" = ( -/obj/item/device/flashlight/lantern, -/turf/open/mars, -/area/bigredv2/outside/ne) "asn" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/armor/vest, @@ -6542,17 +6242,6 @@ icon_state = "whitegreenfull" }, /area/bigredv2/outside/medical) -"asG" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) "asH" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -6662,14 +6351,6 @@ icon_state = "dark" }, /area/bigredv2/outside/general_offices) -"asZ" = ( -/obj/structure/surface/rack, -/obj/item/stack/sheet/mineral/diamond, -/obj/item/clothing/under/redcoat, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/general_offices) "ata" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -6789,15 +6470,6 @@ icon_state = "whitepurplecorner" }, /area/bigredv2/outside/medical) -"atp" = ( -/obj/structure/machinery/cm_vending/sorted/medical/no_access, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "white" - }, -/area/bigredv2/outside/medical) "atq" = ( /obj/structure/machinery/cm_vending/sorted/medical/no_access, /turf/open/floor{ @@ -6810,40 +6482,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"ats" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/obj/structure/surface/table, -/obj/item/bodybag, -/obj/item/bodybag, -/obj/item/bodybag, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"att" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"atu" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"atv" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) "atw" = ( /obj/structure/window/framed/solaris, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -7041,16 +6679,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/medical) -"atW" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/medical{ - dir = 1; - name = "\improper Medical Clinic Morgue" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "atX" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/blood{ @@ -7231,17 +6859,6 @@ icon_state = "darkish" }, /area/bigredv2/caves/lambda/breakroom) -"auw" = ( -/obj/structure/showcase{ - icon_state = "mechfab1" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "darkish" - }, -/area/bigredv2/caves/lambda/breakroom) "aux" = ( /obj/effect/landmark/xeno_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -7335,12 +6952,6 @@ icon_state = "whitepurplecorner" }, /area/bigredv2/outside/medical) -"auJ" = ( -/turf/open/floor{ - dir = 9; - icon_state = "whitegreen" - }, -/area/bigredv2/outside/medical) "auK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -7370,48 +6981,12 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"auO" = ( -/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) -"auQ" = ( -/obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auR" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auS" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"auT" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 5; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "auU" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -7432,10 +7007,6 @@ "auW" = ( /turf/closed/wall/solaris/reinforced/hull, /area/bigredv2/outside/c) -"auX" = ( -/obj/structure/window/framed/solaris/reinforced, -/turf/open/floor/plating, -/area/bigredv2/outside/c) "auY" = ( /turf/open/floor/carpet, /area/bigredv2/caves/lambda/breakroom) @@ -7669,13 +7240,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"avE" = ( -/obj/structure/machinery/camera/autoname{ - dir = 4; - pixel_y = 21 - }, -/turf/open/floor, -/area/bigredv2/outside/dorms) "avF" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -7715,13 +7279,6 @@ }, /turf/open/floor, /area/bigredv2/outside/general_offices) -"avK" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/machinery/vending/cola, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "avM" = ( /obj/structure/machinery/light{ dir = 8 @@ -7861,10 +7418,6 @@ icon_state = "purple" }, /area/bigredv2/caves/lambda/research) -"awf" = ( -/obj/structure/window/framed/solaris, -/turf/open/floor/plating, -/area/bigredv2/outside/office_complex) "awg" = ( /obj/effect/decal/cleanable/blood, /obj/structure/pipes/standard/simple/hidden/green{ @@ -7892,14 +7445,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"awj" = ( -/obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ - name = "\improper Medical Clinic Scanner Room" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/medical) "awk" = ( /obj/structure/machinery/medical_pod/sleeper, /turf/open/floor{ @@ -7912,13 +7457,6 @@ icon_state = "white" }, /area/bigredv2/outside/medical) -"awm" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 4; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "awn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/crap_item, @@ -7983,14 +7521,6 @@ /obj/effect/landmark/crap_item, /turf/open/floor, /area/bigredv2/outside/general_offices) -"awx" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"awy" = ( -/obj/effect/landmark/crap_item, -/turf/open/mars, -/area/bigredv2/outside/ne) "awz" = ( /obj/item/ashtray/bronze{ pixel_x = -7 @@ -8209,13 +7739,6 @@ icon_state = "grimy" }, /area/bigredv2/outside/dorms) -"axf" = ( -/obj/structure/pipes/vents/pump, -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor{ - icon_state = "grimy" - }, -/area/bigredv2/outside/dorms) "axg" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -8253,10 +7776,6 @@ /obj/structure/barricade/wooden, /turf/open/floor, /area/bigredv2/outside/general_offices) -"axm" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "axn" = ( /obj/structure/window/reinforced/toughened{ dir = 1; @@ -8377,25 +7896,6 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"axC" = ( -/obj/structure/machinery/medical_pod/sleeper, -/turf/open/floor{ - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"axD" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) -"axE" = ( -/obj/structure/machinery/sleep_console, -/turf/open/floor{ - dir = 6; - icon_state = "whiteblue" - }, -/area/bigredv2/outside/medical) "axF" = ( /obj/structure/barricade/wooden, /obj/structure/barricade/wooden, @@ -8711,19 +8211,6 @@ icon_state = "wood" }, /area/bigredv2/outside/general_offices) -"ayy" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/general_offices) -"ayz" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/general_offices) "ayA" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/light, @@ -8885,15 +8372,6 @@ "ayV" = ( /turf/open/floor/plating, /area/bigredv2/outside/medical) -"ayW" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/medical) "ayX" = ( /obj/effect/landmark/good_item, /turf/open/floor, @@ -8934,16 +8412,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/general_offices) "azf" = ( /obj/effect/landmark/crap_item, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -9200,9 +8668,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"azR" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/caves) "azS" = ( /obj/structure/machinery/vending/snack{ icon_state = "snack-broken"; @@ -9242,21 +8707,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"azX" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door_control{ - id = "Dormitories"; - name = "Storm Shutters"; - pixel_y = -32 - }, -/obj/structure/machinery/camera/autoname{ - dir = 4; - pixel_y = -16 - }, -/turf/open/floor, -/area/bigredv2/outside/dorms) "azY" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -9284,29 +8734,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/dorms) -"aAd" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) -"aAe" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) "aAf" = ( /obj/structure/machinery/light{ dir = 1 @@ -9316,13 +8743,6 @@ "aAg" = ( /turf/open/floor/plating, /area/bigredv2/outside/bar) -"aAh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/general_offices) "aAi" = ( /turf/open/floor{ dir = 8; @@ -9459,16 +8879,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aAD" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Dormitories Restroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "aAE" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ dir = 1; @@ -9478,15 +8888,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/dorms) -"aAF" = ( -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) -"aAG" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 8 - }, -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) "aAH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -9777,10 +9178,6 @@ icon_state = "wood" }, /area/bigredv2/outside/dorms) -"aBt" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating, -/area/bigredv2/outside/dorms) "aBu" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -9793,16 +9190,6 @@ /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, /area/bigredv2/caves/eta/research) -"aBx" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/door/airlock/almayer/medical/glass/colony{ - dir = 1; - name = "\improper Greenhouse" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/hydroponics) "aBy" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -9949,21 +9336,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 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aBW" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -9979,14 +9351,6 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/dorms) -"aBY" = ( -/obj/structure/machinery/shower{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aBZ" = ( /obj/structure/bed/stool, /turf/open/floor{ @@ -10022,12 +9386,6 @@ icon_state = "whitegreenfull" }, /area/bigredv2/outside/hydroponics) -"aCg" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aCh" = ( /obj/structure/window/framed/solaris, /turf/open/floor/plating, @@ -10275,14 +9633,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aCQ" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Dormitories Restroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/dorms) "aCR" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -10314,21 +9664,11 @@ icon_state = "delivery" }, /area/bigredv2/outside/bar) -"aCV" = ( -/obj/effect/landmark/hunter_primary, -/turf/open/mars, -/area/bigredv2/outside/ne) "aCW" = ( /turf/open/mars{ icon_state = "mars_dirt_8" }, /area/bigredv2/outside/ne) -"aCX" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "aCY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -10353,22 +9693,6 @@ }, /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/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aDe" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -10377,17 +9701,6 @@ icon_state = "wood" }, /area/bigredv2/outside/library) -"aDf" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Library Backroom" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/library) "aDg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -10396,20 +9709,6 @@ icon_state = "wood" }, /area/bigredv2/outside/library) -"aDh" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/machinery/power/apc{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aDi" = ( /obj/structure/machinery/light/small, /turf/open/floor/engine, @@ -10678,22 +9977,6 @@ }, /turf/open/floor, /area/bigredv2/outside/dorms) -"aDR" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aDT" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aDU" = ( /obj/structure/closet/athletic_mixed, /obj/structure/machinery/light{ @@ -10764,21 +10047,6 @@ /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEe" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) -"aEf" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/crap_item, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aEg" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/popcorn, @@ -10797,24 +10065,6 @@ /obj/structure/window/framed/solaris/reinforced, /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" - }, -/area/bigredv2/outside/library) -"aEl" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aEm" = ( /obj/structure/machinery/power/apc{ dir = 8; @@ -10910,14 +10160,6 @@ icon_state = "whitegreen" }, /area/bigredv2/outside/medical) -"aEB" = ( -/obj/structure/surface/table, -/obj/structure/pipes/vents/pump, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) "aEC" = ( /obj/effect/decal/cleanable/blood/gibs/body, /turf/open/floor{ @@ -10980,14 +10222,6 @@ /obj/structure/pipes/vents/pump, /turf/open/floor, /area/bigredv2/outside/dorms) -"aEL" = ( -/obj/structure/machinery/camera/autoname{ - dir = 1; - pixel_x = -14 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/dorms) "aEM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood{ @@ -11030,12 +10264,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aES" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "aET" = ( /obj/effect/decal/cleanable/dirt, /obj/item/tool/shovel/spade, @@ -11051,9 +10279,6 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aEV" = ( -/turf/closed/wall/solaris/rock, -/area/bigredv2/outside/virology) "aEW" = ( /obj/item/tool/hatchet, /obj/effect/decal/cleanable/dirt, @@ -11371,27 +10596,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/dorms) -"aFQ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFR" = ( -/obj/item/tool/hatchet, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) -"aFS" = ( -/obj/item/tool/surgery/hemostat, -/obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "aFT" = ( /obj/structure/surface/table/woodentable, /obj/item/device/radio, @@ -11445,14 +10649,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aFZ" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) "aGa" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -11496,16 +10692,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 @@ -11746,27 +10932,10 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aGK" = ( -/obj/structure/machinery/light, -/turf/open/floor, -/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, @@ -11774,14 +10943,6 @@ icon_state = "white" }, /area/bigredv2/outside/virology) -"aGQ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aGT" = ( /obj/structure/surface/table, /turf/open/floor{ @@ -12082,20 +11243,6 @@ 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" - }, -/area/bigredv2/outside/library) "aHO" = ( /obj/structure/bed/chair/wood/normal, /turf/open/floor{ @@ -12234,6 +11381,14 @@ icon_state = "white" }, /area/bigredv2/outside/virology) +"aIe" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox/vegetable, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "aIg" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -12411,20 +11566,6 @@ /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, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aIJ" = ( /turf/open/floor{ dir = 9; @@ -12774,15 +11915,6 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aJB" = ( -/obj/structure/machinery/vending/cola, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "yellowfull" - }, -/area/bigredv2/outside/hydroponics) "aJC" = ( /obj/structure/machinery/alarm{ dir = 4; @@ -13138,16 +12270,6 @@ icon_state = "wood" }, /area/bigredv2/outside/bar) -"aKA" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, -/area/bigredv2/outside/ne) -"aKB" = ( -/turf/open/mars{ - icon_state = "mars_dirt_14" - }, -/area/bigredv2/outside/ne) "aKC" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -13208,39 +12330,6 @@ icon_state = "yellowfull" }, /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 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aKM" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" - }, -/area/bigredv2/outside/library) -"aKN" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, -/area/bigredv2/outside/library) "aKO" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 @@ -13394,12 +12483,6 @@ icon_state = "grimy" }, /area/bigredv2/outside/office_complex) -"aLh" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1north" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/space_port) "aLi" = ( /obj/structure/closet/jcloset, /obj/structure/machinery/camera/autoname{ @@ -13418,12 +12501,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, -/area/bigredv2/outside/cargo) "aLo" = ( /obj/structure/surface/table, /obj/item/device/radio, @@ -13555,19 +12632,6 @@ icon_state = "yellowfull" }, /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" - }, -/area/bigredv2/outside/library) "aLH" = ( /turf/open/floor/bluegrid{ icon_state = "bcircuitoff" @@ -14019,12 +13083,6 @@ icon_state = "mars_dirt_13" }, /area/bigredv2/outside/e) -"aMS" = ( -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) "aMT" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -14512,19 +13570,6 @@ icon_state = "yellowfull" }, /area/bigredv2/outside/hydroponics) -"aOi" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, -/area/bigredv2/outside/library) -"aOj" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" - }, -/area/bigredv2/outside/library) "aOk" = ( /turf/open/mars{ icon_state = "mars_dirt_11" @@ -14924,49 +13969,6 @@ icon_state = "yellowfull" }, /area/bigredv2/outside/hydroponics) -"aPk" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet5-1" - }, -/area/bigredv2/outside/library) -"aPl" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPn" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPo" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet13-5" - }, -/area/bigredv2/outside/library) -"aPp" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" - }, -/area/bigredv2/outside/library) "aPq" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/colony{ dir = 1; @@ -15391,20 +14393,6 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) -"aQr" = ( -/obj/structure/machinery/camera/autoname{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) -"aQs" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "wood" - }, -/area/bigredv2/outside/library) "aQt" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -15801,18 +14789,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/library) -"aRv" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_22" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aRw" = ( -/obj/effect/landmark/crap_item, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/mars_cave{ - icon_state = "mars_cave_6" - }, -/area/bigredv2/outside/lambda_cave_cas) "aRx" = ( /obj/structure/machinery/teleport/station, /turf/open/floor{ @@ -16084,21 +15060,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/e) -"aSj" = ( -/obj/effect/decal/remains/human, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aSk" = ( -/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_8" - }, -/area/bigredv2/outside/lambda_cave_cas) "aSl" = ( /obj/structure/machinery/light{ dir = 8 @@ -16546,16 +15507,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/e) -"aTo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/e) "aTp" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -16606,30 +15557,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/caves_lambda) -"aTx" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aTy" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) -"aTz" = ( -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) "aTC" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -16882,63 +15809,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/e) -"aUo" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor{ - dir = 10; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUp" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) -"aUs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/e) -"aUu" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/lambda_cave_cas) "aUv" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -16948,49 +15818,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/lambda_cave_cas) -"aUw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aUx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/lambda_cave_cas) -"aUy" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/caves_lambda) -"aUA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) "aUD" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -17287,15 +16114,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/e) -"aVw" = ( -/obj/effect/decal/cleanable/blood{ - dir = 4; - icon_state = "gib6" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, -/area/bigredv2/outside/lambda_cave_cas) "aVx" = ( /obj/structure/curtain/medical, /obj/structure/machinery/alarm{ @@ -17579,6 +16397,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; @@ -17938,11 +16767,6 @@ "aXr" = ( /turf/open/floor, /area/bigredv2/outside/office_complex) -"aXt" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_6" - }, -/area/bigredv2/outside/e) "aXu" = ( /obj/structure/machinery/computer/med_data, /turf/open/floor{ @@ -18038,12 +16862,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/plating, -/area/bigredv2/outside/cargo) "aXL" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -18120,11 +16938,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/e) -"aXX" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/outside/e) "aXY" = ( /turf/open/floor{ dir = 10; @@ -18145,15 +16958,6 @@ /obj/structure/machinery/light, /turf/open/floor/plating, /area/bigredv2/outside/cargo) -"aYe" = ( -/obj/structure/surface/rack, -/turf/open/floor/plating, -/area/bigredv2/outside/cargo) -"aYf" = ( -/obj/structure/machinery/light, -/obj/structure/surface/rack, -/turf/open/floor/plating, -/area/bigredv2/outside/cargo) "aYh" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -18265,16 +17069,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/e) -"aYw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) "aYx" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -18284,16 +17078,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/e) -"aYy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/e) "aYA" = ( /obj/structure/closet/l3closet/virology, /turf/open/floor{ @@ -18521,18 +17305,6 @@ /obj/effect/landmark/objective_landmark/medium, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZp" = ( -/turf/open/floor{ - dir = 9; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"aZq" = ( -/turf/open/floor{ - dir = 1; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZr" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, @@ -18619,14 +17391,6 @@ icon_state = "cult" }, /area/bigredv2/outside/chapel) -"aZI" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/chapel) "aZJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -18634,14 +17398,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) -"aZK" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/chapel) "aZL" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/maint/colony{ @@ -18660,13 +17416,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/cargo) -"aZP" = ( -/obj/structure/machinery/camera/autoname, -/turf/open/floor{ - dir = 5; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "aZQ" = ( /obj/structure/surface/table, /obj/item/tool/lighter/random, @@ -18862,27 +17611,12 @@ icon_state = "chapel" }, /area/bigredv2/outside/chapel) -"bas" = ( -/obj/structure/bed/chair/wood/normal{ - dir = 8 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - dir = 1; - icon_state = "chapel" - }, -/area/bigredv2/outside/chapel) "bat" = ( /turf/open/floor{ dir = 4; icon_state = "chapel" }, /area/bigredv2/outside/chapel) -"bax" = ( -/turf/open/mars{ - icon_state = "mars_dirt_11" - }, -/area/bigredv2/outside/w) "bay" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -19021,16 +17755,6 @@ icon_state = "chapel" }, /area/bigredv2/outside/chapel) -"baV" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/bed/chair/wood/normal{ - dir = 8 - }, -/turf/open/floor{ - dir = 8; - icon_state = "chapel" - }, -/area/bigredv2/outside/chapel) "baW" = ( /turf/open/floor{ icon_state = "chapel" @@ -19496,11 +18220,6 @@ icon_state = "white" }, /area/bigredv2/outside/virology) -"bcp" = ( -/turf/open/mars{ - icon_state = "mars_dirt_10" - }, -/area/bigredv2/outside/w) "bcq" = ( /obj/effect/landmark/crap_item, /turf/open/floor{ @@ -19508,20 +18227,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"bcr" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/cargo) -"bcs" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/cargo) "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..."; @@ -19743,6 +18448,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, @@ -19776,12 +18485,6 @@ icon_state = "rampbottom" }, /area/bigredv2/outside/chapel) -"bdf" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/cargo) "bdg" = ( /turf/open/floor{ icon_state = "delivery" @@ -20022,19 +18725,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/cargo) "bec" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor, @@ -20147,24 +18837,12 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"bew" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/cargo) "bex" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bey" = ( -/obj/structure/closet/emcloset, -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bez" = ( /obj/structure/machinery/autolathe, /turf/open/floor, @@ -20275,21 +18953,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/w) -"beR" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/cargo) -"beS" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/cargo) "beT" = ( /obj/structure/machinery/light{ dir = 8 @@ -20365,31 +19028,6 @@ icon_state = "dark" }, /area/bigredv2/outside/office_complex) -"bff" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) -"bfg" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) -"bfh" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/office_complex) "bfi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -20513,16 +19151,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bfA" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/closet/emcloset/legacy, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) "bfB" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 @@ -20646,18 +19274,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/w) -"bfU" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/w) "bfV" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, @@ -20666,14 +19282,6 @@ icon_state = "bot" }, /area/bigredv2/outside/cargo) -"bfW" = ( -/obj/structure/largecrate, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, -/area/bigredv2/outside/cargo) "bfX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/trashcart, @@ -20910,10 +19518,6 @@ icon_state = "whiteyellowfull" }, /area/bigredv2/outside/office_complex) -"bgC" = ( -/obj/effect/landmark/hunter_secondary, -/turf/open/mars, -/area/bigredv2/outside/w) "bgD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, @@ -21088,20 +19692,6 @@ icon_state = "floor4" }, /area/bigredv2/outside/cargo) -"bhc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/vents/pump/on, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) -"bhd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "floor4" - }, -/area/bigredv2/outside/cargo) "bhe" = ( /obj/structure/machinery/light, /turf/open/floor{ @@ -21237,12 +19827,6 @@ }, /turf/open/floor, /area/bigredv2/outside/cargo) -"bhH" = ( -/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{ @@ -21255,18 +19839,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/c) -"bhM" = ( -/turf/open/floor{ - dir = 4; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) -"bhN" = ( -/turf/open/floor{ - dir = 10; - icon_state = "red" - }, -/area/bigredv2/outside/marshal_office) "bhO" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -21295,14 +19867,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/c) -"bhS" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, -/area/bigredv2/outside/c) "bhT" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" @@ -21377,15 +19941,6 @@ icon_state = "floor4" }, /area/bigredv2/outside/cargo) -"bio" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "biq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green{ @@ -21547,10 +20102,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{ @@ -21588,27 +20139,10 @@ /obj/structure/machinery/camera/autoname/lz_camera, /turf/open/floor/plating, /area/bigredv2/outside/space_port_lz2) -"bjg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-in" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"bjh" = ( -/obj/item/reagent_container/spray/cleaner, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bji" = ( /obj/item/reagent_container/glass/bottle/tramadol, /turf/open/floor, /area/bigredv2/outside/cargo) -"bjj" = ( -/turf/open/floor/plating{ - dir = 8; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjk" = ( /obj/effect/landmark/crap_item, /turf/open/floor{ @@ -21648,20 +20182,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bjt" = ( -/obj/effect/decal/warning_stripes, -/obj/structure/machinery/constructable_frame{ - density = 1; - icon_state = "box_1" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"bjv" = ( -/turf/open/floor/plating{ - dir = 4; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjw" = ( /turf/open/floor{ dir = 1; @@ -21785,18 +20305,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bjP" = ( -/obj/structure/surface/table, -/obj/item/clothing/ears/earmuffs, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"bjQ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W-corner" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bjR" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/machinery/door/airlock/almayer/engineering/colony{ @@ -21807,11 +20315,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/cargo) -"bjX" = ( -/turf/open/floor/plating{ - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bjY" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -21848,13 +20351,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/s) -"bke" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, -/area/bigredv2/outside/c) "bkf" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_y = -32 @@ -21881,11 +20377,6 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/se) -"bkk" = ( -/obj/effect/decal/warning_stripes, -/obj/structure/machinery/constructable_frame, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bkl" = ( /obj/structure/filingcabinet, /obj/effect/landmark/objective_landmark/science, @@ -22115,17 +20606,6 @@ icon_state = "white" }, /area/bigredv2/caves/lambda/xenobiology) -"blb" = ( -/obj/structure/machinery/blackbox_recorder, -/turf/open/floor, -/area/bigredv2/outside/cargo) -"blc" = ( -/obj/effect/decal/warning_stripes, -/obj/structure/machinery/constructable_frame{ - icon_state = "box_1" - }, -/turf/open/floor, -/area/bigredv2/outside/cargo) "bld" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, @@ -23187,15 +21667,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"boD" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Engineering Complex" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/bigredv2/outside/engineering) "boG" = ( /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/almayer{ @@ -23446,12 +21917,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bpv" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/sw) "bpx" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_4" @@ -23686,12 +22151,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"bqe" = ( -/turf/open/floor{ - dir = 5; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "bqf" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ dir = 1; @@ -23701,12 +22160,6 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) -"bqg" = ( -/turf/open/floor/plating{ - dir = 6; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "bqk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/alarm{ @@ -23868,19 +22321,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/space_port_lz2) -"brc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" - }, -/area/bigredv2/caves_north) -"brd" = ( -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "bre" = ( /obj/structure/bed/chair, /turf/open/floor{ @@ -24027,12 +22467,6 @@ "brE" = ( /turf/open/floor/greengrid, /area/bigredv2/outside/filtration_cave_cas) -"brG" = ( -/turf/open/floor{ - dir = 8; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "brI" = ( /obj/structure/sign/safety/galley{ pixel_x = -32 @@ -24584,14 +23018,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/s) -"buP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_5" - }, -/area/bigredv2/caves_north) "buQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -27700,6 +26126,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; @@ -27724,6 +26155,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, @@ -27779,6 +26215,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, @@ -27795,11 +26239,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" @@ -27812,6 +26266,12 @@ icon_state = "mars_cave_7" }, /area/bigredv2/outside/lz1_telecomm_cas) +"bRC" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "reactor_meltdown" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) "bRK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/rack, @@ -27827,6 +26287,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"bRV" = ( +/obj/structure/machinery/power/reactor/colony, +/turf/open/floor{ + icon_state = "white" + }, +/area/bigredv2/outside/virology) "bSw" = ( /obj/structure/cable{ icon_state = "1-4" @@ -27839,6 +26305,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, @@ -27855,6 +26330,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; @@ -27877,13 +26363,6 @@ /obj/item/reagent_container/spray/cleaner, /turf/open/floor, /area/bigredv2/outside/cargo) -"bYp" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "bYW" = ( /obj/structure/pipes/vents/pump, /turf/open/floor{ @@ -27924,6 +26403,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, @@ -27951,6 +26445,14 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"ceA" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/e) "cfr" = ( /obj/item/explosive/grenade/baton{ dir = 8 @@ -27964,6 +26466,12 @@ 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, @@ -27971,6 +26479,12 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_lambda) +"ciG" = ( +/obj/effect/landmark/hunter_secondary, +/turf/open/mars_cave{ + icon_state = "mars_cave_7" + }, +/area/bigredv2/outside/n) "ciY" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -28038,6 +26552,15 @@ /obj/structure/blocker/forcefield/multitile_vehicles, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) +"cnG" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/telecomm/n_cave) "coT" = ( /obj/effect/landmark/objective_landmark/science, /turf/open/floor{ @@ -28051,6 +26574,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{ @@ -28063,6 +26594,25 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"crd" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + dir = 4; + icon_state = "chapel" + }, +/area/bigredv2/outside/chapel) +"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{ @@ -28074,6 +26624,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"cry" = ( +/obj/structure/surface/table/reinforced, +/obj/item/handcuffs, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "crQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_18" @@ -28116,6 +26674,12 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"cuG" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/chapel) "cvi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/tunnel{ @@ -28125,10 +26689,6 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) -"cwk" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor, -/area/bigredv2/outside/cargo) "cxi" = ( /obj/structure/machinery/light{ dir = 4 @@ -28156,6 +26716,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; @@ -28167,6 +26733,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{ @@ -28189,13 +26764,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"cGQ" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +"cGc" = ( +/obj/structure/machinery/botany, /turf/open/floor{ - dir = 6; - icon_state = "asteroidwarning" + icon_state = "white" }, -/area/bigredv2/caves) +/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) "cGT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/power/apc{ @@ -28224,6 +26808,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{ @@ -28234,14 +26834,6 @@ icon_state = "wood" }, /area/bigredv2/outside/dorms) -"cIq" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, -/area/bigredv2/outside/lambda_cave_cas) "cIP" = ( /obj/item/paper/bigred/smuggling, /turf/open/floor, @@ -28263,6 +26855,9 @@ icon_state = "delivery" }, /area/bigredv2/outside/admin_building) +"cJd" = ( +/turf/open/space/basic, +/area/space) "cJh" = ( /obj/structure/bed/chair{ dir = 8; @@ -28290,6 +26885,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, @@ -28331,6 +26935,12 @@ /obj/structure/sign/poster/clf, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"cOu" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor{ + icon_state = "yellowfull" + }, +/area/bigredv2/outside/hydroponics) "cOJ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -28339,6 +26949,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, @@ -28356,6 +26972,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, @@ -28409,6 +27039,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 @@ -28469,6 +27105,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{ @@ -28502,14 +27143,36 @@ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) -"dlr" = ( -/obj/effect/landmark/static_comms/net_two, -/turf/open/floor, -/area/bigredv2/outside/general_store) +"djo" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) +"dka" = ( +/obj/effect/landmark/crap_item, +/turf/open/mars_cave{ + 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{ @@ -28545,6 +27208,21 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"drx" = ( +/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) "drT" = ( /obj/structure/disposalpipe/broken{ dir = 4 @@ -28608,6 +27286,10 @@ }, /turf/open/gm/river, /area/bigredv2/outside/engineering) +"dvz" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/lambda_cave_cas) "dvB" = ( /obj/item/ore/coal{ pixel_x = 9; @@ -28624,6 +27306,17 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) +"dws" = ( +/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) "dwL" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -28668,10 +27361,23 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"dAd" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "dAi" = ( /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 @@ -28738,6 +27444,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, @@ -28768,6 +27478,13 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"dFL" = ( +/obj/effect/landmark/corpsespawner/security, +/obj/effect/decal/cleanable/blood{ + layer = 3 + }, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "dFR" = ( /obj/item/stack/sheet/wood{ pixel_y = -8 @@ -28812,11 +27529,28 @@ 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, /turf/open/floor, /area/bigredv2/outside/dorms) +"dJr" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor{ + dir = 5; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "dJM" = ( /obj/structure/surface/rack, /obj/item/storage/pouch/shotgun, @@ -28826,6 +27560,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dKk" = ( +/turf/open/floor{ + dir = 8; + icon_state = "redcorner" + }, +/area/bigredv2/outside/lambda_cave_cas) "dKo" = ( /obj/item/ore/iron{ pixel_x = 6; @@ -28845,11 +27585,20 @@ icon_state = "mars_cave_5" }, /area/bigredv2/caves_lambda) -"dLe" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_5" +"dLS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = 7; + pixel_y = 14 }, -/area/bigredv2/outside/lambda_cave_cas) +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "dNd" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ @@ -28874,6 +27623,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dNX" = ( +/obj/effect/landmark/crap_item, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "dOu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -28886,6 +27639,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{ @@ -28909,6 +27668,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{ @@ -28921,6 +27683,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, @@ -28929,6 +27696,14 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"dRc" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + name = "\improper Lambda Checkpoint" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "dSg" = ( /obj/effect/landmark/crap_item, /obj/effect/decal/cleanable/dirt, @@ -28937,6 +27712,15 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"dTi" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "mars_cave_9" + }, +/area/bigredv2/caves_north) +"dTB" = ( +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/lambda_cave_cas) "dUj" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -28953,11 +27737,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 @@ -28966,12 +27766,6 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) -"dWg" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/mars{ - icon_state = "mars_dirt_12" - }, -/area/bigredv2/outside/c) "dWl" = ( /obj/structure/closet/toolcloset, /turf/open/floor{ @@ -28996,6 +27790,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; @@ -29021,6 +27820,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"eaZ" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "yellowfull" + }, +/area/bigredv2/outside/hydroponics) "ebr" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -29068,6 +27875,29 @@ icon_state = "asteroidfloor" }, /area/bigred/ground/garage_workshop) +"eeI" = ( +/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) +"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{ @@ -29090,6 +27920,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"ejp" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "filtration_restored" + }, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/s) "eju" = ( /obj/item/ore{ pixel_x = 9; @@ -29117,6 +27955,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{ @@ -29163,6 +28006,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; @@ -29180,15 +28031,15 @@ icon_state = "mars_cave_9" }, /area/bigredv2/caves/mining) -"erf" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/c) -"ers" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "etatunnel" +"eqr" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic/solid{ + dir = 1; + name = "\improper Dormitories Restroom" }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/dorms) "erA" = ( /obj/item/ore, /turf/open/mars_cave{ @@ -29215,6 +28066,15 @@ icon_state = "mars_cave_20" }, /area/bigredv2/caves/mining) +"esS" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "eup" = ( /obj/structure/bed/chair, /obj/item/trash/cigbutt, @@ -29295,6 +28155,14 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"eBL" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "eDQ" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/effect/landmark/objective_landmark/medium, @@ -29327,6 +28195,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{ @@ -29388,6 +28266,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"; @@ -29400,6 +28285,16 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"eKZ" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 4 + }, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "eLp" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/medium, @@ -29426,6 +28321,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" @@ -29455,17 +28357,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/dorms) "eSm" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -29504,12 +28406,6 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"eUT" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "viro-rock" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/virology) "eVo" = ( /obj/effect/decal/cleanable/dirt, /obj/item/weapon/gun/pistol/m4a3, @@ -29528,6 +28424,13 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"eVM" = ( +/obj/structure/largecrate/random/barrel/true_random, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "eWd" = ( /turf/open/floor{ dir = 1; @@ -29538,12 +28441,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, @@ -29562,6 +28489,36 @@ }, /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) +"eYA" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/e) +"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" @@ -29572,14 +28529,17 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"fbF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" +"fbf" = ( +/turf/open/mars{ + icon_state = "mars_dirt_8" }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +/area/bigredv2/outside/sw) +"fbB" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "crashlanding-eva" }, -/area/bigredv2/caves_north) +/turf/closed/wall/solaris, +/area/bigredv2/outside/bar) "fcG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset, @@ -29696,6 +28656,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, @@ -29710,16 +28678,6 @@ icon_state = "mars_cave_22" }, /area/bigredv2/caves_east) -"foT" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/e) "fpa" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -29727,6 +28685,21 @@ }, /turf/closed/wall/wood, /area/bigredv2/caves/mining) +"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" @@ -29801,6 +28774,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{ @@ -29825,6 +28804,16 @@ icon_state = "whitepurplecorner" }, /area/bigredv2/outside/medical) +"fyZ" = ( +/obj/structure/surface/table/reinforced, +/obj/item/device/camera, +/obj/structure/machinery/light/small, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "fBc" = ( /obj/structure/pipes/standard/tank/phoron, /turf/open/floor/plating, @@ -29837,6 +28826,15 @@ "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; @@ -29851,6 +28849,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{ @@ -29862,11 +28865,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{ @@ -29884,6 +28901,25 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/eta) +"fJW" = ( +/obj/structure/window, +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"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 @@ -29996,6 +29032,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, @@ -30049,6 +29092,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, @@ -30070,12 +29124,35 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) +"fVt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor, +/area/bigredv2/outside/cargo) "fWw" = ( /turf/open/jungle{ bushes_spawn = 0; icon_state = "grass_impenetrable" }, /area/bigredv2/caves/eta/xenobiology) +"fWY" = ( +/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{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "fXm" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -30086,6 +29163,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) @@ -30130,6 +29214,13 @@ icon_state = "bcircuitoff" }, /area/bigredv2/caves/lambda/research) +"gbA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "gcR" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -30145,10 +29236,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" @@ -30263,6 +29365,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" @@ -30283,6 +29393,12 @@ /obj/structure/machinery/light, /turf/open/floor, /area/bigred/ground/garage_workshop) +"gri" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "containerroom_xenos" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/nw/ceiling) "grU" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; @@ -30302,6 +29418,18 @@ icon_state = "mars_dirt_4" }, /area/space) +"gts" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/morgue{ + dir = 2 + }, +/turf/open/floor{ + dir = 1; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "gtX" = ( /turf/open/mars_cave, /area/bigredv2/caves_se) @@ -30390,6 +29518,20 @@ }, /turf/open/floor, /area/bigredv2/outside/hydroponics) +"gAK" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "chapel_cult" + }, +/turf/closed/wall/solaris, +/area/bigredv2/outside/chapel) +"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, @@ -30424,6 +29566,13 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_east) +"gEM" = ( +/obj/structure/machinery/vending/security, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "gFR" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor{ @@ -30451,6 +29600,16 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"gIT" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/caves_north) "gJw" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/mars_cave, @@ -30461,6 +29620,22 @@ icon_state = "mars_cave_4" }, /area/bigredv2/caves_virology) +"gMj" = ( +/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) +"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{ @@ -30478,10 +29653,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, @@ -30489,6 +29660,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_research) +"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{ @@ -30506,6 +29683,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"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{ @@ -30569,6 +29750,15 @@ icon_state = "darkblue2" }, /area/bigredv2/caves/eta/research) +"gWv" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "eta_carp" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/caves/eta/xenobiology) +"gWD" = ( +/turf/closed/wall/solaris, +/area/bigredv2/outside/space_port_lz2) "gWU" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -30618,6 +29808,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, @@ -30626,6 +29824,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{ @@ -30650,6 +29857,15 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"heD" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "heG" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -30663,23 +29879,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"heI" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/caves_lambda) -"heU" = ( -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) "hfB" = ( /obj/item/ore{ pixel_x = -5; @@ -30689,17 +29888,44 @@ 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" }, /area/bigredv2/outside/lz1_north_cas) +"hho" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "hhK" = ( /turf/open/floor{ dir = 1; 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 @@ -30809,6 +30035,11 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/filtration_plant) +"hto" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/vending/cola, +/turf/open/floor, +/area/bigredv2/outside/general_offices) "hvQ" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -30845,6 +30076,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" @@ -30897,6 +30133,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" @@ -30918,6 +30162,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"hFg" = ( +/obj/effect/landmark/crap_item, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/mars_cave{ + icon_state = "mars_cave_6" + }, +/area/bigredv2/caves_lambda) +"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, @@ -30926,10 +30186,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, @@ -30957,6 +30247,15 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves_north) +"hKO" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 10; + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "hLp" = ( /obj/effect/landmark/corpsespawner/ua_riot, /turf/open/mars_cave, @@ -30979,6 +30278,13 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/research) +"hNW" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/lambda_cave_cas) "hOx" = ( /obj/structure/machinery/portable_atmospherics/powered/scrubber/huge/stationary, /turf/open/floor{ @@ -31002,6 +30308,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{ @@ -31009,12 +30320,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"hSs" = ( -/obj/structure/machinery/light, -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, -/area/bigredv2/outside/lambda_cave_cas) "hSP" = ( /obj/structure/machinery/vending/cigarette/colony, /turf/open/mars_cave{ @@ -31039,6 +30344,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" @@ -31108,6 +30422,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"iaS" = ( +/obj/structure/bed/chair/comfy{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "iaX" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/landmark/corpsespawner/colonist/random/burst, @@ -31118,16 +30440,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{ @@ -31135,6 +30479,18 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"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{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) "iep" = ( /obj/structure/surface/rack, /obj/item/clothing/head/hardhat/dblue{ @@ -31208,6 +30564,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" @@ -31221,6 +30586,13 @@ icon_state = "floor1" }, /area/bigredv2/oob) +"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 @@ -31282,6 +30654,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{ @@ -31298,14 +30680,15 @@ /obj/effect/spawner/random/technology_scanner, /turf/open/floor/plating, /area/bigredv2/outside/filtration_plant) -"isr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" +"irZ" = ( +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/mars_cave{ - icon_state = "mars_cave_19" +/turf/open/floor{ + dir = 6; + icon_state = "red" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/lambda_cave_cas) "itL" = ( /obj/structure/closet/l3closet/virology, /obj/effect/landmark/objective_landmark/science, @@ -31318,6 +30701,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{ @@ -31330,22 +30718,6 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) -"ixR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/lambda_cave_cas) -"iyd" = ( -/obj/structure/machinery/computer/general_air_control, -/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" @@ -31393,6 +30765,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{ @@ -31442,6 +30827,10 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"iEm" = ( +/obj/structure/bed/chair/wood/normal, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "iFa" = ( /obj/effect/decal/cleanable/dirt, /obj/item/bananapeel, @@ -31450,15 +30839,32 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"iFz" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "iGK" = ( /turf/open/mars_cave, /area/bigredv2/caves_sw) -"iIp" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "chapel" +"iGY" = ( +/obj/item/stack/sheet/wood, +/turf/open/mars_cave{ + icon_state = "mars_cave_6" }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/chapel) +/area/bigredv2/caves_north) +"iHe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "iJF" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6"; @@ -31489,15 +30895,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/caves_north) +/area/bigredv2/outside/ne) "iPE" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 1 @@ -31553,6 +30966,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; @@ -31581,6 +31005,22 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"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; @@ -31613,22 +31053,19 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) -"iZh" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E-corner" - }, -/turf/open/mars_cave, -/area/bigredv2/caves_north) -"iZi" = ( -/obj/structure/machinery/light, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) "iZA" = ( /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'; @@ -31641,12 +31078,6 @@ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) -"jcn" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "tcomms" - }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) "jcR" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /turf/open/mars_cave{ @@ -31673,6 +31104,11 @@ icon_state = "mars_dirt_3" }, /area/bigredv2/outside/s) +"jeO" = ( +/turf/open/mars{ + icon_state = "mars_dirt_13" + }, +/area/bigredv2/outside/n) "jfr" = ( /turf/open/floor{ dir = 5; @@ -31747,6 +31183,17 @@ /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jlS" = ( +/turf/open/floor{ + dir = 10; + icon_state = "asteroidwarning" + }, +/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{ @@ -31774,19 +31221,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"joa" = ( +"jph" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 + dir = 4 }, -/obj/effect/landmark/nightmare{ - insert_tag = "dorms" +/obj/structure/machinery/camera/autoname{ + dir = 1 }, /turf/open/floor, /area/bigredv2/outside/dorms) -"joi" = ( -/obj/effect/landmark/static_comms/net_one, -/turf/open/floor/plating, -/area/bigredv2/outside/telecomm/warehouse) "jpT" = ( /obj/structure/surface/table, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -31810,6 +31253,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" @@ -31825,12 +31274,6 @@ icon_state = "mars_cave_7" }, /area/bigredv2/caves/mining) -"jtX" = ( -/turf/open/floor/plating{ - dir = 10; - icon_state = "warnplate" - }, -/area/bigredv2/outside/telecomm/warehouse) "juo" = ( /obj/structure/machinery/light{ dir = 8 @@ -31840,10 +31283,24 @@ icon_state = "podhatch" }, /area/bigredv2/caves/lambda/research) -"jvt" = ( -/obj/structure/lz_sign/solaris_sign, -/turf/open/mars, -/area/bigredv2/outside/w) +"juZ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/lambda_cave_cas) +"jvW" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "jwj" = ( /obj/structure/platform/shiva{ dir = 8 @@ -31902,6 +31359,17 @@ 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) "jBq" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /turf/open/floor{ @@ -31941,6 +31409,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{ @@ -32026,6 +31500,21 @@ 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) +"jKp" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "jKI" = ( /obj/structure/platform_decoration/shiva{ dir = 8 @@ -32056,6 +31545,22 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"jNE" = ( +/obj/structure/machinery/washing_machine, +/obj/structure/machinery/washing_machine{ + pixel_y = 13 + }, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/area/bigredv2/outside/general_offices) +"jNN" = ( +/obj/structure/bed/chair/wood/normal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "jOc" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ dir = 4; @@ -32066,6 +31571,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{ @@ -32087,6 +31600,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; @@ -32146,6 +31664,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, @@ -32159,6 +31703,28 @@ /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) +"jUJ" = ( +/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) "jUM" = ( /obj/structure/surface/table/woodentable, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, @@ -32234,6 +31800,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 @@ -32319,6 +31896,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, @@ -32382,6 +31964,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, @@ -32433,6 +32020,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 @@ -32462,6 +32064,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; @@ -32533,8 +32142,18 @@ icon_state = "mars_cave_7" }, /area/bigredv2/outside/filtration_cave_cas) -"kpf" = ( -/turf/closed/wall/solaris/rock, +"kpd" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_14" + }, +/area/bigredv2/outside/ne) +"kqO" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, /area/bigredv2/caves_lambda) "kqS" = ( /turf/open/floor{ @@ -32615,6 +32234,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"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; @@ -32629,6 +32258,15 @@ icon_state = "darkredcorners2" }, /area/bigredv2/caves/eta/xenobiology) +"kxr" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/effect/landmark/nightmare{ + insert_tag = "dorms_party" + }, +/turf/open/floor, +/area/bigredv2/outside/dorms) "kyz" = ( /obj/structure/transmitter/colony_net{ dir = 4; @@ -32640,6 +32278,29 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"kzF" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/ne) +"kAj" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) +"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) @@ -32661,6 +32322,19 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"kCR" = ( +/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) "kDs" = ( /obj/structure/surface/table, /obj/item/reagent_container/food/drinks/cans/waterbottle{ @@ -32725,6 +32399,13 @@ icon_state = "darkred2" }, /area/bigredv2/caves/eta/research) +"kMk" = ( +/obj/effect/landmark/hunter_primary, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "kMs" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "Righty tighty, lefty loosey!"; @@ -32773,14 +32454,12 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) -"kNP" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, +"kOv" = ( +/obj/structure/largecrate/random, /turf/open/floor{ - icon_state = "asteroidwarning" + icon_state = "asteroidplating" }, -/area/bigredv2/caves_lambda) +/area/bigredv2/outside/space_port_lz2) "kPu" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -32805,9 +32484,12 @@ /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/mars_cave, /area/bigredv2/caves_east) -"kRo" = ( +"kRy" = ( +/obj/structure/machinery/power/apc{ + dir = 1 + }, /turf/open/floor/plating, -/area/bigredv2/outside/telecomm/warehouse) +/area/bigredv2/outside/medical) "kRK" = ( /obj/structure/window/framed/solaris/reinforced, /turf/open/floor/plating, @@ -32849,6 +32531,25 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor, /area/bigredv2/outside/filtration_cave_cas) +"kUW" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) +"kVR" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "kVS" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -32875,14 +32576,38 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_se) -"kYd" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/e) +"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) "kZG" = ( /obj/effect/decal/cleanable/dirt, /obj/item/storage/bible/hefa, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"kZI" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor{ + dir = 10; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "laj" = ( /obj/structure/tunnel{ id = "hole5" @@ -32891,6 +32616,11 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_lambda) +"lbh" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_17" + }, +/area/bigredv2/outside/n) "lbZ" = ( /obj/item/frame/rack, /obj/effect/decal/cleanable/dirt, @@ -32933,6 +32663,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, @@ -32984,6 +32721,21 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/eta) +"lmO" = ( +/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) "lom" = ( /obj/effect/landmark/corpsespawner/miner, /obj/effect/decal/cleanable/blood{ @@ -33007,6 +32759,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{ @@ -33042,6 +32812,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{ @@ -33090,6 +32871,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{ @@ -33103,19 +32896,30 @@ /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, +"lAR" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/door_control{ + id = "lambda-interior"; + name = "Lambda Checkpoint Interior"; + pixel_x = null + }, /turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" + dir = 9; + icon_state = "redfull" }, -/area/bigredv2/outside/telecomm/lz2_cave) +/area/bigredv2/outside/lambda_cave_cas) "lBc" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/c) @@ -33133,6 +32937,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{ @@ -33181,6 +32993,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lFR" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "viro_open" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) "lGt" = ( /turf/open/floor{ icon_state = "delivery" @@ -33194,10 +33012,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{ @@ -33208,6 +33040,11 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"lLe" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_18" + }, +/area/bigredv2/outside/lambda_cave_cas) "lLf" = ( /obj/structure/largecrate/random/case, /turf/open/floor/plating{ @@ -33215,12 +33052,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"lMt" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "cargo" - }, -/turf/closed/wall/solaris, -/area/bigredv2/outside/cargo) "lMw" = ( /obj/structure/machinery/sensortower{ pixel_x = -9 @@ -33230,12 +33061,6 @@ icon_state = "asteroidfloor" }, /area/bigredv2/caves_lambda) -"lMB" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1cave" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/space_port) "lMC" = ( /obj/structure/machinery/light{ dir = 4 @@ -33246,6 +33071,31 @@ 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) +"lOY" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "etatunnel_open" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) +"lPg" = ( +/turf/closed/wall/solaris, +/area/bigredv2/outside/n) "lPh" = ( /obj/item/weapon/twohanded/folded_metal_chair{ pixel_x = 3; @@ -33276,12 +33126,22 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/virology) -"lRu" = ( +"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, @@ -33303,12 +33163,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"lSL" = ( -/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, @@ -33327,6 +33181,17 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/filtration_plant) +"lTC" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/machinery/power/apc{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "lTM" = ( /obj/item/folder/yellow, /turf/open/floor{ @@ -33334,6 +33199,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, @@ -33347,12 +33223,10 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_se) -"lVm" = ( -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/n_cave) +"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, @@ -33404,6 +33278,12 @@ icon_state = "mars_cave_23" }, /area/bigredv2/caves/mining) +"maB" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "viro-rock_open" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/virology) "maD" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -33423,16 +33303,22 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"mdU" = ( -/obj/structure/machinery/power/apc{ - dir = 1; - start_charge = 0 +"mbz" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/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) @@ -33444,6 +33330,24 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"mfG" = ( +/obj/structure/pipes/vents/pump/on, +/turf/open/floor{ + icon_state = "freezerfloor" + }, +/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" + }, +/area/bigredv2/outside/engineering) "mhF" = ( /obj/structure/machinery/light{ dir = 4 @@ -33461,6 +33365,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{ @@ -33490,6 +33401,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, @@ -33511,6 +33426,26 @@ 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" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "moE" = ( /turf/open/mars_cave{ icon_state = "mars_cave_9" @@ -33590,6 +33525,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) @@ -33632,6 +33584,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; @@ -33653,11 +33619,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 @@ -33682,12 +33661,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/lz1_north_cas) -"mGS" = ( -/obj/effect/landmark/static_comms/net_one, -/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, @@ -33696,11 +33669,24 @@ 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" }, /area/bigredv2/outside/filtration_plant) +"mIs" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "mIu" = ( /obj/structure/machinery/light{ dir = 4 @@ -33718,6 +33704,14 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"mKi" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10" + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "mKM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_y = 6 @@ -33729,6 +33723,23 @@ icon_state = "mars_dirt_11" }, /area/bigredv2/outside/space_port_lz2) +"mNT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/green, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/e) +"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{ @@ -33802,6 +33813,17 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) +"mUb" = ( +/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) "mUy" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -33832,6 +33854,16 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"mYV" = ( +/obj/structure/machinery/power/apc{ + dir = 1; + start_charge = 0 + }, +/turf/open/floor{ + dir = 1; + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "mYW" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -33863,6 +33895,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{ @@ -33908,12 +33944,27 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"nfY" = ( +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_east) "ngJ" = ( /obj/item/stack/cable_coil/cut, /turf/open/mars_cave{ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"nhF" = ( +/obj/structure/machinery/camera/autoname{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "niQ" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -33933,6 +33984,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) +"nkE" = ( +/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) "nkQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -33958,6 +34023,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{ @@ -33984,6 +34054,23 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves_research) +"nnz" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_5" + }, +/area/bigredv2/outside/n) +"nnA" = ( +/obj/structure/surface/table/woodentable, +/obj/structure/window{ + dir = 8 + }, +/obj/structure/machinery/computer/emails{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "nnK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -34026,6 +34113,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; @@ -34040,6 +34132,13 @@ icon_state = "mars_cave_6" }, /area/bigredv2/outside/filtration_cave_cas) +"nrA" = ( +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/ne) "ntX" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -34094,6 +34193,23 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"nuQ" = ( +/obj/structure/surface/table/woodentable, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"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; @@ -34117,6 +34233,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{ @@ -34156,6 +34283,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" @@ -34180,6 +34312,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nFp" = ( +/obj/structure/window, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "nFB" = ( /obj/item/weapon/gun/rifle/m16, /obj/item/ammo_magazine/rifle/m16, @@ -34202,18 +34343,6 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/filtration_cave_cas) -"nGt" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "admin" - }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/admin_building) -"nHb" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "nHQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -34234,6 +34363,14 @@ icon_state = "test_floor4" }, /area/bigredv2/outside/engineering) +"nIS" = ( +/obj/structure/surface/table/reinforced, +/obj/item/storage/donut_box, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "nKL" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "An exchange valve"; @@ -34272,6 +34409,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 @@ -34345,11 +34490,6 @@ icon_state = "dark" }, /area/bigredv2/outside/engineering) -"nVw" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_23" - }, -/area/bigredv2/outside/lambda_cave_cas) "nVx" = ( /turf/open/floor{ dir = 4; @@ -34364,6 +34504,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, @@ -34397,6 +34546,19 @@ /obj/item/tool/warning_cone, /turf/open/mars, /area/bigredv2/outside/s) +"nZd" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1cave_flank" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/space_port) +"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 @@ -34468,6 +34630,13 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/breakroom) +"oes" = ( +/obj/structure/surface/table/woodentable, +/obj/item/newspaper, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "ofn" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/solaris, @@ -34523,11 +34692,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/sw) +/turf/open/floor{ + dir = 1; + icon_state = "whiteblue" + }, +/area/bigredv2/outside/medical) "ojD" = ( /obj/structure/platform_decoration{ dir = 4 @@ -34552,6 +34725,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; @@ -34633,15 +34813,6 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) -"ooP" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/floor{ - icon_state = "freezerfloor" - }, -/area/bigredv2/outside/dorms) "opz" = ( /obj/effect/landmark/crap_item, /turf/open/mars_cave{ @@ -34715,6 +34886,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" @@ -34771,6 +34948,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, @@ -34801,12 +34987,23 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) -"oEJ" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/toolbox, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/cargo) +"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 + }, +/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, @@ -34815,6 +35012,12 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) +"oHn" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "oIc" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -34851,6 +35054,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"oJv" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 8 + }, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "oJO" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -8; @@ -34886,6 +35099,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" @@ -34905,6 +35126,22 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"oOw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/gm/river, +/area/bigredv2/outside/c) +"oPM" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/door_control{ + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior"; + pixel_x = null + }, +/turf/open/floor{ + dir = 9; + icon_state = "redfull" + }, +/area/bigredv2/outside/lambda_cave_cas) "oQz" = ( /obj/structure/machinery/light/double{ dir = 1 @@ -34982,6 +35219,22 @@ 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) +"oVq" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1entrance_v2" + }, +/turf/open/mars, +/area/bigredv2/outside/nw) "oWc" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -35003,6 +35256,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, @@ -35139,12 +35402,6 @@ icon_state = "wood" }, /area/bigredv2/outside/admin_building) -"pdN" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1entrance" - }, -/turf/open/mars, -/area/bigredv2/outside/nw) "pdW" = ( /turf/open/mars_cave{ icon_state = "mars_cave_13" @@ -35154,6 +35411,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, @@ -35176,11 +35438,35 @@ 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) +"pgV" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 6; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_east) "phi" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" }, /area/bigredv2/caves_research) +"phx" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 1 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/e) "plx" = ( /obj/structure/machinery/power/apc{ dir = 4 @@ -35212,6 +35498,15 @@ "pmS" = ( /turf/open/mars, /area/bigredv2/caves_north) +"pmV" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "pnL" = ( /turf/open/mars{ icon_state = "mars_dirt_11" @@ -35245,6 +35540,29 @@ /obj/structure/sign/safety/hazard, /turf/closed/wall/solaris/rock, /area/bigredv2/caves) +"pri" = ( +/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) +"prU" = ( +/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) "psE" = ( /obj/effect/landmark/objective_landmark/medium, /turf/open/floor{ @@ -35270,6 +35588,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!"; @@ -35316,6 +35638,16 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) +"pyq" = ( +/obj/structure/surface/table, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "pyU" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -35333,6 +35665,14 @@ icon_state = "dark" }, /area/bigredv2/outside/admin_building) +"pzC" = ( +/obj/structure/window/framed/solaris, +/obj/structure/curtain, +/turf/open/floor/plating, +/area/bigredv2/outside/medical) +"pAX" = ( +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "pBv" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -35386,12 +35726,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, @@ -35399,6 +35742,30 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_lambda) +"pJd" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + name = "\improper Lambda Checkpoint" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) +"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; @@ -35429,6 +35796,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, @@ -35478,12 +35850,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, @@ -35524,6 +35912,23 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"pSf" = ( +/turf/open/floor/carpet, +/area/bigredv2/outside/library) +"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 @@ -35666,12 +36071,35 @@ /obj/vehicle/powerloader/ft, /turf/open/floor/plating, /area/bigredv2/outside/nw/ceiling) -"qez" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, +"qby" = ( +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/lz2_cave) +"qbG" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-interior"; + name = "Lambda Checkpoint Interior" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) +"qcE" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 + }, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) +"qcQ" = ( /turf/open/mars_cave{ - icon_state = "mars_cave_2" + icon_state = "mars_dirt_7" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/space_port_lz2) "qeK" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tool, @@ -35767,11 +36195,6 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) -"qkB" = ( -/turf/open/mars_cave{ - icon_state = "mars_cave_8" - }, -/area/bigredv2/caves) "qkC" = ( /obj/structure/fence, /turf/open/floor{ @@ -35798,12 +36221,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/caves_north) "qoj" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -35824,6 +36241,24 @@ 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) +"qoS" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/e) "qpn" = ( /obj/item/tool/warning_cone{ pixel_x = -6 @@ -35845,12 +36280,35 @@ /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" = ( -/turf/closed/wall/solaris/reinforced/hull, -/area/bigredv2/outside/space_port_lz2) +"qsV" = ( +/obj/structure/bookcase{ + icon_state = "book-5" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"qus" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/dorms) "qux" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -35867,6 +36325,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{ @@ -35879,6 +36348,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{ @@ -35931,6 +36405,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{ @@ -36011,6 +36490,20 @@ /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/cargo) +"qJB" = ( +/obj/effect/decal/cleanable/blood{ + dir = 4; + icon_state = "gib6" + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/lambda_cave_cas) +"qJM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "qJV" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; @@ -36021,18 +36514,29 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"qKx" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "prison" +"qKH" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/outside/medical) +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "qLk" = ( /obj/item/device/flashlight/lantern, /turf/open/mars_cave{ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"qLD" = ( +/turf/open/floor{ + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "qLV" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -36040,6 +36544,11 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/eta) +"qMS" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_18" + }, +/area/bigredv2/outside/n) "qNu" = ( /obj/structure/surface/table, /obj/structure/machinery/light/small{ @@ -36050,12 +36559,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) +"qNU" = ( +/obj/structure/surface/table, +/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/landing/console2) "qOM" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -9; @@ -36076,6 +36600,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, @@ -36083,16 +36613,17 @@ 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" - }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) "qTC" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -36126,6 +36657,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{ @@ -36136,6 +36673,27 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) +"qWA" = ( +/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" + }, +/area/bigredv2/outside/library) +"qWT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior" + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "qXi" = ( /obj/structure/surface/table/woodentable, /obj/item/device/pinpointer, @@ -36143,6 +36701,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 @@ -36176,6 +36752,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 @@ -36184,6 +36766,21 @@ 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) +"rbs" = ( +/obj/structure/window/framed/solaris/reinforced, +/turf/open/floor/plating, +/area/bigredv2/outside/lambda_cave_cas) "rbD" = ( /obj/structure/largecrate/random, /turf/open/floor/plating{ @@ -36191,6 +36788,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."; @@ -36258,22 +36862,31 @@ 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) +"rgm" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor{ + icon_state = "chapel" + }, +/area/bigredv2/outside/chapel) "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 - }, -/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{ @@ -36307,6 +36920,12 @@ }, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"rkh" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + icon_state = "red" + }, +/area/bigredv2/outside/lambda_cave_cas) "rkS" = ( /obj/structure/cable{ icon_state = "5-6" @@ -36323,6 +36942,17 @@ "rnc" = ( /turf/open/mars_cave, /area/bigredv2/caves_research) +"rnK" = ( +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior" + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "rnV" = ( /obj/item/stack/sheet/glass, /turf/open/floor{ @@ -36376,14 +37006,11 @@ icon_state = "mars_cave_19" }, /area/bigredv2/caves/mining) -"rrl" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "filtration" - }, +"rrF" = ( /turf/open/mars_cave{ - icon_state = "mars_cave_2" + icon_state = "mars_cave_13" }, -/area/bigredv2/outside/s) +/area/bigredv2/outside/ne) "rsv" = ( /turf/open/mars_cave{ icon_state = "mars_cave_3" @@ -36464,6 +37091,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, @@ -36473,6 +37106,12 @@ icon_state = "mars_cave_6" }, /area/bigredv2/caves_east) +"rBn" = ( +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "rBK" = ( /obj/structure/fence, /turf/open/mars{ @@ -36490,6 +37129,11 @@ icon_state = "mars_cave_7" }, /area/bigredv2/outside/lz1_telecomm_cas) +"rDa" = ( +/turf/open/floor{ + icon_state = "redcorner" + }, +/area/bigredv2/outside/lambda_cave_cas) "rDl" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -3; @@ -36564,6 +37208,12 @@ icon_state = "mars_cave_15" }, /area/bigredv2/caves/mining) +"rKe" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "rKs" = ( /obj/item/stack/medical/splint{ pixel_x = 4; @@ -36576,6 +37226,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{ @@ -36583,6 +37242,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, @@ -36632,6 +37296,17 @@ /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) +"rNs" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "tcomms_open" + }, +/turf/closed/wall/solaris/rock, +/area/bigredv2/caves) "rOK" = ( /obj/effect/landmark/corpsespawner/ua_riot, /obj/item/weapon/baton/loaded, @@ -36738,6 +37413,18 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"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; @@ -36801,6 +37488,17 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"rYS" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/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, @@ -36811,6 +37509,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"; @@ -36835,6 +37540,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 @@ -36863,6 +37576,24 @@ 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) +"sdl" = ( +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/obj/structure/window, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "sdP" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/plating, @@ -36900,6 +37631,26 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"shn" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + id = "lambda-exterior"; + name = "Lambda Checkpoint Exterior" + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) +"shK" = ( +/obj/structure/cargo_container/arious/right, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "shV" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -37023,6 +37774,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{ @@ -37052,6 +37810,12 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"stZ" = ( +/obj/effect/landmark/static_comms/net_two, +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/telecomm/lz2_cave) "sus" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -37097,12 +37861,15 @@ icon_state = "delivery" }, /area/bigred/ground/garage_workshop) -"svp" = ( -/obj/structure/surface/table, -/obj/effect/spawner/random/technology_scanner, -/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/turf/open/floor, -/area/bigredv2/outside/cargo) +"swk" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/w) "swJ" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/science, @@ -37139,16 +37906,6 @@ icon_state = "mars_cave_16" }, /area/bigredv2/caves/mining) -"szg" = ( -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/caves_lambda) "szi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -37170,6 +37927,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{ @@ -37244,6 +38010,21 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"sEb" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 3 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"sEh" = ( +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/e) "sEi" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -37252,6 +38033,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{ @@ -37280,6 +38067,13 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/caves/mining) +"sHO" = ( +/obj/effect/landmark/crap_item, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "sIh" = ( /obj/effect/landmark/nightmare{ insert_tag = "lambda-cave-extratunnel" @@ -37374,15 +38168,55 @@ icon_state = "delivery" }, /area/bigredv2/outside/admin_building) +"sRV" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "sSU" = ( /turf/open/mars_cave{ icon_state = "mars_cave_19" }, /area/bigredv2/outside/lz2_south_cas) +"sSY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/bed/chair/comfy{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "sUQ" = ( /obj/structure/machinery/photocopier, /turf/open/floor/wood, /area/bigredv2/caves/lambda/breakroom) +"sVk" = ( +/obj/effect/decal/remains/human, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/lambda_cave_cas) +"sVB" = ( +/obj/structure/window_frame/solaris, +/turf/open/floor/plating, +/area/bigredv2/outside/marshal_office) +"sVM" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "sWa" = ( /obj/item/ore{ pixel_x = 12; @@ -37392,6 +38226,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{ @@ -37399,6 +38244,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"sXd" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "prison_breakout" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/marshal_office) "sXv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip{ @@ -37454,6 +38305,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, @@ -37469,15 +38336,6 @@ /obj/effect/decal/cleanable/dirt/greenglow, /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/engineering) -"tdn" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, -/area/bigredv2/caves_lambda) "tdp" = ( /obj/effect/decal/cleanable/blood{ icon_state = "xgib4" @@ -37486,6 +38344,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" @@ -37563,13 +38427,11 @@ /obj/effect/decal/cleanable/ash, /turf/open/floor/plating, /area/bigredv2/caves/mining) -"tgk" = ( -/obj/structure/surface/table, -/obj/structure/machinery/computer/shuttle/dropship/flight/lz2{ - dir = 4 - }, +"tgf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/vending/snack, /turf/open/floor, -/area/bigredv2/landing/console2) +/area/bigredv2/outside/general_offices) "tgF" = ( /obj/effect/spawner/random/tool, /turf/open/shuttle/escapepod{ @@ -37603,6 +38465,11 @@ icon_state = "freezerfloor" }, /area/bigredv2/outside/engineering) +"tjX" = ( +/turf/open/mars_cave{ + icon_state = "mars_cave_7" + }, +/area/bigredv2/outside/n) "tkN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -37611,12 +38478,22 @@ icon_state = "darkpurple2" }, /area/bigredv2/caves/lambda/research) -"tlj" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_15" +"tkY" = ( +/obj/structure/noticeboard{ + desc = "A board for pinning important items upon."; + dir = 1; + name = "trophy board"; + pixel_y = 30 }, -/area/bigredv2/outside/lz1_north_cas) +/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{ @@ -37624,6 +38501,17 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"tlU" = ( +/obj/structure/surface/table, +/obj/structure/window, +/obj/structure/machinery/computer/emails{ + dir = 8; + pixel_y = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "tmH" = ( /obj/structure/closet/crate, /obj/structure/machinery/light{ @@ -37642,6 +38530,12 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) +"tnG" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/mars_cave{ + icon_state = "mars_cave_2" + }, +/area/bigredv2/outside/n) "toA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/prop/alien/hugger, @@ -37658,11 +38552,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" @@ -37769,12 +38677,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"twS" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/telecomm/lz2_cave) "tzJ" = ( /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Engine Reactor Control" @@ -37894,12 +38796,13 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) -"tFM" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +"tFt" = ( +/obj/structure/surface/table, +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "freezerfloor" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/general_offices) "tFO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -37914,6 +38817,15 @@ 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{ @@ -37994,6 +38906,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" @@ -38009,12 +38938,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) -"tPr" = ( -/obj/effect/landmark/lv624/xeno_tunnel, +"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_dirt_4" + icon_state = "mars_cave_20" }, -/area/bigredv2/outside/ne) +/area/bigredv2/caves_lambda) "tQo" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ore/uranium{ @@ -38090,6 +39022,15 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"tUY" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 8; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "tVn" = ( /obj/item/tool/lighter/zippo, /turf/open/floor, @@ -38107,6 +39048,12 @@ 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{ @@ -38145,6 +39092,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) @@ -38160,6 +39111,13 @@ icon_state = "panelscorched" }, /area/bigredv2/outside/engineering) +"ufc" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port_lz2) "ufu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, @@ -38175,12 +39133,11 @@ icon_state = "darkgreencorners2" }, /area/bigredv2/caves/eta/research) -"ufD" = ( -/turf/open/floor{ - dir = 1; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/sw) +"ugc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/random/barrel, +/turf/open/floor, +/area/bigredv2/outside/cargo) "ugW" = ( /obj/structure/machinery/light/small, /turf/open/floor/plating{ @@ -38203,6 +39160,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, @@ -38231,6 +39195,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"; @@ -38249,6 +39223,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; @@ -38266,6 +39254,10 @@ icon_state = "delivery" }, /area/bigredv2/outside/telecomm/lz2_cave) +"unS" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/carpet, +/area/bigredv2/outside/library) "uoj" = ( /obj/effect/decal/remains/human, /turf/open/floor{ @@ -38310,12 +39302,6 @@ icon_state = "mars_cave_18" }, /area/bigredv2/caves_east) -"uuo" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_18" - }, -/area/bigredv2/outside/lambda_cave_cas) "uuO" = ( /obj/item/shard{ icon_state = "small" @@ -38343,10 +39329,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" @@ -38375,6 +39375,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{ @@ -38382,12 +39386,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"uCD" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "reactor" - }, -/turf/closed/wall/solaris/rock, -/area/bigredv2/caves) "uDn" = ( /obj/structure/sign/safety/west, /obj/structure/sign/safety/hazard{ @@ -38395,6 +39393,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{ @@ -38484,6 +39492,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, @@ -38598,6 +39613,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{ @@ -38615,6 +39639,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{ @@ -38651,14 +39682,6 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) -"vcm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/lambda_cave_cas) "vct" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -38711,6 +39734,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" @@ -38723,6 +39756,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{ @@ -38732,6 +39772,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{ @@ -38746,15 +39792,6 @@ icon_state = "dark" }, /area/bigredv2/outside/filtration_plant) -"vis" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/c) "viN" = ( /obj/structure/machinery/door_control{ id = "workshop_br_g"; @@ -38779,6 +39816,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{ @@ -38888,6 +39944,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, @@ -38915,15 +39978,6 @@ icon_state = "darkblue2" }, /area/bigredv2/caves/eta/research) -"vvi" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "lz1containers" - }, -/turf/open/floor{ - dir = 4; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/space_port) "vvj" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -38949,12 +40003,17 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) -"vwP" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_7" +"vxv" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 }, -/area/bigredv2/outside/lz1_north_cas) +/obj/structure/surface/table, +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) "vxQ" = ( /obj/item/tool/pickaxe/gold, /turf/open/floor/plating, @@ -38974,18 +40033,17 @@ /obj/structure/window/framed/solaris/reinforced/tinted, /turf/open/floor/plating, /area/bigredv2/caves/lambda/xenobiology) -"vAy" = ( -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/mars_cave{ - icon_state = "mars_cave_9" - }, -/area/bigredv2/caves_north) "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{ @@ -39037,6 +40095,20 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/s) +"vFA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) +"vFH" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "vFS" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -39044,9 +40116,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; @@ -39151,6 +40255,28 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"vUw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/lambda_cave_cas) +"vUy" = ( +/obj/structure/cargo_container/kelland/left, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) +"vUN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "vVl" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Dormitories Toilet" @@ -39160,15 +40286,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) "vVF" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = -5; @@ -39195,12 +40312,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, @@ -39236,6 +40367,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{ @@ -39329,6 +40472,13 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_cave_cas) +"whw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/woodentable, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "whE" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/objective_landmark/close, @@ -39388,16 +40538,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" @@ -39409,10 +40582,6 @@ icon_state = "delivery" }, /area/bigredv2/outside/engineering) -"wpT" = ( -/obj/effect/landmark/lv624/xeno_tunnel, -/turf/open/mars, -/area/bigredv2/outside/w) "wry" = ( /obj/structure/surface/table, /obj/structure/transmitter/colony_net/rotary{ @@ -39437,6 +40606,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) @@ -39526,6 +40704,12 @@ icon_state = "darkyellow2" }, /area/bigredv2/outside/engineering) +"wyP" = ( +/obj/structure/cargo_container/kelland/right, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) "wBi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -39540,6 +40724,24 @@ 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) +"wBK" = ( +/obj/structure/bed/chair/wood/normal{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "wCo" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_4" @@ -39561,16 +40763,14 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) -"wDK" = ( -/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 +"wET" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" +/turf/open/floor{ + icon_state = "wood" }, -/area/bigredv2/caves_north) +/area/bigredv2/outside/library) "wFL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/safety/hazard{ @@ -39628,6 +40828,12 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"wHg" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1north_mining" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/space_port) "wHx" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -39638,6 +40844,27 @@ icon_state = "darkredcorners2" }, /area/bigredv2/outside/admin_building) +"wHM" = ( +/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" + }, +/area/bigredv2/outside/library) +"wIj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/e) "wIw" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -39663,6 +40890,15 @@ icon_state = "mars_cave_17" }, /area/bigredv2/outside/lz1_north_cas) +"wKA" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/library) "wLD" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/plating{ @@ -39710,21 +40946,19 @@ /obj/structure/largecrate/random/secure, /turf/open/floor, /area/bigred/ground/garage_workshop) -"wNw" = ( -/obj/structure/machinery/door/poddoor/almayer/closed{ - dir = 4; - id = "lambda"; - name = "Lambda Lockdown" - }, -/turf/open/floor{ - icon_state = "delivery" - }, -/area/bigredv2/outside/lambda_cave_cas) "wNA" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_magazine/pistol/m1911, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"wOK" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/caves_lambda) "wPk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -39745,19 +40979,17 @@ 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) +"wRl" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "admin_pmc" + }, +/turf/closed/wall/solaris/reinforced, +/area/bigredv2/outside/admin_building) "wRH" = ( /obj/effect/decal/cleanable/dirt, /obj/item/device/flashlight, @@ -39813,6 +41045,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{ @@ -39832,6 +41069,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) @@ -39853,11 +41095,33 @@ 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) +"wZP" = ( +/obj/structure/cargo_container/arious/rightmid, +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/space_port_lz2) +"xaE" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ + dir = 1; + name = "\improper Lambda Checkpoint" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/lambda_cave_cas) "xaH" = ( /turf/closed/wall/wood, /area/bigredv2/caves_sw) @@ -39887,6 +41151,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"; @@ -39947,6 +41222,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" @@ -39976,6 +41257,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" @@ -40072,6 +41357,14 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves/mining) +"xsX" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "xte" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, @@ -40162,6 +41455,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{ @@ -40236,12 +41535,6 @@ "xFZ" = ( /turf/open/mars_cave, /area/bigredv2/caves_lambda) -"xGT" = ( -/turf/open/floor{ - dir = 9; - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/w) "xIo" = ( /obj/structure/window/framed/solaris/reinforced/hull, /turf/open/floor/plating{ @@ -40300,6 +41593,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) +"xLz" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "lz1containers_scramble" + }, +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/space_port) "xLM" = ( /obj/structure/machinery/light{ dir = 1 @@ -40347,6 +41649,12 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/research) +"xOk" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "cargo_containers" + }, +/turf/closed/wall/solaris, +/area/bigredv2/outside/cargo) "xPg" = ( /obj/structure/barricade/handrail/wire, /turf/open/mars_cave{ @@ -40358,6 +41666,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; @@ -40367,16 +41683,38 @@ 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{ icon_state = "mars_cave_13" }, /area/bigredv2/caves/mining) +"xTk" = ( +/obj/limb/arm/l_arm, +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor, +/area/bigredv2/outside/lambda_cave_cas) "xTM" = ( /obj/structure/closet/medical_wall, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"xTV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/lambda_cave_cas) "xUo" = ( /obj/effect/landmark/monkey_spawn, /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -40390,6 +41728,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" @@ -40411,6 +41759,14 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"xWv" = ( +/obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/caves_lambda) "xWz" = ( /obj/effect/decal/cleanable/dirt{ pixel_x = 17 @@ -40428,12 +41784,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/caves_north) +/turf/open/floor/plating{ + dir = 8; + icon_state = "warnplate" + }, +/area/bigredv2/outside/telecomm/warehouse) "xWV" = ( /obj/structure/machinery/power/apc{ dir = 1 @@ -40471,6 +41831,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"; @@ -40501,6 +41866,9 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"xZL" = ( +/turf/closed/wall/solaris/rock, +/area/bigredv2/outside/lambda_cave_cas) "yar" = ( /turf/open/floor{ dir = 4; @@ -40561,12 +41929,15 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/outside/eta) -"yfe" = ( -/obj/effect/landmark/nightmare{ - insert_tag = "eta" +"yej" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/turf/closed/wall/solaris/reinforced, -/area/bigredv2/caves/eta/xenobiology) +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "yfs" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -40596,6 +41967,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"; @@ -40625,6 +42006,18 @@ icon_state = "mars_dirt_5" }, /area/bigredv2/caves/mining) +"yhG" = ( +/obj/structure/showcase{ + icon = 'icons/obj/structures/machinery/research.dmi'; + icon_state = "d_analyzer_la" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "darkish" + }, +/area/bigredv2/caves/lambda/breakroom) "yhN" = ( /obj/effect/decal/cleanable/blood{ layer = 3 @@ -42699,7 +44092,7 @@ aao aao aao aao -jcn +rNs aao aao xmy @@ -44030,7 +45423,7 @@ aao aao aao aao -qTu +lFR aao aao aao @@ -44923,14 +46316,14 @@ aao aao aao aao -azR -azR -aao -aao -aao -aao -aao -qtx +ayf +ayf +ayf +ayf +ayf +ayf +ayf +ayf ayf ayf ayf @@ -45140,13 +46533,13 @@ aao aao aao aao -azR -wpT -aYF -aYF -aYF +ayf +bcW cVY +ayf cVY +uBP +ayf cVY cVY cVY @@ -45357,15 +46750,15 @@ aao aao aao aao -azR -aYF -aYF -aYF -aYF +ayf cVY cVY cVY cVY +ucl +gQj +dCU +tQg cVY cVY bjN @@ -45574,14 +46967,14 @@ aao aao aao aao -azR -azR -aYF -aYF -bgC +ayf +ayf cVY cVY cVY +xjU +cVY +cVY cVY cVY cVY @@ -45589,7 +46982,7 @@ cVY cVY cVY ayf -aao +ayf aao aao aao @@ -45791,11 +47184,11 @@ aao aao aao aao -azR -aYF -aYF -aYF -aYF +ayf +qsd +cVY +cVY +nbu cVY cVY cVY @@ -45805,8 +47198,7 @@ mMf cVY cVY cVY -ayf -ayf +cVY ayf ayf ayf @@ -45829,6 +47221,7 @@ aao aao aao aao +aao kvp sLy feS @@ -45982,7 +47375,7 @@ aIb aHj aJh aJh -aJh +aHj aoD aNe aNc @@ -46008,11 +47401,11 @@ aao aao aao aao -azR -aYF -aYF -aYF -bbc +ayf +mkt +cVY +cVY +hpg bgW cVY hpg @@ -46022,13 +47415,13 @@ tVp mMf mMf mMf -tVp -tVp -tVp +mMf +ayf +ayf bsa -tVp -tVp -tVp +ayf +ayf +qcQ tVp fFO cVY @@ -46039,7 +47432,7 @@ fFO cVY cVY cVY -uSC +ayf ayf aao aao @@ -46199,7 +47592,7 @@ aIb lQU aFt aFt -aFt +aHh aoD aNf aNc @@ -46217,19 +47610,19 @@ aXw aXw aZl aoD -pIh -pIh +bRV +bRV aoD aoD aoD aoD aao aao -azR -azR -aYF -aYF -aSB +ayf +ayf +cVY +cVY +tVp feN vKv vKv @@ -46242,6 +47635,7 @@ vKv vKv vKv vKv +eWd vKv vKv vKv @@ -46254,11 +47648,10 @@ vKv vKv vKv vKv -vKv -vKv -vKv +jlS +tVp +ayf ayf -aao aao aao aao @@ -46416,7 +47809,7 @@ aIb lQU aFt aFu -aFt +qVw aoD aNg aNc @@ -46442,11 +47835,11 @@ aNc aoD aao aao -azR -aYF -aYF -bbc -aSB +ayf +cVY +cVY +hpg +tVp bgX eWd eWd @@ -46472,14 +47865,14 @@ eWd eWd eWd eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao aao aao -aao kvp wog wog @@ -46659,11 +48052,11 @@ aNc aoD aao aao -azR -aYF -aYF -bcp -aSB +ayf +cVY +cVY +uSC +tVp bgX bsa bid @@ -46689,14 +48082,14 @@ bjn bid bsa eWd -eWd -eWd +dAX +vUy +tVp ayf aao aao aao aao -aao gxJ iGK wog @@ -46876,11 +48269,11 @@ aNc aoD aao aao -azR -azR -aYF -bcp -aSB +ayf +ayf +cVY +uSC +tVp bgX bhu bie @@ -46906,8 +48299,9 @@ bje bie bsb eWd -eWd -eWd +dAX +wyP +tVp ayf aao aao @@ -46915,7 +48309,6 @@ aao aao aao aao -aao gxJ iGK wog @@ -47093,11 +48486,11 @@ aXx aoD aao aao -azR -aYF -aYF -bcp -aSB +ayf +tpY +cVY +uSC +tVp bgX bhv bie @@ -47123,8 +48516,9 @@ bie bie bsc eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47134,7 +48528,6 @@ aao aao aao aao -aao kvp wog wog @@ -47310,11 +48703,11 @@ aNi aoD aao aao -azR -aYF -aYF -bcp -aSB +ayf +cVY +cVY +uSC +tVp bgX bhw bie @@ -47340,8 +48733,9 @@ bie bie bsd eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47351,7 +48745,6 @@ aao aao aao aao -aao kvp wog sLy @@ -47527,11 +48920,11 @@ aXy aoD aao aao -azR -azR -aYF -bbJ -aSB +ayf +ayf +cVY +wXv +tVp bgX bhx bie @@ -47557,8 +48950,9 @@ bie bie bse eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47568,7 +48962,6 @@ aao aao aao aao -aao kvp wog wog @@ -47744,11 +49137,11 @@ aXz aoD aao aao -azR -jvt -aYF -aYF -bcp +ayf +cVY +cVY +cVY +uSC bgX bhu bie @@ -47774,8 +49167,9 @@ bie bie bsb eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -47785,7 +49179,6 @@ aao aao aao aao -aao kvp wog feS @@ -47906,7 +49299,7 @@ ajx aoN ajx vXp -pdN +oVq aeI aeI aeI @@ -47944,7 +49337,7 @@ aoD aoD aoD aoD -eUT +maB aoD aoD aoD @@ -47953,19 +49346,19 @@ aoD aoD aoD aoD -aoa aoD aoD aoD aoD -aoa -azR -azR -azR -aYF -aYF -bbc -aSB +aoD +aoD +ayf +ayf +ayf +cVY +cVY +hpg +tVp bgX bhy bie @@ -47991,8 +49384,9 @@ bie bie bsc eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48002,7 +49396,6 @@ aao aao aao aao -aao kvp wog feS @@ -48104,7 +49497,7 @@ acw acw aam aam -vvi +xLz aam aam aam @@ -48150,7 +49543,7 @@ aoD grU aIg grU -aoa +aoD aln aoD aEu @@ -48167,22 +49560,22 @@ aEu aoD aEu aEu -aEV +aoD aEu aEu -aoa -aSB -aSB aoD aSB aSB -azR -aSB +aoD aSB -bax -bax aSB +rZn aSB +tVp +mMf +mMf +tVp +tVp bgX bhw bie @@ -48208,8 +49601,9 @@ bie bie bsd eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48219,7 +49613,6 @@ aao aao aao aao -aao kvp wog iAF @@ -48395,11 +49788,11 @@ aSB beP beP beP -aSB -aSB -aSB -aSB -aSB +tVp +tVp +tVp +tVp +tVp bgX bhz bie @@ -48425,8 +49818,9 @@ bie bie bse eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48436,7 +49830,6 @@ aao aao aao aao -aao gxJ iAF aao @@ -48612,11 +50005,11 @@ aWk aVI aWk aWk -aVI -aVI -aWk -aWk -aWk +iHe +iHe +vKv +vKv +vKv eWd bhA bie @@ -48642,8 +50035,9 @@ bie bjo bsb eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48659,7 +50053,6 @@ aao aao aao aao -aao kvp wog daf @@ -48792,7 +50185,7 @@ axv anp anp anp -anp +gri ajx ajY akK @@ -48829,11 +50222,11 @@ aUQ bdZ bdZ bdZ -aXA -aWV -aXA -aXA -aXA +bmN +ufc +bmN +bmN +bmN eWd bhv bie @@ -48859,8 +50252,9 @@ bie bie bsc eWd -eWd -eWd +dAX +tVp +tVp ayf aao aao @@ -48876,7 +50270,6 @@ aao aao aao aao -aao kvp wog wog @@ -49046,11 +50439,11 @@ bdZ bdZ bdZ beu -beP -aSB -aSB -aSB -aSB +woe +tVp +tVp +tVp +tVp bgX bhw bie @@ -49076,8 +50469,9 @@ bje bie bsd eWd -eWd -eWd +dAX +tVp +tWf ayf aao aao @@ -49093,7 +50487,6 @@ aao aao aao aao -aao gxJ iGK iGK @@ -49170,7 +50563,7 @@ wcs aae aae aae -aLh +wHg aah aah aaU @@ -49218,9 +50611,9 @@ ahR aln ajy bFw -bjj -bjj -jtX +xWR +xWR +iTN axZ avT azo @@ -49263,11 +50656,11 @@ bdZ aUQ bdZ bev -beP -aSB -bfT -aSB -aSB +woe +tVp +wbD +tVp +tVp bgX bsa bpu @@ -49293,8 +50686,9 @@ brb bpu bsa eWd -eWd -eWd +dAX +tVp +wZP ayf aao aao @@ -49313,7 +50707,6 @@ aao aao aao aao -aao kvp wog wog @@ -49435,9 +50828,9 @@ akK aln ajy bFw -kRo -joi -bjX +hyC +iNE +pPh axZ avT avT @@ -49470,7 +50863,7 @@ asj aoH aoH asK -asK +jUd asK beQ aYF @@ -49480,11 +50873,11 @@ bdZ aUQ bdZ bev -beP -aSB -aSB -aSB -aSB +woe +tVp +tVp +tVp +tVp bgX eWd eWd @@ -49510,8 +50903,9 @@ eWd eWd eWd eWd -eWd -eWd +dAX +tVp +shK ayf aao aao @@ -49530,7 +50924,6 @@ aao aao aao aao -aao kvp wog wog @@ -49652,9 +51045,9 @@ ahR aln ajy bFw -kRo -kRo -bjX +hyC +hyC +pPh axZ avT avT @@ -49697,24 +51090,24 @@ bdZ aUQ bdZ bev -aSB -aSB -aSB -xGT -aWk -eWd -eWd +tVp +aao +aao +tVp +tVp +bgX +sbm kHK kHK -eWd -eWd -eWd -eWd +bmN +bmN +bmN eWd eWd eWd bmN bmN +eWd bmN bmN bmN @@ -49727,10 +51120,10 @@ eWd bmN bmN bmN -bmN -bmN +vGE +tVp +ayf ayf -aao aao aao aao @@ -49869,9 +51262,9 @@ atm aln ajy bFw -rhx -bjv -bqg +ccI +xcz +dws aya avT azo @@ -49914,38 +51307,38 @@ bdZ bdZ bdZ bev -aSB -aSB -aSB -aVG -asK -asK -asK -bdg -bbg -asK -atw -atw -atw -atw -atw -asK +tVp +tVp +aao +aao +tVp +bgX +sbm +eWd +dAX +kOv +qNH +mDt +bgX +eWd +cpQ +ayf ayf bsa ayf -axX -maD -boD -axX -bpx -ufD -bpv -brd -bpx -bpx -bpx -bpx -bpx +ayf +qcQ +tVp +tVp +tVp +bgX +eWd +dAX +tVp +qcQ +tVp +tVp +tVp aao aao aao @@ -50131,39 +51524,39 @@ bdZ bdZ bdZ bev -aSB -aSB -bfU -aVG -asK -svp -svp -aZu -aZu -bbM -aZu -bjP -tgk -qHZ -qHZ -asK +tVp +tVp +jDo +tVp +tVp +bgX +eWd +eWd +eWd +vKv +vKv +vKv +eWd +eWd +qNU ayf ayf ayf -azb -hhK -sCt -azb -bpx -ufD -bpv -brd -bpx -bpx -bpx -bpx -bpx -bpx +ayf +ayf +tVp +tVp +qcQ +tVp +bgX +eWd +dAX +tVp +tVp +tVp +tVp +tVp +qcQ aao aao aao @@ -50348,40 +51741,40 @@ bdZ bdZ bdZ beQ -aSB -aSB -aSB -aVG -asK -bhb -bhb -bhb -bhD -bhb -bhb -bhb -bhb -bhb -aLn -asK +tVp +tVp +tVp +tVp +tVp +bgX +eWd +eWd +kHK +bmN +bmN +bmN +eWd +eWd +gpA +ayf aFc aFc aFc -azb -hhK -sCt -azb -bpx -ufD -bpv -brd -bpx -bpx -bpx -bpx -bpx -bpx -oip +ayf +quX +quX +axX +tVp +bgX +eWd +dAX +tVp +tVp +tVp +tVp +tVp +tVp +fsY lzI aao aao @@ -50565,40 +51958,40 @@ bdZ bdZ bdZ beQ -aSB -aSB -aSB -aVG -asK -bhc -bbe -bfz -aZu -aZu -aZu -aZu -aZu -bhb -blb -asK +tVp +tVp +tVp +tVp +tVp +mAY +vsi +dIH +dAX +mDt +jrN +kOv +bgX +eWd +lTV +gWD aFc aFc -bme +bsI azb -hhK -sCt +vkv +kVT azb -bpx -ufD -bpv -bpv -brG -brG -brG -brG -brG -brG -brG +vKv +eWd +eWd +eWd +vKv +vKv +vKv +vKv +vKv +vKv +vKv qzO cHn cHn @@ -50774,48 +52167,48 @@ aoH aYH aXH asK -beQ -aSB -beR -bcr -bcs -bcs -bcs -bew -beR -aSB -aSB -aVG -asK -bhd -bhD -bik -bhD -bhb -bhb -bhb -bhb -bhb -aZu -asK +bdZ +aWk +swk +aUQ +aUQ +aUQ +aUQ +bdZ +tUY +vKv +vKv +vKv +vKv +dVp +kHK +crl +kHK +vKv +vKv +vKv +eWd +eWd +okt +gWD aFc aFc -bme +bsI azb hhK -sCt -azb -bpy -ufD -bpv -bpv -bpv -bpv -bpv -bpv -bpv -bpv -bpv +nVq +bqf +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd +eWd qzO bGL bGL @@ -50850,7 +52243,7 @@ aao aao aao aao -ers +lOY aao uHQ oRK @@ -50992,47 +52385,47 @@ aYI aXH asK bdZ -aWk -beS -bcs -bdf -bdf -beb -bdf -beS -aWk -aWk bdZ asK -oEJ -oEJ -baz -aZO -bjg -bjt -bjQ -bkk -bjQ -blc +aUQ +bdZ +bdZ +iCu +bdZ +asK +eWd +eWd +eWd asK +eWd +eWd +crl +kHK +tMa +tMa +gWD +eWd +eWd +ice +gWD aFc aFc -bme +bsI azb hhK sCt azb -bme -bqe -heU -heU -heU -heU -heU -heU -heU -heU -heU +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN +bmN qzO bGL bGL @@ -51231,10 +52624,10 @@ asK asK bkz asK -lMt +xOk aFc -bme -bme +ftY +kcH azb hhK sCt @@ -51427,30 +52820,30 @@ aZm aZL bay aZu -bbM +asK bcu bdg bdg bcu bdg -beT -aZu -aZu -aZu +asK aZu aZu aZu +asK +kjH +beT baz aZu bbM -beT +rYS asK aZw aZu bld asK -bme -bme +ftY +kcH bme azb hhK @@ -51644,29 +53037,29 @@ aXH asK baz aZu -aZO +cRb aZu aZu aZu aZu aZu -beU +hah bfy bfV -bfF -baF -baF -aZu -baz -aZu -aZu +bgq +atA +gMC +bhb +bik +bhb +bhb aZu asK aZu bkA hzy axL -bme +bsI bme bme azb @@ -51871,19 +53264,19 @@ bbe bfz aZO aZu -aZu -aZu -aZu +atA +bkn +bhb bfB bgD -bjh +eYK bbe bjR bbe bbe aLo axL -bme +bsI bme bme azb @@ -51899,7 +53292,7 @@ rzb bsK axX bme -bme +nra aao glB xpb @@ -52007,7 +53400,7 @@ aae aae aae aae -lMB +nZd aae aae aaq @@ -52085,22 +53478,22 @@ bdK aZM aZu beU -bfA -bfW -bgq -bfy +hVP +bgE baF +asK aZu -baz -aZu -aZO -aZO +bhb +bik +bhb +bhD +ugc atA bkl aZO blg axL -bme +bsI bme bme azb @@ -52115,7 +53508,7 @@ tTI rzb bsL azb -bme +nra bpx aao euF @@ -52305,19 +53698,19 @@ aZu bfB bbe bbe -bgD +bjR bbe bhE bbR biK -aZO -aZO +vkF +fVt atA bkl aZu aZu axL -bme +bsI bme bme azb @@ -52521,21 +53914,21 @@ aZu beU bfC bfX -baF -bgE bhe asK -bio -cwk -aZu -aZu +asK +asK +wLU +bbg +asK +asK asK aLl aZu blh asK -bme -bme +ftY +fbf bme axX azB @@ -53152,7 +54545,7 @@ aQM aQM aSI aOB -dlr +aNo aNo aNm aoH @@ -53166,7 +54559,7 @@ bbg auk asK asK -aZu +bee aZu bex bbe @@ -53383,7 +54776,7 @@ aZO baz bcy asK -aZu +bee aZu baz beU @@ -53592,7 +54985,7 @@ aWB aoH aXH aXH -asK +mOc aZu aZO aZO @@ -53601,8 +54994,8 @@ bbR bcz asK bdM -bee -bey +aZu +eRe aZu aZu aZu @@ -53869,7 +55262,7 @@ wog wog wog aao -uCD +bRC aao aao aao @@ -54177,7 +55570,7 @@ aao aao aao aao -rgp +asc acp adh adh @@ -54277,7 +55670,7 @@ bnr bok bnr bpi -kVT +mfQ ayr nPz nVq @@ -54392,9 +55785,9 @@ aao aao aao aao -pXu -iyY -xbV +dQR +dXK +asc acp adi adz @@ -54418,13 +55811,13 @@ ahP aog aoR alu -aqv +atq aqw aqw aqw -atp +hbx amj -auJ +ujq avw awb awP @@ -54608,10 +56001,10 @@ aao aao aao aao -iyY -xBS -wXg -uzv +dXK +hQO +aqL +asc acp adj adA @@ -54635,13 +56028,13 @@ ahP ahP ajz alD -aqv +atq aqw arR arR -atq +ark amj -auK +kXV aqw awc awQ @@ -54824,11 +56217,11 @@ aao aao aao aao -mDN -wXg -pMv -wXg -pow +kfx +aqL +nnz +aqL +asc acp adk adk @@ -54852,11 +56245,11 @@ ahP ahP ajz alD -aqv +atq aqw arR asC -atq +ark amj auK aqw @@ -54892,7 +56285,7 @@ aOB aVO aoH asK -aXJ +jUd asK asK aZu @@ -55040,12 +56433,12 @@ aao aao aao aao -pXu -mDN -wXg -wXg -wXg -wcs +dQR +kfx +aqL +aqL +aqL +asc acp aaX adB @@ -55069,7 +56462,7 @@ ahP ahP ajy alD -aqv +aqw ari arS asD @@ -55108,9 +56501,9 @@ aQS aQS aQS aoH -aYe -aXH -aYe +aHF +aHF +aHF asK aZv aZR @@ -55256,13 +56649,13 @@ pXu aao aao aao -pXu -pXu -xBS -wXg -pow -pow -pow +dQR +dQR +hQO +aqL +agq +ahe +ahS acp acp acp @@ -55325,9 +56718,9 @@ apQ apQ apQ aoH -aYe -aXH -aYe +aHF +aHF +aHF asK aZu aZu @@ -55470,14 +56863,14 @@ cGZ pXu pXu pXu -pXu -pXu -iyY -pXu -tlj -pow -wcs -pow +rgp +dQR +dXK +dQR +agq +ahe +ahe +ahS acp acp acp @@ -55542,9 +56935,9 @@ aGV aVh aVP aoH -aYe -aXH -aYf +aHF +aHF +wZv asK aZw aZu @@ -55577,7 +56970,7 @@ bmV ayr bnV tTI -cKu +eYy ayZ bpF slG @@ -55687,14 +57080,14 @@ wXg wKx pXu pXu -pXu -xBS -wXg -cGZ -vwP -acp +tnG +hQO +aqL +lOL +asc acp acp +agy acp acL acT @@ -55719,12 +57112,12 @@ ana acp acp acp -qKx -aqy -ark -arV -ark -ark +sXd +ume +aqv +bOZ +aqv +aqv amj auL avx @@ -55759,9 +57152,9 @@ aSO aVi aVO aoH -aYe -aXH -aYe +aHF +aHF +aHF asK aZx aZx @@ -55794,7 +57187,7 @@ ayr ayr xAX tTI -cKu +eYy ayZ nPz tTI @@ -55904,15 +57297,15 @@ wXg wKx pXu pXu -xBS -wXg -pMv -wXg -mGq +hgO +aqL +nnz +aqL +asc acp acy -acC -acE +cGc +cGc acC acU acC @@ -55930,13 +57323,13 @@ aiX afS afS afS -alp +acr ame aic aer afS cLZ -alX +acp amj amj amj @@ -55976,9 +57369,9 @@ aoH aoH aoH aoH -asK -asK -asK +aHF +aHF +aHF asK atw atw @@ -56119,17 +57512,17 @@ aao wXg wXg wKx -pXu -mDN -wXg -geC -wXg -wXg -mGq +dQR +kfx +idn +gdK +aqL +aqL +asc acq -acy +acz +acC acC -acE acM acM acM @@ -56146,14 +57539,14 @@ acp aiZ afS afS -akM -acr +afS +alp ame ahj anx afS akM -alX +acp agY arl arl @@ -56193,9 +57586,9 @@ aMg aMg aNw aNw -aNw -aNw -aMg +bhU +bhU +aHF aMg aNw aNw @@ -56333,20 +57726,20 @@ aao aao aao aao -pRP -ajD -akP -akP -aus -akX -alH -akX -wpf -vwP +aao +nlB +dQR +dQR +dQR +idn +nnz +aqL +wWE +asc acr -acy +acz +acC acC -acE acM acM acM @@ -56363,15 +57756,15 @@ acp aja ajC ake -aiX +rat acr ame ahj aer afS aoT -alX -aqw +acp +tLO arm aip asE @@ -56410,9 +57803,9 @@ aBR aBR aBR aBR -aBR -aBR -aBR +aMc +aHF +aHD aYK aIp aBR @@ -56550,16 +57943,16 @@ aao aao aao aao -iRf -akh -akh -alq -aWy -wMp -akX -akX -hKM -vwP +aao +dQR +dQR +dQR +dQR +hFV +aqL +aqL +lbh +asc acs acz acC @@ -56587,9 +57980,9 @@ ahj acp acp acp -alX -aqB -arn +acp +efK +arl aiY asF arl @@ -56627,9 +58020,9 @@ aBR aBR aFL aBR -aBR -aBR -aBR +aMc +aHF +aHD aBR aBR aBR @@ -56678,9 +58071,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -56767,17 +58160,17 @@ aao aao aao aao -iRf -akh -akh -akh -lVm -aad -akZ -akZ -aad -vwP -acp +aao +dQR +dQR +dQR +dQR +tnG +nlB +nlB +dQR +asc +acq acz acD acF @@ -56794,19 +58187,19 @@ agz ahm ahj acp -aZp -bhH -akf -bhN +jWR +cGi +kCR +aWj biA ame ahj aer afS bNE -alX -alu -alu +acp +anZ +anZ alu alu alu @@ -56844,9 +58237,9 @@ aFM aFM aFM aFM -aFM -aFM -aFM +aHF +aHF +aHF aFM aFM aFM @@ -56984,20 +58377,20 @@ aao aao aao aao -iRf -akh -akh -akh -aWy -aad -aad -aad -aad -xbV +aao +aao +aao +dQR +dQR +tnG +dQR +dQR +dQR +asc acq acz acD -acG +acD acM acM acM @@ -57011,24 +58404,24 @@ agz ahm aie acp -aZq -adS -akg -akN +eFr +aiX +qQl +iis afS ame ahj anx afS akM -alX -aEB -aro -arY -asG -ats +acp +eKm +rbV +rbV +rbV +vxv alu -auL +auN aqw awh awU @@ -57062,7 +58455,7 @@ apC apC apC apJ -apJ +lrs apJ apC apC @@ -57072,7 +58465,7 @@ apC apC apC apC -nGt +wRl aHF aHD aBR @@ -57201,20 +58594,20 @@ aao aao aao aao -iRf -iRf -iRf -iRf -iRf aao -aad -aad -alJ -tFM +aao +aao +aao +aao +aao +dQR +dQR +kfx +asc acp -acy +acz +acC acC -acE acM acV acV @@ -57228,23 +58621,23 @@ agz ahn ahj acp -aZq -adS -adS -akN +eFr +aiX +aiX +iis afS amg ahj aer afS aoT -alX -aqD -aqD -aqD -aqD -att -atW +acp +aqM +gdK +gdK +aqL +yej +vGN atr atr arU @@ -57275,7 +58668,7 @@ aQV aRT aof aTV -mGS +mIc tap aof aNK @@ -57424,14 +58817,14 @@ aao aao aao aao -aad -abU -alJ -tFM +dQR +elh +kfx +asc acq -acy +acz +acC acC -acE acC vPZ acD @@ -57445,23 +58838,23 @@ agz ahn aic acp -aZP -bhM -bhM -akO +jTa +raU +raU +woK afS amg aic acp acp acp -alX -aqD -aqD -aqD -aqD -aqD -alu +acp +aqM +gdK +aqL +aqL +asc +ayN auL aqw azv @@ -57546,9 +58939,9 @@ duA ykR iaC pWs -vVz -vVz -vVz +lCt +lCt +lCt jxA duA ykR @@ -57641,14 +59034,14 @@ aao aao aao aao -abr -aad -alJ -tFM +tjX +dQR +kfx +asc acp acy -acC -acE +cGc +cGc acC acC adp @@ -57672,14 +59065,14 @@ aic aer afS eLp -alX -aqD -aqD -aqD -aqD -atu -alu -auN +acp +aqM +aqL +aqL +aqL +asc +alD +auL arR awi awV @@ -57857,14 +59250,14 @@ aao aao aao aao -akY -cJG -aad -abO -vAy -acp +gdK +lOL +dQR +iXx +asc acp acp +agy acp acp acX @@ -57889,14 +59282,14 @@ aic anx afS akM -alX -aqE -aqE -aqE -aqE -atv -alu -auL +acp +aqM +aqL +aqL +aqL +asc +alD +uDt arR arR aqw @@ -58074,14 +59467,14 @@ aao aao aao aao -akX -akX -hKM -aad -qez -aao -aao -aao +aqL +aqL +lbh +dQR +ags +alF +alF +alF aao acp acp @@ -58106,14 +59499,14 @@ anb aer afS aoT -alX -aqF -aqF -aqF -aqF -aqD -alu -auO +acp +aqM +aqL +aqL +aqL +asc +alD +rfX avy aqw avy @@ -58291,14 +59684,14 @@ aao aao aao aao -akX -akX -hKM -aad -aad -aao -aao -aao +aqL +aqL +lbh +dQR +kfx +aqL +arp +acP aao aao aao @@ -58323,18 +59716,18 @@ anc acp acp acp -alX -aqD -aqD -aqD -aqD -aqD +acp +aqM +aqL +aqL +aqL +hGv +alu +alu +pzC +fni +pzC alu -amj -amj -awj -amj -amj alu ayR azv @@ -58382,9 +59775,9 @@ aBR tHl bhi dbi -lSL -lSL -aMc +oWk +oWk +fTg aHD aIn bjD @@ -58507,16 +59900,16 @@ aao aao aao aao -akX -akX -akX -hKM -aad -aad -aao -aao -aao -aao +aqL +aqL +aqL +lbh +dQR +bGC +aqL +arp +acP +acP aao aao aao @@ -58540,18 +59933,18 @@ aic aer afS bNE -alX -aqD -aqD -aqD -aqD -aqD +acp +aqM +aqL +aqL +aqL +cBq alu -auP +pIl avz aqw auP -avz +qoQ alu ayS azv @@ -58599,9 +59992,9 @@ aBR bhi bhi dbi -nHb -lAK -bYp +qby +stZ +cHz aHD eRI ofX @@ -58723,21 +60116,21 @@ aao aao aao aao -akX -alH -akX -abL -aad -aad -aad -aao -aao -aao -aao -aao -aao -aao -aao +aqL +nnz +aqL +rVE +dQR +dXK +hQO +aqL +arp +ldD +acP +acP +acP +acP +acP acP asc acp @@ -58757,18 +60150,18 @@ ahj anx afS akM -alX -aqE -aqE -aqE -aqE -aqD +acp +aqM +aqL +aqL +aqL +asc alu -auQ +oji avA -awk +aqw awW -axC +tbS alu ayT awi @@ -58816,9 +60209,9 @@ aBR bhi bhi dbi -nHb -nHb -twS +qby +qby +kWW aHF mSn bjE @@ -58940,21 +60333,21 @@ aao aao aao aao -akX -akX -wpf -aad -aad -aad -aad -aao -aao -aao -aao -aao -aao -aao -aao +aqL +aqL +wWE +dQR +eWv +fPe +fPe +wss +akP +fPe +fPe +aus +acP +acP +acP acP asc acp @@ -58974,18 +60367,18 @@ ahj aer afS aoT -alX -aqF -aqF -aqF -aqF -aqD +acp +aqM +aqL +aqL +aqL +asc alu -auR +oji avA -awl +aqw awW -axD +tbS alu ayU aqw @@ -59033,9 +60426,9 @@ aBR eTj bhi dbi -mdU -lRu -aMc +pTo +uyd +gMj aHF aMg bjF @@ -59157,22 +60550,22 @@ aao aao aao aao -wpf -akZ -aad -aad -aad -aad -aad -aao -aao -aao -aao -aao -aao -aao +wWE +nlB +dQR +dQR +nZB +pRP +iRf +akh +mhV +oMf +pRP +aWy acP acP +acP +jeO asc acp afn @@ -59191,18 +60584,18 @@ ahj acp acp acp -alX -aqD -aqD -aqD -aqD -aqD +acp +aqM +aqL +aqL +aqL +asc alu -auS +gts avA aqw awW -avA +tbS alu alu azH @@ -59374,23 +60767,23 @@ aao aao aao aao -abr -aad -aad -oRs -oRs -aad -aad -aao -aao -aao -aao -aao -aao +tjX +dQR +dQR +dXK +aaB +pRP +sWh +hFv +hFv +kAs +oMf +aWy acP acP acP -asc +bJQ +aao acp afo afT @@ -59408,20 +60801,20 @@ ahj any aoh aoU -alX -aqD -aqD -aqD -aqD -aqD +acq +aqM +aqL +aqL +aqL +asc alu -auQ +oji avA -awk +vfo awW -axC +tbS alu -ayV +kRy ayV ayV alu @@ -59591,23 +60984,23 @@ aao aao aao aao -abs -aad -alJ -vRR -akX -hKM -aad -aao -aao -aao -aao -aao -acP -acP +qMS +dQR +kfx +fsT +aaB +oMf +dkY +qDZ +hJH +lqp +iRf +aWy acP acP -asc +jeO +aqL +aao acp afp afT @@ -59625,20 +61018,20 @@ ahj aer aoi aoV -alX -aqE -aqE -aqE -aqE -atu +acq +aqM +aqL +aqL +asa +hGv alu -auT +jRH avB -awm +pOt awX -axE -alu -ayW +gej +uST +vhw ayV ayV alu @@ -59809,22 +61202,22 @@ aao aao aao aao -abr -alJ -akX -akX -cJG -aad -aao -aao -aao +tjX +kfx +aqL +nZB +oMf +dkY +qDZ +qDZ +cnG +iRf +aWy +acP +jeO +aqL aao aao -acP -acP -acP -acP -asc acp afo afT @@ -59842,12 +61235,12 @@ ahj acp aer aer -alX -alu -alu -alu -alu -alu +acp +aqM +aqL +arp +acP +asc alu alu alu @@ -60026,22 +61419,22 @@ aao aao aao aao -abr -alJ -akX -akX -akY -hKM -aao -aao +tjX +kfx +aqL +nZB +pRP +iXs +scK +scK +oUY +oMf +wmN +acP +agq aao aao aao -acP -agq -ahe -ahe -ahS acp afq afS @@ -60060,11 +61453,11 @@ anz aoj aoj apH -aqG -alF -alF -alF -alF +kVR +aqL +arp +acP +ags alF alF alF @@ -60228,32 +61621,32 @@ aaa (91,1,1) = {" aaa aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab -aab aao -abs -abs -wMp -alH -akX -hKM aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +qMS +qMS +vBI +aaB +pRP +oMf +iRf +oMf +oMf +pRP +wmN acP asc acp @@ -60422,7 +61815,7 @@ aCe aCe aCe aCe -yfe +gWv aao jrD jrD @@ -60444,33 +61837,33 @@ aaa "} (92,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -alJ -akX -akX -hKM aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +kfx +cgO +pJt +pJt +gPc +gPc +gPc +pJt +uIz acP asc acp @@ -60661,32 +62054,32 @@ aaa "} (93,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -aad -akZ -akZ -aad aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +dQR +nlB +nlB +vBI +arp +acP +acP +acP acP acP asc @@ -60878,34 +62271,34 @@ aaa "} (94,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -aad -aad -aad -aad -aad aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +dQR +dQR +kfx +arp acP acP +aao +aao +acP asc acp adS @@ -61095,34 +62488,34 @@ aaa "} (95,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -aad -aad -aad -oRs aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +dQR +dQR +dQR +hQO +arp +acP acP acP +aao +acP asc acp adT @@ -61312,33 +62705,33 @@ aaa "} (96,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -abN -aad -tLt -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +vHU +dQR +hQO +aqL +aqL +lUa +acP +acP +acP acP asc acp @@ -61350,7 +62743,7 @@ acp acp acp acp -aiN +akr adS ajL akq @@ -61529,33 +62922,33 @@ aaa "} (97,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abs -aad -alJ -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +qMS +dQR +kfx +aqL +aqL +aqL +arp +acP +acP +acP acP asc acp @@ -61570,7 +62963,7 @@ adS ahk adk ajL -akr +aiN acr adS ajL @@ -61636,14 +63029,14 @@ aNw aNw aNw aNw -aMg -aMg -vis aHF aHF -aMg -aMg -aMg +bhR +aHF +aHF +aHF +aHF +aHF awp bkD blx @@ -61746,33 +63139,33 @@ aaa "} (98,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -alJ -akX -alH aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +kfx +aqL +nnz +aqL +arp +acP +acP +acP acP asc acq @@ -61853,14 +63246,14 @@ aIn aIn aIn aKt -aKt -aKt -bhS -biY -dzY -dWg -dWg -bke +aMc +aHF +tHB +aVp +aVp +aVp +aVp +vIQ bku bmF wtC @@ -61963,33 +63356,33 @@ aaa "} (99,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -qmY -wMp -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +ciG +vBI +aqL +aqL +aqL +lUa +acP +acP acP asc adG @@ -62006,12 +63399,12 @@ aje ajM adS acr -aly -amv -aly +cLq +lym +alx adS -aly -aly +cLq +cLq acr aqK arq @@ -62026,13 +63419,13 @@ ayY axG ayY ayY -joa +kxr asJ asJ aua asJ aDQ -aEL +eYH aws amI aHD @@ -62070,14 +63463,14 @@ aIn aKt aIp aBR -aWI -aFM -aFM +aMc +aHF +aHF +aHF +aHF +aHF aHF aHF -aFM -aFM -aFM awp bkE bly @@ -62180,37 +63573,37 @@ aaa "} (100,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -abr -alJ -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +tjX +kfx +aqL +aqL +aqL +arp +acP +acP acP asc acq -adX +jAR aeu adc afs @@ -62288,12 +63681,12 @@ aBR aBR aBR aMc -erf -auX -auX -auX -auX -erf +aHF +aMg +lID +lID +aMg +aHF aHF awp bkG @@ -62397,37 +63790,37 @@ aaa "} (101,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao -abr -abr -tLt -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +tjX +hQO +aqL +aqL +aao +aqL +lUa +acP acP asc acp -adY +mtM jGn adW adW @@ -62446,7 +63839,7 @@ adS anD alA alA -acr +sVB aqM aqL ase @@ -62505,12 +63898,12 @@ aKl aIm aBR aMc -auX -gpR -gpR +aHD +dPJ gpR gpR -auX +dPJ +nvn bkf awp bkH @@ -62614,33 +64007,33 @@ aaa "} (102,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abq -aad -tLt -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +nEH +dQR +hQO +aqL +aqL +aqL +aao +aao +arp +acP acP asc acp @@ -62663,9 +64056,9 @@ adS adk adk adS -alZ +acr aqM -arr +qwm asc amI aty @@ -62722,12 +64115,12 @@ aFM aHC aBR aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awM awM @@ -62787,7 +64180,7 @@ byM ycP rTq aBE -bww +dmO bww bww hkv @@ -62831,33 +64224,33 @@ aaa "} (103,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -abr -alJ -akX -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tjX +kfx +aqL +aqL +aqL +aqL +aqL +aao +arp +acP acP ags alF @@ -62880,7 +64273,7 @@ ang anE aok adk -acr +alZ aqM acP asc @@ -62898,8 +64291,8 @@ azS amn amn amn -aCQ -amn +cgt +eqr amn amn amn @@ -62939,12 +64332,12 @@ aHF aHD aBR aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awM bkI @@ -63004,7 +64397,7 @@ aNx bAA bDi aBE -gOf +hHG bBv bww bBN @@ -63048,33 +64441,33 @@ aaa "} (104,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -aad -aad -wMp -akX -akX aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +dQR +dQR +vBI +aqL +aqL +aqL +aqL +aqL +arp +acP acP acP acP @@ -63105,7 +64498,7 @@ amn atz atY amn -avE +pvj asJ awY axH @@ -63114,11 +64507,11 @@ asJ azT amn aBj -aBV +qYB +aBk aBk -aDR aBj -aFQ +rKy amn aHD aIp @@ -63156,12 +64549,12 @@ aMc aHD aIm aMc -auX -gpR -gpR -gpR +aHD +dPJ gpR -auX +oOw +dPJ +aMc aHF awM bkJ @@ -63221,7 +64614,7 @@ ofJ aOP aOP aBE -gOf +hHG bww bww bBO @@ -63265,39 +64658,39 @@ aaa "} (105,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -abq -aad -aad -aad -wMp -akX -akY aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +nEH +dQR +dQR +dQR +vBI +aqL +gdK +aqL +aqL +arp acP acP -acP -acP -acP +lPg +mtS +mtS +mtS +lPg acP asc acr @@ -63335,7 +64728,7 @@ aBW aCR aBW aEM -aBW +eWB amn aHD aBR @@ -63373,12 +64766,12 @@ vmm aHF aFM aHF -erf -auX -auX -auX -auX -erf +aHF +aCN +lRC +bSy +aCN +aHF aHF awM awM @@ -63482,39 +64875,39 @@ aaa "} (106,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -cJG -aad -aad -abX -aad -akZ -wMp aao aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +lOL +dQR +dQR +cPg +dQR +nlB +vBI +aqL +aqL +arp acP acP -acP -acP +rZU +khK +taV +dVM +rVT acP ags alF @@ -63549,11 +64942,11 @@ azV amn aBl aBX +aBk +aBk amn amn amn -aBk -amn aHD aBR aBR @@ -63699,29 +65092,8 @@ aaa "} (107,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -cJG -oRs -aad -aad -aad -aad aao aao aao @@ -63730,8 +65102,29 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aqL +lOL +dXK +dQR +dQR +dQR +bGC +aqL +aqL +arp acP acP +rZU +khK +ahS +dVM +rVT acP acP acP @@ -63762,14 +65155,14 @@ dJc axK ayp asJ -aws +jph amn aBm -aBW -amn -ooP +mBc +aBk +aBk aEN -aFR +ibV amn aHD aBR @@ -63807,12 +65200,12 @@ aMc aHD aIn aMc -erf -auX -auX -auX -auX -erf +aHF +aMg +lID +lID +aMg +aHF aHF awp bkK @@ -63916,29 +65309,8 @@ aaa "} (108,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -akX -akX -hKM -aad -aad -abM aao aao aao @@ -63947,8 +65319,29 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aqL +aqL +aqL +lbh +dQR +dQR +kfx +aqL +aqL +arp acP acP +rZU +ahS +ahS +qse +rVT acP acP acP @@ -63982,11 +65375,11 @@ asJ azW amn aBn -aBW -amn +jOj +aBk +aBk amn amn -aFS amn aHD aBR @@ -64024,12 +65417,12 @@ aHF aHD aWJ aMc -auX -gpR -gpR +aHD +dPJ gpR gpR -auX +dPJ +nvn aHF awp bkL @@ -64133,29 +65526,8 @@ aaa "} (109,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -akY -akX -hKM -aad -aad -abV aao aao aao @@ -64165,8 +65537,29 @@ aao aao aao aao +aao +aao +aao +aao +aao +aqL +gdK +aqL +lbh +dQR +dQR +hQO +aqL +aqL +arp acP acP +ase +ahS +ahS +ahS +aqM +acP acP acP acP @@ -64196,14 +65589,14 @@ axc awZ ayp asJ -azX -amn +aws +enJ aBo aBW -amn -arz -aEN aBk +aBk +aEN +ozO amn aHD aBR @@ -64241,12 +65634,12 @@ aMg axW aIp aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awp bkM @@ -64350,28 +65743,8 @@ aaa "} (110,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao -akX -akX -akX -hKM -aad -abM aao aao aao @@ -64382,7 +65755,27 @@ aao aao aao aao +aao +aao +aao +aao +aqL +aqL +aqL +lbh +dQR +kfx +aqL +aqL +aqL +arp +acP acP +rZU +ahS +ahS +khK +rVT acP acP acP @@ -64414,14 +65807,14 @@ axd asJ asJ azY -aAD +qus aBp aBW +aBk +aBk amn amn amn -aBk -amn aHD aBR aBR @@ -64458,12 +65851,12 @@ aKt aIp aBR aMc -auX +fHw gpR gpR gpR gpR -auX +wBu aHF awp qeK @@ -64475,8 +65868,8 @@ bnH yar box yar -iyd -iyd +nzB +nzB eKU yar yar @@ -64567,28 +65960,9 @@ aaa "} (111,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -alH -wpf -aad -aad -abM aao aao aao @@ -64599,8 +65973,27 @@ aao aao aao aao +aao +aao +aao +aao +nnz +wWE +dQR +dQR +kfx +aqL +aqL +aqL +arp acP acP +rZU +ahS +khK +taV +rVT +acP acP acP acP @@ -64630,14 +66023,14 @@ aua aua awn aua -aws +ltK amn aBq -aBY -amn -aDT -aEN +aBq +szZ aBk +aEN +nOe amn aHF aFM @@ -64675,12 +66068,12 @@ aBR aBR aBR aWW -auX -gpR -gpR -gpR +aHD +dPJ gpR -auX +oOw +dPJ +aMc aHF awp awp @@ -64710,7 +66103,7 @@ buc buc buc buu -rrl +ejp azO meT meT @@ -64784,29 +66177,9 @@ aaa "} (112,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao -akX -hKM -aad -aad -alJ -vRR aao aao aao @@ -64818,6 +66191,26 @@ aao aao aao aao +aao +aao +aao +aqL +lbh +dQR +dQR +kfx +fsT +aqL +aqL +aqL +lUa +acP +rZU +hDK +xQd +eVM +rVT +acP acP acP acP @@ -64892,12 +66285,12 @@ aBR aBR aBR aMc -erf -auX -auX -auX -auX -erf +aHF +aCN +lRC +bSy +aCN +aHF aHF awp bkO @@ -65001,29 +66394,11 @@ aaa "} (113,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao -abY -acb -dtX -wDK aao aao aao @@ -65036,6 +66411,24 @@ aao aao aao aao +aao +aao +tjX +dQR +hQO +aqL +aqL +aqL +aqL +arp +acP +lPg +vgE +vgE +vgE +lPg +acP +acP acP acP ags @@ -65061,7 +66454,7 @@ amn avG awq awq -awq +tdz awq axM aws @@ -65218,29 +66611,11 @@ aaa "} (114,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao -abs -alJ -akX -akX aao aao aao @@ -65253,6 +66628,24 @@ aao aao aao aao +aao +aao +qMS +kfx +aqL +aqL +aqL +aao +aqL +aqL +lUa +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65277,7 +66670,7 @@ atY amn asJ awq -axf +mnv axN ays axN @@ -65330,9 +66723,9 @@ asv aHF aHF aHF -asv -awf -awf +aHF +aHF +aHF awp bkE blC @@ -65435,29 +66828,12 @@ aaa "} (115,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -alJ -alH -akX aao aao aao @@ -65471,6 +66847,23 @@ aao aao aao aao +aao +kfx +nnz +aqL +aao +aao +aao +aqL +arp +acP +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65548,8 +66941,8 @@ aHF aHF aHF asv -bjJ -bgx +atJ +atJ awp bkP awp @@ -65652,29 +67045,12 @@ aaa "} (116,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -acc -wDK -wDK aao aao aao @@ -65689,6 +67065,23 @@ aao aao aao aao +kfx +aqL +aqL +aqL +aqL +aqL +aqL +arp +acP +acP +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65709,7 +67102,7 @@ amI aty atY amn -avE +pvj awr axg axO @@ -65765,7 +67158,7 @@ aHF aHF aHF asv -beI +bjJ bgx bkw blX @@ -65869,30 +67262,12 @@ aaa "} (117,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -aad -wMp -akX -akX aao aao aao @@ -65907,6 +67282,24 @@ aao aao aao aao +dQR +vBI +aqL +aqL +aqL +aqL +aqL +aqL +lUa +acP +acP +acP +acP +acP +acP +acP +acP +acP acP acP acP @@ -65964,7 +67357,7 @@ asH aYZ aZE bac -bbt +aYY bbt bac bac @@ -65972,8 +67365,8 @@ bdv bac bcf asv -bff -bfK +lNp +gAX bge bgs bfM @@ -66086,32 +67479,12 @@ aaa "} (118,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -aad -abr -akZ -xWI -akZ -ack aao aao aao @@ -66125,13 +67498,33 @@ aao aao aao aao +aao +dQR +tjX +nlB +dOZ +nlB +vBI +aqL +aqL +aqL +bQh +bQh +lUa acP acP acP acP acP -acP -asc +agq +ahe +ahe +ahe +ahe +ahe +ahe +ahe +ahS aku aoo apc @@ -66148,12 +67541,12 @@ jZp axh amn amn -amn -aAc -amn -amn -amn -eRW +anJ +mbz +anJ +anJ +anJ +fbB amn amn amn @@ -66189,7 +67582,7 @@ aJI bac bem asv -bfg +bgd bfL bgc bgc @@ -66303,33 +67696,12 @@ aaa "} (119,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao -aad -aad -abO -aad -aad -aad -ack aao aao aao @@ -66344,11 +67716,32 @@ aao aao aao aao +dQR +dQR +iXx +dQR +dQR +dQR +vBI +aqL +aqL +aqL +aqL +aqL +lUa acP acP acP acP asc +lPg +hHa +hHa +hHa +hHa +ahS +ahS +ahS aku aop apc @@ -66365,10 +67758,10 @@ awt avJ axP ahf -amn -aAd -aAF -aAF +anJ +aAH +aAg +aAg aAg anJ aDV @@ -66406,7 +67799,7 @@ bdx bdx bdx asv -bfh +bfK bfM bgc bgt @@ -66520,20 +67913,6 @@ aaa "} (120,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -66541,15 +67920,6 @@ aao aao aao aao -aad -aad -abs -aad -aad -oRs -abU -abU -ack aao aao aao @@ -66561,11 +67931,34 @@ aao aao aao aao -acP +aao +aao +aao +dQR +dQR +qMS +dQR +dQR +dXK +elh +elh +vBI +aqL +aqL +aqL +lUa acP acP acP asc +hHa +hDK +hDK +khK +ahS +ahS +ahS +ahS aku aop apc @@ -66582,10 +67975,10 @@ aop apc apc ars -amn -aAe -aAG -aBt +anJ +hhX +cYy +aCb aCb aCU aDW @@ -66737,20 +68130,6 @@ aaa "} (121,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -66759,14 +68138,6 @@ aao aao aao aao -aad -aad -aad -tLt -akX -cJG -oRs -abM aao aao aao @@ -66778,11 +68149,33 @@ aao aao aao aao -acP +aao +aao +aao +dQR +dQR +dQR +hQO +aqL +lOL +dXK +bGC +aqL +aqL +aqL +arp acP acP acP asc +hHa +taV +khK +ahS +ahS +khK +ahS +ahS aku aoq apd @@ -66954,20 +68347,6 @@ aaa "} (122,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -66978,13 +68357,6 @@ aao aao aao aao -alJ -akX -akX -akX -akX -hKM -ack aao aao aao @@ -66996,10 +68368,31 @@ aao aao aao aao -acP +aao +aao +aao +kfx +aqL +aqL +aqL +aqL +lbh +vBI +aqL +aqL +aqL +lUa acP acP asc +hHa +xQd +ahS +ahS +khK +khK +ahS +ahS ako ako ako @@ -67171,20 +68564,6 @@ aaa "} (123,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67195,14 +68574,6 @@ aao aao aao aao -alJ -akX -akY -akX -akX -hKM -aad -ack aao aao aao @@ -67213,16 +68584,38 @@ aao aao aao aao -acP +aao +aao +aao +aao +kfx +aqL +gdK +aqL +aqL +lbh +dQR +vBI +aqL +aqL +arp acP acP asc +hHa +ahS +ahS +ahS +khK +ahS +ahS +khK ako -aor +eNe ape apN ape -art +uVi ako asL atD @@ -67282,10 +68675,10 @@ asv asv asv asv +atJ +atJ asv asv -awf -awf awp bkT bkU @@ -67388,20 +68781,6 @@ aaa "} (124,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67412,14 +68791,6 @@ aao aao aao aao -aad -wMp -akX -vRR -akX -hKM -aad -abM aao aao aao @@ -67431,21 +68802,43 @@ aao aao aao aao -acP +aao +aao +aao +dQR +vBI +aqL +fsT +aqL +lbh +dQR +bGC +aqL +aqL +aqL +lUa acP asc +ahS +ahS +ahS +ahS +ahS +ahS +ahS +khK ako -aos +xzb ape apN ape -aos +pgP ako asM atE apc ako -atE +tgf aop apc axR @@ -67453,8 +68846,8 @@ ayw azc ako aAJ -aBu -tPr +apo +sqt anJ aEa aER @@ -67605,20 +68998,6 @@ aaa "} (125,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67629,14 +69008,6 @@ aao aao aao aao -aad -alJ -akX -akX -wpf -aad -abX -tLt aao aao aao @@ -67649,20 +69020,42 @@ aao aao aao aao +aao +aao +dQR +kfx +aqL +aqL +wWE +dQR +cPg +hQO +aqL +aao +aqL +arp acP asc +ahS +khK +khK +ahS +ahS +ahS +khK +taV ako -aos ape -apN ape -aot +vZh +ape +ied ako asN atE apc ako -atE +xXT aop apc ako @@ -67670,8 +69063,8 @@ ayx azd ako aAJ -aBu -aCc +apo +apo anJ aEb aEO @@ -67822,20 +69215,6 @@ aaa "} (126,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -67847,13 +69226,6 @@ aao aao aao aao -aad -akZ -akZ -aad -aad -alJ -vRR aao aao aao @@ -67866,20 +69238,41 @@ aao aao aao aao -acP +aao +aao +dQR +nlB +nlB +dQR +dQR +kfx +fsT +aqL +aao +aao +aqL +lUa asc +hHa +ahS +khK +ahS +ahS +khK +xQd +xQd ako -aos -apf +ape +mfG apO aqR -aru +tFt ako asO atE apc ako -atE +hto aop axi ako @@ -67887,8 +69280,8 @@ ako ako ako aAJ -aBu -aCc +apo +apo anJ aEc aEc @@ -68039,20 +69432,6 @@ aaa "} (127,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68062,15 +69441,6 @@ aao aao aao aao -abq -abU -abU -aad -aad -aad -aad -tLt -akX aao aao aao @@ -68085,12 +69455,35 @@ aao aao aao aao +nEH +elh +elh +dQR +dQR +dQR +dQR +hQO +aqL +aqL +aqL +aao +aqL +arp +asc +hHa +ahS +ahS +ahS +dVM +aao +aao +aao ako -aos +jNE ape eJU aqS -aos +ape ako asP apc @@ -68104,8 +69497,8 @@ ayw azc ako aAJ -aBu -aCc +apo +apo anJ anJ anJ @@ -68256,20 +69649,6 @@ aaa "} (128,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68278,16 +69657,6 @@ aao aao aao aao -oRs -oRs -abW -aad -aad -aad -aad -alJ -akX -akX aao aao aao @@ -68302,12 +69671,36 @@ aao aao aao aao +dXK +dXK +wbY +dQR +dQR +dQR +dQR +kfx +aqL +aqL +aqL +aqL +aqL +aqL +arp +asc +hHa +xQd +hDK +aao +aao +aao +aao +aao ako -aot +ygN apg apP ape -aos +ape ako asQ atE @@ -68321,19 +69714,19 @@ ayx azd ako aAK -aBu -aCd -aCV -arD -arD -arD -arD -arD -arD -arD -aKA -aCc -aMk +apo +apo +kMk +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo apo apo anT @@ -68473,20 +69866,6 @@ aaa "} (129,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68495,16 +69874,6 @@ aao aao aao aao -alH -akX -cJG -oRs -aad -aad -abW -alJ -akX -akY aao aao aao @@ -68519,12 +69888,36 @@ aao aao aao aao +nnz +aqL +lOL +dXK +dQR +dQR +wbY +kfx +aqL +gdK +aqL +aqL +aqL +aqL +aqL +asc +hHa +aao +aao +aao +aao +aao +aao +aao ako -aos +jNE ape apN aqT -arv +ape ako asR atF @@ -68538,19 +69931,19 @@ ako ako ako aAK -aBu -aCc -aCW -arD -arD -arD -arD -arD -awy -arD -aKB -aCc -aMk +apo +apo +apo +apo +apo +apo +apo +apo +iOR +apo +apo +apo +apo apo apo aOU @@ -68690,20 +70083,6 @@ aaa "} (130,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68712,16 +70091,6 @@ aao aao aao aao -akX -akX -akX -akX -cJG -aad -aad -alJ -akX -akX aao aao aao @@ -68736,6 +70105,30 @@ aao aao aao aao +aqL +aqL +aqL +aqL +lOL +dQR +dQR +kfx +aqL +aqL +aao +aao +aao +aao +aqL +aao +aao +aao +aao +aao +aao +aao +aao +aao ako ako ako @@ -68755,19 +70148,19 @@ ayw azc ako aAJ -aBu -aCc -aCd -arD -arD -arD -arD -arD -arD -arD -arD -aKA -aMk +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo +apo apo apo anT @@ -68907,20 +70300,6 @@ aaa "} (131,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -68929,12 +70308,26 @@ aao aao aao aao -akX -akX -akX -akX -akX -hKM +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aqL +aqL +aqL +aqL +aqL +lbh aad alJ akX @@ -68972,13 +70365,13 @@ ayx azd ako aAJ +apo anT anX anX anX anX anX -anX anT anT anT @@ -69124,20 +70517,6 @@ aaa "} (132,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69146,15 +70525,29 @@ aao aao aao aao -akY -akX -iOL -vRR -akX +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +gdK +aqL +dka +fsT +aqL hKM aad aad -wMp +dTi aao aao aao @@ -69189,13 +70582,13 @@ ako ako ako aAK +apo anU +nWG +tpU +jay aCf -aCX -aEd -aES -aCZ -aGK +ilH anT aIw msq @@ -69341,20 +70734,6 @@ aaa "} (133,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69363,6 +70742,20 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao akX akX akX @@ -69402,16 +70795,16 @@ avI apc axk axS -ayy -aze -ayy +mnY +kwq +mnY aAL -aBx -aCg +mnY +fDf aCY -aCf +aCZ aET -aFZ +aMQ aCZ anT aIw @@ -69558,20 +70951,6 @@ aaa "} (134,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69582,11 +70961,25 @@ aao aao aao aao -akX -wpf -aad +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +cAf +eWE aad aad +acb abM aao aao @@ -69619,17 +71012,17 @@ avJ apc axl ovq -ayz -ayz -aAh +apo aqa -anU -aCf +ata +apo +apo +tKR aCo -aCf -aEU -aFZ aCZ +aEU +aMQ +gAE anT aIw aJs @@ -69775,20 +71168,6 @@ aaa "} (135,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -69800,11 +71179,25 @@ aao aao aao aao -abr -aad -oRs -oRs -abM +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +qQr +oFj +jJO +bVX +fKO aao aao aao @@ -69836,16 +71229,16 @@ apc avJ apc ako -ako -ako -ako +aBu arD +arD +aMk +apo anU -aCf aCZ -aCf +aCZ aQa -aCf +aCZ aCZ anT aIx @@ -69992,36 +71385,36 @@ aaa "} (136,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aab -aab -aab -aab aab aao aao aao aao aao -abr -tLt +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +abY +dtX akX akX -cJG +jSe aao aao aao @@ -70052,18 +71445,18 @@ aml apc apc apc -axR -ayw -azc -ako +aku +aBu +arD arD +aMk +apo anU -aCf +fXR aCo -aEe aEU -aCf aCZ +aCf anT aIy aIC @@ -70209,36 +71602,36 @@ aaa "} (137,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abq -abU -alJ -akX -akX +iGY +pri +ipo +ipo rYt -akX +ipo aao aao aao @@ -70269,18 +71662,18 @@ ask apc apc apc -ako -ayx -azd -ako +aku +aBu +arD arD +aMk +apo anU -aCf +fXR aCo -aEe aEW -aCf aCZ +aCf anT aIz aIC @@ -70426,29 +71819,29 @@ aaa "} (138,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao oRs aad alJ @@ -70486,18 +71879,18 @@ aml atE aww apc -ako -ako -ako -ako +aku +aBu +arD arD +aMk +apo anU -aCf -aCo -aEf +fXR +rNd aEU +aCZ aCf -gAE anT bix aIC @@ -70643,36 +72036,36 @@ aaa "} (139,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao akX hKM aad wMp akX akX -akX +cAf akX aao aao @@ -70682,9 +72075,9 @@ akX akX wpf aad -ack aad -abq +aad +aad akZ alI alH @@ -70703,18 +72096,18 @@ ako xqf apc apc -axR -ayw -azc -ako +aku +aBu arD +arD +aMk +apo anU aCf aCZ -aCZ aQa aCZ -aGK +ilH anT aIz aIC @@ -70860,29 +72253,29 @@ aaa "} (140,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao alH cJG aad @@ -70899,9 +72292,9 @@ akZ fhI aad aad -abM aad -abr +aad +aad aad alJ akY @@ -70921,12 +72314,12 @@ avJ avJ axi ako -ayx -azd -ako +aBu arD +arD +aMk +anT anT -anY anY anY cYI @@ -71077,29 +72470,29 @@ aaa "} (141,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao akY akX hKM @@ -71134,15 +72527,15 @@ akL akL akL akL -atE +cQO apc avJ ako -ako -ako -ako +aBu arD -anT +arD +aMk +anU aCi aCZ aCZ @@ -71294,31 +72687,31 @@ aaa "} (142,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao hKM aad aad @@ -71350,16 +72743,16 @@ apU asX aoB auf -akL -atE -apc -apc +uwV +ant +ant +ant ako -aao -arD +aBu arD arD -anT +aMk +anU aCj aCo aCo @@ -71511,25 +72904,6 @@ aaa "} (143,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -71537,6 +72911,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abr aad aad @@ -71568,15 +72961,15 @@ aoB apU aoB akL -atE -apc -apc -ako -aao -arD -arD -arD -anT +gbA +aqa +aqa +aqa +rzR +cHH +aCW +aMk +anU aOc aCo aCo @@ -71728,25 +73121,6 @@ aaa "} (144,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -71754,6 +73128,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abs aad aad @@ -71785,14 +73178,14 @@ asY aoB aug akL -atE -apc -apc -ako -aao -aao -arD -arD +xgm +aCc +aCc +aCc +aCc +aCc +aCd +aMk anT aCl aDa @@ -71945,25 +73338,6 @@ aaa "} (145,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -71972,6 +73346,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abs abO aad @@ -71998,18 +73391,18 @@ apZ aoB arC aoB -asZ +auh aoB auh akL -apc -apc -apc -ako -aao -aao -arD -arD +aBu +aCc +pLH +lIS +jmD +ivW +aCd +aMk anT aCm aCZ @@ -72162,25 +73555,6 @@ aaa "} (146,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72190,6 +73564,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao abr alJ akX @@ -72219,15 +73612,15 @@ akL akL akL akL -avK -awx -axm -ako -aao +aBu +aCc +pLH +pgh aao -arD -arD -anT +kzF +ivW +aMk +anU aCn aCZ aCo @@ -72246,8 +73639,8 @@ aOb aQo aQl aqU -aTo -aUo +qhl +aVv aUk aKP aKP @@ -72379,25 +73772,6 @@ aaa "} (147,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72408,11 +73782,6 @@ aao aao aao aao -brc -buP -fbF -isr -iZh aao aao aao @@ -72427,6 +73796,30 @@ aao aao aao aao +aao +aao +aao +aao +aao +mEC +fGK +fGK +fGK +mEC +mEC +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tAW aqa aqa @@ -72435,16 +73828,16 @@ aqa ata ata ata -ann -ant -ant -ant -ako +aqa +rzR +aCc +aCc +pgh aao aao -arD -arD -anT +fEE +aMk +anU aCo aCZ aEg @@ -72452,7 +73845,7 @@ aCo aQa aCZ anT -aIE +cOu aJA aKJ aEd @@ -72463,8 +73856,8 @@ aPi aQp aQm aqU -aTp -aTk +qhl +sEh aUk aKP aKP @@ -72596,25 +73989,6 @@ aaa "} (148,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72624,11 +73998,6 @@ aao aao aao aao -arK -szg -szg -szg -arK aao aao aao @@ -72640,28 +74009,52 @@ aao aao aao aao -amG aao aao aao aao aao aao -arD -asm -arD -arD -arD -arD -arD -arD -arD -arD aao aao -arD -arD -anT +tqS +xWl +xWl +gIT +xWl +xWl +tqS +aao +aao +aao +aao +aao +aao +aao +aao +aao +amG +aao +aao +aao +aao +aao +aao +aCc +oFx +aCc +aCc +aCc +pLH +aCc +aCc +aCc +ukW +kzF +aao +fEE +aMk +anU aCp aDb aEh @@ -72670,8 +74063,8 @@ aQa aCZ anT aIF -aJB -aKK +eaZ +aCZ aLE aMp aLE @@ -72680,8 +74073,8 @@ aPj aQq aRs anT -aTp -aUp +qhl +wIj aUk aKP aKP @@ -72813,25 +74206,6 @@ aaa "} (149,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -72841,11 +74215,6 @@ aao aao aao aao -aTv -aTv -aTv -aTv -aTv aao aao aao @@ -72857,6 +74226,30 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +tqS +sFv +xRn +xRn +xRn +dgH +tqS +aao +aao +aao +aao +aao +aao +aao +aao +aao wQC gXp eMX @@ -72867,17 +74260,17 @@ aao aao aao aao -arD -arD -arD +hgr +hgr aao -arD -arD -arD aao -arD -arD -arD +pLH +aCc +pLH +ukW +rrF +kpd +aMk anW anW anW @@ -72897,8 +74290,8 @@ anW anW anW anW -aTq -aUp +aDy +wIj aUk aKP aKP @@ -73030,25 +74423,6 @@ aaa "} (150,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73057,14 +74431,33 @@ aao aao aao aao -gNH -szg -szg -szg -heI -szg -szg -gNH +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +tqS +xWl +xWl +xWl +xWl +xWl +tqS aao aao aao @@ -73083,39 +74476,39 @@ aao aao aao aao +tQj +kzF +kzF +lAC aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -aMk +aao +aCc +aCc +aCc +aCc +pLH +bMz +apo anW -aDc -aEi -aDc -aDg -aDc -aEi -aDc -aJC -aKL -aEi -aDc -aEi -aDc -aEi -aQr +qsV +vFA +heD +wKA +nhF +anW +eBL +qsV +qsV +anW +qsV +anW +eBL +eBL +eBL anW aTq -aTq -aTk +aDy +sEh aUk aKP aWL @@ -73130,7 +74523,7 @@ atP atP atP atb -iIp +gAK bja bes bes @@ -73247,25 +74640,6 @@ aaa "} (151,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73274,7 +74648,26 @@ aao aao aao aao -aac +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao azF azF azF @@ -73282,7 +74675,7 @@ azF azF azF aao -kpf +aao tQw tQw tQw @@ -73298,41 +74691,41 @@ tQw aao aao aao -aao -aao -aao -aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +bQG +vXJ +khB +tQj +kzF +fEE +pLH +ovQ +aCc +aCc +aCc +aCc +aCc +aCc aMk anW -aDc +qsV aEi -aDc -aDg -aDc aEi -aDc +wKA +aEi +aJC aEi -aDc aEi -aDc +vFA +vUN +vFA +wET aEi -aDc aEi aEi aqx aTq -aTq -aUp +aDy +wIj aUk aKP aKP @@ -73464,25 +74857,6 @@ aaa "} (152,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73491,6 +74865,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -73514,42 +74907,42 @@ tQw tQw aao aao -aao -aao -aao -aao -aao -aao -arD -arD -arD -arD -arD -arD -arD -arD -arD +fxZ +vXJ +vXJ +vXJ +bQG +jAX +fEE +pLH +ovQ +aCc +aCc +pLH +aCc +aCc +pLH aMk anW -aDc -aEi +qsV +vFA aDe aGe -aGN -aHM -aHM -aHM -aKM -aLF -aLF -aLF -aLF -aPk +unS +unS +unS +mIs +kAj +qJM +pSf aEi +pSf +iEm +lmO aqx aTq -aTq -aUp +aDy +wIj aQu aVr aKP @@ -73681,25 +75074,6 @@ aaa "} (153,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73708,6 +75082,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw ahw tQw @@ -73729,44 +75122,44 @@ tQw tQw tQw tQw -tQw -aao -aao -aao -aao -aao aao -aao -arD -arD -awy -arD -arD -arD -arD -arD -arD +bQG +vXJ +vXJ +vXJ +vXJ +khB +jAX +kzF +ivW +vkf +aCc +pLH +aCc +aCc +aCc +aCc aMk anW -aDc -aEi +anW +dLS aDg +nFp +pSf +dNX +pSf aEi -aGO -aHN -aIG -aIG -aKN -aLG -aLG -aLG -aOi -aPl -aQs +moe +unS +unS +aQt +unS +rKe +eeI anW aTq -aTp -aUp +qhl +wIj aQu aUk aKP @@ -73898,25 +75291,6 @@ aaa "} (154,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -73925,6 +75299,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -73947,43 +75340,43 @@ tQw ahw tQw tQw -tQw -aao -aao +idT +vXJ +vXJ +vXJ +vXJ +vXJ aao aao -aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +kzF +lSb +aCc +aCc +aCc +aCc +aCc +aCc aMk anW -aDd -aEi -aDg -aEi +wHM +sSY +mUb +sdl +vFA +vFA +vFA aEi aEi aEi -aEi -aEi -aEi -aDc -aEi -aOj -aPm -aQt +aHO +fWY +pSf +qcE +mIs aRu nnK -aTt -aUq +mNT +wIj aQu aUk aKP @@ -74115,25 +75508,6 @@ aaa "} (155,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -74141,6 +75515,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -74164,43 +75557,43 @@ tQw ujC ujC tQw -tQw +ukv +bQG +vXJ +vXJ aao aao aao aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +aao +pJn +ivW +pLH +pLH +aCc +aCc +aCc aMk anW -aDe -aQt -aEl -aGf +pyq +tlU +pyq +tlU aEi -aHO -aIH +jNN +qWA aJD aKO aEi +aHO +fJW aEi -aEi -aOj -aPn -aEi +sHO +vFA ocA aTq -aTp -aUr +qhl +wIj aQu aQu aOk @@ -74332,25 +75725,6 @@ aaa "} (156,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -74358,6 +75732,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -74382,42 +75775,42 @@ ujC ujC tQw tQw -tQw -tQw +mda +mda aao aao -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD -arD +aao +kzF +lAC +kzF +kzF +lAC +jPQ +ivW +aCc +aCc +aCc aMk anW -aDf anW anW anW -aEi +anW +drx aHO lDa lDa aKO aEi -aDc aEi -aOj -aPo -aQs +rBn +oes +nnA +jUJ anW aTq -aTq -aUs +phx +aTt aSf aSf aWM @@ -74549,31 +75942,31 @@ aaa "} (157,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -74605,36 +75998,36 @@ aao aao aao aao -arD -arD -arD +kzF +kzF +kzF aao aao aao -arD -arD -arD +aCc +aCc +aCc aMk -anW -aDg -aEk -aui +apo +apo +nrA +apo anW voz +wBK +wBK +vFA +hho +wBK aEi aEi aEi -aEi -aEi -aDc -aEi -aGO -aPp -aEi +iaS +aui aqx aTq -aTq -foT +aDy +aTp aSg aSg aSg @@ -74766,31 +76159,31 @@ aaa "} (158,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw ahw tQw @@ -74822,36 +76215,36 @@ tQw aao aao aao -arD -arD +kzF +lAC aao aao aao aao -arD -arD -arD +pLH +pLH +aCc aMk +apo +apo +apo +apo anW -aDh -aEl -aEi -anW -aGQ -aEi -aEi -aEi -aGQ -aEi -aEi -aGQ -aEi -aEi -aEi +lTC +nuQ +whw +vFA +prU +whw +mKi +esS +sEb +sEb +nkE aqx aTq -aTq -aUp +aDy +wIj aQu aVq aVq @@ -74983,30 +76376,30 @@ aaa "} (159,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75047,12 +76440,12 @@ aao aao aao aao -arD +rLM aMk -anW -anW -anW -anW +apo +apo +apo +apo anW anW anW @@ -75067,8 +76460,8 @@ aoc anW anW aTq -aTp -aUp +qhl +wIj aUk aKP aKP @@ -75200,29 +76593,29 @@ aaa "} (160,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75283,9 +76676,9 @@ aSg aSg aSg aSg -aSg -aTp -aUp +aTq +qhl +wIj aUk aKP aKP @@ -75293,10 +76686,10 @@ aKP aSh aYx atb -aZI -bas -baV -bbG +nRT +bar +baU +bbF bar baU nRT @@ -75417,29 +76810,29 @@ aaa "} (161,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75500,20 +76893,20 @@ aKP aKP aKP aMR -aQu aTr -aUp +aDy +wIj aQu aVr aKP aKP aSh -aYx -atd -bbF -bap -baT -bbF +eYA +aZh +cuG +crd +rgm +bbG bap baT nRT @@ -75634,28 +77027,28 @@ aaa "} (162,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75717,17 +77110,17 @@ aKP aKP aMR aQu -aSi -aTq -foT -aVv -aQu -aOk -aOk -aQu -aYw -atd -bbF +aTr +aDy +aTp +aTu +qoS +aTu +aTu +aTu +aTp +aZi +nRT bar baU bbH @@ -75851,28 +77244,28 @@ aaa "} (163,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -75933,18 +77326,18 @@ aMR aOk aOk aQu -kYd -wNw -wNw -aUu -wNw -kYd -aQu -aQu aQu -aYw -atb -bbF +aTr +aDy +aTq +aTq +dTB +rbs +rbs +dRc +dTB +dTB +nRT bap baT bbF @@ -76068,28 +77461,28 @@ aaa "} (164,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw ahw @@ -76147,21 +77540,21 @@ aao aao aao aao -apI -apI -apI -apI -hLs -iKn -aUv -iZi -kYd aQu aQu -aXX -aYy -aZh -aZK +aQu +ceA +aTr +aDy +aTq +aTq +rbs +oPM +eKZ +pAX +hKO +dTB +nRT bao baS bbF @@ -76285,29 +77678,29 @@ aaa "} (165,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76367,17 +77760,17 @@ aao aao aao aao -apI -wNw -wNw -aUw -wNw -apI -apI -aXt -aXX -aTr -aZi +dvz +rnK +shn +qWT +rnK +dvz +djo +xsX +xTk +rkh +dvz nRT bat baW @@ -76502,29 +77895,29 @@ aaa "} (166,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76584,18 +77977,18 @@ aao aao aao aao -uuo -aSj -ixR -aUx -cGQ -aao -aao -aXt -aXt -aTr -atb -nRT +lLe +sVk +xTV +vUw +iKn +rbs +aIe +pAX +pAX +qLD +dvz +dTB aJy aJy nRT @@ -76719,29 +78112,29 @@ aaa "} (167,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76802,17 +78195,17 @@ aao aao aao aao -sYL -aTx -vcm -qkB -aao -aao -aao -aao -aTr -atb -atb +hLs +xTV +iKn +hNW +dTB +jKp +dFL +pAX +dKk +fyZ +dTB atb atb atb @@ -76936,29 +78329,29 @@ aaa "} (168,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -76980,7 +78373,7 @@ aev adZ aao gNH -biX +lUM aev aev aoE @@ -77018,17 +78411,17 @@ aao aao aao aao -aao -sYL -aTx -vcm -sYL -aao -aao -aao -aao -aao -aao +dTB +juZ +xTV +iKn +iKn +xaE +pAX +pAX +pAX +pAX +gEM aao aao aao @@ -77153,29 +78546,29 @@ aaa "} (169,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77197,13 +78590,13 @@ aev adZ aao gNH -biX +lUM aev anM aqb aps adZ -aqZ +tkY arF aso arF @@ -77236,16 +78629,16 @@ aao aao aao aao -sYL -aTx -vcm -aVw -aao -aao -aao -aao -aao -aao +hLs +xTV +iKn +qJB +dTB +mYV +pAX +pAX +rDa +cry aao aao aao @@ -77370,29 +78763,29 @@ aaa "} (170,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77452,17 +78845,17 @@ eMX aao aao aao -gNH -cIq +sYL hLs -vcm -hSs -gNH -aao -aao -aao -aao -aao +aUv +iKn +iKn +rbs +nIS +pAX +pAX +qLD +dTB aao aao aao @@ -77587,29 +78980,29 @@ aaa "} (171,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77669,20 +79062,20 @@ eFh aao aao aao -aRv -nVw -hLs -vcm -qkB -aao -aao -aao -aao +dTB +iFz +qbG +iFz +iFz +dTB +dAd +oHn +pAX +qLD +xZL aao aao -sON -sfI -aao +gCE aao aao aao @@ -77804,29 +79197,29 @@ aaa "} (172,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -77887,17 +79280,17 @@ aao aao aao aao -sYL -hLs -vcm -aao -aao -aao -aao -aao +aTw +pmV +aTv +aTv +rbs +lAR +oJv +pAX +irZ +dTB aao -sON -gCE gCE rAs rAs @@ -78021,29 +79414,29 @@ aaa "} (173,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78104,16 +79497,16 @@ tQw aao aao aao -sYL -hLs -vcm -aao -aao -aao -aao -aao -aao -ecK +vFH +pmV +aTv +kqO +dTB +rbs +rbs +pJd +dTB +dTB gCE gCE gCE @@ -78238,29 +79631,29 @@ aaa "} (174,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78321,15 +79714,15 @@ tQw tQw aao aao -aSk -aTz -aUA -aao -aao -aao -aao -aao -sON +dJr +sVM +xWv +wOK +kUW +aOn +nfY +nfY +pgV gCE gCE gCE @@ -78455,29 +79848,29 @@ aaa "} (175,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78537,16 +79930,16 @@ tQw gXp gXp gXp -aRw -dLe -hLs -vcm -aao -aao -aao -aao -aao -ecK +hFg +eFh +sRV +aMT +tQw +ujC +ujC +gCE +gCE +gCE gCE gCE gCE @@ -78672,29 +80065,29 @@ aaa "} (176,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw ahw tQw @@ -78756,14 +80149,14 @@ tQw tQw tQw eFh -aTw -aUy -amG -aao -aao -aao -aao -ecK +sRV +aMT +tQw +tQw +pIN +gCE +gCE +gCE gCE gCE gCE @@ -78889,29 +80282,29 @@ aaa "} (177,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -78973,14 +80366,14 @@ tQw tQw tQw eFh -aTw -aUy -wQC -eMX -aao -aao -aao -ecK +sRV +aMT +tQw +tQw +aWN +gCE +gCE +gCE gCE xuU qFY @@ -79106,29 +80499,29 @@ aaa "} (178,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79184,19 +80577,19 @@ anI anI anI anI -aMS +kZI gmN tQw tQw tQw arK -aTy -aUy -wQC -sNQ -aao -aao -sON +qKH +aMT +tQw +tQw +ujC +gCE +gCE gCE gCE gCE @@ -79323,29 +80716,29 @@ aaa "} (179,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79401,18 +80794,18 @@ uaB uaB uaB aMq -aMT +aTv aOm aOm aOm aOm aSl -aTv -aUy -amG -aao -aao -jgW +pmV +aMT +tQw +ujC +ujC +gCE gCE gCE gCE @@ -79540,29 +80933,29 @@ aaa "} (180,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79618,18 +81011,18 @@ aJE aKQ aKQ hmm -aMT +aTv aOn aOn aOn aOn aTv -tdn -kNP -wQC -gXp -qQn +pmV +aMT +tQw tQw +pIN +gCE gCE gCE gpg @@ -79757,29 +81150,29 @@ aaa "} (181,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -79835,7 +81228,7 @@ aJF anI anI anI -aMV +jvW gXp gXp gXp @@ -79843,10 +81236,10 @@ gXp aTw ocR uoj -wQC tQw -aWN tQw +aWN +gCE gCE ohD aao @@ -79974,29 +81367,29 @@ aaa "} (182,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -80062,9 +81455,9 @@ aTv aMT tQw tQw -pIN -xFZ -ohD +ujC +gCE +gCE aao aao aao @@ -80145,75 +81538,75 @@ aao aao aao aao -izh -izh -izh -izh -izh -izh -izh -izh -aao -aao -aao -aao -aao -aao -aao -aao -izh -izh -izh -otb -otb -izh -izh -izh -aao -aao -aao -aao -aao -aao -aao -aao -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(183,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aao -aao -aao +izh +izh +izh +izh +izh +izh +izh +izh +aao +aao +aao +aao +aao +aao +aao +aao +izh +izh +izh +otb +otb +izh +izh +izh +aao +aao +aao +aao +aao +aao +aao +aao +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(183,1,1) = {" +aaa +aab +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao aao tQw tQw @@ -80278,8 +81671,8 @@ aSm lMw aMT tQw -xFZ -ahy +tQw +ujC aao aao aao @@ -80408,30 +81801,30 @@ aaa "} (184,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -80450,7 +81843,7 @@ adZ adZ adZ aeQ -wQu +ald daB amO afy @@ -80494,7 +81887,7 @@ aao aao aSm aMV -sNQ +tQw aao aao sIh @@ -80625,30 +82018,30 @@ aaa "} (185,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -80842,31 +82235,31 @@ aaa "} (186,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81059,31 +82452,31 @@ aaa "} (187,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81114,7 +82507,7 @@ tFO axs ati atN -auw +yhG avj avR awI @@ -81276,25 +82669,6 @@ aaa "} (188,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81302,6 +82676,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw ahw @@ -81493,25 +82886,6 @@ aaa "} (189,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81519,6 +82893,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81710,25 +83103,6 @@ aaa "} (190,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81737,6 +83111,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -81927,25 +83320,6 @@ aaa "} (191,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -81954,6 +83328,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82144,25 +83537,6 @@ aaa "} (192,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82171,6 +83545,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82361,25 +83754,6 @@ aaa "} (193,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82388,6 +83762,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82578,25 +83971,6 @@ aaa "} (194,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82605,6 +83979,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -82795,25 +84188,6 @@ aaa "} (195,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -82823,6 +84197,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -83012,25 +84405,6 @@ aaa "} (196,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83041,6 +84415,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -83229,25 +84622,6 @@ aaa "} (197,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83258,6 +84632,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw wQC @@ -83446,25 +84839,6 @@ aaa "} (198,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83475,6 +84849,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw wQC @@ -83663,25 +85056,6 @@ aaa "} (199,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83692,6 +85066,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw wQC @@ -83880,25 +85273,6 @@ aaa "} (200,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -83909,6 +85283,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tIq @@ -84097,25 +85490,6 @@ aaa "} (201,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84126,6 +85500,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw gmN @@ -84314,25 +85707,6 @@ aaa "} (202,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84343,6 +85717,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -84531,25 +85924,6 @@ aaa "} (203,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84560,6 +85934,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -84748,25 +86141,6 @@ aaa "} (204,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -84774,6 +86148,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -84965,30 +86358,30 @@ aaa "} (205,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85182,30 +86575,30 @@ aaa "} (206,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85399,30 +86792,30 @@ aaa "} (207,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85573,73 +86966,73 @@ aao aao aao aao -izh -izh -izh -izh -otb -otb -izh -izh -izh -izh -izh -izh -izh -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aao -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(208,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab -aao -aao -aao -aao +izh +izh +izh +izh +otb +otb +izh +izh +izh +izh +izh +izh +izh +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(208,1,1) = {" +aaa +aab +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -85833,30 +87226,30 @@ aaa "} (209,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86050,30 +87443,30 @@ aaa "} (210,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86267,30 +87660,30 @@ aaa "} (211,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86484,30 +87877,30 @@ aaa "} (212,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86701,30 +88094,30 @@ aaa "} (213,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -86904,40 +88297,40 @@ aao aao aao aao -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(214,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aab +aab +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(214,1,1) = {" +aaa +aab +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao aao aao aao @@ -87135,30 +88528,30 @@ aaa "} (215,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw ahw @@ -87352,30 +88745,30 @@ aaa "} (216,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -87569,30 +88962,30 @@ aaa "} (217,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -87786,31 +89179,31 @@ aaa "} (218,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -87895,6 +89288,7 @@ aab aaa aaa aaa +cJd aaa aaa aaa @@ -87963,71 +89357,70 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(219,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(219,1,1) = {" +aaa aab aao aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -88112,7 +89505,7 @@ aab aaa aaa aaa -aaa +cJd aaa aaa aaa @@ -88220,25 +89613,6 @@ aaa "} (220,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88288,6 +89662,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -88331,7 +89724,7 @@ aaa aaa aaa aaa -aaa +cJd aaa aaa aaa @@ -88437,25 +89830,6 @@ aaa "} (221,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88508,6 +89882,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao tQw tQw tQw @@ -88548,15 +89941,15 @@ aaa aaa aaa aaa +cJd aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa +cJd +cJd +cJd aaa aaa aaa @@ -88654,25 +90047,6 @@ aaa "} (222,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88751,6 +90125,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao gCE gCE gCE @@ -88771,9 +90164,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +cJd +cJd +cJd aaa aaa aaa @@ -88871,25 +90264,6 @@ aaa "} (223,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aab aao aao @@ -88976,6 +90350,25 @@ aao aao aao aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao +aao aab aaa aaa @@ -89088,25 +90481,25 @@ aaa "} (224,1,1) = {" aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab +aab aab aab aab diff --git a/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm b/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm index 931fb53a0b2a..027d2630f392 100644 --- a/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm +++ b/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm @@ -561,9 +561,13 @@ }, /area/bigredv2/outside/marshal_office) "bD" = ( -/obj/structure/bed/chair, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, /turf/open/floor{ - icon_state = "darkish" + dir = 1; + icon_state = "red" }, /area/bigredv2/outside/marshal_office) "bE" = ( @@ -631,12 +635,10 @@ }, /area/bigredv2/outside/marshal_office) "bO" = ( -/obj/structure/surface/table, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - icon_state = "darkish" +/turf/open/mars{ + icon_state = "mars_dirt_13" }, -/area/bigredv2/outside/marshal_office) +/area/bigredv2/outside/n) "bP" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor{ @@ -715,30 +717,38 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor{ - icon_state = "darkish" + dir = 8; + icon_state = "red" }, /area/bigredv2/outside/marshal_office) "bZ" = ( -/obj/structure/surface/table, -/obj/item/device/taperecorder, +/obj/effect/landmark/static_comms/net_one, /turf/open/floor{ - icon_state = "darkish" + icon_state = "bcircuit" }, /area/bigredv2/outside/marshal_office) "ca" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 + }, /turf/open/floor{ - icon_state = "darkish" + dir = 9; + icon_state = "red" }, /area/bigredv2/outside/marshal_office) "cb" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ - name = "\improper Marshal Office Interrogation" - }, /turf/open/floor{ - icon_state = "darkish" + dir = 9; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/marshal_office) +/area/bigredv2/outside/n) "cc" = ( /obj/structure/surface/table, /obj/item/clothing/mask/gas, @@ -781,27 +791,26 @@ }, /area/bigredv2/outside/marshal_office) "cj" = ( -/obj/structure/bed/chair{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, /turf/open/floor{ - icon_state = "darkish" + icon_state = "red" }, /area/bigredv2/outside/marshal_office) "ck" = ( -/obj/structure/machinery/camera/autoname{ - dir = 8 +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 }, /turf/open/floor{ - icon_state = "darkish" + dir = 6; + icon_state = "red" }, /area/bigredv2/outside/marshal_office) "cl" = ( -/obj/structure/machinery/door_control{ - id = "Marshal Offices"; - name = "Storm Shutters"; - pixel_x = -32 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/corpsespawner/prison_security, /obj/effect/decal/cleanable/blood, @@ -838,18 +847,12 @@ /turf/open/floor/plating, /area/bigredv2/outside/marshal_office) "cq" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/colony{ - dir = 1; - name = "\improper Marshal Office Evidence Room" - }, /turf/open/floor{ - icon_state = "dark" + dir = 1; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/marshal_office) +/area/bigredv2/outside/n) "cr" = ( -/obj/structure/machinery/light{ - dir = 8 - }, /obj/item/ammo_casing/shell, /turf/open/floor{ dir = 8; @@ -1153,6 +1156,20 @@ }, /turf/open/floor, /area/bigredv2/outside/marshal_office) +"do" = ( +/turf/open/mars{ + icon_state = "mars_dirt_10" + }, +/area/bigredv2/outside/n) +"fh" = ( +/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) "fD" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -1162,6 +1179,11 @@ /obj/effect/landmark/objective_landmark/far, /turf/open/floor, /area/bigredv2/outside/marshal_office) +"gu" = ( +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" + }, +/area/bigredv2/outside/n) "gJ" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/close, @@ -1169,6 +1191,12 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) +"if" = ( +/turf/open/floor{ + dir = 4; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "ix" = ( /obj/structure/closet/secure_closet/brig, /obj/effect/landmark/objective_landmark/far, @@ -1176,6 +1204,18 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) +"jq" = ( +/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) "qm" = ( /obj/structure/bed, /obj/effect/landmark/objective_landmark/medium, @@ -1183,6 +1223,34 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) +"rC" = ( +/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) +"rL" = ( +/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) +"wL" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "bcircuit" + }, +/area/bigredv2/outside/marshal_office) "zX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/objective_landmark/medium, @@ -1190,6 +1258,45 @@ icon_state = "dark" }, /area/bigredv2/outside/marshal_office) +"MM" = ( +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Marshal Offices"; + name = "\improper Marshal Offices Shutters" + }, +/turf/open/floor/plating, +/area/bigredv2/outside/medical) +"No" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + dir = 8; + icon_state = "red" + }, +/area/bigredv2/outside/marshal_office) +"NW" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door_control{ + id = "Marshal Offices"; + name = "Storm Shutters"; + pixel_y = 24 + }, +/turf/open/floor{ + dir = 4; + icon_state = "redcorner" + }, +/area/bigredv2/outside/marshal_office) +"RJ" = ( +/obj/effect/landmark/lv624/xeno_tunnel, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/n) (1,1,1) = {" aa @@ -1231,7 +1338,7 @@ by cZ cZ cZ -cq +at cA bi bG @@ -1254,8 +1361,8 @@ ah bA cZ cZ -ci -at +cZ +fh cA cO cU @@ -1278,7 +1385,7 @@ ah bB bN bX -by +wL at cA cP @@ -1304,7 +1411,7 @@ at at at at -cA +NW bk ah ah @@ -1324,10 +1431,10 @@ bb bk ah ca -ca +No bY -ca -at +rL +cZ cA bk bG @@ -1348,10 +1455,10 @@ bb bl ah bD -bO +by bZ cj -at +cZ cB bk cV @@ -1371,11 +1478,11 @@ aR bc bk ah -ca -ca -ca -ca -at +bD +by +by +cj +cZ cC cQ bL @@ -1395,11 +1502,11 @@ aR bc bm ah -ca -ca -ca +jq +rC +rC ck -at +cZ cC bi ah @@ -1419,11 +1526,11 @@ aR bb bh ah -at -at -cb -at -at +cZ +cZ +cZ +cZ +cZ cC bi bG @@ -1506,8 +1613,8 @@ dj (14,1,1) = {" ai ai -aj -aj +if +RJ ah aB aL @@ -1528,10 +1635,10 @@ de dj "} (15,1,1) = {" -ai -ai aj aj +aj +cq ah aC cZ @@ -1552,10 +1659,10 @@ ci dj "} (16,1,1) = {" -ai -ai aj aj +aj +cq ah aD cZ @@ -1576,10 +1683,10 @@ df dj "} (17,1,1) = {" -ai -aj aj aj +bO +cq ah aD aN @@ -1602,8 +1709,8 @@ dj (18,1,1) = {" aj aj -aj -aj +do +ai ah aE zX @@ -1621,13 +1728,13 @@ bk cW db dg -dj +MM "} (19,1,1) = {" aj -aj -aj -aj +bO +gu +ai ah aF aN @@ -1645,13 +1752,13 @@ bk bG dc dh -dj +MM "} (20,1,1) = {" -aj -aj -aj -aj +bO +gu +ai +ai ah aG aN @@ -1672,10 +1779,10 @@ bG dj "} (21,1,1) = {" -aj -aj -aj -aj +cb +ai +ai +ai ah aH cZ @@ -1696,7 +1803,7 @@ dd dk "} (22,1,1) = {" -aj +cq ah ah ah 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/20.lz1entrance_v2.dmm b/maps/map_files/BigRed/sprinkles/20.lz1entrance_v2.dmm index 3774e4222fae..d148955c0c93 100644 --- a/maps/map_files/BigRed/sprinkles/20.lz1entrance_v2.dmm +++ b/maps/map_files/BigRed/sprinkles/20.lz1entrance_v2.dmm @@ -428,15 +428,17 @@ }, /area/bigredv2/outside/nw) "bo" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "asteroidwarning" }, /area/bigredv2/outside/nw) "bp" = ( +/obj/item/stack/sheet/metal, +/obj/item/stack/rods, /obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 6; icon_state = "asteroidwarning" }, /area/bigredv2/outside/nw) @@ -447,8 +449,10 @@ }, /area/bigredv2/outside/nw) "br" = ( +/obj/item/stack/rods, +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 6; icon_state = "asteroidwarning" }, /area/bigredv2/outside/nw) @@ -835,7 +839,7 @@ aE ak aW aW -bm +bG bv bv bF @@ -856,7 +860,7 @@ aF aM aX aM -bo +bz bw bz bz @@ -877,7 +881,7 @@ aG ab ab ab -bp +bS bx bx bG @@ -919,7 +923,7 @@ aI aP aP ac -br +bn bl bu bE @@ -940,7 +944,7 @@ aJ aQ aY ac -bs +bn bs bl bE @@ -961,7 +965,7 @@ aA aR aZ ac -bi +bo bi bA bE @@ -982,7 +986,7 @@ aw aK ba ai -bi +bX bi bA bE @@ -1003,7 +1007,7 @@ aA aA bb ai -bi +bp bi bB bE @@ -1024,7 +1028,7 @@ cc aw bc ai -bi +bn bi bB bE @@ -1045,7 +1049,7 @@ aA aS bd ac -bi +br bi bB bE @@ -1066,7 +1070,7 @@ aL aT be ac -bi +bX bi bB bE 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/25.lz1cave_flank.dmm b/maps/map_files/BigRed/sprinkles/25.lz1cave_flank.dmm index 32d85ba1078f..0413441989ea 100644 --- a/maps/map_files/BigRed/sprinkles/25.lz1cave_flank.dmm +++ b/maps/map_files/BigRed/sprinkles/25.lz1cave_flank.dmm @@ -10,6 +10,13 @@ "d" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/space_port) +"e" = ( +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/lz1_north_cas) "f" = ( /obj/item/tool/warning_cone, /turf/open/floor/plating, @@ -218,7 +225,7 @@ c c c c -j +e "} (12,1,1) = {" c @@ -235,7 +242,7 @@ c c c c -j +e "} (13,1,1) = {" c @@ -252,7 +259,7 @@ c c c c -j +e "} (14,1,1) = {" c @@ -269,7 +276,7 @@ c c c c -j +e "} (15,1,1) = {" c @@ -286,5 +293,5 @@ c i c c -j +e "} diff --git a/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm b/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm index 30531e6b085e..5ff0d32f9e15 100644 --- a/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm +++ b/maps/map_files/BigRed/sprinkles/30.cargo_containers.dmm @@ -123,7 +123,6 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "ay" = ( -/obj/structure/closet/emcloset, /obj/structure/pipes/vents/pump{ dir = 8 }, @@ -141,6 +140,8 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, /turf/open/floor, /area/bigredv2/outside/cargo) "aC" = ( @@ -153,7 +154,9 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Cargo Offices" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/cargo) "aE" = ( /obj/structure/window/framed/solaris, @@ -298,7 +301,9 @@ /obj/structure/machinery/door/airlock/almayer/security/glass/colony{ name = "\improper Cargo Bay Security" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/cargo) "aX" = ( /turf/open/floor{ @@ -307,25 +312,24 @@ }, /area/bigredv2/outside/cargo) "aY" = ( -/obj/structure/cargo_container/wy/left, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor{ - dir = 1; - icon_state = "bot" + icon_state = "loadingarea" }, /area/bigredv2/outside/cargo) "aZ" = ( -/obj/structure/cargo_container/wy/mid, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/obj/structure/surface/table, +/obj/effect/spawner/random/bomb_supply, +/turf/open/floor, /area/bigredv2/outside/cargo) "ba" = ( -/obj/structure/cargo_container/wy/right, -/turf/open/floor{ - dir = 1; - icon_state = "bot" +/obj/structure/surface/table, +/obj/item/stack/sheet/glass{ + amount = 30 }, +/turf/open/floor, /area/bigredv2/outside/cargo) "bb" = ( /obj/effect/decal/cleanable/dirt, @@ -369,12 +373,8 @@ }, /area/bigredv2/outside/cargo) "bh" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 1; - icon_state = "bot" - }, +/obj/structure/largecrate/random/barrel, +/turf/open/floor, /area/bigredv2/outside/cargo) "bj" = ( /obj/structure/largecrate, @@ -402,8 +402,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/obj/structure/machinery/light, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/cargo) "bs" = ( /obj/effect/decal/cleanable/dirt, @@ -430,17 +431,15 @@ dir = 1; name = "\improper Cargo Bay" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/cargo) "bz" = ( -/obj/effect/landmark/corpsespawner/security, -/obj/structure/machinery/light{ - dir = 4 - }, +/obj/effect/landmark/corpsespawner/security/marshal, /turf/open/floor, /area/bigredv2/outside/cargo) "bA" = ( -/obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ dir = 8 }, @@ -475,14 +474,14 @@ "bI" = ( /obj/item/reagent_container/spray/cleaner, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor, +/turf/open/floor{ + icon_state = "floor4" + }, /area/bigredv2/outside/cargo) "bJ" = ( -/obj/structure/largecrate, -/obj/structure/machinery/light{ - dir = 1 +/turf/open/floor{ + icon_state = "floor4" }, -/turf/open/floor, /area/bigredv2/outside/cargo) "bK" = ( /turf/open/floor{ @@ -514,12 +513,14 @@ /area/bigredv2/outside/cargo) "bP" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor, /area/bigredv2/outside/cargo) "bQ" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/landmark/objective_landmark/close, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor, /area/bigredv2/outside/cargo) "bR" = ( @@ -528,7 +529,9 @@ dir = 1; name = "\improper Cargo Bay Quartermaster" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/cargo) "bS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -612,7 +615,9 @@ /obj/structure/machinery/door/airlock/almayer/engineering/colony{ name = "\improper Cargo Bay Quartermaster" }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "delivery" + }, /area/bigredv2/outside/cargo) "cf" = ( /obj/structure/bed/chair/office/dark, @@ -726,15 +731,44 @@ name = "\improper Engineering Complex" }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/bigredv2/outside/engineering) "cx" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/bigredv2/outside/engineering) +"zL" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "floor4" + }, +/area/bigredv2/outside/cargo) +"AS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "floor4" + }, +/area/bigredv2/outside/cargo) +"Gu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/spawner/random/toolbox, +/turf/open/floor, +/area/bigredv2/outside/cargo) +"KO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table, +/obj/effect/spawner/random/tool, +/turf/open/floor, +/area/bigredv2/outside/cargo) (1,1,1) = {" aa @@ -747,7 +781,7 @@ aE ai ai ai -ax +bq by ai ai @@ -761,13 +795,13 @@ ai ab al ab -aB -av -av -av +ai av av av +ai +aZ +bA ax av bH @@ -782,16 +816,16 @@ ai av av av -aC +aY aF aO av -aY -bf -av -ax -av -av +ak +ba +bJ +zL +bJ +bJ av ai av @@ -807,9 +841,9 @@ ad aG aP av -aZ -bg -am +ak +bh +bJ aI bb bI @@ -828,12 +862,12 @@ aC aH aQ av -ba -bh -av -ax +ai av -af +bJ +zL +bJ +AS bP ak cb @@ -849,13 +883,13 @@ am aI ad ad -bb -ad +bR ad +bQ bp bz -af -af +KO +Gu ak cb av @@ -870,13 +904,13 @@ aC aJ aR aX -aP -aX -av +ai +ai +ai bq +by +ai ai -bJ -bQ ai cc av @@ -895,8 +929,8 @@ af av av ax +af bA -av ae ai ak @@ -926,7 +960,7 @@ aA cv "} (10,1,1) = {" -av +ap av aw ad @@ -947,7 +981,7 @@ cl cw "} (11,1,1) = {" -av +ap av ax ao @@ -969,7 +1003,7 @@ cx "} (12,1,1) = {" ah -ap +av ay av av @@ -1076,11 +1110,11 @@ cv av at af -av +ab af ar av -av +ab av af bs 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/40.admin_pmc.dmm b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm index 7a66b2422807..622e76848001 100644 --- a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm +++ b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm @@ -430,6 +430,15 @@ icon_state = "wood" }, /area/bigredv2/outside/admin_building) +"mq" = ( +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "Operations"; + name = "\improper Operations Shutters" + }, +/turf/open/floor/plating, +/area/bigredv2/outside/admin_building) "rv" = ( /obj/item/ammo_magazine/rifle{ current_rounds = 0 @@ -548,7 +557,7 @@ /area/bigredv2/outside/admin_building) (1,1,1) = {" -aj +mq ab ab ab 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/BigRed/standalone/crashlanding-eva.dmm b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm index fb08fd251c0a..33eefe09518f 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-eva.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-eva.dmm @@ -47,9 +47,7 @@ /area/bigredv2/outside/general_offices) "aE" = ( /obj/structure/computerframe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "aF" = ( /turf/closed/shuttle/ert{ @@ -107,26 +105,18 @@ /turf/open/mars, /area/bigredv2/caves_north) "aR" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/bigredv2/outside/general_offices) "aS" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/general_offices) "aT" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/bigredv2/outside/general_offices) "aU" = ( /obj/structure/surface/rack, /obj/item/map/big_red_map, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "aV" = ( /turf/closed/shuttle/ert{ @@ -191,34 +181,24 @@ /area/bigredv2/outside/general_offices) "bg" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery, /area/bigredv2/outside/general_offices) "bh" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "bi" = ( /obj/item/paper/crumpled/bloody, /obj/effect/decal/cleanable/blood{ icon_state = "u_psycopath_l" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bj" = ( /obj/structure/bed/chair/dropship/passenger, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "bk" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bl" = ( /obj/effect/decal/cleanable/dirt, @@ -249,9 +229,7 @@ /area/bigredv2/outside/general_offices) "bq" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "br" = ( /turf/closed/shuttle/ert{ @@ -262,22 +240,16 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "bt" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bu" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "bv" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -287,9 +259,7 @@ dir = 1; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "bw" = ( /turf/closed/shuttle/ert{ @@ -339,9 +309,7 @@ dir = 1; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/general_offices) "bG" = ( /turf/closed/shuttle/ert{ @@ -481,25 +449,17 @@ "cb" = ( /obj/structure/surface/rack, /obj/item/restraints, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "cc" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/bigredv2/outside/general_offices) "cd" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/bigredv2/outside/general_offices) "ce" = ( /obj/structure/surface/rack, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "cf" = ( /turf/closed/shuttle/ert{ @@ -531,12 +491,11 @@ }, /area/bigredv2/outside/general_offices) "cj" = ( -/obj/structure/surface/rack, -/obj/item/stack/sheet/mineral/diamond, -/obj/item/clothing/under/redcoat, -/turf/open/floor{ - icon_state = "dark" +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 }, +/turf/open/floor, /area/bigredv2/outside/general_offices) "cl" = ( /obj/structure/surface/rack, @@ -547,9 +506,7 @@ "cm" = ( /obj/effect/spawner/gibspawner/human, /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/general_offices) "cn" = ( /turf/closed/shuttle/ert{ @@ -587,9 +544,7 @@ "cu" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/remains, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) "cv" = ( /turf/closed/shuttle/ert{ @@ -699,22 +654,22 @@ /turf/open/floor/plating{ icon_state = "panelscorched" }, -/area/bigredv2/outside/general_offices) +/area/bigredv2/outside/ne) "cO" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/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) "cP" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/general_offices) -"cQ" = ( -/obj/structure/machinery/light{ - dir = 1 +/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/machinery/vending/cola, /turf/open/floor, /area/bigredv2/outside/general_offices) "cU" = ( @@ -757,10 +712,6 @@ icon_state = "panelscorched" }, /area/bigredv2/outside/general_offices) -"da" = ( -/obj/structure/machinery/vending/cigarette/colony, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "dc" = ( /obj/item/stack/rods, /turf/open/floor{ @@ -789,10 +740,6 @@ icon_state = "platingdmg1" }, /area/bigredv2/outside/general_offices) -"dg" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor, -/area/bigredv2/outside/general_offices) "di" = ( /obj/structure/bed/chair{ dir = 8 @@ -870,18 +817,12 @@ /turf/open/floor/plating{ icon_state = "platingdmg3" }, -/area/bigredv2/outside/general_offices) +/area/bigredv2/outside/ne) "du" = ( /turf/open/floor/plating{ - icon_state = "wood-broken" - }, -/area/bigredv2/outside/general_offices) -"dv" = ( -/obj/structure/surface/table, -/turf/open/floor/plating{ - icon_state = "wood-broken5" + icon_state = "panelscorched" }, -/area/bigredv2/outside/general_offices) +/area/bigredv2/outside/ne) "dx" = ( /turf/closed/wall/solaris, /area/bigredv2/outside/bar) @@ -935,25 +876,6 @@ dir = 8; icon_state = "platingdmg3" }, -/area/bigredv2/outside/general_offices) -"dF" = ( -/obj/structure/bed, -/turf/open/floor/plating{ - icon_state = "wood-broken6" - }, -/area/bigredv2/outside/general_offices) -"dG" = ( -/turf/open/mars, -/area/bigredv2/outside/ne) -"dQ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - dir = 1; - icon_state = "asteroidfloor" - }, /area/bigredv2/outside/ne) "dS" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -985,24 +907,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/outside/ne) -"dW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood{ - dir = 1; - icon_state = "gib6" - }, -/turf/open/mars, -/area/bigredv2/outside/ne) -"dX" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars, -/area/bigredv2/outside/ne) -"ea" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "asteroidwarning" - }, -/area/bigredv2/outside/ne) "eb" = ( /turf/open/floor{ icon_state = "wall_thermite" @@ -1036,23 +940,9 @@ "eg" = ( /obj/item/stack/sheet/wood, /turf/open/floor/plating{ - icon_state = "wood-broken2" + icon_state = "panelscorched" }, /area/bigredv2/outside/general_offices) -"eh" = ( -/turf/closed/wall/solaris, -/area/bigredv2/outside/hydroponics) -"ej" = ( -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) -"el" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars_cave{ - icon_state = "mars_dirt_4" - }, -/area/bigredv2/outside/ne) "em" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating{ @@ -1065,27 +955,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/outside/hydroponics) -"eo" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, -/turf/open/floor{ - icon_state = "whitegreenfull" - }, -/area/bigredv2/outside/hydroponics) -"ep" = ( -/obj/structure/window/framed/solaris, -/turf/open/floor/plating, -/area/bigredv2/outside/hydroponics) -"ey" = ( -/turf/open/mars{ - icon_state = "mars_dirt_8" - }, -/area/bigredv2/outside/ne) -"ez" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/mars{ - icon_state = "mars_dirt_3" - }, -/area/bigredv2/outside/ne) "eA" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -1109,27 +978,9 @@ icon_state = "platingdmg3" }, /area/bigredv2/outside/hydroponics) -"eD" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor, -/area/bigredv2/outside/hydroponics) -"eE" = ( -/turf/open/floor, -/area/bigredv2/outside/hydroponics) "eF" = ( /turf/template_noop, /area/template_noop) -"eG" = ( -/obj/item/shard, -/turf/open/floor{ - icon_state = "platingdmg1" - }, -/area/bigredv2/outside/hydroponics) -"eH" = ( -/obj/structure/window_frame/solaris, -/obj/item/shard, -/turf/open/floor/plating, -/area/bigredv2/outside/hydroponics) "eI" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating{ @@ -1154,9 +1005,7 @@ /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery, /area/bigredv2/outside/general_offices) "eM" = ( /obj/item/stack/rods, @@ -1177,12 +1026,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/outside/hydroponics) -"eU" = ( -/obj/effect/spawner/gibspawner/human, -/turf/open/floor/plating{ - icon_state = "wood-broken6" - }, -/area/bigredv2/outside/general_offices) "oB" = ( /obj/effect/landmark/objective_landmark/close, /turf/open/floor{ @@ -1215,9 +1058,7 @@ "Zt" = ( /obj/structure/bed/chair/dropship/passenger, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/general_offices) (1,1,1) = {" @@ -1587,10 +1428,10 @@ aB aB aB aB -dQ -ea -ej -ey +eF +eF +eF +eF "} (13,1,1) = {" eF @@ -1620,8 +1461,8 @@ dC bU dS eN -el -ez +eF +eF "} (14,1,1) = {" eF @@ -1739,8 +1580,8 @@ cJ aW aO aO -aW -aW +du +du cN dV ec @@ -1773,7 +1614,7 @@ dk dt dE dt -dW +eF ee en ec @@ -1801,10 +1642,10 @@ cK bl bl eg -du -dD -cY -dX +eF +eF +eF +eF eO ec eC @@ -1832,13 +1673,13 @@ cL aW aO eK -dr -eU -aW -dX +eF +eF +eF +eF ef ec -eD +eF "} (21,1,1) = {" eF @@ -1862,14 +1703,14 @@ bD bl bO aW -bU -dc -eJ -bU -dX -eG -eo -eD +aW +eF +eF +eF +eF +eF +eF +eF "} (22,1,1) = {" eF @@ -1893,14 +1734,14 @@ eJ bl aW aO -dj -dq -dr -aB -dG -eH -eo -eE +bU +eF +eF +eF +eF +eF +eF +eF "} (23,1,1) = {" eF @@ -1925,13 +1766,13 @@ cM cM df aB -dv -dF -aB -dG -eh -ep -ep +eF +eF +eF +eF +eF +eF +eF "} (24,1,1) = {" eF @@ -1952,17 +1793,17 @@ aI aI aI aI -cN -aW -cM -aB -aB -aB +cj +aK +cP aB eF eF eF eF +eF +eF +eF "} (25,1,1) = {" eF @@ -1985,7 +1826,7 @@ cw aI cO cO -cF +cO aB eF eF @@ -2014,10 +1855,10 @@ bb bI bb aI -cF -cF -aK -aB +eF +eF +eF +eF eF eF eF @@ -2045,10 +1886,10 @@ oB bb cx aI -cP -aK -aK -aB +eF +eF +eF +eF eF eF eF @@ -2072,14 +1913,14 @@ by bb bS bb -cj +cy bb cy aI -aK -aK -aK -aB +eF +eF +eF +eF eF eF eF @@ -2107,10 +1948,10 @@ aI aI aI aI -cQ -da -dg -aB +eF +eF +eF +eF eF eF eF diff --git a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm index e0c625805375..48bac15b3127 100644 --- a/maps/map_files/BigRed/standalone/crashlanding-offices.dmm +++ b/maps/map_files/BigRed/standalone/crashlanding-offices.dmm @@ -230,9 +230,7 @@ /area/bigredv2/outside/office_complex) "aP" = ( /obj/structure/computerframe, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "aQ" = ( /turf/closed/shuttle/ert{ @@ -257,22 +255,16 @@ "aU" = ( /obj/structure/surface/rack, /obj/item/restraints, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "aV" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "aW" = ( /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "aX" = ( /turf/closed/shuttle/ert{ @@ -311,9 +303,7 @@ }, /area/bigredv2/outside/office_complex) "bc" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "bd" = ( /obj/effect/decal/cleanable/dirt, @@ -356,32 +346,22 @@ }, /area/bigredv2/outside/office_complex) "bl" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/bigredv2/outside/office_complex) "bm" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "bn" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin13" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_middle, /area/bigredv2/outside/office_complex) "bo" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/bigredv2/outside/office_complex) "bp" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "bq" = ( /turf/closed/shuttle/ert{ @@ -418,13 +398,6 @@ icon_state = "platingdmg3" }, /area/bigredv2/outside/office_complex) -"bv" = ( -/obj/structure/surface/rack, -/obj/effect/landmark/crap_item, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/bigredv2/outside/office_complex) "bw" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, @@ -754,13 +727,12 @@ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "cv" = ( /turf/open/shuttle/dropship{ - icon_state = "rasputin10" + icon_state = "rasputin10"; + supports_surgery = 1 }, /area/bigredv2/outside/office_complex) "cw" = ( @@ -769,7 +741,8 @@ name = "smashed NSG 23 assault rifle" }, /turf/open/shuttle/dropship{ - icon_state = "rasputin12" + icon_state = "rasputin12"; + supports_surgery = 1 }, /area/bigredv2/outside/office_complex) "cx" = ( @@ -777,9 +750,7 @@ /obj/item/limb/arm/l_arm, /obj/item/limb/leg/l_leg, /obj/item/limb/hand/r_hand, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/bigredv2/outside/office_complex) "cy" = ( /obj/structure/janitorialcart, @@ -1113,24 +1084,18 @@ /area/bigredv2/outside/se) "dz" = ( /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dA" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dB" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dC" = ( /obj/effect/spawner/gibspawner/human, @@ -1150,18 +1115,14 @@ dir = 1; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dF" = ( /obj/effect/decal/cleanable/blood{ dir = 4; icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/bigredv2/outside/office_complex) "dG" = ( /obj/effect/decal/cleanable/blood{ @@ -1169,31 +1130,26 @@ icon_state = "gib6" }, /turf/open/shuttle/dropship{ - icon_state = "rasputin10" + icon_state = "rasputin10"; + supports_surgery = 1 }, /area/bigredv2/outside/office_complex) "dH" = ( /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "dI" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/rifle/nsg23, /obj/item/ammo_magazine/rifle/nsg23/extended, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dJ" = ( /obj/effect/decal/cleanable/blood{ icon_state = "gib6" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "dK" = ( /obj/effect/spawner/gibspawner/human, @@ -1204,15 +1160,11 @@ "dL" = ( /obj/structure/surface/rack, /obj/item/device/binoculars, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dM" = ( /obj/structure/surface/rack, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dN" = ( /obj/structure/surface/rack, @@ -1220,9 +1172,7 @@ /obj/item/ammo_magazine/pistol/rubber, /obj/item/ammo_magazine/pistol/rubber, /obj/item/ammo_magazine/pistol/rubber, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dO" = ( /obj/effect/decal/cleanable/dirt, @@ -1234,9 +1184,7 @@ "dP" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tech_supply, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dQ" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1244,30 +1192,22 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dR" = ( /obj/structure/surface/rack, /obj/item/map/big_red_map, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dS" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/tool, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dT" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toolbox, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "dU" = ( /obj/effect/decal/cleanable/dirt, @@ -1412,36 +1352,28 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "fG" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/item/device/radio/headset/distress/pmc/hvh, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "hN" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc_medic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "id" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "jx" = ( /obj/effect/decal/cleanable/blood{ @@ -1449,18 +1381,19 @@ icon_state = "gib6" }, /obj/item/limb/leg/l_leg, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, +/area/bigredv2/outside/office_complex) +"nE" = ( +/obj/structure/surface/rack, +/obj/effect/landmark/crap_item, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "oF" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/item/clothing/under/marine/veteran/pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "qX" = ( /obj/effect/decal/cleanable/blood, @@ -1479,9 +1412,7 @@ /obj/item/clothing/head/helmet/marine/veteran/pmc, /obj/item/clothing/under/marine/veteran/pmc, /obj/item/clothing/head/helmet/marine/veteran/pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "rK" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1489,21 +1420,15 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "si" = ( /obj/item/clothing/head/helmet/marine/veteran/pmc, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "sR" = ( /obj/item/storage/firstaid, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "uC" = ( /obj/effect/spawner/gibspawner/human, @@ -1511,29 +1436,21 @@ desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. The IFF electronics appear to be non-functional."; name = "battered M41A pulse rifle Mk2" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "uL" = ( /obj/item/weapon/gun/rifle/nsg23/no_lock, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "vw" = ( /obj/item/limb/arm/l_arm, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "yS" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "AB" = ( /obj/structure/bed/chair/dropship/passenger{ @@ -1545,9 +1462,7 @@ name = "dented M4A3 service pistol" }, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "Bu" = ( /obj/effect/decal/cleanable/blood, @@ -1555,27 +1470,21 @@ /obj/item/limb/arm/l_arm, /obj/item/limb/leg/l_leg, /obj/item/limb/hand/r_hand, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "EE" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, /obj/item/limb/hand/l_hand, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "GG" = ( /obj/item/weapon/gun/rifle/m41a/corporate/no_lock{ desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. The IFF electronics appear to be non-functional."; name = "battered M41A pulse rifle Mk2" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/bigredv2/outside/office_complex) "Ha" = ( /obj/effect/decal/cleanable/dirt, @@ -1589,18 +1498,14 @@ dir = 4 }, /obj/item/device/radio/headset/distress/pmc/hvh, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "NK" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/rifle/rubber, /obj/item/ammo_magazine/rifle/rubber, /obj/item/ammo_magazine/rifle/rubber, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "PR" = ( /turf/open/floor{ @@ -1613,24 +1518,18 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_cl, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) "Vg" = ( /obj/effect/landmark/objective_landmark/medium, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/bigredv2/outside/office_complex) "XH" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, /obj/effect/landmark/survivor_spawner/bigred_crashed_pmc_engineer, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/bigredv2/outside/office_complex) (1,1,1) = {" @@ -1915,7 +1814,7 @@ XH AB yS aV -bv +nE dN dP aV @@ -1964,7 +1863,7 @@ av ar aN aU -bv +nE bm dA fv @@ -2003,9 +1902,9 @@ yS yS yS dH -bv -bv -bv +nE +nE +nE dT cF do @@ -2071,7 +1970,7 @@ ap az bu aN -bv +nE dL bm yS @@ -2132,8 +2031,8 @@ rK bp aV dM -bv -bv +nE +nE aV fv dA diff --git a/maps/map_files/BigRed/standalone/medbay-v3.dmm b/maps/map_files/BigRed/standalone/medbay-v3.dmm index aded8e8bb7cb..80397d168ba7 100644 --- a/maps/map_files/BigRed/standalone/medbay-v3.dmm +++ b/maps/map_files/BigRed/standalone/medbay-v3.dmm @@ -108,32 +108,12 @@ }, /area/bigredv2/outside/medical) "as" = ( -/obj/structure/surface/table, /obj/structure/pipes/vents/pump, -/obj/item/device/autopsy_scanner, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"at" = ( /turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"au" = ( -/obj/structure/morgue{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) -"av" = ( -/obj/structure/morgue, -/turf/open/floor{ - icon_state = "dark" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "aw" = ( /obj/structure/machinery/chem_dispenser, /turf/open/floor{ @@ -206,13 +186,6 @@ icon_state = "whitegreenfull" }, /area/bigredv2/outside/medical) -"aG" = ( -/obj/structure/machinery/optable, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) "aH" = ( /obj/effect/spawner/gibspawner/human, /turf/open/floor{ @@ -388,11 +361,10 @@ }, /area/bigredv2/outside/medical) "bh" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" +/turf/open/mars_cave{ + icon_state = "mars_dirt_4" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "bi" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -497,10 +469,10 @@ "bw" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ - dir = 8; - icon_state = "damaged2" + dir = 4; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "bx" = ( /obj/item/stack/rods, /turf/open/floor{ @@ -557,15 +529,6 @@ icon_state = "platingdmg1" }, /area/bigredv2/outside/medical) -"bF" = ( -/obj/structure/machinery/camera/autoname{ - network = list("interrogation") - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/medical) "bG" = ( /obj/item/ammo_casing/bullet, /turf/open/floor/plating{ @@ -632,10 +595,12 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 }, +/obj/structure/surface/table, /turf/open/floor{ - icon_state = "platingdmg1" + dir = 1; + icon_state = "asteroidfloor" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "bP" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 @@ -645,12 +610,11 @@ }, /area/bigredv2/outside/medical) "bQ" = ( -/obj/structure/machinery/light, /turf/open/floor{ - dir = 8; - icon_state = "damaged5" + dir = 1; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "bR" = ( /obj/effect/decal/cleanable/dirt, /obj/item/shard, @@ -740,10 +704,15 @@ }, /area/bigredv2/outside/medical) "cf" = ( +/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, -/obj/item/stack/sheet/metal, /turf/open/floor{ - icon_state = "platingdmg1" + icon_state = "delivery" }, /area/bigredv2/outside/medical) "cg" = ( @@ -797,14 +766,14 @@ }, /area/bigredv2/outside/medical) "cn" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/obj/item/stack/rods, /turf/open/floor{ - icon_state = "platingdmg1" + dir = 1; + icon_state = "asteroidwarning" }, -/area/bigredv2/outside/medical) +/area/bigredv2/outside/n) "co" = ( /obj/structure/window_frame/solaris, /obj/item/stack/sheet/metal, @@ -2050,6 +2019,13 @@ icon_state = "platingdmg1" }, /area/bigredv2/outside/medical) +"gS" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) "hn" = ( /turf/open/floor{ dir = 1; @@ -2057,9 +2033,13 @@ }, /area/bigredv2/outside/medical) "om" = ( -/obj/effect/landmark/objective_landmark/close, /turf/open/floor{ - icon_state = "dark" + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/n) +"CW" = ( +/turf/open/floor{ + icon_state = "delivery" }, /area/bigredv2/outside/medical) "DL" = ( @@ -2631,8 +2611,8 @@ hn (20,1,1) = {" af as -aG -bi +bw +bw bw bO ce @@ -2658,11 +2638,11 @@ hn "} (21,1,1) = {" af -at -ax -aU -ai -bP +om +bh +bh +bh +cn cf cm bi @@ -2686,12 +2666,12 @@ hn "} (22,1,1) = {" af -at -at -aM -bu -aT -ab +om +bh +bh +bh +bQ +CW aT bu cN @@ -2715,12 +2695,12 @@ aa (23,1,1) = {" af om -at +bh bh bh bQ -aa -cn +ac +bK an bP cZ @@ -2742,12 +2722,12 @@ aa "} (24,1,1) = {" af -au -au -au -au -bF -aa +om +bh +bh +bh +bQ +ac ax cx cQ @@ -2770,12 +2750,12 @@ eV "} (25,1,1) = {" af -av -av -av -av -at -aa +om +bh +bh +bh +bQ +ac bz cy cR @@ -2798,11 +2778,11 @@ am "} (26,1,1) = {" af -at -at -at -at -at +om +bh +bh +bh +gS aa ap ap diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index 17dc301de79d..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/mecha/gygax/main, -/obj/item/circuitboard/mecha/gygax/targeting, -/obj/item/circuitboard/mecha/gygax/peripherals, -/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/mech_parts/part/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/mech_parts/part/durand_right_arm, -/turf/open/floor/corsat{ - icon_state = "arrow_west" - }, -/area/corsat/sigma/south/robotics) -"bxv" = ( -/obj/structure/prop/mech/mech_parts/part/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/mech_parts/part/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/mecha/ripley/peripherals, -/obj/item/circuitboard/mecha/ripley/peripherals, -/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/mecha/odysseus/peripherals, -/obj/item/circuitboard/mecha/odysseus/main, -/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 806cffd28a01..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,28 +19687,6 @@ dir = 10 }, /area/desert_dam/interior/dam_interior/hanger) -"bja" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bjb" = ( -/obj/structure/computerframe, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bjc" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bjd" = ( /obj/structure/machinery/light{ dir = 4 @@ -19792,17 +19738,6 @@ icon_state = "swall3" }, /area/desert_dam/interior/dam_interior/hanger) -"bjl" = ( -/obj/structure/machinery/light, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bjm" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bjn" = ( /obj/structure/machinery/light, /turf/open/floor/prison{ @@ -19881,12 +19816,6 @@ icon_state = "swall8" }, /area/desert_dam/interior/dam_interior/hanger) -"bjA" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bjB" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -20036,28 +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{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bke" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bkf" = ( /turf/open/desert/dirt{ dir = 5; @@ -20111,22 +20018,6 @@ icon_state = "swall0" }, /area/desert_dam/interior/dam_interior/hanger) -"bko" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bkp" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bkt" = ( /turf/open/desert/dirt{ dir = 8; @@ -20963,22 +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{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) -"bne" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/desert_dam/interior/dam_interior/hanger) "bnf" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -24170,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; @@ -24474,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 @@ -25318,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" }, @@ -27400,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" }, @@ -31734,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{ @@ -61089,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, @@ -61219,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; @@ -61316,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, @@ -61481,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{ @@ -61746,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, @@ -61869,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, @@ -62121,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" @@ -62281,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" @@ -62720,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; @@ -63171,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" @@ -63228,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" @@ -63291,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{ @@ -63658,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, @@ -64268,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) @@ -64355,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, @@ -64389,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, @@ -65128,7 +65097,7 @@ icon_state = "S" }, /obj/effect/landmark/nightmare{ - insert_tag = "shipgone" + insert_tag = "shipgone_northlz" }, /turf/open/floor/prison{ dir = 10; @@ -65481,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) @@ -65493,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{ @@ -65565,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" @@ -66061,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) @@ -71604,7 +71585,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnc bhP @@ -71830,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 @@ -72064,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 @@ -72298,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 @@ -72540,7 +72521,7 @@ bjk bjk bjk blx -bjA +ozQ bmD bnf bhP @@ -74474,7 +74455,7 @@ aSI chG ceA act -aVz +mKZ aXD aXD aXD @@ -74945,9 +74926,9 @@ ceA aVB aXE aZJ -bdL +bWO bjI -aZt +oJW aVB boW bqy @@ -93144,9 +93125,9 @@ bQF bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -93612,9 +93593,9 @@ bSY bCs bSY bwu -bxE -byG -bxE +kOC +iiY +kOC bAK bwv bZQ @@ -94548,9 +94529,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -95016,9 +94997,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -95952,9 +95933,9 @@ bTi bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96375,7 +96356,7 @@ awC awC dTs dTs -aHO +aXv aPP aaC aXC @@ -96420,9 +96401,9 @@ bYF bCy bTi bwu -bxH -byJ -bxH +oWx +gVo +oWx bAK bwv caI @@ -96621,7 +96602,7 @@ aVZ aHd dTs aOh -dTs +aWz dTs dTs dTs @@ -98727,8 +98708,8 @@ dTs dTs dTs dTs -aam -ayp +dTs +dTs aeE aeE ayD @@ -99899,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/DesertDam/standalone/crashlanding-upp-alt1.dmm b/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm index b707028441cf..94258193f75b 100644 --- a/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm +++ b/maps/map_files/DesertDam/standalone/crashlanding-upp-alt1.dmm @@ -5,9 +5,7 @@ pixel_y = -5 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "bz" = ( /turf/closed/shuttle/ert{ @@ -84,9 +82,7 @@ "fg" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "fp" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -173,9 +169,7 @@ "jU" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "jX" = ( /obj/effect/decal/sand_overlay/sand1, @@ -220,9 +214,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "mw" = ( /turf/open/desert/dirt{ @@ -297,21 +289,15 @@ "oj" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/desert_dam/exterior/valley/valley_civilian) "os" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "oL" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "oX" = ( /obj/structure/desertdam/decals/road_edge{ @@ -457,9 +443,7 @@ /turf/open/floor/plating, /area/desert_dam/exterior/valley/valley_civilian) "xE" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/desert_dam/exterior/valley/valley_civilian) "xK" = ( /obj/effect/decal/cleanable/dirt, @@ -475,9 +459,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "xP" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "yl" = ( /turf/closed/shuttle/ert{ @@ -872,9 +854,7 @@ /area/desert_dam/exterior/valley/valley_civilian) "OG" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_top_to_bottom, /area/desert_dam/exterior/valley/valley_civilian) "OJ" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -923,15 +903,11 @@ /turf/open/desert/dirt, /area/desert_dam/exterior/valley/valley_civilian) "Rq" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/desert_dam/exterior/valley/valley_civilian) "Ry" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/desert_dam/exterior/valley/valley_civilian) "RG" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -974,9 +950,7 @@ "SN" = ( /obj/effect/spawner/gibspawner/human, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "SV" = ( /obj/structure/prop/invuln/fire{ @@ -1014,9 +988,7 @@ pixel_y = 21 }, /obj/effect/decal/cleanable/dirt, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/exterior/valley/valley_civilian) "UB" = ( /obj/structure/prop/invuln/fire{ @@ -1059,9 +1031,7 @@ }, /area/desert_dam/exterior/valley/valley_civilian) "Wy" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/exterior/valley/valley_civilian) "WU" = ( /obj/effect/decal/sand_overlay/sand1{ diff --git a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm index 7928c7f06b71..9cca7b5c3558 100644 --- a/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm +++ b/maps/map_files/DesertDam/standalone/crashlanding-upp-bar.dmm @@ -79,9 +79,7 @@ dir = 5 }, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/desert_dam/building/bar/bar) "bC" = ( /obj/structure/barricade/sandbags/wired{ @@ -133,9 +131,7 @@ /turf/open/asphalt, /area/desert_dam/exterior/valley/bar_valley_dam) "cu" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "cH" = ( /obj/item/stack/sheet/metal, @@ -156,9 +152,7 @@ network = null; pixel_y = 21 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "cR" = ( /obj/effect/landmark/crap_item, @@ -211,9 +205,7 @@ /obj/item/ammo_box/rounds/type71{ bullet_amount = 129 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "ee" = ( /obj/effect/decal/warning_stripes{ @@ -285,9 +277,7 @@ icon_state = "paper_words"; item_state = "paper_words" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "fk" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -328,9 +318,7 @@ "fP" = ( /obj/structure/bed/bedroll, /obj/item/bedsheet/brown, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "fR" = ( /obj/effect/decal/sand_overlay/sand1{ @@ -431,9 +419,7 @@ dir = 8 }, /obj/effect/landmark/survivor_spawner/upp_medic, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "hH" = ( /obj/structure/desertdam/decals/road_edge{ @@ -639,9 +625,7 @@ "kp" = ( /obj/effect/decal/cleanable/blood, /obj/item/prop/almayer/flight_recorder/colony, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "kB" = ( /obj/structure/barricade/sandbags/wired{ @@ -776,9 +760,7 @@ "ny" = ( /obj/effect/decal/cleanable/blood, /obj/item/prop/almayer/comp_closed, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "nz" = ( /obj/effect/decal/cleanable/dirt, @@ -790,9 +772,7 @@ /area/desert_dam/building/bar/bar) "nB" = ( /obj/effect/landmark/survivor_spawner/upp/soldier, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/building/bar/bar) "nC" = ( /obj/effect/decal/cleanable/dirt, @@ -905,9 +885,7 @@ dir = 2; name = "\improper Fulcrum Airlock" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "pA" = ( /obj/effect/decal/cleanable/dirt, @@ -920,9 +898,7 @@ "pM" = ( /obj/structure/bed/chair/dropship/passenger, /obj/item/storage/belt/medical/lifesaver/upp, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "pO" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -1015,7 +991,7 @@ /area/desert_dam/building/bar/bar) "se" = ( /obj/item/trash/semki, -/turf/open/shuttle/dropship, +/turf/open/shuttle/dropship/can_surgery, /area/desert_dam/building/bar/bar) "sn" = ( /obj/structure/barricade/sandbags/wired{ @@ -1057,9 +1033,7 @@ dir = 4; pixel_y = -5 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/desert_dam/building/bar/bar) "sH" = ( /obj/effect/decal/cleanable/dirt, @@ -1088,15 +1062,11 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "tu" = ( /obj/effect/decal/cleanable/blood, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_right, /area/desert_dam/building/bar/bar) "tA" = ( /obj/item/tool/wrench, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "tE" = ( /obj/structure/flora/grass/desert/heavygrass_3, @@ -1151,9 +1121,7 @@ pixel_y = 7; icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi' }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "uF" = ( /turf/open/desert/dirt{ @@ -1163,9 +1131,7 @@ /area/desert_dam/exterior/valley/bar_valley_dam) "uZ" = ( /obj/item/roller, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "vk" = ( /obj/structure/flora/grass/desert/lightgrass_9, @@ -1301,9 +1267,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S-corner" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "xg" = ( /obj/structure/prop/dam/boulder/boulder1, @@ -1454,7 +1418,7 @@ /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/shuttle/dropship, +/turf/open/shuttle/dropship/can_surgery, /area/desert_dam/building/bar/bar) "yG" = ( /obj/structure/desertdam/decals/road_edge{ @@ -1598,9 +1562,7 @@ /obj/structure/machinery/light/double{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_left, /area/desert_dam/building/bar/bar) "Bu" = ( /obj/effect/decal/sand_overlay/sand1, @@ -1626,9 +1588,7 @@ /obj/item/ammo_magazine/rifle/type71/heap{ current_rounds = 0 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "BB" = ( /turf/closed/shuttle/ert{ @@ -1716,9 +1676,7 @@ /area/desert_dam/building/bar/bar) "Cn" = ( /obj/effect/landmark/survivor_spawner/upp/soldier, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Cx" = ( /obj/effect/decal/cleanable/dirt, @@ -1814,9 +1772,7 @@ "DB" = ( /obj/structure/bed/bedroll, /obj/item/trash/cheesie, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_top_right, /area/desert_dam/building/bar/bar) "DD" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ @@ -1935,9 +1891,7 @@ /area/desert_dam/building/bar/bar) "Fh" = ( /obj/item/storage/belt/utility, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Fl" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -2005,9 +1959,7 @@ current_rounds = 0 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "GP" = ( /obj/item/prop/colony/used_flare, @@ -2018,9 +1970,7 @@ "GY" = ( /obj/item/trash/used_stasis_bag, /obj/effect/landmark/survivor_spawner/squad_leader, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/building/bar/bar) "GZ" = ( /obj/item/stack/barbed_wire/small_stack, @@ -2099,9 +2049,7 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "IU" = ( /obj/item/tool/shovel, @@ -2208,9 +2156,7 @@ "Lo" = ( /obj/effect/landmark/survivor_spawner/upp/soldier, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Lu" = ( /obj/structure/desertdam/decals/road_edge{ @@ -2292,9 +2238,7 @@ }, /obj/effect/decal/cleanable/blood, /obj/effect/spawner/gibspawner/human, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "MW" = ( /obj/effect/decal/sand_overlay/sand1, @@ -2310,9 +2254,7 @@ icon_state = "S-corner" }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Nh" = ( /obj/structure/flora/grass/desert/lightgrass_4, @@ -2351,9 +2293,7 @@ pixel_y = -5 }, /obj/effect/landmark/survivor_spawner/upp_sapper, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "NK" = ( /obj/effect/decal/cleanable/dirt, @@ -2475,9 +2415,7 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "PS" = ( /obj/effect/decal/sand_overlay/sand1, @@ -2574,9 +2512,7 @@ bullet_amount = 0 }, /obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_bottom_left, /area/desert_dam/building/bar/bar) "Rl" = ( /obj/structure/closet/crate/supply, @@ -2590,9 +2526,7 @@ /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot, /obj/item/ammo_magazine/handful/shotgun/heavy/buckshot, /obj/item/ammo_box/magazine/misc/flares, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/desert_dam/building/bar/bar) "Ro" = ( /obj/structure/flora/grass/desert/lightgrass_11, @@ -2617,9 +2551,7 @@ /obj/effect/decal/warning_stripes{ icon_state = "S-corner" }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_up_to_down, /area/desert_dam/building/bar/bar) "Sb" = ( /obj/effect/decal/warning_stripes{ @@ -2861,9 +2793,7 @@ dir = 1 }, /obj/effect/landmark/survivor_spawner/upp_specialist, -/turf/open/shuttle/dropship{ - icon_state = "rasputin5" - }, +/turf/open/shuttle/dropship/can_surgery/light_grey_single_wide_left_to_right, /area/desert_dam/building/bar/bar) "VA" = ( /obj/item/shard{ 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 68b8897320a5..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/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/mecha/gygax/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 8fd994654199..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 @@ -170,7 +171,7 @@ }, /area/template_noop) "H" = ( -/obj/structure/reagent_dispensers/oxygentank, +/obj/structure/reagent_dispensers/fueltank/oxygentank, /turf/open/space, /area/template_noop) "I" = ( 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 485760ebc2af..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,16 +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{ - locked = 0; - name = "Colony Requesitions Storage Pod" - }, -/turf/open/floor/plating/icefloor, -/area/ice_colony/surface/requesitions) "adn" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall0" @@ -1302,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, @@ -1330,18 +1314,6 @@ }, /turf/open/ice, /area/ice_colony/exterior/surface/valley/northeast) -"aeC" = ( -/obj/structure/machinery/door/airlock{ - id_tag = "st_5"; - locked = 0; - 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 @@ -2026,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 @@ -11958,17 +11921,6 @@ icon_state = "whitered" }, /area/ice_colony/surface/clinic/lobby) -"aHB" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - id = "st_17"; - locked = 0; - 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{ @@ -12365,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 @@ -12402,18 +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"; - locked = 0; - 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) @@ -13693,18 +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"; - locked = 0; - 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 @@ -14542,22 +14476,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/research) -"aQm" = ( -/obj/structure/machinery/door/airlock/almayer/secure/colony{ - id = "research_entrance"; - locked = 0; - 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{ @@ -14607,28 +14525,6 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/alpha) -"aQB" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aQC" = ( -/obj/structure/computerframe, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aQD" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) "aQE" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -14687,28 +14583,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/hangar/hallway) -"aQK" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f9" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aQL" = ( -/obj/structure/computerframe, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aQM" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f5" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aQN" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor{ @@ -14949,20 +14823,6 @@ icon_state = "swall3" }, /area/ice_colony/surface/hangar/alpha) -"aRz" = ( -/obj/structure/machinery/light, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aRA" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) "aRB" = ( /obj/structure/machinery/light{ dir = 4 @@ -14984,28 +14844,6 @@ icon_state = "swall3" }, /area/ice_colony/surface/hangar/beta) -"aRF" = ( -/obj/structure/machinery/light, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aRG" = ( -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/effect/landmark/survivor_spawner, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aRH" = ( -/obj/structure/machinery/light, -/obj/item/weapon/gun/pistol/holdout, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aRI" = ( /obj/structure/surface/table, /obj/effect/spawner/random/powercell, @@ -15239,12 +15077,6 @@ icon_state = "swall8" }, /area/ice_colony/surface/hangar/alpha) -"aSi" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) "aSj" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -15283,12 +15115,6 @@ icon_state = "swall8" }, /area/ice_colony/surface/hangar/beta) -"aSr" = ( -/obj/structure/machinery/door/unpowered/shuttle, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aSs" = ( /turf/closed/shuttle{ icon_state = "swall4" @@ -15521,60 +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{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aSV" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aSW" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aSY" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aSZ" = ( -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aTa" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aTb" = ( /turf/open/floor{ dir = 4; @@ -15745,38 +15517,6 @@ icon_state = "darkbrown2" }, /area/ice_colony/surface/hangar/alpha) -"aTz" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aTA" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aTD" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aTE" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aTH" = ( /obj/structure/machinery/power/apc{ dir = 8; @@ -16118,15 +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{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aUN" = ( /obj/structure/ice/thin/end{ dir = 8 @@ -16578,22 +16309,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/hangar/alpha) -"aWc" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) -"aWd" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/alpha) "aWe" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -16648,22 +16363,6 @@ icon_state = "dark2" }, /area/ice_colony/surface/hangar/beta) -"aWl" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f10" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) -"aWm" = ( -/obj/structure/shuttle/diagonal{ - icon_state = "swall_f6" - }, -/turf/open/shuttle{ - icon_state = "floor6" - }, -/area/ice_colony/surface/hangar/beta) "aWn" = ( /obj/structure/shuttle/diagonal{ icon_state = "swall_f9" @@ -19675,13 +19374,6 @@ }, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/north) -"bgR" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - locked = 0; - name = "\improper Underground Maintenance" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/hangar) "bgS" = ( /obj/structure/machinery/landinglight/ds2{ dir = 4 @@ -20103,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, @@ -20399,15 +20087,6 @@ }, /turf/open/floor/plating, /area/ice_colony/underground/requesition/lobby) -"bjz" = ( -/obj/structure/machinery/door/airlock/almayer/maint/colony{ - dir = 1; - locked = 0; - 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) @@ -23726,18 +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"; - locked = 0; - 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; @@ -23958,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" @@ -24465,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 @@ -24500,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" = ( @@ -24837,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, @@ -24965,16 +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"; - locked = 0; - name = "Underground Power Substation" - }, -/turf/open/floor/plating, -/area/ice_colony/underground/engineering/substation) "bxa" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 5 @@ -25177,6 +24821,7 @@ dir = 1 }, /obj/structure/surface/rack, +/obj/item/fuel_cell, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/engineering) "bxJ" = ( @@ -28105,17 +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; - locked = 0; - 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) @@ -34485,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 @@ -34494,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, @@ -34526,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 @@ -34542,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, @@ -34564,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 @@ -34613,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{ @@ -34629,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, @@ -34651,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, @@ -34669,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."; @@ -34677,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) @@ -34695,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, @@ -34712,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, @@ -34727,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; @@ -34746,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 @@ -34770,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" @@ -34797,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; @@ -34821,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, @@ -34844,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{ @@ -34864,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) @@ -34920,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{ @@ -34974,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{ @@ -35069,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; @@ -35080,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{ @@ -35094,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, @@ -39646,15 +39598,15 @@ aaI aaI aaI abD -adm +fgp abD adY abD -aeC +chE abD adY abD -adm +fgp abD adY abD @@ -43876,15 +43828,15 @@ abE abF abF abD -adm +fgp abD adY abD -adm +fgp abD adY abD -adm +fgp abD adY abD @@ -49989,7 +49941,7 @@ bDE bEz bFc bFc -bGA +iZF bHn bHn bIJ @@ -51344,11 +51296,11 @@ aZW aZW aZG aZG -bgR +hwC aZG aZG aZG -bgR +hwC aZG aZG aZG @@ -52201,7 +52153,7 @@ big aZW aZW aZW -bjz +drG bgH bgH bkE @@ -53044,9 +52996,9 @@ bht aZW aZW beB -biw -biw -biw +poh +poh +poh aZG bgH bgH @@ -55302,7 +55254,7 @@ aZW aZW bjf aZG -bgR +hwC aZG beB bkt @@ -55529,7 +55481,7 @@ aLN aLN aLN aLN -aQm +hxr aLN aLN aLN @@ -58910,7 +58862,7 @@ aKr aKr aKR aKR -aNV +ilp auw auw auw @@ -69706,11 +69658,11 @@ box box bqF bnk -buh -buh -bvD -buh -buh +qKs +qKs +cNY +qKs +qKs bqP brt bsf @@ -70270,11 +70222,11 @@ box box bqF btA -buj +ezC buj buj bui -bwA +etX btz brt bsf @@ -70551,12 +70503,12 @@ boQ boQ boQ boQ -btB +krs buk buk bvE bui -bwA +etX btz brt bsf @@ -70838,7 +70790,7 @@ bul buj bvF bui -bwB +hrs btz bxG bsf @@ -71121,7 +71073,7 @@ buj bvG buk buk -bwZ +rxJ bxH brZ brZ @@ -71405,7 +71357,7 @@ bwg bwg btz bxI -bse +qPo bsf brt byc @@ -77815,7 +77767,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWb aSf @@ -78089,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 @@ -78371,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 @@ -78653,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 @@ -78943,7 +78895,7 @@ aRy aRy aRy aUh -aSi +oNg aVy aWe aPH @@ -81103,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 @@ -81385,7 +81337,7 @@ adj adj adj aeh -aex +doO aeU afq aeU @@ -81394,7 +81346,7 @@ agt aeU afq aeU -aex +doO aeh aeI aeI @@ -81670,10 +81622,10 @@ aei agw aeW afs -aex -aex -ags -aex +doO +doO +xyz +doO ahm afu aix @@ -83173,7 +83125,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWk aPT @@ -83447,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 @@ -83729,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 @@ -84011,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 @@ -84301,7 +84253,7 @@ aRE aRE aRE aUn -aSr +cBQ aVD aWn aPT @@ -87654,7 +87606,7 @@ amm aFE aFE aFE -aHB +iUo aFE aFE aky @@ -89351,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 b43c34586c5c..7ff89252a916 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -6021,9 +6021,7 @@ /obj/structure/bed/chair/dropship/pilot{ dir = 1 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aUz" = ( /turf/closed/shuttle/ert{ @@ -6032,9 +6030,7 @@ /area/shiva/interior/aerodrome) "aUA" = ( /obj/structure/girder/reinforced, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aUM" = ( /turf/open/floor/shiva{ @@ -6159,9 +6155,7 @@ icon_state = "equip_base"; name = "shuttle attachment point" }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aVF" = ( /obj/structure/surface/table, @@ -6173,15 +6167,11 @@ }, /area/shiva/interior/colony/medseceng) "aVL" = ( -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aVM" = ( /obj/item/weapon/gun/pistol/holdout, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aVN" = ( /turf/closed/shuttle/ert{ @@ -6228,9 +6218,7 @@ /area/shiva/interior/aerodrome) "aVU" = ( /obj/item/stack/sheet/metal, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "aWb" = ( /obj/structure/foamed_metal, @@ -6310,18 +6298,14 @@ }, /area/shiva/interior/aerodrome) "aWS" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin14" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right, /area/shiva/interior/aerodrome) "aWT" = ( /obj/item/ammo_magazine/pistol/holdout{ pixel_x = 6; pixel_y = -4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin14" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right, /area/shiva/interior/aerodrome) "aWU" = ( /turf/closed/shuttle/ert{ @@ -6598,17 +6582,13 @@ /obj/structure/bed/chair/dropship/passenger{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/shiva/interior/aerodrome) "bbg" = ( /obj/structure/bed/chair/dropship/passenger{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/shiva/interior/aerodrome) "bbh" = ( /turf/closed/shuttle/ert{ @@ -6950,9 +6930,7 @@ /area/shiva/interior/colony/research_hab) "bqN" = ( /obj/structure/machinery/door/airlock/almayer/generic, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "bqO" = ( /obj/effect/decal/cleanable/blood, @@ -7057,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; @@ -7383,9 +7372,7 @@ /area/shiva/interior/lz2_habs) "bOh" = ( /obj/effect/landmark/survivor_spawner, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "bPu" = ( /obj/item/bodybag, @@ -7582,9 +7569,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "bYS" = ( /obj/structure/machinery/light/double, @@ -7621,9 +7606,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "cbt" = ( /obj/structure/surface/table, @@ -7773,9 +7756,7 @@ /area/shiva/interior/colony/research_hab) "clp" = ( /obj/item/tool/weldingtool, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "clz" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ @@ -9233,10 +9214,6 @@ "dYp" = ( /turf/closed/wall/shiva/ice, /area/shiva/interior/bar) -"dYw" = ( -/obj/structure/machinery/defenses/sentry/premade, -/turf/open/auto_turf/snow/layer0, -/area/shiva/exterior/junkyard) "dZb" = ( /obj/structure/closet/secure_closet/guncabinet, /obj/structure/machinery/firealarm{ @@ -9781,9 +9758,7 @@ /area/shiva/interior/colony/n_admin) "eHL" = ( /obj/item/tool/wrench, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "eHY" = ( /obj/item/lightstick/red/spoke/planted{ @@ -10124,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 @@ -10135,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{ @@ -10321,9 +10310,7 @@ name = "shuttle attachment point" }, /obj/item/storage/firstaid/fire, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "fpF" = ( /obj/structure/stairs/perspective/ice{ @@ -10946,9 +10933,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "fXr" = ( /obj/item/lightstick/red/spoke/planted{ @@ -12036,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, @@ -15883,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, @@ -18199,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, @@ -18454,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{ @@ -18552,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; @@ -19339,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; @@ -22149,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{ @@ -22242,9 +22234,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/shiva/interior/aerodrome) "rNO" = ( /obj/structure/prop/ice_colony/soil_net, @@ -22279,9 +22269,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_up_to_down, /area/shiva/interior/aerodrome) "rRb" = ( /obj/structure/surface/rack, @@ -26366,9 +26354,7 @@ /area/shiva/exterior/lz2_fortress) "vVq" = ( /obj/effect/landmark/objective_landmark/close, -/turf/open/shuttle/dropship{ - icon_state = "rasputin14" - }, +/turf/open/shuttle/dropship/can_surgery/medium_grey_single_wide_left_to_right, /area/shiva/interior/aerodrome) "vWf" = ( /obj/item/handcuffs, @@ -27299,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, @@ -27561,9 +27553,7 @@ name = "shuttle attachment point" }, /obj/item/storage/firstaid/adv, -/turf/open/shuttle{ - icon_state = "floor7" - }, +/turf/open/shuttle/can_surgery/black, /area/shiva/interior/aerodrome) "xzo" = ( /obj/item/lightstick/red/spoke/planted{ @@ -37113,7 +37103,7 @@ puZ puZ puZ anc -kTN +nED mCn uRi xQJ @@ -37437,7 +37427,7 @@ puZ puZ puZ anc -kTN +nED mCn cce xQJ @@ -37761,7 +37751,7 @@ puZ puZ puZ anc -kTN +nED mCn cce xQJ @@ -43684,7 +43674,7 @@ tHd tHd jMf tHd -jMf +ffg tHd jMf ofw @@ -45675,7 +45665,7 @@ kyD tHd pDr tHd -dYw +kyD kyD kyD kyD @@ -45837,7 +45827,7 @@ tHd kyD pDr kyD -dYw +kyD kyD kyD kyD @@ -53228,7 +53218,7 @@ ver ver ver fEO -oDM +bws ktd bFg bIV @@ -53390,7 +53380,7 @@ ver ver ver ver -pSD +ffo ktd cZk bIV @@ -54200,7 +54190,7 @@ aAh ver ver ver -pSD +nJu ktd cZk bFg @@ -54362,7 +54352,7 @@ ver ver ver pNf -aCA +oDJ ktd gJo lTc @@ -55003,11 +54993,11 @@ oQl oQl oQl ktd -rHQ +xdk tXd aAh pSD -rHQ +xdk ktd oQl oQl @@ -55165,11 +55155,11 @@ oQl oQl oQl ktd -rHQ +xdk ush vUL aCA -rHQ +xdk ktd oQl oQl @@ -55328,9 +55318,9 @@ oQl oQl ktd ktd -rHQ -rHQ -rHQ +xdk +xdk +xdk ktd ktd oQl @@ -58347,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 @@ -58509,7 +58499,7 @@ aDn eAZ eAZ aDn -hgx +npM cso agh cso @@ -58518,7 +58508,7 @@ cso cso agh cso -hgx +npM acT acT aii @@ -58674,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..e29ebb9280b9 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; @@ -688,14 +675,13 @@ }, /area/kutjevo/exterior/lz_river) "aWR" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light{ dir = 8 }, /turf/open/gm/river/desert/deep{ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, -/area/kutjevo/interior/oob) +/area/kutjevo/exterior/construction) "aXU" = ( /obj/structure/barricade/wooden{ dir = 1; @@ -753,11 +739,8 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "bcl" = ( /obj/structure/largecrate/random/barrel/red, /turf/open/floor/kutjevo/multi_tiles{ @@ -874,6 +857,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) @@ -935,8 +922,10 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_north) "bnQ" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/interior/colony_north) +/turf/open/gm/river/desert/deep{ + icon = 'icons/turf/floors/desert_water_toxic.dmi' + }, +/area/kutjevo/interior/complex/botany) "boa" = ( /obj/structure/machinery/light{ dir = 4 @@ -1003,7 +992,9 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "btI" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/open/floor/plating/kutjevo{ + icon_state = "panelscorched" + }, /area/kutjevo/interior/complex/botany/east_tech) "buo" = ( /obj/structure/machinery/power/apc{ @@ -1022,14 +1013,13 @@ /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med) "bvT" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light{ dir = 1 }, /turf/open/gm/river/desert/deep{ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, -/area/kutjevo/interior/oob) +/area/kutjevo/exterior/construction) "bwt" = ( /obj/structure/prop/dam/truck/cargo, /turf/open/floor/kutjevo/tan/multi_tiles{ @@ -1326,9 +1316,7 @@ /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/complex/botany) "bQg" = ( -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/kutjevo/colors/orange, /area/kutjevo/interior/foremans_office) "bQk" = ( @@ -1351,11 +1339,8 @@ /obj/structure/platform_decoration/kutjevo{ dir = 8 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "bRl" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/communications{ @@ -1747,7 +1732,7 @@ /area/kutjevo/interior/colony_South/power2) "cum" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/oob) "cun" = ( /obj/structure/platform_decoration/kutjevo, @@ -1985,8 +1970,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) @@ -2325,11 +2310,8 @@ /area/kutjevo/exterior/spring) "ddi" = ( /obj/structure/platform/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "ddk" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 4; @@ -2594,12 +2576,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, @@ -3153,12 +3129,11 @@ /turf/open/floor/kutjevo/colors/cyan, /area/kutjevo/interior/complex/med/auto_doc) "ecO" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light, /turf/open/gm/river/desert/deep{ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, -/area/kutjevo/interior/oob) +/area/kutjevo/exterior/construction) "ecV" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 9 @@ -3310,6 +3285,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, @@ -3401,14 +3383,13 @@ /turf/open/floor/kutjevo/colors/orange/edge, /area/kutjevo/interior/power_pt2_electric_boogaloo) "epV" = ( -/obj/structure/blocker/invisible_wall, /obj/structure/machinery/light{ dir = 4 }, /turf/open/gm/river/desert/deep{ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, -/area/kutjevo/interior/oob) +/area/kutjevo/exterior/construction) "eqJ" = ( /obj/structure/flora/grass/desert/lightgrass_2, /turf/open/auto_turf/sand/layer1, @@ -3628,12 +3609,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 }, @@ -3852,9 +3833,7 @@ }, /area/kutjevo/interior/oob/dev_room) "eQQ" = ( -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, +/obj/structure/machinery/colony_floodlight, /turf/open/floor/kutjevo/colors/purple, /area/kutjevo/interior/construction) "eQW" = ( @@ -4293,7 +4272,7 @@ /area/kutjevo/interior/complex/med/cells) "frx" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony/reinforced, /area/kutjevo/interior/power_pt2_electric_boogaloo) "frF" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ @@ -4512,12 +4491,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 +4507,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 +4653,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, @@ -4863,7 +4828,7 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/med_rec) "glB" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/med/cells) "gma" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, @@ -5146,11 +5111,11 @@ /turf/open/floor/kutjevo/grey/plate, /area/kutjevo/interior/complex/med) "gCG" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_sn_full_cap" +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/complex_border/med_rec) +/turf/open/floor/kutjevo/colors/orange/tile, +/area/kutjevo/interior/power_pt2_electric_boogaloo) "gDP" = ( /obj/item/tool/wrench, /turf/open/floor/kutjevo/tan, @@ -5509,14 +5474,10 @@ /turf/open/auto_turf/sand/layer0, /area/kutjevo/interior/colony_central) "hdF" = ( -/obj/structure/filtration/coagulation_arm{ - pixel_x = -16; - pixel_y = -16 - }, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' +/turf/open/floor/plating/kutjevo{ + icon_state = "platingdmg1" }, -/area/kutjevo/interior/oob) +/area/kutjevo/interior/complex/botany/east_tech) "hdQ" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/floor/kutjevo/colors/orange, @@ -5609,6 +5570,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" = ( @@ -5731,13 +5695,10 @@ }, /area/kutjevo/interior/oob) "hwA" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 4; - icon_state = "p_stair_full" +/turf/open/floor/plating/kutjevo{ + icon_state = "platingdmg3" }, -/obj/structure/platform/kutjevo/smooth, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med/locks) +/area/kutjevo/interior/complex/botany/east_tech) "hwO" = ( /obj/structure/machinery/light{ dir = 1 @@ -5905,9 +5866,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, @@ -5950,11 +5908,8 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "hLH" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 @@ -6150,9 +6105,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) @@ -6173,7 +6125,7 @@ }, /area/kutjevo/interior/complex/Northwest_Flight_Control) "ify" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/med/pano) "ifE" = ( /obj/structure/machinery/power/apc{ @@ -6217,14 +6169,8 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/Northwest_Colony) "iiG" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 8; - icon_state = "p_stair_full" - }, -/obj/structure/platform/kutjevo/smooth, -/obj/structure/barricade/handrail/kutjevo, -/turf/open/floor/kutjevo/tan/multi_tiles, -/area/kutjevo/interior/colony_South/power2) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "iiN" = ( /obj/item/stack/sheet/metal, /turf/open/floor/plating/kutjevo, @@ -6469,11 +6415,8 @@ /area/kutjevo/exterior/runoff_dunes) "iIz" = ( /obj/structure/platform_decoration/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "iIT" = ( /obj/structure/platform/kutjevo{ dir = 4 @@ -6726,8 +6669,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) @@ -6856,13 +6799,6 @@ }, /turf/open/floor/kutjevo/tan, /area/kutjevo/interior/construction) -"jkp" = ( -/obj/structure/platform/kutjevo/smooth, -/obj/structure/barricade/handrail/kutjevo, -/turf/open/floor/kutjevo/multi_tiles{ - dir = 4 - }, -/area/kutjevo/interior/colony_South/power2) "jkJ" = ( /obj/structure/closet/secure_closet/hydroponics, /obj/item/reagent_container/glass/watertank, @@ -6881,6 +6817,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{ @@ -6937,12 +6877,6 @@ dir = 10 }, /area/kutjevo/interior/colony_South/power2) -"jos" = ( -/obj/structure/stairs/perspective/kutjevo{ - icon_state = "p_stair_full" - }, -/turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/complex_border/med_rec) "joL" = ( /obj/structure/filingcabinet, /obj/structure/machinery/light{ @@ -7116,10 +7050,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 +7148,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, @@ -7487,8 +7431,8 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/spring) "khI" = ( -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/kutjevo/grey/plate, +/obj/structure/window/framed/kutjevo/reinforced, +/turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/botany/east_tech) "khW" = ( /obj/structure/surface/table/almayer, @@ -7656,6 +7600,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,17 +7976,10 @@ /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) -"kPA" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 4; - icon_state = "p_stair_full" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med/locks) "kPM" = ( /obj/structure/stairs/perspective/kutjevo{ dir = 8; @@ -8156,10 +8103,6 @@ dir = 10 }, /area/kutjevo/interior/colony_South/power2) -"kYs" = ( -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med) "kZm" = ( /obj/structure/platform_decoration/kutjevo, /turf/open/gm/river/desert/shallow, @@ -8549,12 +8492,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{ @@ -8658,10 +8595,6 @@ dir = 8 }, /area/kutjevo/exterior/runoff_river) -"lLn" = ( -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/botany) "lLo" = ( /obj/structure/monorail, /obj/structure/machinery/door/poddoor/shutters/almayer, @@ -8723,9 +8656,6 @@ /turf/open/floor/kutjevo/multi_tiles, /area/kutjevo/exterior/Northwest_Colony) "lNt" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, /obj/structure/closet/secure_closet/engineering_personal, /obj/item/stack/sheet/metal/medium_stack, /obj/effect/landmark/objective_landmark/far, @@ -8922,6 +8852,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 @@ -9059,11 +8995,10 @@ /turf/open/asphalt/cement_sunbleached, /area/kutjevo/exterior/Northwest_Colony) "mjP" = ( -/obj/structure/blocker/invisible_wall, /turf/open/floor/coagulation{ icon_state = "0,5" }, -/area/kutjevo/interior/oob) +/area/kutjevo/interior/complex/botany/east_tech) "mjW" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/desert/desert_shore/shore_edge1{ @@ -9244,11 +9179,8 @@ /obj/structure/platform/kutjevo{ dir = 1 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "mzS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/stack/medical/splint, @@ -9465,7 +9397,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) @@ -9588,12 +9520,10 @@ /turf/open/floor/kutjevo/plate, /area/kutjevo/interior/colony_central) "mPt" = ( +/obj/structure/machinery/colony_floodlight, /obj/structure/platform/kutjevo{ dir = 1 }, -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/complex/med/triage) "mPL" = ( @@ -9796,9 +9726,6 @@ }, /turf/open/floor/kutjevo/colors, /area/kutjevo/interior/complex/botany) -"nie" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/interior/complex/botany/east) "niC" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/desert/desert_shore/shore_corner2, @@ -9839,11 +9766,6 @@ dir = 8 }, /area/kutjevo/exterior/complex_border/med_park) -"nlc" = ( -/obj/structure/blocker/invisible_wall, -/obj/structure/window/framed/kutjevo/reinforced/hull, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/oob) "nlv" = ( /turf/open/auto_turf/sand/layer2, /area/kutjevo/interior/colony_central) @@ -9942,7 +9864,7 @@ /area/kutjevo/exterior/complex_border/med_rec) "nsC" = ( /obj/structure/extinguisher_cabinet, -/turf/closed/wall/kutjevo/colony/reinforced/hull, +/turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/botany/east) "nsF" = ( /turf/open/floor/kutjevo/multi_tiles{ @@ -10133,16 +10055,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; @@ -10773,9 +10685,7 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/obj/structure/machinery/colony_floodlight{ - pixel_y = 10 - }, +/obj/structure/machinery/colony_floodlight, /turf/open/auto_turf/sand/layer1, /area/kutjevo/interior/complex/med) "oum" = ( @@ -11119,14 +11029,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, @@ -11575,12 +11477,6 @@ dir = 6 }, /area/kutjevo/interior/power_pt2_electric_boogaloo) -"pxl" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 1 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/complex/med/locks) "pxB" = ( /obj/structure/platform/kutjevo/rock{ dir = 1 @@ -12057,10 +11953,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, @@ -12473,9 +12365,6 @@ /area/kutjevo/exterior/scrubland) "qIN" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, /obj/item/toy/deck, /obj/item/device/flashlight/lamp, /turf/open/floor/kutjevo/multi_tiles{ @@ -12506,11 +12395,8 @@ dir = 4 }, /obj/structure/platform/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "qLV" = ( /obj/structure/tunnel, /turf/open/auto_turf/sand/layer0, @@ -12704,6 +12590,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 +12629,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, @@ -13251,9 +13135,6 @@ /area/kutjevo/interior/complex/botany/east_tech) "rRC" = ( /obj/structure/surface/table/reinforced/prison, -/obj/structure/barricade/handrail/kutjevo{ - layer = 3.1 - }, /obj/item/clipboard, /obj/item/clothing/glasses/thermal/syndi{ icon_state = "kutjevo_goggles"; @@ -13489,11 +13370,8 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "sgc" = ( /turf/open/floor/kutjevo/tan/alt_edge{ dir = 6 @@ -13737,13 +13615,6 @@ /obj/structure/machinery/floodlight/landing, /turf/open/floor/kutjevo/plate, /area/kutjevo/exterior/lz_dunes) -"sxq" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 6; - icon_state = "p_stair_full" - }, -/turf/open/auto_turf/sand/layer0, -/area/kutjevo/exterior/complex_border/med_rec) "sxy" = ( /turf/open/gm/river/desert/shallow_edge{ dir = 9 @@ -13915,16 +13786,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 @@ -13998,16 +13859,6 @@ }, /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/complex/botany) -"sOy" = ( -/obj/structure/stairs/perspective/kutjevo{ - dir = 8; - icon_state = "p_stair_ew_full_cap_butt" - }, -/obj/structure/platform/stair_cut{ - icon_state = "kutjevo_platform_sm_stair" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/complex/med/locks) "sOF" = ( /obj/item/stack/sheet/wood{ pixel_x = -4 @@ -14019,13 +13870,6 @@ "sOJ" = ( /turf/open/gm/river/desert/shallow_corner, /area/kutjevo/exterior/lz_river) -"sOT" = ( -/obj/structure/blocker/invisible_wall, -/obj/structure/filtration/machine_96x96/indestructible{ - icon_state = "sedimentation" - }, -/turf/open/floor/plating/kutjevo, -/area/kutjevo/interior/power_pt2_electric_boogaloo) "sPp" = ( /obj/structure/platform/kutjevo/smooth, /turf/open/gm/river/desert/deep/covered, @@ -14355,6 +14199,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 +14442,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 +14468,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, @@ -14831,9 +14689,8 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/exterior/complex_border/botany_medical_cave) "tWv" = ( -/obj/structure/blocker/invisible_wall, /turf/open/gm/river, -/area/kutjevo/interior/oob) +/area/kutjevo/interior/power_pt2_electric_boogaloo) "tWM" = ( /turf/open/floor/kutjevo/tan/multi_tiles, /area/kutjevo/interior/power/comms) @@ -14862,12 +14719,10 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/telecomm/lz2_north) "uah" = ( -/obj/structure/filtration/coagulation_arm, -/obj/structure/blocker/invisible_wall, /turf/open/gm/river/desert/deep{ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, -/area/kutjevo/interior/oob) +/area/kutjevo/exterior/construction) "uaj" = ( /obj/structure/machinery/light, /turf/open/floor/kutjevo/tan/alt_inner_edge{ @@ -15034,11 +14889,8 @@ /obj/structure/platform/kutjevo{ dir = 8 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "ukN" = ( /obj/structure/prop/dam/boulder/boulder3, /turf/open/auto_turf/sand/layer0, @@ -15226,20 +15078,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 +15230,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) @@ -15509,11 +15341,8 @@ dir = 8 }, /obj/structure/platform/kutjevo, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "uNW" = ( /obj/structure/prop/dam/boulder/boulder2, /turf/open/auto_turf/sand/layer0, @@ -15908,11 +15737,8 @@ /obj/structure/platform/kutjevo{ dir = 4 }, -/obj/structure/blocker/invisible_wall, -/turf/open/gm/river/desert/deep{ - icon = 'icons/turf/floors/desert_water_toxic.dmi' - }, -/area/kutjevo/interior/oob) +/turf/open/gm/river/desert/deep, +/area/kutjevo/interior/complex/botany/east_tech) "vlg" = ( /obj/structure/flora/grass/tallgrass/desert/corner{ dir = 6 @@ -15951,19 +15777,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 +15853,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 @@ -16734,12 +16540,6 @@ }, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/spring) -"wtu" = ( -/obj/structure/platform_decoration/kutjevo{ - dir = 4 - }, -/turf/open/floor/kutjevo/colors/orange, -/area/kutjevo/interior/complex/med/locks) "wtH" = ( /turf/closed/wall/kutjevo/colony, /area/kutjevo/interior/complex/botany/east) @@ -16825,12 +16625,6 @@ /turf/open/floor/plating/kutjevo, /area/kutjevo/interior/complex/Northwest_Security_Checkpoint) "wwV" = ( -/obj/structure/platform/kutjevo/smooth{ - dir = 1 - }, -/obj/structure/platform/kutjevo/smooth{ - dir = 8 - }, /obj/structure/filingcabinet{ pixel_x = 8; pixel_y = 5 @@ -16987,6 +16781,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, @@ -17093,7 +16900,7 @@ /turf/open/gm/river/desert/deep{ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, -/area/kutjevo/interior/oob) +/area/kutjevo/interior/complex/med) "wXd" = ( /turf/closed/wall/kutjevo/rock, /area/kutjevo/interior/colony_South) @@ -17391,7 +17198,11 @@ /turf/open/auto_turf/sand/layer1, /area/kutjevo/exterior/Northwest_Colony) "xti" = ( -/obj/structure/platform_decoration/kutjevo, +/obj/structure/stairs/perspective/kutjevo{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform/kutjevo, /turf/open/auto_turf/sand/layer0, /area/kutjevo/exterior/complex_border/med_rec) "xtN" = ( @@ -17533,6 +17344,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"; @@ -17631,9 +17448,6 @@ /obj/effect/landmark/objective_landmark/science, /turf/open/floor/kutjevo/colors/green/tile, /area/kutjevo/interior/complex/botany) -"xRh" = ( -/turf/closed/wall/kutjevo/colony/reinforced/hull, -/area/kutjevo/interior/power_pt2_electric_boogaloo) "xRo" = ( /obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ dir = 1; @@ -23933,13 +23747,13 @@ tWM cRo tlN kfe -dux +tlK boR tXm tWM tXm boR -dux +tlK tlN iaj iaj @@ -24100,13 +23914,13 @@ tWM xZr tlN kfe -dux +tlK vXq kKb tWM tXm boR -dux +tlK tlN iaj iaj @@ -24267,13 +24081,13 @@ tWM wtZ tlN kfe -dux +tlK boR tXm jFB kKb vXq -dux +tlK tlN iaj iaj @@ -24805,15 +24619,15 @@ ich jqt pyp pyp -aHW +pyp uPu vYI vYI vYI uCR -aHW -aHW -aHW +pyp +pyp +pyp aHW rwj rwj @@ -25478,7 +25292,7 @@ cvm hQj hQj hQj -cvm +mcA rwj uZT uZT @@ -25645,7 +25459,7 @@ cvm hQj hQj hQj -cvm +mcA aHW aHW aHW @@ -25812,7 +25626,7 @@ cvm kdY kdY kdY -cvm +tEj rwj muG muG @@ -25973,13 +25787,13 @@ uGd fkP vin pBV -lBu +xGI uBz cvm hQj hQj hQj -cvm +jGo rwj wMw wMw @@ -26146,7 +25960,7 @@ xjY xjY bbL xjY -voy +raV rwj uZT uZT @@ -26308,7 +26122,7 @@ dfY pyp pyp pyp -aHW +pyp yas ddk ddk @@ -26475,7 +26289,7 @@ xpk tQB ePx pBV -sID +ksb vdl xzY xzY @@ -26642,7 +26456,7 @@ nah xXI cTz pBV -qdj +bkn xzY oum hQj @@ -26809,7 +26623,7 @@ qjz niT cTz pBV -qdj +bkn xzY hQj hQj @@ -26976,7 +26790,7 @@ soe gCb cTz pBV -qdj +bkn oKA hQj hQj @@ -32779,7 +32593,7 @@ jwR qgW nAo nIA -rYS +mbS xhV kxW eNf @@ -33419,9 +33233,9 @@ dxF dxF dxF dxF -mxB -mxB -mxB +dxF +dxF +dxF dxF dxF hkO @@ -33586,8 +33400,8 @@ jPt pKP dxF dxF -mxB -mxB +dxF +dxF mhj dxF dxF @@ -33753,10 +33567,10 @@ bjj fpO orL dxF -mxB +dxF mhj fjF -gBl +wff dxF dxF eXm @@ -33917,7 +33731,7 @@ jzl jzl fUL jzl -kYs +lcs jzl jzl eMC @@ -33959,7 +33773,7 @@ kDS wGD mNM xvn -hGM +mNM xms dRj dRj @@ -34917,22 +34731,22 @@ oag oVX oVX iZu -jhS -jhS -kVJ -jhS -jhS -jhS +jzl +jzl +jzl +jzl +jzl +jzl wff wff wff wff -jhS -jhS -jhS -kVJ -kVJ -rYS +eXm +eXm +lHs +lHs +eXm +eXm lce hVg qgW @@ -35084,22 +34898,22 @@ snr oVX oVX cfa -kVJ +lcs wWy wWy wWy wWy -kVJ +lcs wff wff wff wff -kVJ -wWy -wWy -wWy -wWy -lLn +lHs +bnQ +bnQ +bnQ +bnQ +lHs kDS kDS eOM @@ -35243,7 +35057,7 @@ aHl lCu oVX jzl -pbY +jzl kBb uTj abS @@ -35251,22 +35065,22 @@ snr oVX oVX cfa -kVJ -wWy +lcs wWy -hdF +jzl +jzl wWy -kVJ +lcs nnf wff wff wff -kVJ -wWy -wWy -hdF -wWy -lLn +lHs +bnQ +eXm +eXm +bnQ +lHs kDS kDS kct @@ -35410,7 +35224,7 @@ etm lCu oVX jzl -pbY +jzl cZt cDf dvL @@ -35418,22 +35232,22 @@ snr oVX oVX cfa -kVJ -wWy -wWy +lcs wWy +jzl +jzl wWy -kVJ +lcs nnf wff wff wff -kVJ -wWy -wWy -wWy -wWy -lLn +lHs +bnQ +eXm +eXm +bnQ +lHs bGX kDS qgW @@ -35585,22 +35399,22 @@ snr oVX oVX ewF -kVJ +lcs wWy wWy wWy wWy -kVJ +lcs nnf nnf nnf wff -kVJ -wWy -wWy -wWy -wWy -lLn +lHs +bnQ +bnQ +bnQ +bnQ +lHs vDS vDS wGD @@ -35752,22 +35566,22 @@ oag oVX oVX sFL -jhS -jhS -kVJ -jhS -jhS -jhS +jzl +jzl +jzl +jzl +jzl +jzl wff nnf wff wff -jhS -jhS -jhS -kVJ -kVJ -rYS +eXm +eXm +lHs +lHs +eXm +eXm nIn cAt vDS @@ -36066,8 +35880,8 @@ rlB ryB nsd pfz -gCG -gld +pfz +pfz jhb eCY tOe @@ -36233,8 +36047,8 @@ rlB ryB nsd pfz -jos -gld +pfz +pfz jhb bKi asQ @@ -36400,8 +36214,8 @@ rlB ryB nsd pfz -jos -gld +pfz +pfz jhb eCY ygh @@ -36464,8 +36278,8 @@ vDS mNM xvn dJT -hGM -hGM +mNM +mNM oeb fyD oeb @@ -36567,7 +36381,7 @@ rlB jPW kGU kOD -sxq +wzC xti jhb ayB @@ -36631,7 +36445,7 @@ gqQ vys dRj lok -hGM +mNM qrl nOH fyD @@ -36744,9 +36558,9 @@ dRX dRX dRX jhb -pbY -pbY -pbY +jzl +jzl +jzl jzl lBP jzl @@ -37275,7 +37089,7 @@ jhD oQc oQc oQc -xRh +oQc yir xkk yir @@ -37466,7 +37280,7 @@ kDS nOH xuY xyY -hGM +mNM juH dRj dRj @@ -37633,7 +37447,7 @@ vfd mNM xvn dJT -hGM +mNM wuy mSd dTM @@ -37771,9 +37585,9 @@ xWK xWK xWK jhx -xRh -xRh -xRh +dip +dip +dip dnR lah kHm @@ -37938,9 +37752,9 @@ xWK xWK xWK jhx -nlc +ubR tWv -nlc +ubR eSH stt stt @@ -38105,9 +37919,9 @@ bKH xWK xWK xWK -nlc +ubR tWv -nlc +ubR sPV rQY rQY @@ -38272,9 +38086,9 @@ bKH xWK xWK xWK -xRh -xRh -xRh +dip +dip +dip eVv rQY pxb @@ -38425,9 +38239,9 @@ slF slF slF slF -sOy -kPA -hwA +slF +slF +slF nsF kOo nYz @@ -38445,9 +38259,9 @@ lah sPV rQY rkO -xRh +dip frx -xRh +dip eVv rxr qJx @@ -38456,7 +38270,7 @@ dip wtH wtH tIz -nie +tIz vHL vHL vHL @@ -38465,18 +38279,18 @@ tIz tIz wtH wtH -nie -jhS -jhS -jhS -jhS +wtH +wCU +wCU +wCU +wCU tGi tGi tGi tGi tGi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -38592,9 +38406,9 @@ fpJ fpJ pIE wwV -wtu nAy -pxl +nAy +nAy lNt ktq ngX @@ -38612,9 +38426,9 @@ stt eOc rQY epR -mcv +ubR tWv -mcv +ubR sPV rQY rQY @@ -38632,18 +38446,18 @@ vHh tIz wtH wtH -nie -jhS -jhS -jhS -jhS -kVJ -kVJ -kVJ -kVJ -kVJ -jhS -jhS +wtH +wCU +wCU +wCU +wCU +khI +khI +khI +khI +khI +wCU +wCU dxF dxF dxF @@ -38779,9 +38593,9 @@ rQY rQY rQY epR -mcv +ubR tWv -mcv +ubR sPV rQY rQY @@ -38799,18 +38613,18 @@ sAe hMu wCU wCU -btI -btI -btI -btI -jhS +wCU +wCU +wCU +wCU +wCU mjP mjP mjP mjP mjP -jhS -jhS +wCU +wCU dxF dxF dxF @@ -38946,9 +38760,9 @@ rQY rQY rQY tFe -xRh -xRh -xRh +dip +dip +dip eVv rxr pxb @@ -38966,10 +38780,10 @@ hMu hMu wCU wCU -btI -btI -btI -btI +wCU +wCU +wCU +wCU sfz ukd ukd @@ -38977,7 +38791,7 @@ ukd ukd ukd uNJ -jhS +wCU dxF dxF dxF @@ -39138,13 +38952,13 @@ rRl mCd khI mzn -qwg -qwg -qwg -uah -qwg +iiG +iiG +wCU +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39305,13 +39119,13 @@ oJj jyq khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +wCU +wCU +wCU +iiG ddi -jhS +wCU dxF dxF dxF @@ -39472,13 +39286,13 @@ iNF jyq khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +iiG +wCU +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39639,13 +39453,13 @@ nbu jKN khI mzn -qwg -qwg -qwg -qwg -qwg +iiG +iiG +iiG +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -39779,13 +39593,13 @@ dip dip szC vdV -szC -szC -sOT +lah +lah +lah dip -jxR -jxR -jxR +jmP +jmP +jmP dip gQr hMu @@ -39804,15 +39618,15 @@ nbu nbu nbu jKN -btI +wCU vkV bQY -qwg -qwg -qwg +iiG +iiG +iiG iIz qLa -jhS +wCU dxF dxF dxF @@ -39946,23 +39760,23 @@ oNG dip szC szC -szC -szC -szC +lah +lah +lah dip dip dip dip dip -mMf -mMf -gQr -gQr -gQr gQr gQr gQr rIL +rIL +rIL +rIL +rIL +rIL cyM rIL fWl @@ -39971,15 +39785,15 @@ nbu eBH nbu hYE -btI -btI +wCU +wCU mzn -qwg -qwg -uah +iiG +wCU +iiG ddi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -40113,16 +39927,16 @@ oNG dip szC lNG -szC -lNG -szC +lah +gCG +dip dip -gQr -gQr rIL mMf -rIL -rIL +mMf +gQr +gQr +gQr rIL dnF rIL @@ -40141,11 +39955,11 @@ jKN jKN khI mzn -qwg -qwg -qwg +wCU +wCU +wCU ddi -jhS +wCU dxF dxF dxF @@ -40283,11 +40097,11 @@ dip dip dip dip -dip rIL rIL -mMf rIL +mMf +mMf rIL rIL rIL @@ -40298,7 +40112,7 @@ gQr gQr iGz dnF -gQr +rIL rMp kGM nbu @@ -40308,11 +40122,11 @@ jKN jKN khI mzn -qwg -qwg -qwg +iiG +wCU +iiG ddi -jhS +wCU dxF dxF dxF @@ -40448,8 +40262,14 @@ oNG rIL rIL rIL -mMf -mMf +rIL +rIL +rIL +rIL +rIL +rIL +rIL +rIL rIL rIL rIL @@ -40458,14 +40278,8 @@ gQr gQr gQr gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr -gQr +mMf +rIL hMu nbu kAW @@ -40475,11 +40289,11 @@ aHC jKN khI mzn -qwg -qwg -qwg +iiG +iiG +iiG ddi -jhS +wCU dxF dxF dxF @@ -40614,11 +40428,11 @@ rIL mMf rIL mMf -jhS -kVJ -kVJ -kVJ -jhS +rIL +rIL +rIL +rIL +rIL jhS jhS jhS @@ -40640,13 +40454,13 @@ hUy yaI hMu hMu -btI +wCU vkV bQY -qwg +iiG iIz hLi -jhS +wCU dxF dxF dxF @@ -40777,15 +40591,15 @@ fyF sTU bDX qaI -oNG -oNG +rIL +rIL fAT dnF -jhS -gtL -rzb -vGx -jhS +btI +rIL +rIL +rIL +mMf jhS gtL rzb @@ -40807,13 +40621,13 @@ oNK dkE dkE iBd -btI -jhS +wCU +wCU vkV bcb hLi -jhS -jhS +wCU +wCU dxF dxF dxF @@ -40946,13 +40760,13 @@ fyF qaI oNG oNG -oNG -oNG -jhS -hws -qwg -vcY -jhS +mMf +rIL +mMf +rIL +cXL +rIL +hwA jhS hws qwg @@ -40974,12 +40788,12 @@ tfx dkE tyJ eyk -btI -jhS -jhS -jhS -jhS -jhS +wCU +wCU +wCU +wCU +wCU +wCU dxF dxF dxF @@ -41114,12 +40928,12 @@ qaI oNG oNG oNG -oNG -jhS -cTG -fRZ -cQt -jhS +hMu +hMu +rIL +rIL +mMf +hMu jhS cTG fRZ @@ -41141,8 +40955,8 @@ dkE ugQ fjX peo -btI -jhS +wCU +wCU dxF dxF dxF @@ -41282,11 +41096,11 @@ rfE rdm rdm rdm -jhS -kVJ -kVJ -kVJ -jhS +hMu +cXL +rIL +hdF +hMu jhS kVJ kVJ @@ -41308,8 +41122,8 @@ cXL iiN duP hMu -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41426,11 +41240,11 @@ mpW mpW pmv pmv -jhS -mcv -mcv -mcv -jhS +lPR +hPf +hPf +hPf +lPR feR xWK jhx @@ -41450,9 +41264,9 @@ rdm rdm fTk qIN -fDY fTk -jkp +fTk +fTk lkp foE fDY @@ -41468,15 +41282,15 @@ aFc fDY fTk dUy -jhS +nTw rzT aRS cXL cXL aRS hMu -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41592,13 +41406,13 @@ beR jEN jEN dQD -jhS -jhS +lPR +lPR bvT -qwg +uah ecO -jhS -jhS +lPR +lPR xrv eTT xWK @@ -41617,9 +41431,9 @@ rdm rdm rsM rRC -aoJ -tnx -iiG +mLw +mLw +mLw fTk qgI aoJ @@ -41642,8 +41456,8 @@ wcl rUM nUV nUV -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41759,13 +41573,13 @@ bKH bKH bKH bKH -mcv +hPf aWR -qwg -qwg +uah +lPR uah aWR -mcv +hPf cHb fyF xWK @@ -41801,16 +41615,16 @@ vXK evr fTk fTk -oSx -eaB +fTk +qGx qGx qGx qGx qGx rdm rdm -jhS -jhS +wCU +wCU dxF dxF dxF @@ -41926,13 +41740,13 @@ xWK xWK jhx xWK -mcv -qwg -qwg -qwg -qwg -qwg -mcv +hPf +uah +lPR +lPR +lPR +uah +hPf fyF lxc xWK @@ -41968,13 +41782,12 @@ klE klE ngK klE -azI -rgh +ngK +qGx qGx qGx qGx qGx -jhS jhS jhS jhS @@ -42027,6 +41840,7 @@ dxF dxF dxF dxF +dxF ybY "} (145,1,1) = {" @@ -42093,13 +41907,13 @@ xWK xWK bKH xWK -mcv +hPf epV -qwg -qwg -qwg +uah +lPR +uah epV -mcv +hPf cUm cUm xWK @@ -42135,8 +41949,8 @@ klE qGx qGx qGx -uHJ -uHJ +qGx +qGx qGx qGx eQW @@ -42144,7 +41958,7 @@ qGx qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42260,13 +42074,13 @@ bKH xWK xWK xWK -jhS -jhS +lPR +lPR bvT -qwg +uah ecO -jhS -jhS +lPR +lPR cUm eTT hpB @@ -42302,8 +42116,8 @@ qGx duw mLw xVZ -fMi -fMi +xVZ +mLw mLw cpg fqm @@ -42311,7 +42125,7 @@ mLw qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42428,11 +42242,11 @@ bKH xWK xWK xWK -jhS -mcv -mcv -mcv -jhS +lPR +hPf +hPf +hPf +lPR jhx xWK xWK @@ -42469,8 +42283,8 @@ xVZ xVZ mLw qGx -vwB -vwB +qGx +qGx qGx qGx gNx @@ -42478,7 +42292,7 @@ qGx qhV kma jhS -jhS +dxF dxF dxF dxF @@ -42636,8 +42450,8 @@ qGx mEe slx qGx -uxb -aNj +klE +qGx qGx rHE qGx @@ -42645,7 +42459,7 @@ rHE jhS jhS jhS -jhS +dxF dxF dxF dxF @@ -42803,16 +42617,16 @@ mBG qGx efr qGx -fVA -eaB +shX +qGx acD vSE acD vSE rdm rdm -jhS -jhS +rzh +rzh dxF dxF dxF @@ -42965,7 +42779,7 @@ mcv mcv mcv grR -nEE +aRB shX qGx slx @@ -42978,8 +42792,8 @@ rdm rdm rdm rdm -jhS -jhS +rzh +rzh dxF dxF dxF @@ -43132,7 +42946,7 @@ ouR ouR byw mcv -vnL +wLB fdr eFf slx @@ -43145,8 +42959,8 @@ rdm rdm rdm rdm -jhS -jhS +rzh +rzh dxF dxF mMH @@ -43304,7 +43118,7 @@ grR jeO slx qGx -tEV +ekV rdm rdm rdm @@ -43312,8 +43126,8 @@ rdm rdm rdm rdm -jhS -jhS +dxF +dxF mMH bpj bpj @@ -48088,9 +47902,9 @@ hUk hUk hUk hUk -bnQ -bnQ -bnQ +hUk +hUk +hUk fQx fQx fQx 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 f4b3d26d3e93..4da1bbb7ff45 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -50,18 +50,6 @@ icon_state = "cement1" }, /area/lv522/outdoors/colony_streets/north_east_street) -"abL" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/turf/open/gm/river, -/area/lv522/atmos/sewer) "abS" = ( /obj/effect/acid_hole, /turf/closed/wall/strata_ice/dirty, @@ -368,7 +356,7 @@ /area/lv522/outdoors/colony_streets/central_streets) "ajw" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 + dir = 4 }, /turf/open/floor/corsat{ dir = 4; @@ -397,11 +385,13 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms/glass) "akk" = ( -/obj/structure/platform{ +/obj/structure/machinery/power/apc/weak{ dir = 1 }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/south_east_street) +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/lv522/atmos/east_reactor) "akl" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -450,19 +440,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "amc" = ( /obj/structure/cargo_container/kelland/left, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) "ame" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/corsat{ - icon_state = "squares" + icon_state = "plate" }, /area/lv522/atmos/east_reactor) "amC" = ( @@ -577,6 +566,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{ @@ -629,11 +622,13 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/mining) "apS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/south_east_street) +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/lv522/atmos/north_command_centre) "aqo" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -685,12 +680,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, @@ -898,8 +894,8 @@ }, /area/lv522/atmos/east_reactor/south) "aza" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -1013,15 +1009,12 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "aDj" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 1 +/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/corsat{ + icon_state = "squares" }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_east_street) +/area/lv522/atmos/north_command_centre) "aDs" = ( /obj/item/explosive/mine/active{ dir = 8 @@ -1035,9 +1028,9 @@ /turf/open/floor/plating, /area/shuttle/drop2/lv522) "aDS" = ( +/obj/structure/pipes/vents/pump, /turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" + icon_state = "marked" }, /area/lv522/atmos/east_reactor) "aDZ" = ( @@ -1256,9 +1249,13 @@ /area/lv522/outdoors/colony_streets/north_east_street) "aJr" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y2" +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, /area/lv522/oob/w_y_vault) "aJS" = ( @@ -1337,12 +1334,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/hallway) -"aLG" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "w-y0" - }, -/area/lv522/oob/w_y_vault) "aLJ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat, @@ -1444,15 +1435,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) -"aPS" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/central_streets) "aQe" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger, @@ -1785,12 +1767,11 @@ }, /area/lv522/indoors/c_block/mining) "aWX" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ - icon_state = "plate" + icon_state = "squares" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "aXa" = ( /turf/open/floor/corsat{ dir = 6; @@ -1809,6 +1790,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 @@ -1927,10 +1914,13 @@ }, /area/lv522/atmos/reactor_garage) "ban" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/blocker/invisible_wall, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat{ + icon_state = "plate" + }, +/area/lv522/atmos/east_reactor/south) "baG" = ( /turf/open/floor/corsat{ dir = 1; @@ -1947,6 +1937,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 @@ -2068,7 +2062,10 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/garage) "bdL" = ( -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -2212,35 +2209,12 @@ }, /area/lv522/atmos/east_reactor/north) "bhh" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/closet/crate/freezer{ - layer = 3 +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/turf/open/floor/corsat{ + dir = 6; + icon_state = "brown" }, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/item/reagent_container/food/snacks/grown/orange, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) +/area/lv522/atmos/east_reactor/south) "bhD" = ( /obj/structure/platform_decoration{ dir = 1 @@ -2418,6 +2392,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{ @@ -2810,9 +2787,6 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/fitness/glass) "bBB" = ( -/obj/structure/prop/invuln/ice_prefab/trim{ - dir = 8 - }, /obj/structure/cargo_container/grant/left, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) @@ -2856,11 +2830,14 @@ }, /area/lv522/outdoors/colony_streets/north_east_street) "bCd" = ( -/obj/structure/machinery/light, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "bCh" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison{ @@ -3413,10 +3390,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{ @@ -3465,10 +3440,8 @@ }, /area/lv522/indoors/a_block/fitness/glass) "bQq" = ( -/obj/structure/cargo_container/wy/mid{ - layer = 5 - }, -/turf/open/auto_turf/sand_white/layer0, +/obj/structure/cargo_container/grant/rightmid, +/turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) "bQA" = ( /obj/structure/largecrate/random, @@ -3508,7 +3481,6 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) "bRN" = ( -/obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ dir = 4; icon_state = "browncorner" @@ -3753,13 +3725,11 @@ }, /area/lv522/indoors/a_block/hallway) "bXl" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 1 - }, +/obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/floor/corsat{ - icon_state = "brown" + icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "bXo" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -3823,6 +3793,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; @@ -3839,7 +3812,13 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) "bYV" = ( -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/obj/structure/platform{ + dir = 8 + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_street) "bYZ" = ( @@ -3950,8 +3929,8 @@ /turf/open/floor/wood/ship, /area/lv522/atmos/way_in_command_centre) "caN" = ( -/obj/structure/pipes/standard/manifold/hidden/green{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 6 }, /turf/open/floor/corsat{ icon_state = "squares" @@ -3977,20 +3956,8 @@ /obj/structure/pipes/standard/manifold/hidden/green{ dir = 1 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) -"cbn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - pixel_y = -1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, -/area/lv522/oob/w_y_vault) "cbp" = ( /obj/structure/machinery/squeezer, /turf/open/floor{ @@ -4007,8 +3974,9 @@ }, /area/lv522/atmos/east_reactor/north) "cbR" = ( -/obj/structure/platform{ - dir = 4 +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement3" @@ -4109,7 +4077,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" @@ -4125,15 +4100,13 @@ }, /area/lv522/atmos/east_reactor) "cfv" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 9 }, -/obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/turf/open/floor/corsat{ + icon_state = "brown" }, -/area/lv522/outdoors/colony_streets/north_east_street) +/area/lv522/atmos/north_command_centre) "cfz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper B-Block - Hydroponics Airlock" @@ -4294,9 +4267,7 @@ dir = 1; icon_state = "fab_2" }, -/obj/structure/prop/invuln/ice_prefab{ - icon_state = "fab_2" - }, +/obj/structure/prop/invuln/ice_prefab, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "ckT" = ( @@ -4687,11 +4658,12 @@ }, /area/lv522/outdoors/colony_streets/north_east_street) "cuu" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/xeno_spawn, /obj/structure/machinery/light{ dir = 8 }, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -4774,6 +4746,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 @@ -4800,14 +4789,11 @@ }, /area/lv522/indoors/a_block/dorms) "cxE" = ( -/obj/structure/machinery/colony_floodlight{ - layer = 4.3 - }, -/obj/structure/platform{ - dir = 1 +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat{ + icon_state = "plate" }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/south_east_street) +/area/lv522/atmos/east_reactor/south) "cxK" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -4991,6 +4977,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{ @@ -5226,11 +5220,8 @@ }, /area/lv522/outdoors/colony_streets/north_street) "cHy" = ( -/obj/structure/prop/ice_colony/ground_wire, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/lv522/atmos/east_reactor) +/turf/closed/wall/strata_outpost/reinforced, +/area/lv522/atmos/east_reactor/south) "cHC" = ( /obj/structure/prop/invuln/lattice_prop{ icon_state = "lattice12"; @@ -5448,7 +5439,10 @@ "cKo" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/chips, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "cKp" = ( @@ -5821,11 +5815,11 @@ }, /area/lv522/oob) "cRN" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/structure/largecrate, +/turf/open/asphalt/cement{ + icon_state = "cement3" }, -/area/lv522/atmos/north_command_centre) +/area/lv522/outdoors/colony_streets/north_east_street) "cRT" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -6045,14 +6039,11 @@ }, /area/lv522/indoors/a_block/security) "cWH" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/obj/structure/machinery/light{ - dir = 8 - }, +/obj/structure/window/framed/strata/reinforced, /turf/open/floor/corsat{ - icon_state = "squares" + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "cWL" = ( /turf/open/floor/corsat{ dir = 8; @@ -6132,13 +6123,12 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/security) "cYe" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat, +/area/lv522/atmos/east_reactor/south) "cYf" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /obj/item/reagent_container/food/condiment/enzyme, @@ -6309,20 +6299,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{ @@ -6366,8 +6344,12 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/b_block/hydro) "dbP" = ( -/obj/structure/platform{ - dir = 4 +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform/stair_cut{ + icon_state = "platform_stair_alt" }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_west_street) @@ -6458,7 +6440,7 @@ }, /area/lv522/atmos/east_reactor/south) "dcR" = ( -/obj/effect/alien/weeds/node/alpha, +/obj/structure/cargo_container/grant/right, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) "ddo" = ( @@ -6735,11 +6717,11 @@ }, /area/lv522/landing_zone_2) "dhJ" = ( -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/corsat, +/area/lv522/atmos/east_reactor/south) "dhP" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 @@ -6765,17 +6747,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "dio" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -7178,16 +7149,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 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" +"dpS" = ( +/obj/structure/bed/chair/dropship/passenger{ + dir = 4 }, +/turf/open/shuttle/dropship/can_surgery/dark_grey, /area/lv522/landing_zone_forecon/UD6_Tornado) "dqr" = ( /obj/item/weapon/gun/rifle/m41a{ @@ -7208,6 +7174,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, @@ -7263,13 +7249,12 @@ }, /area/lv522/atmos/cargo_intake) "dsl" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/south_east_street) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "dsq" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/mineral/iron{ @@ -7534,7 +7519,9 @@ /area/lv522/indoors/a_block/medical) "dyS" = ( /obj/item/stack/sheet/wood, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "dzd" = ( /obj/structure/closet/secure_closet/marshal, @@ -7587,14 +7574,11 @@ }, /area/lv522/atmos/north_command_centre) "dAG" = ( -/obj/structure/pipes/vents/pump, -/obj/structure/machinery/light{ - dir = 8 - }, +/obj/item/stack/sheet/metal, /turf/open/floor/corsat{ - icon_state = "plate" + icon_state = "browncorner" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "dAQ" = ( /obj/structure/platform_decoration{ dir = 1 @@ -8228,6 +8212,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"; @@ -8406,8 +8393,8 @@ }, /area/lv522/indoors/b_block/bar) "dQQ" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/structure/barricade/wooden{ dir = 8 @@ -8691,8 +8678,9 @@ }, /area/lv522/atmos/east_reactor/east) "dXX" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility, +/obj/structure/closet/fireaxecabinet{ + pixel_y = 29 + }, /turf/open/floor/prison{ icon_state = "floor_plate" }, @@ -8944,9 +8932,6 @@ icon_state = "browncorner" }, /area/lv522/oob) -"eds" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/c_block/casino) "edw" = ( /obj/structure/bed/roller, /obj/effect/decal/cleanable/dirt, @@ -9038,17 +9023,6 @@ }, /turf/open/gm/river, /area/lv522/indoors/a_block/kitchen/damage) -"efM" = ( -/obj/structure/platform, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 10; - layer = 3.51 - }, -/turf/open/gm/river, -/area/lv522/atmos/sewer) "efR" = ( /obj/effect/decal/hefa_cult_decals/d32{ desc = "You think you can make out the iconography of a Xenomorph." @@ -9128,10 +9102,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, @@ -9436,10 +9407,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" = ( @@ -9782,11 +9756,11 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) "esB" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/turf/closed/wall/mineral/bone_resin, -/area/lv522/oob) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "esF" = ( /obj/structure/surface/rack, /turf/open/floor/prison{ @@ -9868,11 +9842,12 @@ }, /area/lv522/indoors/a_block/medical) "euN" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 +/obj/structure/stairs/perspective{ + dir = 6; + icon_state = "p_stair_full" }, -/turf/closed/wall/mineral/bone_resin, -/area/lv522/oob) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "euT" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -10044,13 +10019,11 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/central_streets) "eyh" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 6 - }, -/turf/open/floor/corsat{ - icon_state = "marked" +/obj/structure/platform{ + dir = 4 }, -/area/lv522/atmos/north_command_centre) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_east_street) "eym" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical/green{ @@ -10092,13 +10065,10 @@ }, /area/lv522/indoors/a_block/admin) "ezj" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/asphalt/cement{ + icon_state = "cement12" }, -/area/lv522/atmos/east_reactor/west) +/area/lv522/outdoors/colony_streets/north_east_street) "ezo" = ( /obj/structure/surface/table/almayer, /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -10421,11 +10391,12 @@ }, /area/lv522/indoors/a_block/corpo/glass) "eHp" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat{ - icon_state = "squares" + icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "eHu" = ( /obj/structure/closet/secure_closet/miner, /turf/open/floor/prison{ @@ -10645,11 +10616,15 @@ }, /area/lv522/indoors/a_block/medical) "eLx" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, +/obj/structure/machinery/prop/almayer/computer/PC{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat{ - icon_state = "marked" + icon_state = "plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/east_reactor/south) "eLG" = ( /obj/item/lightstick/red/spoke/planted{ pixel_x = -19; @@ -10721,13 +10696,17 @@ }, /area/lv522/atmos/east_reactor) "eMm" = ( -/obj/structure/prop/invuln/fusion_reactor, -/obj/structure/prop/turbine_extras, -/obj/structure/prop/turbine_extras, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform{ + dir = 1 }, -/area/lv522/atmos/east_reactor) +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform_decoration{ + dir = 9 + }, +/turf/open/gm/river, +/area/lv522/atmos/sewer) "eMz" = ( /obj/item/stack/rods/plasteel, /obj/structure/pipes/standard/simple/hidden/green{ @@ -10908,12 +10887,12 @@ /area/lv522/atmos/west_reactor) "eQu" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 + dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "marked" +/turf/open/asphalt/cement{ + icon_state = "cement14" }, -/area/lv522/atmos/north_command_centre) +/area/lv522/outdoors/colony_streets/north_east_street) "eQB" = ( /obj/structure/machinery/portable_atmospherics/canister/phoron, /turf/open/floor/corsat{ @@ -10947,12 +10926,11 @@ }, /area/lv522/indoors/a_block/hallway) "eRg" = ( -/obj/structure/prop/turbine, -/obj/structure/prop/turbine_extras/border, +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/corsat{ - icon_state = "plate" + icon_state = "marked" }, -/area/lv522/oob) +/area/lv522/atmos/sewer) "eRI" = ( /obj/structure/barricade/deployable{ dir = 8 @@ -10981,10 +10959,9 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/security/glass) "eSy" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/obj/structure/largecrate/random, /turf/open/floor/plating{ icon_state = "platebot" }, @@ -11268,11 +11245,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{ @@ -11285,12 +11261,18 @@ }, /area/lv522/outdoors/colony_streets/south_east_street) "eZq" = ( -/obj/structure/prop/turbine_extras/left, -/obj/structure/prop/invuln/fusion_reactor, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/transmitter/colony_net{ + phone_category = "LV522 Chances Claim"; + phone_color = "red"; + phone_id = "Reactor Sewer"; + pixel_y = 26 }, -/area/lv522/oob) +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/static_tank/water, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "eZv" = ( /obj/structure/fence, /obj/effect/decal/warning_stripes{ @@ -11447,20 +11429,21 @@ }, /area/lv522/atmos/north_command_centre) "fcW" = ( -/obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" - }, -/area/lv522/atmos/north_command_centre) -"fda" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" +/turf/open/asphalt/cement{ + icon_state = "cement12" }, -/area/lv522/atmos/north_command_centre) +/area/lv522/outdoors/colony_streets/north_east_street) +"fda" = ( +/obj/structure/pipes/standard/manifold/hidden/green{ + dir = 1 + }, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/north_east_street) "fdb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -11542,13 +11525,12 @@ /area/lv522/landing_zone_2/ceiling) "feF" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 + dir = 4 }, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/asphalt/cement{ + icon_state = "cement15" }, -/area/lv522/atmos/east_reactor/west) +/area/lv522/outdoors/colony_streets/north_east_street) "feS" = ( /obj/item/prop/colony/used_flare, /turf/open/floor/corsat{ @@ -11679,14 +11661,13 @@ }, /area/lv522/indoors/c_block/mining) "fhQ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 +/obj/structure/machinery/colony_floodlight{ + layer = 4.3 }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" +/turf/open/asphalt/cement{ + icon_state = "cement4" }, -/area/lv522/atmos/east_reactor/west) +/area/lv522/outdoors/colony_streets/north_east_street) "fhY" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe, @@ -11876,11 +11857,12 @@ }, /area/lv522/atmos/east_reactor/east) "fmB" = ( +/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /turf/open/floor/corsat{ dir = 1; icon_state = "brown" }, -/area/lv522/oob) +/area/lv522/atmos/east_reactor) "fmH" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -12021,14 +12003,12 @@ }, /area/lv522/indoors/a_block/dorms) "fpB" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 - }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "brown" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor/west) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/north_street) "fpH" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -12278,12 +12258,11 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/cargo) "fvQ" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/window/framed/strata/reinforced, /turf/open/floor/corsat{ - dir = 1; - icon_state = "browncorner" + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "fvV" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -12300,6 +12279,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{ @@ -12726,12 +12709,12 @@ }, /area/lv522/indoors/b_block/hydro) "fDC" = ( -/obj/structure/prop/ice_colony/ground_wire, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "squares" +/obj/effect/decal/cleanable/dirt, +/obj/structure/prop/static_tank/water, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "fDF" = ( /obj/structure/surface/rack, /obj/item/card/id/silver/clearance_badge/cl{ @@ -13191,10 +13174,12 @@ }, /area/lv522/indoors/c_block/garage) "fMT" = ( -/turf/open/floor/corsat{ - icon_state = "browncorner" +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "fNk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -13458,14 +13443,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{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "fTs" = ( /turf/open/floor/corsat{ dir = 8; @@ -13476,7 +13453,9 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "fTO" = ( /obj/effect/landmark/xeno_spawn, @@ -13673,10 +13652,6 @@ }, /area/lv522/indoors/a_block/medical) "fYm" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname, /obj/structure/machinery/light/small{ @@ -13848,11 +13823,10 @@ /area/lv522/atmos/reactor_garage) "gbq" = ( /obj/structure/stairs/perspective{ - dir = 10; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration{ - dir = 4 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) @@ -13899,7 +13873,9 @@ pixel_x = -2; pixel_y = 16 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "gck" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -13962,6 +13938,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, @@ -14244,6 +14230,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{ @@ -14426,8 +14418,8 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/mining) "glV" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/item/stack/sheet/wood, /turf/open/asphalt/cement{ @@ -14528,6 +14520,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 @@ -14603,16 +14601,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{ @@ -14646,11 +14634,13 @@ }, /area/lv522/indoors/a_block/admin) "gqG" = ( -/obj/structure/machinery/fuelcell_recycler, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "grg" = ( /obj/effect/decal/cleanable/blood, /obj/structure/machinery/light{ @@ -14676,14 +14666,14 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/dorms) "grz" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - pixel_y = 6 +/obj/structure/platform_decoration{ + dir = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform_decoration{ + dir = 8 }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "grP" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, @@ -14777,9 +14767,12 @@ }, /area/lv522/indoors/a_block/dorm_north) "gtS" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/cargo_container/wy/mid, /turf/open/auto_turf/shale/layer2, -/area/lv522/outdoors/n_rockies) +/area/lv522/outdoors/w_rockies) "gtX" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/warning_stripes{ @@ -14801,6 +14794,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 @@ -14906,12 +14909,11 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/corpo) "gwk" = ( -/obj/structure/cable/heavyduty{ - icon_state = "4-8" +/obj/structure/prop/static_tank/water, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "gwt" = ( /obj/structure/cargo_container/wy/right, /turf/open/floor/prison, @@ -15072,18 +15074,6 @@ /obj/structure/barricade/deployable, /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) -"gzw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1; - pixel_y = -1 - }, -/obj/effect/landmark/corpsespawner/wy/manager, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" - }, -/area/lv522/oob/w_y_vault) "gzD" = ( /obj/structure/prop/almayer/computers/sensor_computer3, /turf/open/floor/corsat{ @@ -15105,12 +15095,9 @@ layer = 2.9 }, /obj/structure/stairs/perspective{ - dir = 9; + dir = 1; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration{ - dir = 1 - }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -15164,17 +15151,6 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/hallway) -"gBb" = ( -/obj/structure/prop/structure_lattice, -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/north_east_street) "gBe" = ( /obj/item/stack/sheet/metal, /obj/effect/decal/cleanable/dirt, @@ -15191,7 +15167,9 @@ /obj/item/seeds/riceseed, /obj/structure/closet/crate, /obj/item/seeds/riceseed, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "gBy" = ( /obj/effect/decal/warning_stripes{ @@ -15295,23 +15273,6 @@ /obj/effect/decal/cleanable/blood/xeno, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) -"gEA" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - dir = 8; - name = "\improper Marshall 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) "gEB" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -15374,7 +15335,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, @@ -15627,16 +15597,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{ @@ -15718,18 +15678,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/n_rockies) -"gMe" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform_decoration{ - dir = 9 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/n_rockies) "gMy" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" @@ -15807,14 +15755,9 @@ /turf/open/floor/plating, /area/lv522/indoors/a_block/bridges/op_centre) "gNN" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/oob/w_y_vault) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "gOb" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -15828,12 +15771,8 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/nw_rockies) "gOo" = ( -/obj/structure/prop/invuln/fusion_reactor, -/obj/structure/prop/turbine_extras, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "gOC" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -15860,12 +15799,12 @@ }, /area/lv522/indoors/a_block/security/glass) "gOG" = ( -/obj/structure/prop/turbine_extras/border, -/obj/structure/prop/turbine, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/surface/table/almayer, +/obj/item/frame/fire_alarm, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "gOJ" = ( /obj/item/tool/wirecutters{ pixel_x = -1; @@ -16019,12 +15958,13 @@ }, /area/lv522/indoors/a_block/dorms) "gRV" = ( -/obj/structure/prop/turbine, -/obj/structure/prop/turbine_extras/border, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/bed/chair{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "gSn" = ( /turf/open/floor/corsat{ icon_state = "marked" @@ -16793,12 +16733,12 @@ }, /area/lv522/indoors/c_block/cargo) "heF" = ( -/obj/structure/prop/server_equipment/yutani_server, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility, +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "heO" = ( /obj/structure/machinery/camera/autoname{ dir = 4 @@ -16812,14 +16752,10 @@ }, /area/lv522/indoors/b_block/hydro) "heU" = ( -/obj/structure/prop/server_equipment/yutani_server/broken{ - layer = 2.9 - }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/blocker/invisible_wall, +/obj/structure/platform_decoration, +/turf/open/floor/plating, +/area/lv522/atmos/sewer) "heX" = ( /obj/structure/largecrate/random/barrel{ layer = 5.1; @@ -16862,13 +16798,14 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "hfE" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/prop/server_equipment/yutani_server/off, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 }, -/area/lv522/atmos/east_reactor) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "hfS" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/prison, @@ -16891,15 +16828,16 @@ }, /area/lv522/indoors/b_block/bridge) "hgo" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "greenfull" +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 5 }, -/area/lv522/indoors/b_block/hydro) +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "hgr" = ( /obj/structure/girder/reinforced, /turf/open/auto_turf/shale/layer1, @@ -16935,14 +16873,12 @@ }, /area/lv522/atmos/east_reactor/west) "hgQ" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat{ - icon_state = "brown" +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 5 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hhb" = ( /obj/structure/platform{ dir = 4 @@ -17081,7 +17017,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, @@ -18167,11 +18103,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/c_block/mining) -"hFm" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin4" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "hFu" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -18252,13 +18183,11 @@ /turf/open/floor/prison, /area/lv522/atmos/outdoor) "hHh" = ( -/obj/structure/machinery/colony_floodlight{ - layer = 4.3 - }, -/turf/open/asphalt/cement{ - icon_state = "cement9" +/obj/structure/platform{ + dir = 4 }, -/area/lv522/outdoors/colony_streets/north_east_street) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/central_streets) "hHj" = ( /obj/structure/largecrate, /turf/open/floor/corsat{ @@ -18404,14 +18333,6 @@ icon_state = "floor_marked" }, /area/lv522/indoors/lone_buildings/outdoor_bot) -"hKz" = ( -/obj/item/clothing/under/liaison_suit/suspenders{ - pixel_x = -4; - pixel_y = 9 - }, -/obj/item/clothing/accessory/red, -/turf/open/floor/carpet, -/area/lv522/indoors/a_block/executive) "hKE" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 @@ -18515,6 +18436,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{ @@ -18548,14 +18472,15 @@ }, /area/lv522/outdoors/colony_streets/south_east_street) "hME" = ( -/obj/effect/decal{ - icon = 'icons/mob/xenos/effects.dmi'; - icon_state = "acid_weak"; - layer = 2; - name = "weak acid" +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 }, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, +/area/lv522/atmos/sewer) "hMI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -18593,10 +18518,24 @@ }, /area/lv522/atmos/east_reactor/south) "hNj" = ( -/obj/item/stack/sheet/metal, -/obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/obj/structure/machinery/door_control{ + id = "Marked_6"; + name = "Cargo Shutter Control"; + pixel_y = 10 + }, +/obj/structure/surface/table/almayer, +/obj/item/prop{ + desc = "The first page reads. 'Classified Weyland Bio-Weapons Division level eight clearance required.' The rest talks about some sort of XX-121 combat stim?"; + icon = 'icons/obj/items/paper.dmi'; + icon_state = "folder_black"; + name = "Weyland classified intelligence folder"; + pixel_y = -2 + }, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" + }, +/area/lv522/oob/w_y_vault) "hNk" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 9 @@ -18644,9 +18583,24 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_street) "hNV" = ( -/obj/item/stack/rods, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/plating/plating_catwalk/prison, +/area/lv522/atmos/sewer) "hNZ" = ( /obj/effect/spawner/gibspawner/xeno, /turf/open/floor/prison{ @@ -18833,11 +18787,11 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) "hRy" = ( -/obj/structure/prop/invuln/fusion_reactor, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 10 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hRz" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/cleanable/dirt, @@ -18901,10 +18855,6 @@ "hTe" = ( /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) -"hTf" = ( -/obj/structure/platform_decoration, -/turf/open/asphalt/cement, -/area/lv522/outdoors/n_rockies) "hTg" = ( /obj/structure/surface/table/almayer, /turf/open/floor/corsat{ @@ -18942,13 +18892,12 @@ }, /area/lv522/indoors/c_block/cargo) "hTI" = ( -/obj/structure/prop/server_equipment/yutani_server/off{ - pixel_x = -4 - }, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hTW" = ( /obj/structure/largecrate/random/secure, /obj/effect/landmark/lv624/fog_blocker/short, @@ -19004,14 +18953,12 @@ /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) "hUY" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/prop/almayer/computers/sensor_computer1, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/corsat{ + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "hUZ" = ( /obj/structure/barricade/deployable, /obj/item/weapon/gun/rifle/m41a{ @@ -19019,24 +18966,10 @@ }, /turf/open/floor/prison, /area/lv522/atmos/cargo_intake) -"hVh" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/cigarettes/wypacket{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/clothing/under/liaison_suit/suspenders, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/indoors/a_block/corpo/glass) "hVk" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/pipes/standard/simple/hidden/green, +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "hVu" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -19119,13 +19052,12 @@ /turf/closed/wall/mineral/bone_resin, /area/lv522/oob) "hXA" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/closet/firecloset/full, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" + icon_state = "marked" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "hXO" = ( /obj/structure/prop/invuln/ice_prefab{ dir = 10 @@ -19139,12 +19071,8 @@ }, /area/lv522/outdoors/colony_streets/central_streets) "hXP" = ( -/obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) +/turf/closed/wall/r_wall/biodome/biodome_unmeltable, +/area/lv522/oob/w_y_vault) "hXW" = ( /obj/item/storage/firstaid/adv/empty, /turf/open/floor/prison{ @@ -19153,19 +19081,11 @@ }, /area/lv522/indoors/a_block/hallway) "hXZ" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/decal{ - icon = 'icons/mob/xenos/effects.dmi'; - icon_state = "acid_weak"; - layer = 2; - name = "weak acid" - }, -/turf/open/floor{ - icon_state = "bcircuit" +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y1" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "hYf" = ( /turf/open/floor/prison{ icon_state = "floor_plate" @@ -19179,14 +19099,12 @@ }, /area/lv522/atmos/east_reactor/south) "hYk" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y2" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "hYn" = ( /obj/item/tool/pen/blue/clicky{ pixel_x = 6 @@ -19228,13 +19146,14 @@ }, /area/lv522/outdoors/colony_streets/windbreaker/observation) "hZn" = ( -/obj/structure/prop/server_equipment/yutani_server{ - pixel_x = -4 +/obj/structure/machinery/light{ + dir = 4 }, -/turf/open/floor{ - icon_state = "bcircuit" +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "hZC" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/medium_stack, @@ -19243,16 +19162,15 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "hZK" = ( -/obj/structure/prop/server_equipment/yutani_server/broken{ - pixel_x = 3 - }, -/obj/structure/prop/server_equipment{ - pixel_x = -16 +/obj/structure/platform{ + dir = 8 }, -/turf/open/floor{ - icon_state = "bcircuit" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "hZL" = ( /obj/structure/bed/chair/wood/normal{ dir = 4 @@ -19390,14 +19308,12 @@ }, /area/lv522/atmos/cargo_intake) "icr" = ( -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - dir = 1 - }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "icy" = ( /obj/item/prop/alien/hugger, /turf/open/floor/prison, @@ -19407,25 +19323,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/lone_buildings/storage_blocks) -"icM" = ( -/obj/structure/machinery/door_control{ - id = "Marked_6"; - name = "Cargo Shutter Control"; - pixel_y = 10 - }, -/obj/structure/surface/table/almayer, -/obj/item/prop{ - desc = "The first page reads. 'Classified Weyland Bio-Weapons Division level eight clearance required.' The rest talks about some sort of XX-121 combat stim?"; - icon = 'icons/obj/items/paper.dmi'; - icon_state = "folder_black"; - name = "Weyland classified intelligence folder"; - pixel_y = -2 - }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/oob/w_y_vault) "icT" = ( /obj/structure/machinery/light{ dir = 1 @@ -19458,13 +19355,15 @@ }, /area/lv522/atmos/east_reactor/west) "idq" = ( -/obj/structure/machinery/power/apc/weak{ - dir = 1 +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/turf/open/gm/river, +/area/lv522/atmos/sewer) "idt" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -19510,14 +19409,15 @@ /turf/closed/wall/solaris/reinforced/hull/lv522, /area/lv522/oob) "ier" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/corsat{ - dir = 9; - icon_state = "brown" +/turf/open/floor/prison{ + icon_state = "floor_plate" }, -/area/lv522/atmos/east_reactor) +/area/lv522/atmos/sewer) "ieE" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -19562,14 +19462,16 @@ /turf/open/floor/plating, /area/lv522/landing_zone_forecon/UD6_Tornado) "ifh" = ( -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - dir = 1; - pixel_y = 6 +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "ifi" = ( /obj/structure/cargo_container/hd/left/alt, /turf/open/floor/corsat{ @@ -19607,14 +19509,15 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_east_street) "igp" = ( -/obj/structure/bed/chair/comfy{ - dir = 1 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "igv" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -19629,16 +19532,17 @@ /turf/open/floor/wood, /area/lv522/indoors/a_block/fitness/glass) "igA" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 24 +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_x = -1; + pixel_y = 1 }, -/turf/open/floor/corsat{ - dir = 5; - icon_state = "brown" +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "igL" = ( /obj/structure/machinery/disposal, /turf/open/floor/prison{ @@ -19968,7 +19872,10 @@ /area/lv522/outdoors/nw_rockies) "ioD" = ( /obj/structure/prop/structure_lattice, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -20023,21 +19930,6 @@ icon_state = "white_cyan2" }, /area/lv522/indoors/toilet) -"ipH" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/sheet/mineral/gold{ - amount = 60; - pixel_y = 6 - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 60; - pixel_y = 12 - }, -/turf/open/floor/strata{ - dir = 4; - icon_state = "white_cyan1" - }, -/area/lv522/oob/w_y_vault) "ipN" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 @@ -20194,24 +20086,10 @@ 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, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, -/obj/item/spacecash/c1000, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor/strata{ dir = 4; icon_state = "white_cyan1" @@ -20368,9 +20246,6 @@ /obj/effect/decal/cleanable/blood/xeno, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/nw_rockies) -"ivK" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/lone_buildings/engineering) "ivN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv/prop{ @@ -20827,6 +20702,9 @@ pixel_y = 5 }, /obj/item/tool/pen/blue/clicky, +/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, +/obj/effect/landmark/xeno_spawn, +/obj/effect/landmark/corpsespawner/colonist/burst, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -20840,12 +20718,26 @@ 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{ - icon_state = "marked" +/obj/structure/surface/table/almayer, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c1000, +/turf/open/floor/strata{ + dir = 4; + icon_state = "white_cyan1" }, -/area/lv522/atmos/east_reactor) +/area/lv522/oob/w_y_vault) "iGn" = ( /obj/structure/largecrate/random/barrel{ layer = 3.2; @@ -21158,17 +21050,11 @@ }, /area/lv522/indoors/a_block/bridges/garden_bridge) "iLC" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" - }, -/obj/structure/pipes/standard/simple/hidden/green, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, -/area/lv522/indoors/b_block/hydro) +/turf/open/floor/prison, +/area/lv522/atmos/sewer) "iMv" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/corsat, @@ -21423,12 +21309,13 @@ /area/lv522/indoors/a_block/admin) "iQR" = ( /obj/structure/stairs/perspective{ - dir = 5; + dir = 6; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/south_east_street) "iRa" = ( /obj/structure/largecrate/random, /obj/effect/decal/cleanable/dirt, @@ -21442,13 +21329,12 @@ /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/north_east_street) "iRV" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - dir = 1; - icon_state = "brown" +/obj/effect/decal/cleanable/dirt, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor/south) +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iRW" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -21478,22 +21364,10 @@ /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{ - icon_state = "rasputin8" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) -"iSx" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/lv522/indoors/lone_buildings/storage_blocks) "iSF" = ( -/obj/structure/surface/table/almayer, -/obj/structure/prop/server_equipment/laptop/on, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/largecrate/random, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iTb" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -21522,12 +21396,34 @@ }, /area/lv522/indoors/a_block/security) "iTn" = ( -/obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" +/obj/structure/closet/crate/freezer{ + layer = 3 }, -/area/lv522/atmos/east_reactor) +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/obj/item/reagent_container/food/snacks/grown/orange, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iTF" = ( /obj/item/ammo_box/magazine/m4ra/ap/empty, /obj/effect/decal/cleanable/dirt, @@ -21597,22 +21493,13 @@ }, /area/lv522/indoors/a_block/dorms) "iUT" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 8 - }, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/machinery/squeezer, +/turf/open/floor/plating, +/area/lv522/indoors/c_block/cargo) "iUX" = ( -/obj/structure/prop/ice_colony/ground_wire{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "browncorner" - }, -/area/lv522/atmos/east_reactor) +/obj/structure/platform, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "iVe" = ( /obj/structure/stairs/perspective{ dir = 5; @@ -21625,12 +21512,13 @@ }, /area/lv522/indoors/a_block/hallway) "iVk" = ( -/obj/structure/bed/chair/comfy, -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" +/obj/structure/platform_decoration{ + dir = 1 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement{ + icon_state = "cement9" + }, +/area/lv522/outdoors/colony_streets/south_street) "iVm" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -21651,14 +21539,11 @@ }, /area/lv522/indoors/a_block/admin) "iVU" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/prop/almayer/computer/PC{ - dir = 8 - }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform_decoration, +/turf/open/asphalt/cement{ + icon_state = "cement2" }, -/area/lv522/atmos/east_reactor) +/area/lv522/outdoors/colony_streets/south_street) "iVY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spider/spiderling/nogrow, @@ -21756,6 +21641,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, +/obj/structure/cargo_container/wy/left, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) "iXM" = ( @@ -22129,20 +22015,23 @@ }, /area/lv522/atmos/east_reactor/south) "jey" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/corpsespawner/colonist/burst, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/prison{ + dir = 9; + icon_state = "greenfull" }, -/area/lv522/atmos/east_reactor/south) +/area/lv522/indoors/b_block/bridge) "jeD" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/faxmachine, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/lv522/atmos/east_reactor) +/obj/structure/platform{ + dir = 4 + }, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "jeH" = ( /obj/structure/machinery/light, /obj/structure/pipes/vents/pump, @@ -22214,14 +22103,14 @@ }, /area/lv522/atmos/way_in_command_centre) "jfK" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/prop/almayer/computer/PC{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "jfO" = ( /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen/glass) @@ -22314,37 +22203,32 @@ }, /area/lv522/atmos/east_reactor) "jhY" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/glasses/meson, -/obj/item/prop/alien/hugger, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_west_street) "jic" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/snacks/cheeseburger{ - pixel_y = 5 +/obj/structure/platform{ + dir = 1 }, -/obj/item/trash/burger, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/machinery/colony_floodlight, +/obj/structure/platform{ + dir = 8 }, -/area/lv522/atmos/east_reactor) -"jig" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_x = -7; - pixel_y = 8 +/obj/structure/platform_decoration{ + dir = 5 }, -/obj/item/clothing/head/hardhat{ - pixel_x = 8; - pixel_y = 14 +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) +"jig" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/turf/open/floor/corsat{ - icon_state = "plate" +/turf/open/asphalt/cement{ + icon_state = "cement12" }, -/area/lv522/atmos/east_reactor) +/area/lv522/outdoors/colony_streets/south_street) "jin" = ( /obj/structure/filtration/machine_96x96/indestructible{ icon_state = "sedimentation_A_1"; @@ -22572,16 +22456,6 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/engineering) -"jkO" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 6 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/n_rockies) "jlc" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -23190,6 +23064,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{ @@ -23448,6 +23344,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{ @@ -23563,13 +23469,13 @@ }, /area/lv522/atmos/cargo_intake) "jCQ" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/corsat{ - dir = 8; - icon_state = "browncorner" +/obj/structure/platform_decoration{ + dir = 8 }, -/area/lv522/atmos/east_reactor/south) +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, +/area/lv522/outdoors/colony_streets/south_street) "jCS" = ( /obj/item/trash/wy_chips_pepper, /obj/structure/machinery/light{ @@ -23647,9 +23553,6 @@ density = 0; pixel_y = 16 }, -/obj/structure/platform_decoration{ - dir = 4 - }, /turf/open/gm/river, /area/lv522/atmos/sewer) "jDO" = ( @@ -23673,10 +23576,11 @@ "jEk" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, -/obj/effect/landmark/xeno_spawn, /obj/structure/machinery/light{ dir = 4 }, +/obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ icon_state = "plate" }, @@ -23788,9 +23692,12 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/mining) "jGh" = ( -/obj/structure/cargo_container/grant/right, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/cargo_container/wy/right, /turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) +/area/lv522/outdoors/w_rockies) "jGj" = ( /obj/effect/decal/cleanable/dirt, /obj/item/maintenance_jack, @@ -23824,10 +23731,8 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "jHa" = ( -/obj/structure/cargo_container/wy/right{ - layer = 5 - }, -/turf/open/auto_turf/sand_white/layer0, +/obj/structure/cargo_container/kelland/left, +/turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "jHb" = ( /turf/open/gm/river, @@ -23844,6 +23749,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 @@ -23904,11 +23821,14 @@ }, /area/lv522/outdoors/n_rockies) "jIQ" = ( -/obj/structure/cable/heavyduty{ - icon_state = "4-8" +/obj/structure/machinery/colony_floodlight{ + layer = 4.3 }, -/turf/open/floor/plating, -/area/lv522/atmos/east_reactor) +/obj/structure/platform{ + dir = 1 + }, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "jIR" = ( /obj/effect/decal/cleanable/greenglow, /turf/open/gm/river, @@ -24609,9 +24529,9 @@ }, /area/lv522/indoors/a_block/dorms) "jVS" = ( -/obj/structure/cargo_container/kelland/right, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_west_street) +/obj/structure/cargo_container/horizontal/blue/top, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/w_rockies) "jVV" = ( /obj/structure/prop/invuln/minecart_tracks, /obj/structure/closet/crate/miningcar{ @@ -24883,6 +24803,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{ @@ -25266,9 +25196,6 @@ icon_state = "floor_plate" }, /area/lv522/atmos/way_in_command_centre) -"khd" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/c_block/cargo) "khf" = ( /obj/structure/prop/server_equipment, /turf/open/floor/prison{ @@ -25483,12 +25410,13 @@ }, /area/lv522/atmos/west_reactor) "kkq" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light, -/turf/open/floor/corsat{ - icon_state = "plate" +/obj/structure/platform_decoration{ + dir = 8 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, +/area/lv522/outdoors/colony_streets/south_west_street) "kkr" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 8 @@ -26425,7 +26353,9 @@ /turf/open/floor/plating, /area/lv522/indoors/c_block/garage) "kBD" = ( -/obj/structure/machinery/power/port_gen/pacman, +/obj/structure/cargo_container/horizontal/blue/middle{ + layer = 3.1 + }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "kBJ" = ( @@ -26449,7 +26379,7 @@ }, /area/lv522/atmos/cargo_intake) "kBT" = ( -/obj/structure/cargo_container/grant/left, +/obj/structure/cargo_container/horizontal/blue/bottom, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "kBU" = ( @@ -26763,11 +26693,13 @@ }, /area/lv522/indoors/a_block/security) "kHX" = ( -/turf/open/floor/corsat{ - dir = 10; - icon_state = "brown" +/obj/structure/platform_decoration{ + dir = 4 }, -/area/lv522/atmos/east_reactor) +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/south_street) "kHZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack{ @@ -26828,7 +26760,8 @@ /area/lv522/indoors/a_block/admin) "kIV" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out" + icon_state = "SE-out"; + pixel_x = 1 }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/south_east_street) @@ -26960,19 +26893,13 @@ }, /area/lv522/atmos/filt) "kLO" = ( -/obj/structure/stairs/perspective{ - dir = 1; - icon_state = "p_stair_full" +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" }, -/turf/open/floor/prison{ - dir = 9; - icon_state = "greenfull" +/turf/open/asphalt/cement{ + icon_state = "cement3" }, -/area/lv522/indoors/b_block/hydro) -"kLQ" = ( -/obj/structure/cargo_container/grant/right, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) +/area/lv522/outdoors/colony_streets/south_west_street) "kMi" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -27024,14 +26951,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/admin) -"kNj" = ( -/obj/structure/prop/vehicles/crawler{ - dir = 8; - icon_state = "crawler_crate_alt2"; - layer = 3.1 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "kNw" = ( /obj/item/prop/alien/hugger, /obj/structure/pipes/standard/simple/hidden/green{ @@ -27049,17 +26968,6 @@ icon_state = "darkyellowfull2" }, /area/lv522/indoors/lone_buildings/outdoor_bot) -"kNM" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Dormitories"; - welded = null - }, -/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, @@ -27261,7 +27169,7 @@ /area/lv522/indoors/a_block/security) "kRf" = ( /obj/structure/prop/invuln/ice_prefab/trim{ - dir = 6 + dir = 8 }, /obj/structure/cargo_container/grant/rightmid, /turf/open/auto_turf/sand_white/layer0, @@ -27617,13 +27525,6 @@ icon_state = "marked" }, /area/lv522/landing_zone_1/ceiling) -"kWD" = ( -/obj/structure/prop/vehicles/crawler{ - icon_state = "crawler_crate_alt2"; - layer = 3.1 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "kWH" = ( /obj/structure/stairs/perspective{ dir = 8; @@ -27651,10 +27552,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{ @@ -27891,7 +27789,9 @@ /area/lv522/indoors/a_block/admin) "lbH" = ( /obj/structure/largecrate/random, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "lbI" = ( /obj/structure/surface/table/almayer, @@ -28008,26 +27908,6 @@ }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/north_west_street) -"lea" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Marshall 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) "leg" = ( /turf/open/floor/prison{ dir = 10; @@ -28161,10 +28041,11 @@ /area/lv522/landing_zone_1) "lhb" = ( /obj/structure/prop/invuln/ice_prefab{ - dir = 9 + dir = 5 }, /obj/structure/prop/invuln/ice_prefab/roof_greeble{ - icon_state = "solarpanel1" + icon_state = "solarpanel1"; + pixel_x = 7 }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) @@ -28187,12 +28068,6 @@ icon_state = "darkredfull2" }, /area/lv522/outdoors/colony_streets/north_street) -"lhC" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 5 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "lhD" = ( /obj/structure/barricade/handrail{ dir = 1 @@ -28301,6 +28176,7 @@ "ljQ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_nest, /obj/effect/landmark/corpsespawner/colonist/burst, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/corsat{ dir = 8; icon_state = "brown" @@ -28331,6 +28207,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 @@ -28796,12 +28682,11 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/security) "lul" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/fire_alarm, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform_decoration, +/turf/open/asphalt/cement{ + icon_state = "cement3" }, -/area/lv522/atmos/sewer) +/area/lv522/outdoors/colony_streets/south_west_street) "lum" = ( /obj/structure/platform, /obj/structure/platform{ @@ -28826,7 +28711,9 @@ /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "lvF" = ( /obj/item/tool/surgery/circular_saw, @@ -28881,7 +28768,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, -/turf/open/floor/plating/plating_catwalk/prison, +/turf/open/floor/prison{ + icon_state = "floor_plate" + }, /area/lv522/atmos/sewer) "lwv" = ( /obj/structure/machinery/light{ @@ -28920,10 +28809,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) -"lxj" = ( -/obj/structure/prop/invuln/ice_prefab, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "lxp" = ( /obj/structure/machinery/light{ dir = 1 @@ -29210,18 +29095,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) -"lCn" = ( -/obj/structure/stairs/perspective{ - dir = 10; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/east_central_street) "lCx" = ( /obj/effect/decal/cleanable/generic, /turf/open/floor/prison{ @@ -29856,6 +29729,10 @@ /area/lv522/outdoors/colony_streets/south_east_street) "lPv" = ( /obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -30141,7 +30018,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/north_east_street) "lWa" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -30215,7 +30094,9 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/north_east_street) "lYG" = ( /obj/structure/platform_decoration{ @@ -30294,7 +30175,6 @@ /area/lv522/indoors/b_block/bar) "mad" = ( /obj/effect/decal/cleanable/blood, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -30543,6 +30423,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, @@ -31016,8 +30904,13 @@ }, /area/lv522/atmos/filt) "moe" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/oob/w_y_vault) +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_west_street) "moz" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ @@ -31828,16 +31721,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{ @@ -32041,7 +31924,10 @@ /obj/structure/cargo_container/kelland/left{ layer = 2.9 }, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -32275,10 +32161,19 @@ 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; - icon_state = "w-y1" +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "whiteyellowfull" }, /area/lv522/oob/w_y_vault) "mNR" = ( @@ -32557,9 +32452,13 @@ }, /area/lv522/indoors/a_block/kitchen) "mRh" = ( -/obj/structure/window/framed/corsat, -/turf/open/floor/corsat, -/area/lv522/atmos/east_reactor) +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" + }, +/obj/structure/platform, +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "mRs" = ( /obj/item/prop/colony/used_flare, /turf/open/auto_turf/shale/layer1, @@ -32693,21 +32592,6 @@ }, /turf/open/floor/plating, /area/lv522/atmos/filt) -"mUo" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/blocker/invisible_wall, -/obj/structure/prop/invuln{ - desc = "big pile energy."; - icon = 'icons/obj/structures/props/ice_colony/barrel_yard.dmi'; - icon_state = "pile_0"; - layer = 2.9; - name = "barrel pile"; - pixel_y = 3 - }, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "mUr" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -32921,12 +32805,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) -"mZM" = ( -/obj/structure/cargo_container/wy/left{ - layer = 5 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/w_rockies) "mZN" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /obj/structure/pipes/standard/simple/hidden/green{ @@ -33014,18 +32892,6 @@ /obj/structure/machinery/landinglight/ds1/delaythree, /turf/open/floor/plating, /area/lv522/landing_zone_1) -"naZ" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/structure/stairs/perspective{ - dir = 6; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/south_east_street) "nbg" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -33104,8 +32970,9 @@ }, /area/lv522/atmos/cargo_intake) "ncg" = ( -/obj/structure/platform{ - dir = 8 +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement1" @@ -33189,7 +33056,9 @@ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement3" + }, /area/lv522/outdoors/colony_streets/south_west_street) "nee" = ( /obj/structure/pipes/standard/manifold/hidden/green, @@ -33334,6 +33203,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 @@ -33611,11 +33486,13 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) "nlY" = ( -/obj/structure/platform{ +/obj/structure/platform_decoration{ dir = 1 }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) +/turf/open/asphalt/cement{ + icon_state = "cement1" + }, +/area/lv522/outdoors/colony_streets/south_street) "nmh" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -33759,7 +33636,6 @@ /obj/effect/decal/cleanable/blood/xeno{ icon_state = "xgib3" }, -/obj/effect/landmark/structure_spawner/setup/distress/xeno_door, /turf/open/floor/corsat{ icon_state = "marked" }, @@ -34232,9 +34108,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, @@ -34369,6 +34242,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 @@ -34411,11 +34296,10 @@ /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/w_rockies) "nCC" = ( +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_x = -1; - pixel_y = 1 + icon_state = "W"; + pixel_x = -1 }, /turf/open/floor{ dir = 4; @@ -34467,7 +34351,10 @@ "nDI" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/wy_chips_pepper, -/obj/structure/platform, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "nDM" = ( @@ -34554,9 +34441,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/casino) "nFO" = ( -/obj/structure/prop/invuln/ice_prefab{ - dir = 5 - }, +/obj/structure/machinery/power/port_gen/pacman, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "nGc" = ( @@ -34637,6 +34522,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{ @@ -34654,14 +34549,11 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) "nIu" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement4" +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/lv522/outdoors/colony_streets/north_street) +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/south_east_street) "nIF" = ( /obj/structure/reagent_dispensers/fueltank{ layer = 2.9 @@ -34729,10 +34621,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{ @@ -35219,13 +35108,14 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) "nRy" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 29 +/obj/structure/machinery/colony_floodlight{ + layer = 4.3 }, -/turf/open/floor/prison{ - icon_state = "floor_plate" +/obj/structure/platform{ + dir = 8 }, -/area/lv522/atmos/sewer) +/turf/open/asphalt/cement, +/area/lv522/outdoors/colony_streets/south_street) "nRI" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -35305,9 +35195,6 @@ icon_state = "kitchen" }, /area/lv522/indoors/a_block/fitness) -"nSE" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/admin) "nSF" = ( /obj/structure/barricade/deployable{ dir = 1 @@ -35334,10 +35221,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/a_block/dorm_north) -"nTj" = ( -/obj/effect/landmark/lv624/fog_blocker/short, -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/oob/w_y_vault) "nTl" = ( /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/lv522/atmos/east_reactor) @@ -35660,14 +35543,6 @@ icon_state = "blue" }, /area/lv522/indoors/a_block/hallway) -"nYz" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement3" - }, -/area/lv522/outdoors/n_rockies) "nYF" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/cleanable/dirt, @@ -35735,13 +35610,16 @@ }, /area/lv522/outdoors/n_rockies) "oaj" = ( -/obj/structure/pipes/standard/simple/hidden/green, -/turf/closed/wall/r_wall/biodome/biodome_unmeltable, -/area/lv522/atmos/cargo_intake) +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/auto_turf/sand_white/layer0, +/area/lv522/outdoors/colony_streets/south_east_street) "oan" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 }, /turf/open/floor{ dir = 4; @@ -35986,6 +35864,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, @@ -36307,29 +36188,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/a_block/hallway) -"okj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/prison{ - dir = 4; - icon_state = "cell_stripe" - }, -/area/lv522/atmos/sewer) "okA" = ( /obj/structure/surface/rack, /obj/structure/machinery/camera/autoname{ @@ -36517,9 +36375,7 @@ /obj/structure/platform{ dir = 8 }, -/obj/structure/largecrate/random{ - layer = 2.9 - }, +/obj/structure/ore_box, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "oqn" = ( @@ -36603,6 +36459,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 @@ -36676,17 +36538,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/north_west_street) -"osm" = ( -/obj/structure/transmitter/colony_net{ - phone_category = "LV522 Chances Claim"; - phone_color = "red"; - phone_id = "Reactor Sewer"; - pixel_y = 26 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/atmos/sewer) "osE" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Corporate Office Airlock"; @@ -36841,6 +36692,10 @@ layer = 2.9 }, /obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/north_street) "ovr" = ( @@ -36911,6 +36766,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; @@ -37754,6 +37615,9 @@ dir = 1; icon_state = "fab_2" }, +/obj/structure/prop/invuln/ice_prefab{ + icon_state = "fab_2" + }, /turf/open/auto_turf/shale/layer2, /area/lv522/outdoors/w_rockies) "oOS" = ( @@ -38012,14 +37876,6 @@ "oUq" = ( /turf/closed/wall/strata_outpost/reinforced, /area/lv522/atmos/way_in_command_centre) -"oUC" = ( -/obj/structure/prop/invuln/overhead/flammable_pipe/fly{ - pixel_y = 6 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "oUE" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -38337,13 +38193,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, @@ -38398,9 +38247,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "pdp" = ( /obj/structure/prop/invuln/overhead_pipe{ @@ -38718,15 +38565,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/north_east_street) -"pgJ" = ( -/obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/corsat{ - icon_state = "squares" - }, -/area/lv522/atmos/east_reactor) "pha" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -38825,9 +38663,7 @@ /obj/structure/platform{ dir = 8 }, -/obj/structure/largecrate/random{ - layer = 2.9 - }, +/obj/structure/ore_box, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) @@ -38915,9 +38751,6 @@ /obj/item/prop/colony/used_flare, /turf/open/floor/prison, /area/lv522/indoors/a_block/kitchen) -"plz" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/executive) "plN" = ( /obj/structure/platform, /obj/effect/decal/warning_stripes{ @@ -38966,19 +38799,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" @@ -39041,9 +38861,11 @@ /area/lv522/indoors/a_block/dorms) "ppD" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) "ppF" = ( /turf/closed/shuttle/dropship2/tornado/typhoon{ @@ -39147,7 +38969,6 @@ /area/lv522/outdoors/colony_streets/north_west_street) "prT" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/cargo_container/grant/rightmid, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/w_rockies) "prU" = ( @@ -39212,9 +39033,6 @@ icon_state = "brown" }, /area/lv522/atmos/filt) -"psC" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/hallway) "psF" = ( /obj/effect/decal/cleanable/dirt, /obj/item/ammo_magazine/rifle/mar40/lmg, @@ -39596,6 +39414,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{ @@ -40003,30 +39825,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "pJb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper A-Block Fitness Centre Airlock" @@ -40605,12 +40403,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"pTH" = ( -/obj/structure/machinery/door/airlock/hatch/cockpit/two, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "pTO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed{ @@ -40786,15 +40578,6 @@ icon_state = "darkbrownfull2" }, /area/lv522/landing_zone_2/ceiling) -"pWC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, -/area/lv522/atmos/sewer) "pWR" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -41089,6 +40872,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 @@ -41440,18 +41233,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{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "qkw" = ( /obj/structure/prop/invuln/remote_console_pod, /obj/structure/machinery/computer/shuttle/dropship/flight/lz1{ @@ -41659,15 +41440,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{ - icon_state = "rasputin6" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qnY" = ( /obj/structure/surface/table/almayer, /obj/item/prop/alien/hugger, @@ -41705,11 +41477,6 @@ icon_state = "cell_stripe" }, /area/lv522/atmos/sewer) -"qpg" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qpq" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -41745,11 +41512,15 @@ /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/central_streets) "qpD" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +/obj/structure/machinery/light{ + dir = 1 }, -/turf/closed/wall/mineral/bone_resin, -/area/lv522/oob) +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/auto_turf/shale/layer1, +/area/lv522/outdoors/colony_streets/south_east_street) "qpE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -41838,20 +41609,8 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/n_rockies) "qqN" = ( -/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/strata{ - dir = 4; - icon_state = "white_cyan1" - }, +/obj/effect/landmark/lv624/fog_blocker/short, +/turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/lv522/oob/w_y_vault) "qqR" = ( /obj/structure/platform, @@ -41863,14 +41622,6 @@ icon_state = "floor_plate" }, /area/lv522/indoors/c_block/garage) -"qqS" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, -/area/lv522/outdoors/w_rockies) "qqW" = ( /obj/structure/surface/rack, /obj/effect/decal/cleanable/dirt, @@ -42010,10 +41761,6 @@ icon_state = "floor_plate" }, /area/lv522/outdoors/colony_streets/east_central_street) -"qtl" = ( -/obj/structure/cargo_container/horizontal/blue/top, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "qts" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 6 @@ -42114,13 +41861,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{ @@ -42284,17 +42024,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms) -"qyp" = ( -/obj/structure/transmitter/colony_net{ - phone_category = "LV522 Chances Claim"; - phone_color = "red"; - phone_id = "Reactor Eastern Reactor Control"; - pixel_y = 26 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "qyG" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/auto_turf/sand_white/layer0, @@ -42330,8 +42059,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{ @@ -42922,14 +42651,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{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qJy" = ( /obj/structure/largecrate/random, /turf/open/auto_turf/shale/layer1, @@ -43109,12 +42830,6 @@ /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/auto_turf/sand_white/layer0, /area/lv522/landing_zone_1) -"qMX" = ( -/obj/structure/cargo_container/horizontal/blue/middle{ - layer = 3.1 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "qNg" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Bedroom" @@ -43452,10 +43167,6 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) "qRF" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" - }, /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname{ dir = 8 @@ -43633,22 +43344,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qUf" = ( /obj/item/ammo_magazine/rifle/m4ra/ext{ current_rounds = 0 @@ -43700,20 +43395,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "qUL" = ( /turf/open/floor/plating, /area/lv522/outdoors/colony_streets/north_east_street) @@ -43786,6 +43467,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{ @@ -43817,13 +43512,6 @@ /obj/effect/landmark/lv624/fog_blocker/short, /turf/open/floor/plating, /area/lv522/landing_zone_1/tunnel) -"qXz" = ( -/obj/structure/cargo_container/horizontal/blue/bottom, -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "qXH" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/toy, @@ -44194,9 +43882,6 @@ /area/lv522/outdoors/colony_streets/east_central_street) "rbZ" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, -/obj/structure/machinery/light{ - dir = 8 - }, /turf/open/floor/corsat, /area/lv522/atmos/east_reactor/south) "rcd" = ( @@ -44462,6 +44147,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" @@ -44530,14 +44218,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{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rii" = ( /turf/closed/shuttle/dropship2/tornado{ icon_state = "102" @@ -44637,14 +44317,6 @@ icon_state = "kitchen" }, /area/lv522/indoors/a_block/kitchen) -"rkR" = ( -/obj/structure/barricade/deployable{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rkV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -44969,12 +44641,6 @@ icon_state = "darkpurplefull2" }, /area/lv522/indoors/a_block/dorms/glass) -"rrB" = ( -/obj/vehicle/powerloader, -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "rrI" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -45097,6 +44763,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, @@ -45528,11 +45203,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" @@ -45550,14 +45220,6 @@ icon_state = "99" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"rCp" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 4 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rCu" = ( /turf/open/floor/prison{ dir = 4; @@ -45603,12 +45265,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{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rDu" = ( /obj/structure/machinery/door_control{ id = "UD6"; @@ -45618,14 +45274,6 @@ icon_state = "53" }, /area/lv522/landing_zone_forecon/UD6_Typhoon) -"rDz" = ( -/obj/structure/bed/chair/dropship/passenger{ - dir = 8 - }, -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "rDM" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -45778,16 +45426,6 @@ }, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/lone_buildings/engineering) -"rIr" = ( -/obj/structure/stairs/perspective{ - dir = 9; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) "rIx" = ( /obj/structure/machinery/light{ dir = 4 @@ -46481,6 +46119,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; @@ -46721,8 +46368,11 @@ }, /area/lv522/indoors/a_block/bridges/dorms_fitness) "rZK" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, /obj/structure/platform{ - dir = 1 + dir = 8 }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_street) @@ -46838,6 +46488,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" @@ -46900,18 +46554,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "scw" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -46920,18 +46562,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "scM" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/cheeseburger, @@ -47136,7 +46766,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{ @@ -47477,6 +47110,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" }, @@ -47577,11 +47215,12 @@ /turf/open/floor/carpet, /area/lv522/indoors/b_block/bar) "spn" = ( -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 + icon_state = "SW-out"; + pixel_x = -1; + pixel_y = -1 }, +/obj/effect/landmark/corpsespawner/wy/manager, /turf/open/floor{ dir = 4; icon_state = "whiteyellowfull" @@ -47975,7 +47614,9 @@ /area/lv522/indoors/a_block/hallway) "sxg" = ( /obj/item/stack/rods, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/south_street) "sxp" = ( /obj/structure/surface/table/almayer, @@ -48155,17 +47796,6 @@ "sAU" = ( /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/security/glass) -"sBg" = ( -/obj/structure/prop/server_equipment/yutani_server{ - pixel_x = 3 - }, -/obj/structure/prop/server_equipment{ - pixel_x = -16 - }, -/turf/open/floor{ - icon_state = "bcircuit" - }, -/area/lv522/atmos/east_reactor) "sBt" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 @@ -48180,13 +47810,6 @@ icon_state = "white_cyan1" }, /area/lv522/indoors/a_block/medical) -"sBz" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/machinery/squeezer, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "sBH" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; @@ -48345,6 +47968,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 @@ -48448,19 +48084,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{ - icon_state = "rasputin4" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) -"sGY" = ( -/obj/structure/barricade/deployable, -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "sHb" = ( /obj/structure/platform_decoration{ dir = 4 @@ -48480,12 +48103,6 @@ }, /turf/open/gm/river, /area/lv522/landing_zone_1/tunnel) -"sHg" = ( -/obj/structure/barricade/deployable, -/turf/open/shuttle/dropship{ - icon_state = "rasputin8" - }, -/area/lv522/landing_zone_forecon/UD6_Typhoon) "sHk" = ( /obj/structure/curtain/red, /turf/open/floor/corsat{ @@ -49346,16 +48963,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/east_central_street) -"sUj" = ( -/obj/structure/stairs/perspective{ - dir = 6; - icon_state = "p_stair_full" - }, -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "sUs" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, @@ -49474,18 +49081,16 @@ icon_state = "rasputin15" }, /area/lv522/landing_zone_forecon/UD6_Tornado) -"sYk" = ( -/obj/structure/platform, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/north_east_street) "sYl" = ( /obj/item/stack/sheet/metal, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/north_east_street) "sYv" = ( -/obj/structure/platform{ - dir = 8 +/obj/structure/stairs/perspective{ + dir = 4; + icon_state = "p_stair_full" }, +/obj/structure/platform/stair_cut, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/south_street) "sYH" = ( @@ -49565,14 +49170,6 @@ icon_state = "cement4" }, /area/lv522/outdoors/colony_streets/south_east_street) -"taS" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/asphalt/cement{ - icon_state = "cement14" - }, -/area/lv522/outdoors/n_rockies) "taW" = ( /obj/structure/platform{ dir = 8 @@ -49588,6 +49185,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 @@ -49611,14 +49217,19 @@ }, /area/lv522/outdoors/colony_streets/north_west_street) "tbK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1; - pixel_y = -1 +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 }, -/turf/open/floor{ +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/turf/open/floor/strata{ dir = 4; - icon_state = "whiteyellowfull" + icon_state = "white_cyan1" }, /area/lv522/oob/w_y_vault) "tcj" = ( @@ -49724,15 +49335,10 @@ }, /area/lv522/landing_zone_forecon/UD6_Typhoon) "tdM" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/platform_decoration{ - dir = 5; - layer = 3.51 +/obj/structure/platform/stair_cut, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, /turf/open/gm/river, /area/lv522/atmos/sewer) @@ -50110,6 +49716,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, @@ -50226,6 +49838,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{ @@ -50553,22 +50174,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) -"tti" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/south_east_street) "ttp" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/corsat{ @@ -50684,6 +50289,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" @@ -50781,9 +50393,7 @@ dir = 1; icon_state = "p_stair_full" }, -/turf/open/floor/prison{ - icon_state = "floor_plate" - }, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "tyc" = ( /obj/structure/surface/rack, @@ -50846,18 +50456,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tzz" = ( /obj/structure/largecrate/random/secure, /obj/structure/largecrate/random/mini{ @@ -50963,11 +50561,6 @@ }, /turf/open/auto_turf/sand_white/layer0, /area/lv522/outdoors/colony_streets/central_streets) -"tBM" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin6" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tBQ" = ( /obj/structure/prop/ice_colony/ground_wire{ dir = 4 @@ -51033,28 +50626,12 @@ "tCN" = ( /turf/closed/wall/strata_ice/dirty, /area/lv522/outdoors/colony_streets/south_east_street) -"tCR" = ( -/turf/open/shuttle/dropship{ - icon_state = "floor8" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) -"tCX" = ( -/turf/open/floor/corsat{ - dir = 6; - icon_state = "brown" - }, -/area/lv522/atmos/east_reactor) "tDd" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/central_streets) -"tDm" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin7" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tDu" = ( /obj/structure/machinery/computer/operating, /obj/structure/surface/table/reinforced/prison, @@ -51217,16 +50794,6 @@ }, /turf/open/floor/wood, /area/lv522/indoors/c_block/casino) -"tFZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin{ - pixel_y = 5 - }, -/obj/item/tool/pen/blue/clicky, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "tGb" = ( /obj/structure/prop/ice_colony/ground_wire, /obj/structure/prop/ice_colony/ground_wire{ @@ -51342,14 +50909,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "tIM" = ( /obj/structure/prop/vehicles/crawler{ dir = 8; @@ -51399,14 +50958,18 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/auto_turf/shale/layer1, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/north_east_street) "tJG" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_full" }, /obj/structure/pipes/standard/manifold/hidden/green, -/turf/open/auto_turf/sand_white/layer0, +/turf/open/asphalt/cement{ + icon_state = "cement12" + }, /area/lv522/outdoors/colony_streets/north_east_street) "tJM" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -51464,9 +51027,6 @@ /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_street) "tKC" = ( -/obj/structure/machinery/light{ - dir = 1 - }, /obj/effect/decal/warning_stripes{ icon_state = "N"; pixel_y = 1 @@ -51562,13 +51122,9 @@ }, /area/lv522/atmos/cargo_intake) "tLX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor{ - dir = 4; - icon_state = "whiteyellowfull" +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y0" }, /area/lv522/oob/w_y_vault) "tMk" = ( @@ -51663,18 +51219,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"; - unacidable = 0; - unslashable = 0 - }, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/reactor_garage) "tOe" = ( /obj/structure/platform{ dir = 8 @@ -51918,6 +51464,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 @@ -52366,16 +51916,13 @@ "ubF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor/plating/plating_catwalk/prison, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "ubH" = ( /obj/structure/stairs/perspective{ - dir = 6; icon_state = "p_stair_full" }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/central_streets) "ubJ" = ( /obj/structure/blocker/invisible_wall, @@ -52387,6 +51934,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{ @@ -52896,7 +52453,7 @@ /area/lv522/indoors/c_block/garage) "ujy" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; + icon_state = "NW-out"; pixel_y = 1 }, /turf/open/auto_turf/shale/layer1, @@ -53228,8 +52785,8 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "urp" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/platform_decoration{ + dir = 4 }, /obj/structure/largecrate/random, /turf/open/asphalt/cement, @@ -53578,13 +53135,6 @@ icon_state = "darkredfull2" }, /area/lv522/indoors/a_block/security) -"uxT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/south_east_street) "uya" = ( /turf/open/floor/prison{ icon_state = "darkbrownfull2" @@ -53784,18 +53334,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uDP" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -54188,6 +53726,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; @@ -54260,11 +53804,6 @@ /mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"uKQ" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin3" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uKR" = ( /obj/structure/barricade/wooden{ dir = 1 @@ -54429,13 +53968,6 @@ icon_state = "blue_plate" }, /area/lv522/indoors/a_block/admin) -"uNT" = ( -/obj/structure/prop/invuln/fusion_reactor, -/obj/structure/prop/turbine_extras/left, -/turf/open/floor/corsat{ - icon_state = "plate" - }, -/area/lv522/atmos/east_reactor) "uNW" = ( /obj/structure/surface/table/almayer, /obj/item/trash/ceramic_plate{ @@ -54992,11 +54524,6 @@ icon_state = "floor_marked" }, /area/lv522/landing_zone_2/ceiling) -"uXj" = ( -/turf/open/shuttle/dropship{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "uXp" = ( /obj/item/weapon/twohanded/folded_metal_chair, /obj/effect/decal/warning_stripes{ @@ -55135,17 +54662,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "vbm" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -55271,8 +54787,8 @@ /turf/open/floor/prison, /area/lv522/indoors/a_block/dorms) "vdp" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement12" @@ -55530,10 +55046,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" @@ -55620,18 +55136,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "vju" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -55987,6 +55491,16 @@ }, /area/lv522/landing_zone_forecon/UD6_Tornado) "vqe" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, /obj/structure/machinery/light{ dir = 8 }, @@ -56073,14 +55587,18 @@ }, /area/lv522/indoors/a_block/admin) "vrE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - pixel_y = -1 +/obj/structure/surface/table/almayer, +/obj/item/stack/sheet/mineral/gold{ + amount = 60; + pixel_y = 6 }, -/turf/open/floor{ +/obj/item/stack/sheet/mineral/gold{ + amount = 60; + pixel_y = 12 + }, +/turf/open/floor/strata{ dir = 4; - icon_state = "whiteyellowfull" + icon_state = "white_cyan1" }, /area/lv522/oob/w_y_vault) "vrV" = ( @@ -56430,12 +55948,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 @@ -56541,6 +56053,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{ @@ -57030,18 +56552,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,14 +56614,6 @@ /area/lv522/indoors/a_block/fitness) "vJw" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 5 - }, /turf/open/floor/prison{ dir = 4; icon_state = "cell_stripe" @@ -57162,6 +56664,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"; @@ -57580,6 +57097,9 @@ /obj/structure/platform{ dir = 4 }, +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/central_streets) "vSO" = ( @@ -57626,12 +57146,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" @@ -57964,10 +57478,6 @@ }, /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) -"vZY" = ( -/obj/structure/cargo_container/grant/rightmid, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "wac" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison{ @@ -57975,12 +57485,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{ @@ -58031,6 +57535,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" }, @@ -58565,9 +58074,8 @@ /area/lv522/indoors/lone_buildings/outdoor_bot) "wjP" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor{ dir = 4; @@ -58683,10 +58191,6 @@ icon_state = "marked" }, /area/lv522/indoors/lone_buildings/engineering) -"wnl" = ( -/obj/structure/cargo_container/wy/mid, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/w_rockies) "wnu" = ( /obj/structure/cargo_container/wy/right, /turf/open/auto_turf/shale/layer1, @@ -58891,10 +58395,6 @@ "wrC" = ( /turf/closed/wall/strata_outpost, /area/lv522/indoors/a_block/corpo) -"wrY" = ( -/obj/structure/platform, -/turf/open/asphalt/cement, -/area/lv522/outdoors/colony_streets/east_central_street) "wsf" = ( /obj/structure/curtain/red, /obj/structure/pipes/standard/simple/hidden/green{ @@ -58935,15 +58435,6 @@ /mob/living/simple_animal/mouse, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) -"wsX" = ( -/obj/structure/stairs/perspective{ - dir = 5; - icon_state = "p_stair_full" - }, -/turf/open/asphalt/cement{ - icon_state = "cement4" - }, -/area/lv522/outdoors/colony_streets/north_street) "wsY" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -59382,17 +58873,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "wBx" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 1 @@ -59668,6 +59148,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, @@ -59756,6 +59240,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" @@ -59881,6 +59368,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 @@ -60113,8 +59609,7 @@ /area/lv522/atmos/sewer) "wRk" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 + icon_state = "W" }, /turf/open/auto_turf/shale/layer1, /area/lv522/outdoors/colony_streets/south_east_street) @@ -60765,18 +60260,10 @@ icon_state = "brown" }, /area/lv522/atmos/cargo_intake) -"xfe" = ( -/obj/structure/cargo_container/grant/left, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "xfp" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/bridges/dorms_fitness) -"xfr" = ( -/obj/structure/cargo_container/grant/rightmid, -/turf/open/auto_turf/shale/layer1, -/area/lv522/outdoors/colony_streets/north_west_street) "xfu" = ( /obj/item/ammo_magazine/rifle/heap{ current_rounds = 0 @@ -61036,18 +60523,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "xkr" = ( /obj/effect/landmark/objective_landmark/medium, /obj/effect/decal/cleanable/dirt, @@ -61101,6 +60576,10 @@ layer = 2.9 }, /obj/effect/decal/cleanable/liquid_fuel, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/asphalt/cement{ icon_state = "cement4" }, @@ -61283,11 +60762,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{ @@ -61334,13 +60810,6 @@ icon_state = "greenfull" }, /area/lv522/indoors/a_block/fitness) -"xqi" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/largecrate/random, -/turf/open/floor/plating, -/area/lv522/indoors/c_block/cargo) "xqj" = ( /obj/effect/landmark/yautja_teleport, /turf/open/auto_turf/shale/layer2, @@ -61348,6 +60817,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{ @@ -61410,14 +60889,7 @@ /turf/open/floor/plating, /area/lv522/landing_zone_2) "xsE" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/structure/platform, -/obj/structure/platform_decoration{ - dir = 6 - }, -/turf/open/gm/river, +/turf/open/floor/prison, /area/lv522/atmos/sewer) "xsN" = ( /obj/structure/largecrate/random/barrel, @@ -61566,11 +61038,10 @@ }, /area/lv522/indoors/a_block/bridges) "xwv" = ( -/obj/structure/platform_decoration{ - dir = 4 +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, /obj/structure/stairs/perspective{ - dir = 10; icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ @@ -61669,10 +61140,6 @@ icon_state = "plate" }, /area/lv522/atmos/cargo_intake) -"xyf" = ( -/obj/structure/cargo_container/kelland/left, -/turf/open/auto_turf/sand_white/layer0, -/area/lv522/outdoors/colony_streets/north_west_street) "xyi" = ( /obj/structure/closet/emcloset, /turf/open/floor/prison{ @@ -61686,6 +61153,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, @@ -61753,9 +61223,6 @@ icon_state = "marked" }, /area/lv522/indoors/c_block/mining) -"xAw" = ( -/turf/closed/wall/strata_outpost/reinforced/hull, -/area/lv522/indoors/a_block/bridges/op_centre) "xAF" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 4 @@ -61858,15 +61325,9 @@ /area/lv522/outdoors/n_rockies) "xBS" = ( /obj/structure/stairs/perspective{ - dir = 6; icon_state = "p_stair_full" }, -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, +/turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/east_central_street) "xCG" = ( /obj/structure/bed/chair/comfy{ @@ -62418,17 +61879,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{ - icon_state = "rasputin15" - }, -/area/lv522/landing_zone_forecon/UD6_Tornado) "xNG" = ( /obj/structure/machinery/computer/crew/colony{ density = 0; @@ -62463,14 +61913,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/prison, /area/lv522/indoors/a_block/admin) -"xOB" = ( -/obj/structure/platform{ - dir = 1 - }, -/turf/open/asphalt/cement{ - icon_state = "cement12" - }, -/area/lv522/outdoors/colony_streets/east_central_street) "xOD" = ( /obj/item/clothing/glasses/mbcg, /turf/open/floor/prison, @@ -62611,11 +62053,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 @@ -62792,6 +62229,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, @@ -62985,8 +62426,9 @@ }, /area/lv522/outdoors/colony_streets/north_street) "xWO" = ( -/obj/structure/platform{ - dir = 1 +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" }, /turf/open/asphalt/cement{ icon_state = "cement12" @@ -63194,21 +62636,6 @@ icon_state = "floor3" }, /area/lv522/landing_zone_2/ceiling) -"yat" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "\improper Marshall 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) "yaw" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -63364,7 +62791,9 @@ /obj/structure/platform{ dir = 8 }, -/obj/structure/blocker/invisible_wall, +/obj/structure/largecrate/random{ + layer = 2.9 + }, /turf/open/floor/plating, /area/lv522/indoors/c_block/cargo) "ydz" = ( @@ -63771,6 +63200,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{ @@ -66224,9 +65656,9 @@ vtc jrT cpy cpy -kBT -uiK -mZM +sRA +sRA +sRA sRA sRA rWS @@ -66451,9 +65883,9 @@ hSi vtc cpy cpy -vZY -dcR -bQq +rWS +sRA +sRA sRA rWS pRK @@ -66678,20 +66110,20 @@ lMH vtc cpy cpy -kLQ +rWS +rWS sRA -jHa sRA obe pRM qnk qHA -qTO -rhB -qJl -rCp -scv -rCp +qWk +rgn +sbj +uJf +kbq +uJf tdH nfq fDg @@ -66911,14 +66343,14 @@ pps pxY pIu nbO -qnV -rjP -rjP -rig -rjP -rDb -rjP -sGT +tvL +bmR +bmR +aXR +bmR +wGc +bmR +mNz tdS tzA tSJ @@ -67136,16 +66568,16 @@ cpy cpy ppF pys -pIO -pTH -qpg +jvF +pBz +iGk qJl qUf riE ruj rDu xKc -sGY +fwh pBQ rjP rus @@ -67365,14 +66797,14 @@ pqZ pyO qst gTM -qqS -qJw -rjP -rjP -rus -rjP -rig -sHg +ghY +oxd +bmR +bmR +tTb +bmR +aXR +aom teL tzF tSU @@ -67594,12 +67026,12 @@ rWS pUc qrj qLd -qUD -rkR -rkR -rDz -scy -rDz +nBh +ori +ori +ngy +xqN +ngy tfV rFp sdE @@ -67656,7 +67088,7 @@ ien ien ien ien -ien +spo umf vXc vXc @@ -67875,15 +67307,15 @@ ylo ylo ylo ylo +dbc ylo ylo ylo ylo ylo ylo -ylo -ien -ien +rMF +spo vXc vXc vXc @@ -68100,18 +67532,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 @@ -68286,9 +67718,9 @@ cpy cpy cpy rWS -sRA -sRA -sRA +jVS +kBD +kBT ien ien ien @@ -68327,17 +67759,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 @@ -68555,16 +67987,16 @@ hYf xhW hYf hYf -qvK +ylo xoj -hYf +ylo lpt gJL wHi cAW ylo ylo -ien +spo vXc vXc vXc @@ -68735,7 +68167,7 @@ cpy cpy sRA sRA -sRA +jHa cpy rWS rWS @@ -68782,17 +68214,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 @@ -68962,7 +68394,7 @@ cpy cpy cpy sRA -sRA +nvB abt rWS sRA @@ -69009,16 +68441,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 @@ -69035,9 +68467,9 @@ nJv rCa rCa nJv -vzc -vzc -vzc +bbi +bbi +bbi xVd nJv hpq @@ -69177,13 +68609,13 @@ auG uWO vtc vtc -kBD +sRA cpy cpy sRA -sRA +bBB rWS -iXI +gtS sRA cpy cpy @@ -69236,16 +68668,16 @@ qJK qJK cQB bZd +ylo +xoj +bOX yfu +tNS bZd bZd yfu -tNS -gFy -gFy -rBV -iSx -ien +iPD +spo vXc vXc cpy @@ -69265,7 +68697,7 @@ nJv bzL qmA qmA -vzc +bbi nJv hpq ofi @@ -69404,13 +68836,13 @@ auG uWO uWO vtc -kBD +sRA cpy cpy sRA +bQq rWS -rWS -kXo +jGh sRA sRA cpy @@ -69463,17 +68895,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 @@ -69492,7 +68924,7 @@ nJv cNO qmA mdp -vzc +bbi nJv gpB ofi @@ -69631,11 +69063,11 @@ vtc vtc uWO vtc -kBT +sRA uiK uiK sRA -uiK +dcR sRA bKq goY @@ -69691,15 +69123,15 @@ yfu bDr yfu hjE -yfu -qpc +dbc +ylo nKj dGK qpc she egj ylo -ien +spo vXc vXc vXc @@ -69719,7 +69151,7 @@ nJv rZg mwC kIs -vzc +bbi nJv gpB ofi @@ -69859,7 +69291,7 @@ vtc vtc uWO prT -kWD +sRA tTr pUR uiK @@ -69878,8 +69310,8 @@ goY rsF sRA sRA -wms -ien +sRA +clY sjY clY clY @@ -69917,16 +69349,16 @@ jUk hYf sIS yfu -bZd -gJL -vIt -cOA -xhW +bOX +xoj +ylo +ylo +gFy hsz jnr ylo ylo -ien +spo vXc vXc vXc @@ -70085,7 +69517,7 @@ vtc vtc vtc uWO -kLQ +sRA sRA uiK uiK @@ -70105,7 +69537,7 @@ hKE viA sRA sRA -wnl +sRA sjY sjY clY @@ -70144,17 +69576,17 @@ ylo smR wbi smR -smR -smR ylo +dbc ylo ylo ylo ylo ylo -ien -ien -ien +ylo +rMF +sql +vXc vXc yiM yiM @@ -70312,7 +69744,7 @@ uWO vtc vtc uWO -kNj +uiK sRA uiK uiK @@ -70332,7 +69764,7 @@ uiK hRu uiK sRA -wnu +sRA sjY clY clY @@ -70372,15 +69804,15 @@ xyN cnN xyN xyN -xyN +kXc lwv xyN xyN -dbc +xyN xyN xyN sql -ien +vXc yiM yiM yiM @@ -70598,16 +70030,16 @@ rwE rwE hWI yiM +kXc +kXc +kXc vXc vXc vXc -vXc -vXc -dbc umf umf vXc -ien +yiM yiM yiM yiM @@ -70768,8 +70200,8 @@ uWO vtc bBB nFO -lhC -lxj +uiK +uiK sRA uiK uiK @@ -70788,7 +70220,7 @@ uiK uiK sRA clY -xfe +clY clY xGc lvb @@ -70824,18 +70256,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 @@ -70847,10 +70279,10 @@ nJv xvQ gcX kvq -ivK +nJv wng tCg -ivK +nJv xvQ xvQ xvQ @@ -71015,7 +70447,7 @@ uiK uiK uiK wKj -xfr +clY clY hJZ slO @@ -71051,17 +70483,17 @@ yiM yiM yiM yiM -arP yiM yiM -puY +kXc +vXc +vXc vXc vXc -dbc vXc vXc yiM -ien +yiM yiM yiM yiM @@ -71242,8 +70674,8 @@ rGi uiK uiK hJZ -jGh -xyf +clY +hJZ hJZ slO hJZ @@ -71279,16 +70711,16 @@ yiM yiM yiM yiM -yiM -yiM -yiM +kXc +kXc +kXc +vXc vXc vXc -dbc vXc yiM yiM -ien +yiM yiM yiM yiM @@ -71470,7 +70902,7 @@ sRA ien ien ien -jVS +hJZ hJZ slO hJZ @@ -71507,16 +70939,16 @@ yiM yiM yiM wdy +kXc iPR iPR iPR iPR -dbc jPv vXc -ien -ien -ien +vXc +yiM +yiM yiM yiM pWR @@ -71742,7 +71174,7 @@ nLm rMF jPv vXc -ien +vXc yiM yiM yiM @@ -71969,7 +71401,7 @@ nLm nLm rVa jPv -ien +vXc vXc vXc yiM @@ -72132,9 +71564,9 @@ ien sjY hJZ ien -qtl -qMX -qXz +clY +clY +rnG kYm hJZ hJZ @@ -72195,9 +71627,9 @@ wan wEQ nLm nLm -ien -ien -ien +rMF +jPv +vXc vXc umf xTV @@ -72423,7 +71855,7 @@ uDP kDH nLm nLm -ien +spo vXc vXc vXc @@ -72650,7 +72082,7 @@ fjP vJT pfV nLm -ien +spo vXc vXc vXc @@ -72876,9 +72308,9 @@ tUM uOs uOs vJT -nLm -ien -ien +pMd +spo +vXc vXc jue wYa @@ -73103,8 +72535,8 @@ uOs uOs lsD wyE -nLm -ien +pMd +spo vXc vXc upz @@ -73330,8 +72762,8 @@ lBj vJT whn tek -nLm -ien +pMd +spo vXc vXc vXc @@ -73558,8 +72990,8 @@ oDu nLm nLm nLm -ien -ien +spo +vXc umf vXc vaZ @@ -73785,7 +73217,7 @@ fVB cxC rzG nLm -ien +spo vXc umf vXc @@ -74012,7 +73444,7 @@ bGL koj aMI nLm -ien +spo vXc vXc vXc @@ -74239,8 +73671,8 @@ sKH weR nLm nLm -ien -ien +spo +vXc vXc vXc wYa @@ -79209,20 +78641,20 @@ hhD oLz rnA pZi -ahP +fpB pQE ooG rAK oSH qSk pQE +ubH rMF xyN xyN xyN xyN xyN -xyN rMF nLm nLm @@ -79280,11 +78712,11 @@ aPu cGw wIr wIr -fnA -cxv -ofi -ofi -hov +jhY +kkq +uOd +uOd +kLO fTN fTN fTN @@ -79293,8 +78725,8 @@ fTN lvl ndZ gBv -pAj -fnA +lul +jhY wIr wIr xSA @@ -79436,17 +78868,17 @@ fjr bPH dox tGl -crH +miz ofd rqs uPy qGK qSk ofd +ubH spo vXc vXc -vXc mqC pwz dFg @@ -79494,10 +78926,10 @@ tSL tSL tSL tSL -dbP -cbR -cbR -dbP +fnA +uOd +uOd +fnA wIr wIr mDz @@ -79520,7 +78952,7 @@ cbR cbR cbR cbR -dbP +moe wIr wIr vDL @@ -79586,7 +79018,7 @@ xZw saC saC saC -qpD +saC saC bzC iAv @@ -79663,15 +79095,15 @@ fjr rZc dox tGl -crH +miz ofd qSk xeg uMO rqs ofd +ubH spo -vXc laX dFH vXc @@ -79890,15 +79322,15 @@ fjr rZc dox tGl -crH +miz ofd qSk xeg uMO rqs ofd +ubH spo -vXc rjn bVu vXc @@ -79947,7 +79379,7 @@ tSL tne kGm lML -hgo +yfR wIr tmy hYL @@ -80015,10 +79447,10 @@ dLs afA saC saC -esB -sGF -dLs -fcW +saC +saC +yeS +jKu xho otQ otQ @@ -80117,15 +79549,15 @@ nQx rvx fZy hAg -crH +miz ofd qiC xeg qGK rqs ofd +ubH spo -vXc qbI qlD qpz @@ -80174,13 +79606,13 @@ lIy xNR yfS yfS -kLO +yfS cfz jmv tkf dgY cfz -cHb +aPu qzQ oLa uWT @@ -80241,8 +79673,8 @@ aut dOw ajw bRN -sGF -euN +saC +saC saC yeS jKu @@ -80344,20 +79776,20 @@ spe nQx fjr rCV -crH +miz pQE pQE rAK oSH pQE pQE +ubH spo vXc vXc vXc vXc vXc -vXc yiM yiM yiM @@ -80401,13 +79833,13 @@ cKi msj msj phu -iLC +wyy tIT olz pOs olz tIT -skS +jey iXM uIk uWT @@ -80466,7 +79898,7 @@ cNV cNV cCC xho -xho +vDV uAd saC saC @@ -80496,7 +79928,7 @@ saC saC saC saC -oaj +bzC iAv jqL vTK @@ -80571,15 +80003,15 @@ ugV jXQ nQx fjr -nIu +miz ofd iiL xeg uMO oXF ofd -aPS -vXc +ubH +spo vXc vXc vXc @@ -80634,7 +80066,7 @@ tmy pfD hyf wIr -ttd +dgY aPu xgH uWT @@ -80693,7 +80125,7 @@ cNV lxW dCx dtr -xho +vDV uAd saC saC @@ -80753,11 +80185,11 @@ pjJ lCH vjW pjJ -ien +clY hJZ hJZ jqF -vne +oxt hhD ahP xyL @@ -80805,8 +80237,8 @@ ocn qGK xvW jct -qQM -vXc +ubH +spo pgm vXc yiM @@ -80920,7 +80352,7 @@ cNV fcV dCx otQ -xho +vDV uAd saC kwJ @@ -80979,12 +80411,12 @@ ylm pjJ lCH pjJ -ien -ien -ien +pjJ +clY +clY hJZ hJZ -vne +oxt fjr crH xyL @@ -81032,8 +80464,8 @@ iaY bGT xvW tRd -qQM -vXc +ubH +spo tpD qQi qQi @@ -81083,10 +80515,10 @@ tSL tSL tSL tSL -sYv -ncg -ncg -sYv +tOo +oIu +oIu +tOo wIr wIr pXz @@ -81109,7 +80541,7 @@ ncg ncg ncg ncg -sYv +mRh wIr wIr vDL @@ -81147,7 +80579,7 @@ cNV saC otQ otQ -xho +vDV uAd xgl kwJ @@ -81207,11 +80639,11 @@ vjW lCH pjJ pjJ -pjJ -ien -ien -ien -ien +clY +clY +clY +clY +oxt fjr crH xyL @@ -81252,7 +80684,7 @@ rCV cpy fjr fjr -wsX +miz ofd oWV xeg @@ -81260,7 +80692,7 @@ qGK oWV ofd ubH -vXc +spo yiM yiM yiM @@ -81314,7 +80746,7 @@ lyD mPr hFX bCy -tOo +iUX wIr wIr hwa @@ -81323,21 +80755,21 @@ clR dne wIr wIr -dGD -lyD -mPr -mPr -mPr -mPr -mPr -mPr -nax -nax -mPr -mPr -mPr -bCy -dGD +jic +kHX +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +oIu +nlY +nRy wIr wIr epq @@ -81374,13 +80806,13 @@ saC saC otQ otQ -xho -uAd -dEk -xho -xho -yeS -jKu +apS +dAm +aDj +cJo +cJo +dLs +cfv xho otQ saC @@ -81434,10 +80866,10 @@ vjW hdu nCa nCa -nCa -nCa -nCa -gtS +yhK +yhK +yhK +iSf oVO nQx crH @@ -81479,15 +80911,15 @@ fjr cpy cpy fjr -crH +miz pQE pQE oFN cXm pQE pQE +ubH spo -vXc yiM yiM iBY @@ -81541,7 +80973,7 @@ mPr mPr hFX hFX -bCy +iVk bYV wIr wIr @@ -81550,7 +80982,7 @@ mpF wIr wIr rZK -lyD +jig mPr mPr mPr @@ -81607,7 +81039,7 @@ dEk yeS yeS yeS -jKu +oML xho saC saC @@ -81656,15 +81088,15 @@ mjF gXI joJ urp -hTf -nYz -nYz -nYz -nYz -nYz -nYz -taS -vjW +gWI +sQu +sQu +sQu +sQu +ydA +ydA +hiK +sjY oxt jDO sSn @@ -81706,15 +81138,15 @@ cpy cpy cpy fjr -crH +miz ofd otj uPy uMO rmi ofd +ubH spo -vXc yiM yiM qCY @@ -81777,7 +81209,7 @@ jmv hYL rQg vdp -mPr +xAR mPr tNc gUj @@ -81834,7 +81266,7 @@ ejo dOw dOw dOw -fda +gTw tiQ tiQ tiQ @@ -81861,7 +81293,7 @@ mKN lko lLA jqL -tNT +cBU mvI pZy wAB @@ -81882,8 +81314,8 @@ kri kEj ldy joJ -gMe -jkO +gWI +gWI oUq oUq tVa @@ -81933,15 +81365,15 @@ cpy cpy cpy fjr -crH +miz ofd qSk xeg qGK qSk ofd +ubH spo -vXc yiM yiM qCY @@ -82004,7 +81436,7 @@ tkf hYL rQg vdp -mPr +xAR mPr tNc nax @@ -82059,9 +81491,9 @@ saC saC saC otQ -eyh -cRN -eQu +otQ +otQ +otQ saC saC saC @@ -82167,10 +81599,10 @@ xeg qGK qSk ofd +ubH spo yiM yiM -yiM qCY uie yiM @@ -82231,7 +81663,7 @@ tkf hYL rQg vdp -mPr +xAR mPr mPr iCb @@ -82286,7 +81718,7 @@ saC saC saC saC -oEw +yeS saC saC saC @@ -82394,10 +81826,10 @@ xeg qGK rqs ofd +ubH spo yiM yiM -yiM bYS xLY yiM @@ -82458,7 +81890,7 @@ tkf hYL rQg vdp -mPr +xAR mPr nax bjX @@ -82513,7 +81945,7 @@ saC saC saC saC -qpD +saC saC saC saC @@ -82622,7 +82054,7 @@ wwX rqs pQE vSN -cWT +hHh cWT cWT cWT @@ -82740,7 +82172,7 @@ saC saC saC otQ -eVg +otQ otQ saC saC @@ -82912,7 +82344,7 @@ dgY wIr wIr vdp -mPr +xAR mPr aPe ylo @@ -82967,7 +82399,7 @@ saC wLp kbV kbV -gPq +kbV kbV kbV saC @@ -83139,7 +82571,7 @@ tkf pfD rQg vdp -mPr +xAR mPr uXp ylo @@ -83194,9 +82626,9 @@ wLp qUQ qUQ qUQ -ezj -cSh -feF +qUQ +qUQ +sxU qUQ qUQ qUQ @@ -83234,17 +82666,17 @@ saC saC saC saC -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv -tTv +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq +oUq oUq hWC vcF @@ -83282,7 +82714,7 @@ xlU sjy sjy sjy -lea +drg sjy tpa tpa @@ -83423,8 +82855,8 @@ dDC dDC dDC dDC -fhQ -fpB +dDC +dDC dDC saC saC @@ -83464,14 +82896,14 @@ saC saC saC saC -tTv +oUq men xVB onM men iQb pXh -tTv +oUq oUq tTl bJN @@ -83593,7 +83025,7 @@ oLa hYL rQg vdp -mPr +xAR qbG aPe nnG @@ -83651,7 +83083,7 @@ tjg kbV tjg tjg -gPq +kbV saC saC saC @@ -83745,7 +83177,7 @@ sjy sjy uqx sjy -yat +vKJ sjy uqx sjy @@ -83878,7 +83310,7 @@ tjg kbV tjg tjg -gPq +kbV saC saC saC @@ -84105,7 +83537,7 @@ kbV xiY fKt fKt -vzd +ear tQw saC saC @@ -84274,7 +83706,7 @@ tkf pfD rQg dQQ -nax +xAR nax uvg cfT @@ -84332,7 +83764,7 @@ xiY xiY tjg tjg -gPq +kbV tjg tjg hJB @@ -84501,7 +83933,7 @@ jmv wIr wIr glV -mPr +xAR nax nax uvg @@ -84572,11 +84004,11 @@ hLY saC lmY iBI -iQe +hmV pfj -jjV +hdQ cuu -jVC +ban tiQ tiQ kEx @@ -84588,9 +84020,9 @@ saC uhx pwX pwX +qjG saC -saC -tTv +oUq men sse iZS @@ -84599,14 +84031,14 @@ wIx jfH men iQb -tTv +oUq bUN saC saC saC saC saC -tTv +oUq mVm sBH kXY @@ -84728,7 +84160,7 @@ jmv wIr wIr vdp -mPr +xAR nax nax nax @@ -84815,9 +84247,9 @@ saC yaj qjG qjG -saC -saC -tTv +qjG +pwC +oUq nHg hzV iZS @@ -84825,15 +84257,15 @@ jkJ xLi men men -tTv -tTv -tTv +oUq +oUq +oUq saC saC saC saC -tTv -tTv +oUq +oUq mVm hrl kXY @@ -84955,7 +84387,7 @@ tkf pfD rQg vdp -mPr +xAR mPr nax nax @@ -85026,33 +84458,33 @@ hLY qJE ujg iDg -iRV +hna yiu -xzu -jCQ -jWr +aWX +jef +pfj xmD xmD -jVC +bXl miH saC saC saC -qgx +cYe yaj qjG qjG -qgx -saC -tTv +rbZ +pwC +oUq men kUF gWu neI xLi men -tTv -tTv +oUq +oUq oUq oUq oUq @@ -85182,7 +84614,7 @@ tkf hYL rQg vdp -mPr +xAR mPr nax nax @@ -85257,28 +84689,28 @@ iSc wTq wTq wTq -jWB +bhh xYD kry -jjV +cxE miH saC saC saC -pwC +dhJ yaj qjG qjG -saC -saC -tTv -tTv +qjG +dhJ +oUq +oUq cUA nMX pco jzB -tTv -tTv +oUq +oUq oUq oUq ucY @@ -85371,7 +84803,7 @@ jmG oQN vBd wtT -pnu +sES vBd eVc vVS @@ -85380,11 +84812,11 @@ gwP ild xJd jwM -khd +jmG wZt jwM nPc -khd +jmG xDD xDD jmG @@ -85409,7 +84841,7 @@ oLa hYL rQg vdp -mPr +xAR mPr mPr nax @@ -85481,23 +84913,23 @@ qJE lmY iFV iDg -jey +hdQ jlh jEk -hef +bCd kmP xmD -jVC +bXl kXa saC saC saC -pwC +dhJ yaj qjG qjG -saC -saC +qjG +dhJ saC saC afL @@ -85505,7 +84937,7 @@ sfc xSE bCX iQb -tTv +oUq oUq cCL sGv @@ -85607,11 +85039,11 @@ eHF ftK pMs jEW -khd +jmG nnB fvN ful -khd +jmG xDD xDD jmG @@ -85636,7 +85068,7 @@ dgY hYL rQg vdp -mPr +xAR mPr mPr mPr @@ -85722,17 +85154,17 @@ pwC qjG yaj qjG +qjG pwC saC saC saC -saC hXt saC jkJ mIq iQb -tTv +oUq oUq vVx fHH @@ -85834,11 +85266,11 @@ jmG jmG jmG jmG -khd +jmG eNc wZy teO -khd +jmG aZj aZj jmG @@ -85854,16 +85286,16 @@ jmG xAR mPr hFX -tEu -bYV +iVU +jeD wIr wIr bZV mpF wIr wIr -rZK -gGM +jfK +jCQ mPr mPr mPr @@ -85959,7 +85391,7 @@ kwg jkJ xLi iQb -tTv +oUq oUq oUq suS @@ -86081,7 +85513,7 @@ jmG xAR mPr tEu -tOo +iUX wIr wIr pNJ @@ -86090,7 +85522,7 @@ xnp tPa wIr wIr -dGD +jIQ mcO mPr mPr @@ -86186,7 +85618,7 @@ kwg jkJ xLi nMw -tTv +oUq oUq hEJ kgR @@ -86225,7 +85657,7 @@ wcp wwM jYZ hlH -hVh +jHm jtZ lvX lvX @@ -86298,7 +85730,7 @@ qNR ifB ptp jmG -khd +jmG ycH gQV piY @@ -86413,7 +85845,7 @@ uZV neI xLi men -tTv +oUq oUq xuQ fHH @@ -87330,15 +86762,15 @@ eZF lfj lfj yje +lfj bjd -nTj -nTj -nTj +qqN +qqN sPH -nTj -nTj -nTj -cpy +hXP +qqN +qqN +qqN ien rxI nri @@ -87555,17 +86987,17 @@ tiQ bjd pqQ tdM -vFD +gqG yje +lfj bjd -nTj qqN vqe bjC -vqe +bjC isL -nTj -ien +iGl +qqN ien ien nGU @@ -87766,7 +87198,7 @@ saC cnA hdQ xmD -xQc +qjG qJE xQc qJE @@ -87784,15 +87216,15 @@ qEQ lYK hvh pqQ +lfj bjd -nTj qqN tbK oan wjP -isL -nTj -cpy +ifh +iGl +qqN ien rxI nLF @@ -87887,12 +87319,12 @@ yhi xPK oTG jmG -khd +jmG pjm opQ ydy -ydy -mUo +opQ +opQ jmG xzK xxq @@ -87992,8 +87424,8 @@ saC eBm gWg xmD -xQc -xQc +qjG +qjG qJE xQc xQc @@ -88011,15 +87443,15 @@ qEQ lYK hvh pqQ +lfj bjd -nTj -ipH -cbn -aLG +qqN +vrE +mNI tLX +igp bjC -nTj -ien +qqN ien ien rxI @@ -88117,9 +87549,9 @@ jmG uYq aVX meb -ubJ -ubJ -ubJ +meb +meb +aVX jmG hMz fWG @@ -88184,14 +87616,14 @@ aEL aEL aEL jcl -jVa +jcl jcl jcl ewp fIe fIe fIe -aWX +fIe fIe fMd ewt @@ -88217,9 +87649,9 @@ mZU wXA hwG syg -jjV xmD -cHu +xmD +tMV jVC qJE qJE @@ -88238,15 +87670,15 @@ qEQ lYK hvh pqQ +lfj bjd -nTj -icM -cbn +qqN +hNj mNI -tLX +hXZ +igp bjC -nTj -ien +qqN ien ien ien @@ -88339,14 +87771,14 @@ yhi spM jmG jmG -khd +jmG vBd brk rdF ild -ban -ubJ -ubJ +jwM +iTn +iUT jmG hMz fWG @@ -88445,8 +87877,8 @@ yiu cpZ kda qJE -xQc -xQc +qjG +qjG xmD mPY qJE @@ -88465,15 +87897,15 @@ eZF lYK hvh eZF +lfj bjd -nTj -ipH +qqN vrE aJr -tLX +hYk +igp bjC -nTj -ien +qqN ien ien cpy @@ -88569,7 +88001,7 @@ jmG eSy ild dco -ild +iSF jwM liN ild @@ -88672,7 +88104,7 @@ yiu wvB xmD qJE -xQc +qjG xmD xmD mPY @@ -88692,15 +88124,15 @@ pqQ lYK hvh eZF +lfj bjd -nTj qqN -gzw +tbK spn nCC -isL -nTj -cpy +igA +iGl +qqN cpy cpy cpy @@ -88741,7 +88173,7 @@ gwR sjy sjy sjy -gEA +cxn sjy sjy cBs @@ -88793,8 +88225,8 @@ onX wiE uFF wFB -xqi -ild +jCU +iSF ild ild hOB @@ -88864,7 +88296,7 @@ aLJ dDS iZI fFw -fib +iZI jcl aCQ dXd @@ -88873,10 +88305,10 @@ jcl swu hwt jcl -eHp +swu dHk -gKD -gpu +vAu +lkx tra saC saC @@ -88898,8 +88330,8 @@ yiu yiu wvB xmD -xQc -xQc +qjG +qjG hdQ iQe vIS @@ -88919,15 +88351,15 @@ pqQ lYK hvh pqQ +lfj bjd -nTj qqN +tbK bjC -gNN +hZn bjC -isL -nTj -cpy +iGl +qqN cpy cpy cpy @@ -89091,7 +88523,7 @@ iZI dDS iZI iZI -svW +iZI jcl aCQ evx @@ -89100,11 +88532,11 @@ nTl jcl hwt jcl -svW +iZI dYX -hRy -gqG -gOo +lXC +lXC +lXC saC saC saC @@ -89125,7 +88557,7 @@ yiu uul dZG xmD -seF +qjG qJE lrQ dRy @@ -89146,15 +88578,15 @@ eZF lYK hvh pqQ +lfj bjd -nTj -nTj -nTj -nTj -nTj -nTj -nTj -cpy +qqN +qqN +qqN +qqN +qqN +qqN +qqN cpy cpy cpy @@ -89204,7 +88636,7 @@ pNs xGf xGf whR -pGl +kqb mOG qcA fpl @@ -89318,7 +88750,7 @@ fib fXU fib fib -svW +aLJ jcl aCQ emr @@ -89327,12 +88759,12 @@ nTl dBe qZB jVa -svW +nno dYX -jcl -jcl -gOG -heF +lXC +lXC +lXC +aCQ saC saC saC @@ -89352,7 +88784,7 @@ yiu hLY knt kOF -seF +qjG qJE iQe baG @@ -89373,14 +88805,14 @@ pqQ lYK hvh qEQ -bjd -moe -moe -moe -moe -moe -moe -moe +lfj +mPj +mPj +mPj +mPj +mPj +mPj +mPj cpy cpy cpy @@ -89545,20 +88977,20 @@ iZI dDS iZI iZI -svW +aLJ jVa fLP wSb nTl nTl -jcl +akk hwt jcl -svW +nno dYX -hRy -grz -uNT +lXC +lXC +lXC aCQ saC saC @@ -89575,11 +89007,11 @@ vjl vjl xzu xzu -xzu +aWX hLY knt -xQc -xQc +qjG +qjG srf dRy yiu @@ -89600,16 +89032,16 @@ pqQ lYK hvh qEQ +lfj +mPj +hgo +hNV +gOo +lfj bjd -bjd -bjd -bjd -bjd -bjd -bjd -alI -alI -alI +mPj +mPj +cpy cpy cpy cpy @@ -89658,7 +89090,7 @@ mUS jxT kqb kqb -pGl +kqb kqb kqb bJp @@ -89781,7 +89213,7 @@ fLA eVW hwt jcl -svW +nno rbW tiQ tiQ @@ -89805,7 +89237,7 @@ vlq xwZ syg iqz -xQc +qjG qJE qJE aox @@ -89827,16 +89259,16 @@ pqQ lYK hvh eZF -bjd -okj +lfj +vJw vJw apd apd lfj +lfj +lfj bjd -bjd -bjd -alI +mPj cpy cpy cpy @@ -89885,7 +89317,7 @@ oMn oYZ pTl pKX -nlY +xBS xXg kqb kqb @@ -89928,7 +89360,7 @@ wiE wiE uGl six -sUj +jCU jwM ild vBd @@ -90007,12 +89439,12 @@ ojn swu swu hwt -aEL -svW +jcl +iZI dYX -hRy -ifh -gOo +lXC +lXC +lXC aCQ lXC saC @@ -90061,9 +89493,9 @@ woU woU xXv lfj -bjd -bjd -alI +lfj +lfj +mPj cpy cpy cpy @@ -90088,9 +89520,9 @@ uog xBo nnz oVD -plz +xjF xFp -sYk +xZP uNB xUQ ykc @@ -90112,8 +89544,8 @@ djM xAZ pTl uNB -nlY -ylr +xBS +xXg wIi kqb kqb @@ -90155,7 +89587,7 @@ yhi wiE spM jmG -aza +iRV jwM ild vBd @@ -90234,21 +89666,21 @@ swu swu swu hwt -aEL -cWH -dYX jcl -jcl -gOG -heU +swu +dYX +lXC +lXC +lXC +aCQ lXC ijO saC tiQ -tiQ saC saC -tiQ +saC +saC tiQ saC saC @@ -90259,7 +89691,7 @@ vjl qjG hLY knt -whK +tMV xmD hna yiu @@ -90278,8 +89710,8 @@ pAw tiQ bjd yje -lYK -jZE +eMm +grz hNP hNP hNP @@ -90289,8 +89721,8 @@ vFD dfK xXv lfj -bjd -alI +lfj +mPj cpy cpy cpy @@ -90310,14 +89742,14 @@ xjF vSc xjF gCO -hKz +meM wgW wgW jRT jRT ryO xFp -sYk +xZP uNB xUQ xAZ @@ -90339,8 +89771,8 @@ xOw ykT xUQ uNB -xOB -tTD +xBS +xXg ylr ylr ylr @@ -90382,7 +89814,7 @@ wiE wEW hzu wFB -bhh +jCU ild jwM vBd @@ -90462,20 +89894,20 @@ swu swu hwt jcl -mrL +swu dYX -hRy -oUC -uNT +lXC +lXC +lXC aCQ lXC lXC tiQ tiQ -icr -kHX -iSF -jeD +saC +saC +saC +saC tiQ saC saC @@ -90505,19 +89937,19 @@ jpm tiQ bjd yje -abL -qsW +lfj +eMm qsW qsW qsW cgn mqx jZE -vFD +hZK pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90544,7 +89976,7 @@ jRT sgV ryO xFp -sYk +xZP uNB pTl xAZ @@ -90566,8 +89998,8 @@ xOw ykT xUQ uNB -xOB -tTD +xBS +dCJ tTD sKJ sKJ @@ -90609,7 +90041,7 @@ taw aYQ gJM jmG -sBz +jCU ild jwM okA @@ -90689,7 +90121,7 @@ eAz lFk hwt jcl -mrL +swu dYX tiQ tiQ @@ -90698,11 +90130,11 @@ hfi lXC lXC tiQ -hTI -aCQ -dhJ -iTn -jfK +saC +saC +saC +saC +saC tiQ jEq saC @@ -90713,7 +90145,7 @@ yiu yiu lDc lMN -whK +tMV mnw qjG yiu @@ -90740,11 +90172,11 @@ tyU lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90771,7 +90203,7 @@ ydb val ryO xFp -sYk +xZP uNB pTl ykT @@ -90793,8 +90225,8 @@ xOw xAZ pTl uNB -xOB -tTD +xBS +dCJ tTD sKJ tTD @@ -90827,7 +90259,7 @@ fdb vNk vNk vNk -eds +vNk vNk mFA eur @@ -90916,20 +90348,20 @@ nTl nTl nTl lXC -eHp +swu dYX -jcl -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC tiQ -sBg -hXP -tra -tCX -tFZ +saC +saC +saC +saC +saC tiQ lKl xmD @@ -90940,7 +90372,7 @@ leH lmu lDr lNI -aqo +qET ugN pHT lXQ @@ -90956,10 +90388,10 @@ xmD knt xmD skk -tiQ -bjd +lTi bjd bjd +eRg wRf bjd hKI @@ -90967,11 +90399,11 @@ hFA lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -90996,9 +90428,9 @@ wgW wgW ydb xRQ -plz +xjF xFp -sYk +xZP pKX pKX vnq @@ -91020,8 +90452,8 @@ qCd dak pKX pKX -xOB -tTD +xBS +dCJ tTD tTD tTD @@ -91061,7 +90493,7 @@ lot aTR xvl xvl -cxE +jmG jmG jmG xzK @@ -91143,20 +90575,20 @@ nTl nTl nTl lXC -eLx +lXC dYX -jcl -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC tiQ tiQ -idq -jcl -jcl -kkq +saC +saC +saC +saC tiQ jEu xmD @@ -91182,9 +90614,9 @@ xVq liK gyC pfj -pvz -tiQ -tiQ +ayX +qjG +lTi bjd rMD eZF @@ -91194,11 +90626,11 @@ bjd lYK mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -91225,8 +90657,8 @@ jRc xjF xjF xFp -aDj -xAw +xZP +pKX nvt ykT kGb @@ -91246,9 +90678,9 @@ fyl kcd oig cLQ -xAw -lCn -tTD +pKX +xBS +dCJ tTD tTD tTD @@ -91288,8 +90720,8 @@ icW eHI xvl xvl -akk -xxq +teD +xzK xxq xxq xxq @@ -91372,19 +90804,19 @@ nTl nTl nTl dYX -jcl -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC -hME -hUY -ier -hRW -kHX -jcl -dAG +saC +saC +saC +saC +saC +saC +saC tiQ jYE xYD @@ -91392,8 +90824,8 @@ knt lAD saC saC -seF -xQc +cWH +cHy saC saC myV @@ -91421,22 +90853,22 @@ cZH jDN mqx nJW -hvh +icr eZF lfj -bjd -alI +lfj +mPj cpy cpy cpy cpy cpy ien -tNQ -qSH -qSH +cRN +vTx +vTx trV -pZo +eQu vGp eKe xFp @@ -91474,9 +90906,9 @@ qqx pag bia gYH -lDE -tTD -tTD +xBS +dCJ +rnB tTD tTD tTD @@ -91516,7 +90948,7 @@ agM xvl xvl xWO -fWG +hMz fWG fWG fWG @@ -91605,13 +91037,13 @@ hRW egD lXC lXC -iZI -hVk -igp -swu -iUT -kHX -evx +saC +saC +saC +saC +saC +saC +saC xQc lAK xYD @@ -91622,7 +91054,7 @@ ncA lDN pxN saC -xQc +cHy sdR lNA wXA @@ -91640,7 +91072,7 @@ pfj qjG qjG bjd -nRy +lfj pqQ bjd fSf @@ -91648,11 +91080,11 @@ cZH mqx mqx mqx -hvh +icr pqQ qpd -bjd -alI +gOo +mPj cpy cpy cpy @@ -91663,7 +91095,7 @@ vGB vGB wDj wDj -pZo +fcW vGp vGp eKe @@ -91701,10 +91133,10 @@ mTK sdC dvp uKy -lDE -tTD -tTD -tTD +xBS +dCJ +rnB +rnB tTD tTD cpy @@ -91742,8 +91174,8 @@ xgA bsG vOT xvB -xWO -fWG +otS +hMz fWG fWG fWG @@ -91831,14 +91263,14 @@ enr elx elx elx -elx -hNj -hXA -fvQ -fDC -gwk -hgQ -exB +aDS +saC +saC +saC +saC +saC +saC +saC xQc xmD xmD @@ -91849,7 +91281,7 @@ nwR oem maj maj -seF +cWH knt hna yiu @@ -91867,19 +91299,19 @@ oyK ayX vKP bjd -osm +lfj pqQ bjd fSf -cZH -cgn -mqx -mqx -hvh +heU +qsW +qsW +qsW +idq pqQ qpd -bjd -alI +gOo +mPj cpy cpy wDj @@ -91906,8 +91338,8 @@ qSH qSH qSH qSH -cfv -xAw +sPh +pKX xnI ykT djM @@ -91927,11 +91359,11 @@ art gNn mgb rUe -xAw +pKX xBS -tTD -tTD -tTD +dCJ +rnB +rnB tTD tTD tTD @@ -91969,8 +91401,8 @@ aSZ acE vOT xvB -xWO -fWG +otS +hMz fWG fWG cpy @@ -92059,18 +91491,18 @@ lXC lXC lXC lXC -iZI -hXP -egY -cHy -jIQ -bXl -jcl +saC +saC +saC +saC +saC +saC +saC xQc tMV tMV kne -xQc +cHy mkb lnd xYD @@ -92099,14 +91531,14 @@ pqQ bjd bjd bjd -lYK -mqx -mqx -hvh +rMD +rMD +rMD +lfj pqQ qpd -bjd -alI +gOo +mPj cpy cpy wDj @@ -92133,7 +91565,7 @@ rMR qSH qSH vGp -onj +sPh pKX pKX pKn @@ -92155,10 +91587,10 @@ heX jMk pKX pKX -xOB -tTD -tTD -tTD +xBS +dCJ +rnB +rnB tTD tTD tTD @@ -92196,8 +91628,8 @@ eMD qZd xvl xvl -xWO -fWG +otS +hMz fWG cpy uwT @@ -92286,24 +91718,24 @@ tra egY lXC lXC -hNV -hXZ -igp -swu -iUX -tCX -jcl +saC +saC +saC +saC +saC +saC +saC xQc jjV xmD knt -xQc +cHy mlp nxQ oKK pDM qTE -xQc +cHy wyA hna yiu @@ -92321,21 +91753,21 @@ jWB lKl lTi bjd -lul +lfj dfK qKO xLr -xXv -lYK -mqx -mqx -hvh +hfE +xsE +xsE +xsE +lfj pqQ qpd -bjd -alI -alI -alI +mPj +mPj +mPj +mPj wDj cPg eJR @@ -92360,7 +91792,7 @@ qSH qSH vGp vGp -onj +sPh uNB xUQ ykT @@ -92382,11 +91814,11 @@ iGn uOp bSI uNB -xOB -tTD -tTD -tTD -tTD +xBS +dCJ +rnB +rnB +rnB sKJ tTD tTD @@ -92423,8 +91855,8 @@ xje ffb xvl xvl -xWO -fWG +otS +hMz dBD sps sps @@ -92507,30 +91939,30 @@ nTl nTl nTl vQn -aEL -aEL -jcl +lXC +lXC +lXC aCQ lXC lXC -iZI -hYk -aDS -tra -tCX -jcl -cYe +saC +saC +saC +saC +saC +saC +saC tiQ dXo xYD kpE -xQc -xQc +cHy +cHy nEd piW pEp -xQc -xQc +cHy +cHy knt hna qFW @@ -92549,18 +91981,18 @@ asH tiQ bjd dXX -pWC rMD -bjd -pqQ -lYK -mqx -mqx -hvh +rMD +lao eZF -bjd -bjd -bjd +xsE +xsE +xsE +lfj +eZF +lfj +lfj +lfj bjd bjd mPj @@ -92587,7 +92019,7 @@ qSH qSH vGp vGp -onj +sPh uNB xUQ xAZ @@ -92609,9 +92041,9 @@ sAp vHw fEF uNB -xOB -tTD -tTD +xBS +dCJ +rnB sKJ sKJ sKJ @@ -92650,8 +92082,8 @@ xhD acE vOT xvB -xWO -fWG +otS +hMz qjO ylo ylo @@ -92734,29 +92166,29 @@ nTl nno lXC hwt -jVa -jcl -jcl +lXC +lXC +lXC fkW lXC lXC hOy -tiQ -qyp -jcl -jcl -bCd +saC +saC +saC +saC +saC tiQ jEu xmD xYD kpE xmD -xQc -xQc -seF -xQc -xQc +cHy +cHy +cWH +cHy +cHy uQi knt juw @@ -92775,19 +92207,19 @@ seF tiQ tiQ bjd +eZq +gwk +lfj bjd -bjd -bjd -bjd -qEQ -abL -cgn -mqx -hvh -dfK -woU -woU -woU +yje +xsE +xsE +xsE +xsE +hRy +hVk +hVk +hVk xnX gib mPj @@ -92798,7 +92230,7 @@ iMQ wDj wDj wDj -pRv +fda xSv xSv xSv @@ -92814,7 +92246,7 @@ qSH vGp vGp vGp -onj +sPh uNB pTl xAZ @@ -92836,9 +92268,9 @@ xOw snb rkV uNB -xOB -tTD -hrk +xBS +xXg +vlT vlT vlT vlT @@ -92877,8 +92309,8 @@ xgA acE vOT xvB -xWO -fWG +otS +hMz qjO ylo byR @@ -92961,18 +92393,18 @@ nTl lXC swu hwt -jVa -jcl -jcl +lXC +lXC +lXC aCQ lXC lXC tiQ -hZn -aAb -hRW -kHX -jhY +saC +saC +saC +saC +saC tiQ jjV xmD @@ -93001,20 +92433,20 @@ xmD kss tiQ tiQ -alI -alI -alI -alI +bjd +fvQ +fvQ +bjd bjd lwr -rSs -abL -cgn -jZE -hNP -hNP -hNP -efM +hgQ +xsE +xsE +xsE +xsE +xsE +xsE +xsE caV pcV xLr @@ -93023,9 +92455,9 @@ gjA rtX wDj wDj -vGp -vGp -pZo +xFp +xFp +fcW qSH qSH qSH @@ -93041,7 +92473,7 @@ qSH vGp vGp kqp -sYk +xZP uNB xUQ xnI @@ -93063,8 +92495,8 @@ bSa xAZ xUQ uNB -nlY -vlT +xBS +xXg wIi tTK tTK @@ -93104,8 +92536,8 @@ xjY qZd xvl xvl -xWO -fWG +otS +hMz qjO ylo sGj @@ -93195,11 +92627,11 @@ aCQ lXC lXC tiQ -hZK -aCQ -fMT -iVk -jic +saC +saC +saC +saC +saC tiQ jjV iQe @@ -93228,21 +92660,21 @@ pfj vAX kJc tiQ -saC -saC -saC -alI +bjd +fDC +gNN +bjd bjd gzY ama -kbb -abL -qsW -qsW -qsW -qsW +hgQ xsE -eZF +xsE +xsE +xsE +xsE +xsE +iLC tyb lao iJE @@ -93252,7 +92684,7 @@ vGB mTa oqn pdv -umR +fcW qSH qSH qSH @@ -93268,7 +92700,7 @@ vGp vGp kqp xFp -xAw +pKX pKX pKX kIZ @@ -93290,7 +92722,7 @@ vfK rie xUQ pKX -nlY +xBS xXg tTK tTK @@ -93331,8 +92763,8 @@ qIE wog xvl xvl -xWO -fWG +otS +hMz qjO jOF oiR @@ -93415,18 +92847,18 @@ hwt jcl swu hwt -hRy -ifh -gOo +lXC +lXC +lXC aCQ lXC lXC tiQ tiQ -igA -tCX -iVU -jig +saC +saC +saC +saC tiQ xmD hna @@ -93453,22 +92885,22 @@ xSL txo jef pfj -tfK +eHp tiQ -saC -saC -saC -alI +bjd +fDC +gNN +fDC bjd bjd -lfj -eTQ -woU -aLf +rMD +hRy +hVk ubF ubF -woU -woU +ubF +hVk +hVk otx qYy mPj @@ -93479,7 +92911,7 @@ vGB ncz kKj pgp -umR +fcW qSH qSH vGp @@ -93558,8 +92990,8 @@ xhD bsG kEQ xvB -xWO -fWG +otS +hMz qjO ylo hYf @@ -93640,19 +93072,19 @@ mrL lFd qZB jVa -pgJ +mrL hwt -jcl -jcl -gRV -hfE lXC lXC -swu -tiQ -mRh -iGl +lXC +fkW +lXC +lXC +mrL tiQ +saC +saC +saC tiQ tiQ vjl @@ -93680,22 +93112,22 @@ csy wWc pfj syV -kJc -tiQ -saC -saC -saC -alI -alI -bjd -bjd -bjd -bjd -bjd -bjd +eLx +vKP bjd +rMD +gOo +rMD bjd bjd +rMD +xsE +xsE +xsE +xsE +rMD +rMD +rMD bjd bjd mPj @@ -93706,7 +93138,7 @@ wDj nff oxT pgG -umR +fcW qSH vGp vGp @@ -93785,8 +93217,8 @@ xhD bsG vOT xvB -xWO -fWG +otS +hMz qjO ylo ylo @@ -93867,18 +93299,18 @@ swu swu hwt jcl -svW +nno hwt -hRy -oUC -uNT -aCQ lXC lXC -swu -swu -swu -jcl +lXC +aCQ +lXC +nno +mrL +saC +saC +saC saC saC saC @@ -93908,18 +93340,18 @@ lmY sfM hLY xmD -tiQ -saC -saC -saC -saC -alI -alI -alI -alI -alI -alI -alI +qjG +bjd +rMD +lfj +lfj +fDC +bjd +rMD +xsE +xsE +xsE +rMD wDj wDj wDj @@ -93930,10 +93362,10 @@ vGB moQ vGB wDj -qSH -qSH -qSH -umR +xFp +xFp +dHF +feF vGp vGp vGp @@ -94013,7 +93445,7 @@ eHI xvl xvl xwv -fWG +hMz gBy mUr kSm @@ -94094,17 +93526,17 @@ jcl swu hwt jcl -svW +nno bye tiQ tiQ tiQ -aCQ -lXC -lXC -iRY -swu -jcl +fmB +nno +nno +lFd +saC +saC saC saC saC @@ -94135,30 +93567,30 @@ lmY sfM hLY ayX -tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +qjG +bjd +lfj +gOo +gOo +rMD +lao +rMD +xsE +xsE +rMD wDj wDj -saC -saC -saC +sOL +sOL +sOL wDj eOT sOL sOL sOL wDj -qSH -qSH +xFp +ezj qSH umR vGp @@ -94240,7 +93672,7 @@ acE kEQ xvl otS -fWG +hMz fWG fWG uwT @@ -94312,7 +93744,7 @@ fib gbQ jYj jYj -eFP +elx fIe egd ewt @@ -94321,16 +93753,16 @@ nTl jcl hwt jcl -svW +lXC hwt -hRy -ifh -eMm -aCQ lXC lXC -swu -swu +lXC +fmB +nno +nno +saC +saC saC saC saC @@ -94361,22 +93793,22 @@ xME hYg jWB eIT -kJc -tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +eLx +qjG +bjd +fMT +gOo +gOo +lfj +lao +hME +hTI +hTI +ier wDj -saC -saC -saC +sOL +eJR +eJR arN vGB sOL @@ -94384,8 +93816,8 @@ eJR eJR fQD vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94467,7 +93899,7 @@ acE kEQ meK otS -fWG +hMz cpy cpy uwT @@ -94539,20 +93971,20 @@ iZI dDS iZI iZI -svW +lXC jVa fLP iOt nTl nTl -dBe -qZB -jVa -svW +ame hwt jcl -jcl -eRg +lXC +hwt +lXC +lXC +nno fmB saC saC @@ -94586,23 +94018,23 @@ sDf kpo wQs llG -noD +dAG lMF -iDg -tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +nqQ +lTi +bjd +fMT +lfj +gRV +rMD +bjd +bjd +hUY +hXA +hUY wDj -saC -saC +sOL +eJR iJE hZg vGB @@ -94611,8 +94043,8 @@ rlB azE qYp vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94694,7 +94126,7 @@ bsG kEQ xvl otS -fWG +hMz cpy uwT uwT @@ -94766,7 +94198,7 @@ iZI dDS iZI iZI -svW +lXC jcl aCQ evx @@ -94775,11 +94207,11 @@ nTl jcl hwt jcl -svW +lXC hwt -hRy -gqG -eZq +lXC +lXC +nno saC saC saC @@ -94817,18 +94249,18 @@ jWB teE mpQ tiQ -saC -saC -saC -saC -saC -saC -saC -saC -saC -saC +bjd +bjd +gOG +heF +bjd +bjd +bjd +bjd +bjd +bjd wDj -saC +sOL hhJ sOL sOL @@ -94838,8 +94270,8 @@ rlB eJR loS vGB -qSH -qSH +xFp +ezj qSH umR vGp @@ -94920,8 +94352,8 @@ icW oPW xvl xvl -naZ -uwT +xwv +hMz fWG uwT uwT @@ -94993,7 +94425,7 @@ iZI dDS iZI iZI -fib +iZI jcl aCQ equ @@ -95002,7 +94434,7 @@ jcl dXd fbC fIe -ame +oWq fDn fDH fFE @@ -95045,18 +94477,18 @@ cXi tiQ tiQ saC -saC -saC -saC -saC +bjd +bjd +bjd +bjd saC saC saC saC saC wDj -saC -saC +wDj +wDj ygD jJI uaY @@ -95065,8 +94497,8 @@ eJR eJR xJg wDj -aij -qSH +dsl +ezj qSH umR qSH @@ -95147,8 +94579,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz fWG fWG uwT @@ -95292,8 +94724,8 @@ rlB eJR rtX wvX -nTp -qSH +esB +ezj qSH umR qSH @@ -95374,8 +94806,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz fWG fWG uwT @@ -95519,8 +94951,8 @@ rlB iJE rtX ygD -nTp -qSH +esB +ezj qSH umR qSH @@ -95594,15 +95026,15 @@ uuD uuD lFO gIg -wrY +imT xvl xvl xjY qZd xvl xvl -xWO -uwT +otS +hMz uwT fWG fWG @@ -95682,7 +95114,7 @@ jcl jcl evx jcl -jVa +jcl jcl jcl jcl @@ -95746,8 +95178,8 @@ hcE sjQ wJk wDj -bcl -qSH +euN +ezj qSH umR qSH @@ -95821,15 +95253,15 @@ evv uuD uuD xXg -rIr +imT xvl xvl xje wog xvl xvl -xWO -uwT +otS +hMz uwT uwT fWG @@ -95973,8 +95405,8 @@ eJR azE wJk wDj -qSH -qSH +xFp +ezj qSH qQB qDV @@ -96055,8 +95487,8 @@ xhD bsG kEQ xvB -xWO -uwT +otS +hMz uwT uwT fWG @@ -96200,8 +95632,8 @@ eJR eJR mnx wDj -qSH -qSH +xFp +ezj qSH qSH umR @@ -96282,13 +95714,13 @@ xgA bsG vOT xvB -xWO -uxT +otS +hMz +kIV sps sps sps -dsl -uwT +ppD uwT uwT uwT @@ -96427,8 +95859,8 @@ sOL sOL sOL wDj -ltB -ltB +eyh +eyh ltB ltB bBW @@ -96502,20 +95934,20 @@ rOg qJH qUs xXg -iQR +imT xvl xvl xjY qZd xvl xvl -xWO -ppD +otS +hMz +nIu xkO xkO xkO -tKC -uwT +qpD uwT uwT uwT @@ -96729,20 +96161,20 @@ rOg jrJ qUs xXg -wrY +imT xvl xvl xje wog xvl xvl -xWO -ppD +otS +hMz +nIu xkO vZn waD -ujy -uwT +tKC uwT uwT uwT @@ -96899,7 +96331,7 @@ vGp cpy pZo tWt -nSE +tDS tDS thc thc @@ -96956,20 +96388,20 @@ bHT qiw uuD xXg -wrY +imT xvB kEQ xhD bsG kEQ xvB -xWO -ppD +otS +hMz +nIu xkO xkO xkO -tKC -uwT +qpD uwT uwT uwT @@ -97183,20 +96615,20 @@ bJG uuD uuD xXg -wrY +imT xvB vOT xhD bsG vOT xvB -xWO -ppD +otS +hMz +nIu xkO ipC waD -ujy -uwT +tKC uwT uwT uwT @@ -97410,20 +96842,20 @@ uuD uuD viG xXg -wrY +imT xvl xvl jVz wog xvl xvl -xWO -ppD +otS +hMz +nIu xkO xkO xkO -tKC -fWG +qpD uwT uwT uwT @@ -97637,20 +97069,20 @@ xXg xXg xXg xXg -wrY +imT xvl xvl icW oPW xvl xvl -xWO -kIV +otS +hMz +oaj mUr mUr -apS wRk -fWG +ujy uwT uwT uwT @@ -97788,7 +97220,7 @@ dVo ipf qxX qUq -kNM +guj nLW oBx nTg @@ -97864,15 +97296,15 @@ xXg xXg xXg xXg -wrY +imT xvl xvl lot vdz xvl xvl -xWO -uwT +otS +hMz uwT uwT fWG @@ -98098,8 +97530,8 @@ swF fzV qqR cUG -xWO -uwT +iQR +hMz uwT uwT fWG @@ -98325,8 +97757,8 @@ xRw uaI eHB cUG -tti -uwT +xzK +cpk uwT uwT fWG @@ -99414,10 +98846,10 @@ mgk vUb gdO gdO -psC +gdO ayn wHY -psC +gdO gdO tTK tTK @@ -101000,7 +100432,7 @@ umR vGp vGp vGp -uRb +fhQ gdO gdO gdO @@ -101227,16 +100659,16 @@ umR qSH vGp vGp -hHh -sYk +eKe +xZP gdO ene vTW puJ ufU gdO -nlY -ylr +xBS +xXg ylr ylr ylr @@ -101462,8 +100894,8 @@ vDa pej ufU raj -xOB -sKJ +lDE +dCJ tTD rnB rnB @@ -101689,8 +101121,8 @@ vDa pej rMr gdO -lCn -tTD +lDE +dCJ rnB rnB rnB @@ -101917,7 +101349,7 @@ puJ pej uBd lDE -rnB +dCJ rnB rnB rnB @@ -102144,7 +101576,7 @@ puJ pej qZC lDE -rnB +dCJ rnB rnB rnB @@ -102363,15 +101795,15 @@ vGp vGp vGp vGp -gBb +ioD gdO ene pej pej ufU gdO -xBS -rnB +lDE +dCJ rnB rnB rnB @@ -102597,8 +102029,8 @@ pej pej ufU raj -xOB -rnB +lDE +dCJ rnB rnB rnB @@ -102817,7 +102249,7 @@ vGp vGp kQJ tPb -onj +sPh gdO ene puJ @@ -102825,7 +102257,7 @@ puJ ene gdO cpy -rnB +dCJ rnB rnB rnB @@ -103475,14 +102907,14 @@ nSF qUL sct sIA -tth -uDM -tth -uXj -uXj -tth -xkk -tth +dpS +qbP +dpS +xyu +xyu +dpS +gdr +dpS fLa bpZ wRL @@ -103702,18 +103134,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 @@ -103929,18 +103361,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 @@ -104156,18 +103588,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 @@ -104383,14 +103815,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 becac81a1897..6f03ce4c2cba 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" @@ -1905,7 +1895,7 @@ /area/lv624/ground/barrens/east_barrens/ceiling) "aja" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/gm/dirtgrassborder/east, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, /area/lv624/ground/jungle/west_jungle) "ajc" = ( /obj/structure/blocker/forcefield/multitile_vehicles, @@ -2595,9 +2585,9 @@ /turf/open/gm/dirt, /area/lv624/ground/caves/west_caves) "amK" = ( -/obj/effect/landmark/lv624/fog_blocker, -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, -/area/lv624/ground/river/west_river) +/obj/structure/flora/bush/ausbushes/var3/leafybush, +/turf/open/gm/dirt, +/area/lv624/ground/jungle/west_jungle) "amL" = ( /obj/structure/flora/bush/ausbushes/palebush, /turf/open/gm/river, @@ -3071,7 +3061,7 @@ /area/lv624/lazarus/hydroponics) "aqq" = ( /obj/structure/flora/bush/ausbushes/pointybush, -/turf/open/gm/dirtgrassborder/west, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/west_jungle) "aqr" = ( /obj/structure/flora/bush/ausbushes/var3/fernybush, @@ -3272,7 +3262,8 @@ /turf/open/gm/dirtgrassborder/west, /area/lv624/lazarus/quartstorage/outdoors) "arE" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner2/north_east, +/obj/structure/flora/jungle/vines/light_1, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/west_jungle) "arG" = ( /obj/effect/landmark/survivor_spawner, @@ -3347,8 +3338,8 @@ /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/west_jungle) "asd" = ( -/obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirtgrassborder/south, +/obj/structure/flora/jungle/vines/light_3, +/turf/open/gm/dirtgrassborder/west, /area/lv624/ground/jungle/west_jungle) "ase" = ( /turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, @@ -3436,8 +3427,8 @@ }, /area/lv624/lazarus/landing_zones/lz1) "asK" = ( -/obj/structure/flora/bush/ausbushes/pointybush, -/turf/open/gm/grass/grass1, +/obj/structure/flora/jungle/vines/light_3, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "asL" = ( /obj/item/tool/warning_cone, @@ -3507,16 +3498,12 @@ }, /area/lv624/lazarus/research) "asX" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 6 - }, -/turf/open/gm/grass/grass2, +/obj/structure/flora/jungle/vines/light_3, +/turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_jungle) "asY" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 10 - }, -/turf/open/gm/grass/grass2, +/obj/effect/landmark/monkey_spawn, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "asZ" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, @@ -4456,10 +4443,6 @@ icon_state = "whitepurplecorner" }, /area/lv624/lazarus/fitness) -"awz" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "awC" = ( /obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/coast/beachcorner/north_east, @@ -4839,9 +4822,6 @@ icon_state = "whitepurplecorner" }, /area/lv624/lazarus/fitness) -"axV" = ( -/turf/open/gm/dirtgrassborder/north, -/area/lv624/ground/jungle/west_jungle) "axW" = ( /obj/effect/decal/remains/xeno, /obj/structure/fence, @@ -4870,12 +4850,6 @@ /obj/effect/landmark/lv624/xeno_tunnel, /turf/open/gm/grass/grass1, /area/lv624/lazarus/quartstorage/outdoors) -"ayd" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 4 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "ayg" = ( /obj/structure/computerframe, /turf/open/floor/plating{ @@ -4905,12 +4879,6 @@ icon_state = "vault" }, /area/lv624/lazarus/robotics) -"ayl" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 1 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "aym" = ( /obj/structure/machinery/autolathe, /turf/open/floor{ @@ -5080,10 +5048,6 @@ icon_state = "whitepurple" }, /area/lv624/lazarus/research) -"ayN" = ( -/obj/structure/flora/bush/ausbushes/reedbush, -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, -/area/lv624/ground/jungle/west_jungle) "ayO" = ( /obj/item/weapon/baseballbat/metal, /obj/item/weapon/baseballbat/metal{ @@ -5167,12 +5131,6 @@ icon_state = "vault" }, /area/lv624/lazarus/robotics) -"azb" = ( -/obj/structure/prop/mech/mech_parts/part/gygax_torso, -/turf/open/floor{ - icon_state = "vault" - }, -/area/lv624/lazarus/robotics) "azc" = ( /obj/structure/machinery/power/apc{ dir = 1; @@ -5515,13 +5473,6 @@ icon_state = "vault" }, /area/lv624/lazarus/robotics) -"aAk" = ( -/obj/structure/prop/mech/mech_parts/chassis/gygax, -/turf/open/floor{ - dir = 8; - icon_state = "vault" - }, -/area/lv624/lazarus/robotics) "aAl" = ( /turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) @@ -6030,15 +5981,6 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) -"aBR" = ( -/obj/structure/largecrate, -/obj/structure/prop/mech/mech_parts/part/gygax_armor{ - layer = 1 - }, -/turf/open/floor/plating{ - icon_state = "platebot" - }, -/area/lv624/lazarus/robotics) "aBS" = ( /obj/structure/barricade/wooden{ dir = 8 @@ -6381,8 +6323,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) @@ -7852,14 +7795,6 @@ /obj/structure/flora/bush/ausbushes/var3/fernybush, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) -"aIn" = ( -/obj/structure/flora/bush/ausbushes/var3/sunnybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aIo" = ( -/obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "aIp" = ( /obj/structure/surface/table, /obj/effect/landmark/crap_item, @@ -7956,11 +7891,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) @@ -9570,6 +9505,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" = ( @@ -9580,8 +9516,7 @@ req_one_access = null }, /turf/open/floor{ - dir = 9; - icon_state = "brown" + icon_state = "delivery" }, /area/lv624/lazarus/comms) "aPR" = ( @@ -9867,38 +9802,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) @@ -9910,10 +9835,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" @@ -10142,8 +10068,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; @@ -10151,8 +10083,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" @@ -10292,30 +10228,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, @@ -10404,25 +10334,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; @@ -10432,19 +10362,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{ @@ -10468,6 +10388,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" }, @@ -10559,7 +10484,6 @@ /obj/structure/machinery/power/apc{ dir = 1; name = "Telecomms APC"; - pixel_y = 30; start_charge = 15 }, /turf/open/floor{ @@ -10567,7 +10491,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{ @@ -10575,6 +10504,10 @@ }, /area/lv624/lazarus/engineering) "aTN" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor/plating{ icon_state = "warnplate" }, @@ -10701,22 +10634,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" }, @@ -10733,17 +10665,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" }, @@ -10909,6 +10842,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" @@ -10918,9 +10852,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" @@ -10936,9 +10869,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" @@ -10948,15 +10883,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; @@ -10965,7 +10901,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aVk" = ( @@ -11066,11 +11002,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" @@ -11083,22 +11020,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" }, @@ -11197,20 +11140,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" = ( @@ -11219,16 +11163,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" @@ -11324,28 +11268,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, @@ -11357,31 +11311,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" }, @@ -11390,6 +11348,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" }, @@ -11399,6 +11361,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" }, @@ -11468,56 +11431,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" @@ -11530,11 +11482,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{ @@ -11545,7 +11510,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXg" = ( @@ -11556,7 +11521,7 @@ req_one_access = null }, /turf/open/floor{ - icon_state = "dark" + icon_state = "delivery" }, /area/lv624/lazarus/engineering) "aXh" = ( @@ -11581,19 +11546,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" = ( @@ -11614,6 +11589,7 @@ dir = 1 }, /obj/structure/reagent_dispensers/fueltank, +/obj/effect/spawner/random/tool, /turf/open/floor{ icon_state = "dark" }, @@ -11677,11 +11653,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" = ( @@ -11706,6 +11684,7 @@ /obj/structure/machinery/light{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11720,6 +11699,7 @@ /area/lv624/lazarus/security) "aXN" = ( /obj/effect/spawner/random/powercell, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -11766,7 +11746,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" }, @@ -11795,19 +11782,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, @@ -12004,15 +11985,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{ @@ -12021,6 +11993,7 @@ name = "General Listening Channel"; pixel_x = -30 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12031,6 +12004,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" }, @@ -12041,6 +12015,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" }, @@ -12058,9 +12036,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" = ( @@ -12134,6 +12114,7 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "dark" }, @@ -12141,6 +12122,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" }, @@ -12213,14 +12195,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" }, @@ -12234,16 +12230,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" = ( @@ -12301,10 +12299,6 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_central_jungle) -"bbu" = ( -/obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) "bbx" = ( /obj/structure/flora/jungle/vines/light_1, /obj/structure/flora/jungle/vines/heavy, @@ -12312,7 +12306,7 @@ /area/lv624/ground/jungle/east_central_jungle) "bbC" = ( /obj/effect/landmark/hunter_primary, -/turf/open/gm/grass/grass2, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "bbH" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, @@ -12369,11 +12363,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) @@ -12612,6 +12606,13 @@ "bvj" = ( /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/east_caves) +"bvq" = ( +/obj/structure/prop/mech/parts/chassis/gygax, +/turf/open/floor{ + dir = 8; + icon_state = "vault" + }, +/area/lv624/lazarus/robotics) "bvS" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/auto_turf/strata_grass/layer1, @@ -12756,6 +12757,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, @@ -12775,6 +12783,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) @@ -12805,10 +12825,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) @@ -12830,6 +12850,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{ @@ -12866,10 +12893,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, @@ -12964,6 +12998,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) @@ -13016,14 +13056,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, @@ -13152,9 +13196,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" = ( @@ -13179,6 +13226,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, @@ -13338,6 +13397,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, @@ -13371,6 +13441,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"; @@ -13602,6 +13680,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, @@ -13695,10 +13782,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) @@ -13776,6 +13863,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{ @@ -14152,6 +14246,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{ @@ -14167,6 +14271,12 @@ /obj/structure/machinery/colony_floodlight, /turf/open/gm/grass/grass1, /area/lv624/ground/colony/south_medbay_road) +"eot" = ( +/obj/structure/prop/mech/parts/gygax_torso, +/turf/open/floor{ + icon_state = "vault" + }, +/area/lv624/lazarus/robotics) "eoM" = ( /turf/open/floor{ dir = 4; @@ -14232,6 +14342,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, @@ -14254,10 +14374,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, @@ -14446,6 +14574,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{ @@ -14506,11 +14638,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) @@ -14570,6 +14702,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 @@ -14734,6 +14873,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{ @@ -14867,10 +15012,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; @@ -14881,6 +15042,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{ @@ -14893,6 +15060,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) @@ -14983,11 +15160,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) @@ -15078,11 +15255,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) @@ -15105,10 +15282,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" }, @@ -15278,12 +15460,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" @@ -15319,6 +15509,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 @@ -15425,6 +15620,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, @@ -15476,13 +15676,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) @@ -15589,11 +15794,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) @@ -15634,10 +15839,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) @@ -15698,6 +15903,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, @@ -15757,9 +15969,23 @@ /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, +/turf/open/gm/grass/grass1, /area/lv624/ground/jungle/west_jungle) "hJW" = ( /turf/open/gm/dirtgrassborder/south, @@ -15815,6 +16041,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 @@ -15860,6 +16098,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, @@ -15868,6 +16115,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, @@ -15983,11 +16236,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) @@ -16030,6 +16283,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, @@ -16085,8 +16348,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" @@ -16357,6 +16623,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, @@ -16375,6 +16654,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, @@ -16397,9 +16680,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) @@ -16525,6 +16824,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" @@ -16665,6 +16969,15 @@ /obj/structure/flora/jungle/vines/light_3, /turf/open/gm/grass/grass1, /area/lv624/ground/jungle/central_jungle) +"jIr" = ( +/obj/structure/largecrate, +/obj/structure/prop/mech/parts/gygax_armor{ + layer = 1 + }, +/turf/open/floor/plating{ + icon_state = "platebot" + }, +/area/lv624/lazarus/robotics) "jJg" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/auto_turf/strata_grass/layer1, @@ -16717,9 +17030,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 +17118,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 +17365,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 +17402,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 +17439,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 +17541,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 +17631,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 +17655,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 +17675,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 +17876,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 +17922,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 +18000,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 +18070,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 +18111,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 +18127,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 +18285,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 +18306,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 +18376,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 +18397,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 +18407,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 +18450,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 +18539,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 +18926,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 +18947,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 +19029,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 +19249,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 +19290,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 +19432,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 +19523,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 +19564,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 +19621,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 +19825,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 +19906,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 @@ -19560,6 +20020,18 @@ /obj/structure/window/framed/colony/reinforced, /turf/open/floor/plating, /area/lv624/lazarus/corporate_dome) +"paQ" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/item/storage/fancy/cigarettes/wypacket{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/clothing/under/liaison_suit/blue, +/turf/open/floor{ + dir = 6; + icon_state = "whiteyellow" + }, +/area/lv624/lazarus/corporate_dome) "pba" = ( /obj/structure/flora/bush/ausbushes/var3/sparsegrass, /turf/open/gm/grass/grass1, @@ -19581,7 +20053,7 @@ /area/lv624/ground/caves/sand_temple) "pca" = ( /obj/effect/landmark/nightmare{ - insert_tag = "nexuscenter" + insert_tag = "nexuscenter_barricaded" }, /turf/open/floor{ dir = 9; @@ -19644,6 +20116,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, @@ -19677,6 +20154,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, @@ -19813,6 +20293,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, @@ -19943,8 +20429,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" = ( @@ -19964,10 +20450,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) @@ -20098,10 +20584,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) @@ -20131,6 +20617,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, @@ -20164,6 +20662,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) @@ -20198,6 +20703,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, @@ -20395,6 +20915,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, @@ -20406,7 +20930,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, @@ -20463,6 +20989,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 @@ -20544,11 +21088,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) @@ -20572,6 +21116,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, @@ -20685,10 +21235,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) @@ -20702,32 +21252,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) @@ -20782,10 +21340,6 @@ /obj/effect/landmark/objective_landmark/close, /turf/open/floor/vault, /area/lv624/lazarus/quartstorage) -"rvL" = ( -/obj/structure/flora/bush/ausbushes/ausbush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) "rvW" = ( /obj/effect/landmark/lv624/fog_blocker, /turf/open/gm/grass/grass1, @@ -20809,6 +21363,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" @@ -20863,11 +21422,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) @@ -20889,6 +21448,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 @@ -20916,11 +21481,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) @@ -21154,6 +21719,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, @@ -21209,10 +21777,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) @@ -21312,6 +21880,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, @@ -21398,6 +21975,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{ @@ -21626,11 +22208,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) @@ -21654,8 +22236,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" = ( @@ -21679,13 +22259,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" @@ -21710,7 +22290,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" @@ -21727,11 +22307,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) @@ -21900,11 +22480,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) @@ -21964,6 +22544,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, @@ -22090,6 +22680,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 @@ -22114,11 +22708,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) @@ -22210,6 +22804,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, @@ -22338,6 +22942,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, @@ -22369,7 +22983,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, @@ -22391,6 +23006,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, @@ -22403,8 +23025,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) @@ -22459,11 +23081,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) @@ -22642,9 +23264,6 @@ /obj/structure/fence, /turf/open/gm/dirtgrassborder/north, /area/lv624/ground/colony/west_tcomms_road) -"uSw" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner/north_east, -/area/lv624/ground/jungle/west_jungle) "uSy" = ( /turf/open/gm/coast/beachcorner2/north_east, /area/lv624/ground/barrens/east_barrens) @@ -22707,6 +23326,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, @@ -22777,6 +23402,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, @@ -22885,11 +23519,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) @@ -23107,6 +23741,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, @@ -23118,6 +23758,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, @@ -23171,10 +23821,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, @@ -23230,6 +23895,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, @@ -23290,10 +23961,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{ @@ -23303,11 +23984,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) @@ -23386,6 +24067,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{ @@ -23463,18 +24148,6 @@ /obj/structure/flora/bush/ausbushes/ppflowers, /turf/open/auto_turf/strata_grass/layer1, /area/lv624/ground/caves/south_west_caves) -"wtK" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/item/storage/fancy/cigarettes/wypacket{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/clothing/under/liaison_suit/suspenders, -/turf/open/floor{ - dir = 6; - icon_state = "whiteyellow" - }, -/area/lv624/lazarus/corporate_dome) "wvO" = ( /obj/structure/flora/bush/ausbushes/genericbush, /turf/open/gm/grass/grass1, @@ -23563,11 +24236,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 +24288,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 +24559,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 +24651,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 +24836,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 +24868,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 +24974,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 @@ -25014,7 +25724,7 @@ atC aAt aro aHE -aIn +aro asw asw asw @@ -25234,13 +25944,13 @@ nsk nsk nsk aun -aqS -suv -atZ +ase +arE +atC vVD -ayT -aro -aro +asd +atu +asx aro asw asw @@ -25461,20 +26171,20 @@ aYX alC alC auc -amK -arn -asK +aZb +aAl +ase pbd avf -ayT -aro -aBk -aro -aIo +asK +aAl +ase +atu +asx asw asw asw -aro +arP awb awe awe @@ -25689,18 +26399,18 @@ aYS aud aud auP -aqS -rvL -asc -aro -aro -aro -asw -aro -aro -aro -aro -aro +aAl +aAl +aAl +aAl +aAl +aAl +avf +aAl +aAl +ase +atu +asx aro aro ata @@ -25917,19 +26627,19 @@ arV aud aud auP -aqS +aAl avf -aro -awb -ayd -azg -aro -aro -aIm -aro -aro -arP -asc +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +ase +asx aro aro aro @@ -26145,18 +26855,18 @@ aud amG bGb auP -asd +aAl avf -asX -awe -awe -ayl -aro -aro -aro -aIq -aCO -atu +aAl +aAl +aAl +aAl +aAl +aAl +aAl +asY +aAl +aAl aqq atu atu @@ -26373,17 +27083,17 @@ aud aud asp auP -aqS -asc -asY -awe -awe -awV -aro -asw -aro -aCO -aEe +aAl +aAl +aAl +aAl +aAl +aAl +aAl +avf +avf +aAl +aAl aAl aAl aAl @@ -26601,16 +27311,16 @@ aud aud aud auP -aqS -bbu -asZ -awz -ayl -aro -atA -aro -asg -axV +aAl +aAl +aAl +aAl +aAl +aAl +aAl +avf +aAl +aAl aAl aAl aAl @@ -26829,16 +27539,16 @@ asF aud fQL aBn -asd -aro -asX -awe -ayA -ayd -azg -aro -aCO -aEe +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl +aAl aAl aAl ayh @@ -27057,15 +27767,15 @@ aud aud oym xuK -ase -asx -ata -awV -asw -ata -awV -aro -axV +aAl +aAl +aAl +avf +avf +aAl +aAl +aAl +aAl kQY knd knd @@ -27285,15 +27995,15 @@ arU aud atJ aYR -akZ -aqS -arP -aro -aro -aro -asc -aCO -aEe +axw +aAl +aAl +aAl +avf +avf +aAl +aAl +aAl oek jga jga @@ -27514,14 +28224,14 @@ xJA xJA bGb dmf -ase -atu -atu -asx -aro +aAl +aAl +aAl +aAl +aAl bbC -axV -ayh +aAl +kQY ayV jga azs @@ -27745,10 +28455,10 @@ bBu knd knd axw -ase -atu -atu -aEe +aAl +aAl +aAl +aAl oek jga jga @@ -28878,8 +29588,8 @@ aud aud asF auP -aqR -arE +aAl +aAl npf sTB sTB @@ -29106,13 +29816,13 @@ aud aud bGb auP -aqS -uSw -asa -asa -asa -asa -arE +aAl +aAl +aAl +aAl +aAl +aAl +aAl awC sTB sTB @@ -29334,13 +30044,13 @@ aud asp aud auP -aqS -arP -asc -asg -aro -atA -axV +aAl +amK +aAl +aAl +aAl +aAl +aAl aiS aAl aAl @@ -29562,15 +30272,15 @@ aud aud aud auP -aqS +aAl aFm aFm auO aFm aFm aAl -aqR -asa +aAl +aAl aja asa asa @@ -29790,16 +30500,16 @@ aud aud amG auP -aqS +aAl aFm aue auf aXC aFm aAl -ayN -asx -ayT +aqi +aAl +asX aAp aAp baN @@ -30018,7 +30728,7 @@ aud aud aud asR -aqS +aAl aFm auf auf @@ -30026,7 +30736,7 @@ aZp aFm aAl omu -aqS +aAl aAp aAp aAp @@ -30246,7 +30956,7 @@ amG aud aul aBn -aqS +aAl aFQ aug wFx @@ -30474,7 +31184,7 @@ aud bGb auP aqi -ase +aAl aFm aZn axp @@ -31164,7 +31874,7 @@ uiW sqs oTJ qKC -kWX +pKm hdh oKP aAp @@ -32125,7 +32835,7 @@ aWT aUQ aZL aUQ -aUQ +mdw aTf aTf aTf @@ -32347,7 +33057,7 @@ aTf aUj aUQ aUQ -ygp +aZL aUQ gte aUQ @@ -32804,11 +33514,11 @@ aUj aUQ aUQ aVZ -aUQ -aWV +qEz +ygp aUQ aXE -aUQ +vTT aUQ aYu aTf @@ -33030,13 +33740,13 @@ aTf aTf aTf ulp -aUQ +aZL aWa -aUQ +xRc aWW aUQ aXF -aUQ +weB aUQ aTf aTf @@ -33258,13 +33968,13 @@ vxU aTf aTf aUS -aUQ +xLT iml -aUQ -aWW -aUQ +vTT +fMv +plC aXG -aUQ +aZL aYf aTf aTf @@ -33486,13 +34196,13 @@ aXh aTf aTf aTf +aWV aUQ +plC +vTT +weR aUQ -aUQ -aUQ -sWk -aUQ -aUQ +cfA aTf aTf aTf @@ -33718,9 +34428,9 @@ aTf aTf mkn xLT -mkn -xLT -sWk +xvj +cfA +kSN aTf aTf aXh @@ -33944,12 +34654,12 @@ efp aTf aTf aWc -mkn -mkn +phk +wol sWk -mkn -mkn -xLT +mqf +gSb +hTp kBq aXh aXh @@ -34171,13 +34881,13 @@ bSm efp efp aTf -aTf -xLT -aWv +chy +rDK aWv +kVS xLT -xTT -xTT +sCx +haE vUj qGH aLj @@ -34400,12 +35110,12 @@ buw efp efp uSq +eUI qIO qIO -qIO -qIO +jaw uXV -qtj +hen dMc knp iIU @@ -34624,7 +35334,7 @@ aXh wTC kjp kjp -ply +hSp efp efp uSq @@ -34632,7 +35342,7 @@ njC qIO qIO qIO -qtj +ose qtj ksM rox @@ -34856,7 +35566,7 @@ efp efp gDu uSq -hDX +rwK qIO qIO aXH @@ -35084,9 +35794,9 @@ efp efp efp uSq +xOL qIO -qIO -qIO +jaw ntL kxI kxI @@ -35735,7 +36445,7 @@ axi axj avH aBp -aBR +jIr aCk ado aXX @@ -35989,7 +36699,7 @@ rAo fkJ fau xgE -efp +aWZ efp efp efp @@ -36218,7 +36928,7 @@ xgE sFY xgE xgE -eyb +bgL bgL bgL bgL @@ -36872,7 +37582,7 @@ aym axi aza azG -aAk +bvq axi aBr axi @@ -37098,7 +37808,7 @@ axj axj axj ayG -azb +eot axi axj axj @@ -37585,7 +38295,7 @@ xgE sxY sxY xgE -cPV +aRf cPV uSq qIO @@ -38950,7 +39660,7 @@ gnx gnx fzg pyG -wtK +paQ wJA wMk wMk @@ -38959,8 +39669,8 @@ uSq qIO qIO qIO -qIO -qIO +ctS +ctS ntL kxI kxI @@ -39187,9 +39897,9 @@ uSq njC qIO qIO -qIO -qIO -ntL +ctS +sfg +vVe kxI jxG qZv @@ -39415,9 +40125,9 @@ uSq qIO qIO qIO -qIO -qIO -ntL +ctS +hLu +kxI kxI oAJ qZv @@ -39644,8 +40354,8 @@ aPT aUk aPT aPt -qIO -ntL +hLu +kxI kxI gzd eqs @@ -39868,9 +40578,9 @@ aPT aPT aPT aPt -aTG -aQn +vMC aQn +qNl aPt aPT aPT @@ -40092,17 +40802,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 +41035,12 @@ aQn aQn aQn aTH -aUl aQn aQn aQn aQn -aWX +aQn +uaz aPT kxI kxI @@ -40546,19 +41256,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 +41483,10 @@ ylL byY mun oGs -lud +oGs aPt aPt -aRf +euU aQn aTg aTg @@ -40785,8 +41495,8 @@ aQn aVb aTg aTg +aTG aQn -aWZ aPt aPt kxI @@ -41003,19 +41713,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 +41943,9 @@ byY aPO aQn aQn +rkZ aQn -aQn -aQn +aTi vEj aTg rVH @@ -41458,20 +42168,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 +42398,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 +42623,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 +42851,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 +43079,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 +43302,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 +43536,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 +43764,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 +43997,15 @@ aQo aJz aIO aSg -aPT -aTK +aPt aTK +oRY aSL +aWf aVB aWf -fFN aSL -aXn +sBJ kxI kxI lUc @@ -43514,14 +44224,14 @@ aEt aQp aRo aIO -aSg +kWX aSL aSL aSL aSL rmg aTq -aWA +aTq aSL aSL aVB @@ -43747,9 +44457,9 @@ aSL aVg tem aVd -aTM +kzp +aTq aTq -aZG aSX aZI aXJ @@ -43971,17 +44681,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 +44909,12 @@ aQs aQo aSi mkU -qGR +lud aWD aUq aTN aTM -aTM +fMa aUo aSX aZJ @@ -44427,13 +45137,13 @@ aQt aQo aSj qGR -mkU +jdL aWD aUq aTN udM aTM -aWE +aUx aSX aSX aSX @@ -44666,7 +45376,7 @@ aSX aZd aZx aXZ -aYh +vYL aVB kxI kxI @@ -44887,14 +45597,14 @@ aSL aVf jMk aWg -aTM -aTM +lzW +kyz aWF aSX -aXs +svv aTM aZM -aTM +vYL aXg kyN kxI @@ -45116,9 +45826,9 @@ aSX aSX aSX aXs +drX aTM -aTM -aXg +ydX aTM aVC aTM @@ -45341,12 +46051,12 @@ aJz aSL aTs aTP -aUt +bLH aSX aVF -aTM -aTM -aXg +iiO +uXT +oas aTM aTM aZf @@ -45572,12 +46282,12 @@ aTR aUu aSX aVG -aTM +vdl aWG aSX aXt aWi -aYc +bQf aVB dEp kxI @@ -45796,11 +46506,11 @@ xuk oUy aSL aTu -aZM -aTM +fLf +fQx aVj -aTM -aWi +mkZ +hDe aWH aSX aXu @@ -46025,7 +46735,7 @@ mNO fFN aTM aTM -aUx +fAs aSX aVH aTq @@ -46483,7 +47193,7 @@ aSm aSm oUy aSL -hHc +aVB aWf aVB aSL @@ -47594,7 +48304,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/LV624/standalone/leftsidepass.dmm b/maps/map_files/LV624/standalone/leftsidepass.dmm index 678059d4ad83..0b90931f2fd3 100644 --- a/maps/map_files/LV624/standalone/leftsidepass.dmm +++ b/maps/map_files/LV624/standalone/leftsidepass.dmm @@ -1,8 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ab" = ( -/obj/effect/landmark/lv624/fog_blocker, -/turf/open/gm/coast/north, -/area/lv624/ground/river/west_river) "ac" = ( /obj/effect/landmark/hunter_primary, /turf/open/gm/dirt, @@ -53,87 +49,26 @@ "ar" = ( /turf/open/gm/coast/beachcorner/south_east, /area/lv624/ground/river/west_river) -"as" = ( -/obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirt, -/area/lv624/ground/jungle/west_jungle) -"at" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_east, -/area/lv624/ground/river/west_river) "au" = ( /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/jungle/west_jungle) -"av" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, -/area/lv624/ground/jungle/west_jungle) "aw" = ( -/obj/structure/flora/bush/ausbushes/reedbush, /turf/open/gm/coast/beachcorner/south_west, /area/lv624/ground/jungle/west_jungle) -"ax" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner/south_east, -/area/lv624/ground/jungle/west_jungle) -"ay" = ( -/obj/structure/flora/bush/ausbushes/ausbush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"az" = ( -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aA" = ( -/obj/structure/flora/bush/ausbushes/var3/stalkybush, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aB" = ( -/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, -/area/lv624/ground/jungle/west_jungle) "aC" = ( /obj/structure/flora/jungle/vines/light_2, /turf/open/gm/grass/grass2, /area/lv624/ground/jungle/west_jungle) "aD" = ( /obj/structure/flora/jungle/vines/light_1, -/turf/open/gm/grass/grass2, +/turf/open/gm/dirtgrassborder/grassdirt_corner/south_west, /area/lv624/ground/jungle/west_jungle) "aE" = ( -/obj/structure/flora/bush/ausbushes/pointybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aF" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 6 - }, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aG" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 10 - }, -/turf/open/gm/grass/grass2, -/area/lv624/ground/jungle/west_jungle) -"aH" = ( -/obj/structure/flora/bush/ausbushes/var3/ywflowers, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aI" = ( -/obj/structure/flora/grass/tallgrass/jungle/corner{ - dir = 10 - }, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aJ" = ( -/obj/structure/flora/bush/ausbushes/var3/leafybush, -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) -"aK" = ( -/turf/open/gm/dirtgrassborder/west, +/turf/open/gm/dirtgrassborder/grassdirt_corner2/south_west, /area/lv624/ground/jungle/west_jungle) "aU" = ( /turf/closed/wall/strata_ice/jungle, /area/lv624/ground/river/west_river) -"aV" = ( -/turf/open/gm/grass/grass1, -/area/lv624/ground/jungle/west_jungle) "aX" = ( /turf/open/gm/coast/beachcorner2/south_east, /area/lv624/ground/river/west_river) @@ -172,8 +107,7 @@ /turf/open/gm/river, /area/lv624/ground/river/west_river) "bV" = ( -/obj/structure/flora/bush/ausbushes/var3/fullgrass, -/turf/open/gm/dirtgrassborder/south, +/turf/open/gm/dirt, /area/lv624/ground/jungle/west_jungle) "gX" = ( /turf/closed/wall/rock/brown, @@ -268,7 +202,7 @@ ES ES ES qG -au +aE aD "} (4,1,1) = {" @@ -282,8 +216,8 @@ ai ad ad aq -at -ax +ES +bV aE "} (5,1,1) = {" @@ -297,9 +231,9 @@ bm bc bc bt -au -ay -az +bV +bV +bV "} (6,1,1) = {" bi @@ -312,9 +246,9 @@ aj bc bc bt -au +bV Za -aV +bV "} (7,1,1) = {" bi @@ -329,7 +263,7 @@ FJ bt bV Za -aF +bV "} (8,1,1) = {" bi @@ -342,9 +276,9 @@ bc bc am bt -au -az -aG +bV +bV +bV "} (9,1,1) = {" bx @@ -357,9 +291,9 @@ bc bc bc bt -au -aA -aH +bV +bV +bV "} (10,1,1) = {" bf @@ -373,8 +307,8 @@ bc aX ar bV -aV -aF +bV +bV "} (11,1,1) = {" bi @@ -386,10 +320,10 @@ bN bc bc bt -as -av -aB -aI +bV +bV +bV +bV "} (12,1,1) = {" bi @@ -403,8 +337,8 @@ bc ao zW aw -au -aJ +bV +bV "} (13,1,1) = {" bx @@ -418,12 +352,12 @@ bc bc ve Ms -av -aK +bV +bV "} (14,1,1) = {" bi -ab +bL af af af 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 44d5bd6750de..513e8739ad99 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -48,9 +48,6 @@ icon_state = "outerhull_dir" }, /area/space) -"aai" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull) "aak" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -64,13 +61,6 @@ }, /turf/open/space/basic, /area/space) -"aal" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "aam" = ( /obj/structure/stairs, /obj/effect/step_trigger/teleporter_vector{ @@ -82,22 +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) -"aao" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aap" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "aaq" = ( /obj/item/bedsheet/purple{ layer = 3.2 @@ -138,82 +112,13 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"aar" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_s) -"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) -"aaz" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "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; @@ -239,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, @@ -293,41 +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) -"abe" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "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) @@ -335,14 +187,20 @@ /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/lifeboat_pumps/north2) +"abj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "abk" = ( /obj/structure/window/reinforced/toughened, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cic) -"abp" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_s) +"abn" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "abs" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/north1) @@ -350,18 +208,12 @@ /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) -"abA" = ( +"abz" = ( /obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/upper/u_f_p) "abB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -470,13 +322,6 @@ "acf" = ( /turf/closed/wall/almayer/outer, /area/almayer/living/starboard_garden) -"ach" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) "aci" = ( /obj/structure/window/reinforced{ dir = 4; @@ -663,28 +508,9 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) -"acC" = ( -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hallways/aft_hallway) -"acD" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"acF" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) +"acB" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_a_p) "acI" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = -12 @@ -705,9 +531,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{ @@ -752,6 +576,9 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) +"acQ" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "acS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -772,17 +599,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 @@ -822,45 +638,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) -"adf" = ( -/obj/structure/closet, -/obj/item/clothing/suit/armor/riot/marine/vintage_riot, -/obj/item/clothing/head/helmet/riot/vintage_riot, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"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"; @@ -872,37 +658,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; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) -"adp" = ( -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "adq" = ( /turf/closed/wall/almayer, /area/almayer/lifeboat_pumps/north1) @@ -912,18 +667,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"adt" = ( -/obj/item/reagent_container/glass/bucket/janibucket{ - pixel_x = -1; - pixel_y = 13 - }, -/obj/structure/sign/safety/water{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "adu" = ( /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) @@ -952,14 +695,6 @@ icon_state = "plate" }, /area/almayer/living/basketball) -"adE" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "adF" = ( /obj/structure/window/reinforced{ dir = 1; @@ -976,23 +711,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) -"adI" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "adO" = ( /turf/closed/wall/almayer, /area/almayer/engineering/starboard_atmos) @@ -1025,16 +743,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{ @@ -1084,20 +792,9 @@ "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) -"aeq" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aer" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -1139,21 +836,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) -"aeD" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - req_one_access = null; - req_one_access_txt = "2;7" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "CIC Lockdown"; - name = "\improper Combat Information Center Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "aeE" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -1280,16 +962,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, @@ -1342,46 +1014,6 @@ icon_state = "redfull" }, /area/almayer/shipboard/starboard_missiles) -"afd" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 32 - }, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_f_s) -"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, @@ -1389,10 +1021,6 @@ "afk" = ( /turf/open/floor/engine, /area/almayer/engineering/airmix) -"afl" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "afm" = ( /turf/open/floor/almayer_hull{ dir = 6; @@ -1411,53 +1039,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 @@ -1466,17 +1053,7 @@ dir = 9; 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) +/area/almayer/lifeboat_pumps/north1) "afE" = ( /obj/structure/machinery/vending/dinnerware, /obj/structure/machinery/firealarm{ @@ -1609,17 +1186,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{ @@ -1636,46 +1202,15 @@ "agc" = ( /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"age" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/upper_hull/u_f_s) "agf" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "bluecorner" }, /area/almayer/living/offices/flight) -"agi" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;22;19" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "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 @@ -1718,23 +1253,13 @@ dir = 4 }, /obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + 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{ @@ -1742,21 +1267,6 @@ }, /turf/open/floor/plating, /area/almayer/living/basketball) -"agB" = ( -/turf/open/floor/almayer{ - dir = 9; - 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{ @@ -1780,12 +1290,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 @@ -1818,69 +1322,28 @@ icon_state = "test_floor4" }, /area/almayer/living/cafeteria_officer) -"agS" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) "agT" = ( /turf/open/floor/prison{ icon_state = "kitchen" }, /area/almayer/living/cafeteria_officer) -"agU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "agV" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ 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" }, /area/almayer/living/cafeteria_officer) -"ahb" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "ahc" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/wy_mre, /obj/item/storage/box/wy_mre, /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) -"ahd" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;22;19" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "ahe" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ @@ -1900,14 +1363,6 @@ icon_state = "plate" }, /area/almayer/engineering/starboard_atmos) -"ahg" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "ahh" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/starboard_atmos) @@ -1920,68 +1375,10 @@ 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) -"ahk" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"ahl" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) -"ahn" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet, -/obj/item/clothing/under/marine, -/obj/item/clothing/suit/storage/marine, -/obj/item/clothing/head/helmet/marine, -/obj/item/clothing/head/cmcap, -/obj/item/clothing/head/cmcap, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "aho" = ( /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) -"aht" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"ahx" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) "ahy" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -2002,16 +1399,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) -"ahB" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/repair_bay) -"ahE" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_f_s) "ahG" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -2029,13 +1416,14 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/engineering/starboard_atmos) -"ahM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "mono" +"ahL" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ + pixel_x = 7; + pixel_y = 4 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "ahN" = ( /obj/structure/flora/bush/ausbushes/var3/ywflowers, /turf/open/floor/grass, @@ -2053,15 +1441,6 @@ icon_state = "bluecorner" }, /area/almayer/living/offices/flight) -"ahU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1; - name = "\improper Tool Closet" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) "ahV" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -2077,17 +1456,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; @@ -2131,15 +1499,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; @@ -2153,23 +1512,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) -"ail" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) -"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 @@ -2178,39 +1520,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) -"aip" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "aiq" = ( /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) @@ -2226,62 +1535,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) -"aiv" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) "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) -"aiz" = ( -/obj/structure/closet, -/obj/item/clothing/under/marine, -/obj/item/clothing/suit/storage/marine, -/obj/item/clothing/head/helmet/marine, -/obj/item/clothing/head/beret/cm, -/obj/item/clothing/head/beret/cm, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"aiA" = ( -/obj/structure/surface/table/almayer, -/obj/item/clipboard, -/obj/item/paper, -/obj/item/clothing/glasses/mgoggles, -/obj/item/clothing/glasses/mgoggles, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"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) -"aiE" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aiH" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -2297,12 +1553,6 @@ allow_construction = 0 }, /area/almayer/stair_clone/upper) -"aiP" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) "aiQ" = ( /obj/structure/machinery/faxmachine, /obj/structure/surface/table/almayer, @@ -2325,39 +1575,6 @@ allow_construction = 0 }, /area/almayer/stair_clone) -"aiS" = ( -/obj/structure/closet, -/obj/item/device/flashlight/pen, -/obj/item/attachable/reddot, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aiT" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aiU" = ( -/obj/structure/surface/table/almayer, -/obj/item/card/id/visa, -/obj/item/tool/crew_monitor, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aiV" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "aiW" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -2371,24 +1588,6 @@ "aiX" = ( /turf/closed/wall/almayer, /area/almayer/living/pilotbunks) -"aiZ" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"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 @@ -2417,32 +1616,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 @@ -2451,15 +1624,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 @@ -2472,53 +1636,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{ @@ -2533,24 +1656,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 @@ -2569,21 +1674,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{ @@ -2592,40 +1682,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) -"ajQ" = ( -/obj/docking_port/stationary/escape_pod/east, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) -"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 @@ -2638,19 +1694,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; @@ -2680,16 +1723,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"akd" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_a_s) -"ake" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "akf" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -2697,6 +1730,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 @@ -2755,20 +1800,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{ @@ -2798,52 +1829,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 @@ -2860,17 +1845,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 @@ -2883,56 +1857,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"akS" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - 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; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) -"akY" = ( -/obj/structure/cable/heavyduty{ - icon_state = "4-8" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/starboard_garden) "ald" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -2946,7 +1870,7 @@ dir = 8 }, /turf/open/floor/almayer, -/area/almayer/living/starboard_garden) +/area/almayer/lifeboat_pumps/north1) "alf" = ( /obj/structure/machinery/light{ dir = 8 @@ -2965,12 +1889,10 @@ }, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"ali" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "bluecorner" - }, -/area/almayer/hallways/aft_hallway) +"alh" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "alk" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -2983,31 +1905,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; @@ -3017,22 +1925,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) @@ -3056,9 +1948,9 @@ name = "\improper Brig Lockdown Shutter" }, /obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_s"; dir = 1; - name = "\improper Brig Maintenance"; - closeOtherId = "brigmaint_s" + name = "\improper Brig Maintenance" }, /obj/structure/machinery/door/poddoor/almayer/open{ id = "perma_lockdown_2"; @@ -3068,78 +1960,17 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/perma) -"alG" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orangecorner" - }, -/area/almayer/hallways/stern_hallway) -"alH" = ( -/turf/closed/wall/almayer/white/outer_tile, -/area/almayer/hull/upper_hull) -"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" }, /area/almayer/engineering/upper_engineering) -"alT" = ( -/obj/structure/bed/chair, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "alU" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/navigation) @@ -3178,6 +2009,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/aft_hallway) "amd" = ( /obj/structure/machinery/vending/cola{ density = 0; @@ -3195,12 +2034,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"; @@ -3225,12 +2058,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{ @@ -3240,6 +2067,14 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"amu" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "amw" = ( /turf/open/floor/almayer{ dir = 9; @@ -3259,17 +2094,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, @@ -3298,113 +2122,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"amJ" = ( -/obj/structure/largecrate/machine/bodyscanner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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) -"amL" = ( -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/obj/structure/largecrate, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"amN" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"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) -"amP" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"amQ" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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) -"amW" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/toxin, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "amX" = ( /turf/open/floor/almayer{ dir = 1; @@ -3434,21 +2151,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"anb" = ( -/obj/structure/machinery/conveyor{ - id = "lower_garbage" - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" - }, -/area/almayer/hull/lower_hull/l_m_p) -"anc" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, -/area/almayer/hallways/aft_hallway) "and" = ( /obj/structure/window/reinforced{ dir = 4; @@ -3463,24 +2165,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) -"anf" = ( -/turf/open/floor/almayer{ - icon_state = "silvercorner" +"ang" = ( +/obj/item/clothing/head/welding{ + pixel_y = 6 }, -/area/almayer/hallways/aft_hallway) -"anh" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) -"ani" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_a_p) "anm" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -3494,13 +2191,6 @@ allow_construction = 0 }, /area/almayer/stair_clone) -"ano" = ( -/obj/structure/machinery/light/small{ - dir = 1; - pixel_y = 20 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "anp" = ( /obj/structure/sign/safety/hazard{ pixel_x = 15; @@ -3548,25 +2238,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"ant" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"anu" = ( -/obj/structure/ladder{ - height = 2; - id = "AftStarboardMaint" - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_a_s) "anw" = ( /obj/structure/machinery/flasher{ id = "Containment Cell 1"; @@ -3595,77 +2266,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) -"anI" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"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, @@ -3685,27 +2285,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) -"anS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/landinglight/ds2/delayone{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) -"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; @@ -3713,6 +2292,7 @@ req_access = null; req_one_access_txt = "3;22;2;19" }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -3729,60 +2309,19 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"anX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "aoa" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /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) -"aof" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/landinglight/ds1/delayone{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) "aog" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) "aoh" = ( @@ -3794,12 +2333,6 @@ "aoi" = ( /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"aol" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/hangar) "aom" = ( /turf/open/floor/almayer{ dir = 8; @@ -3834,18 +2367,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"aot" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_10" - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) -"aou" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "aov" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -3857,11 +2378,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; @@ -3881,68 +2397,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; @@ -4006,9 +2466,6 @@ /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) "aoP" = ( @@ -4018,66 +2475,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, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/north1) "aoW" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/machinery/camera/autoname/almayer{ @@ -4109,20 +2511,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 @@ -4132,12 +2520,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; @@ -4150,12 +2532,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"; @@ -4164,20 +2540,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, @@ -4185,25 +2547,12 @@ 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{ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"apr" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/lifeboat_pumps/north1) "aps" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down2"; @@ -4222,26 +2571,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"apu" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - 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{ @@ -4266,37 +2595,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) -"apI" = ( -/obj/structure/machinery/door/airlock/almayer/command{ - dir = 2; - name = "\improper Command Ladder" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull) -"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, @@ -4401,17 +2705,6 @@ icon_state = "tcomms" }, /area/almayer/command/telecomms) -"aqc" = ( -/obj/structure/machinery/door_control{ - id = "panicroomback"; - name = "\improper Safe Room"; - pixel_x = -25; - req_one_access_txt = "3" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "aqe" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -4471,7 +2764,7 @@ pixel_y = -32 }, /turf/open/floor/almayer, -/area/almayer/living/starboard_garden) +/area/almayer/lifeboat_pumps/north1) "aqm" = ( /obj/item/bedsheet/brown, /obj/structure/bed, @@ -4532,19 +2825,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 @@ -4583,6 +2863,13 @@ icon_state = "plate" }, /area/almayer/medical/medical_science) +"aqH" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "aqI" = ( /turf/open/floor/almayer{ dir = 8; @@ -4601,17 +2888,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" @@ -4665,18 +2954,12 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering) +"aqZ" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_stern) "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, @@ -4742,17 +3025,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 @@ -4848,16 +3120,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 @@ -4920,34 +3182,11 @@ 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 - }, +"ash" = ( /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" + icon_state = "mono" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/fore_hallway) "asm" = ( /obj/structure/stairs{ dir = 4 @@ -4969,15 +3208,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 @@ -5010,6 +3240,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{ + closeOtherId = "brignorth"; + name = "\improper Brig Lobby" + }, +/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{ @@ -5019,10 +3261,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; @@ -5031,7 +3277,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" = ( @@ -5041,9 +3287,12 @@ unacidable = 1; unslashable = 1 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = 10; + anchored = 1 }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) "asH" = ( /obj/structure/machinery/telecomms/bus/preset_three, @@ -5093,33 +3342,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, @@ -5135,9 +3357,6 @@ icon_state = "orange" }, /area/almayer/command/cic) -"asS" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/starboard_garden) "asT" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -5150,18 +3369,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{ @@ -5224,16 +3431,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{ @@ -5248,17 +3445,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) @@ -5336,62 +3522,17 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"atz" = ( -/obj/item/tool/minihoe{ - pixel_x = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"atC" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"atD" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"atG" = ( -/obj/structure/bed/chair/comfy/beige{ - dir = 4 - }, +"atH" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) -"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 - }, -/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; @@ -5434,6 +3575,12 @@ icon_state = "test_floor4" }, /area/almayer/command/cic) +"atS" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "atT" = ( /obj/structure/toilet{ dir = 1 @@ -5448,38 +3595,12 @@ }, /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 - }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, +/turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) "auc" = ( /obj/effect/step_trigger/clone_cleaner, @@ -5493,27 +3614,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, @@ -5528,30 +3637,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, @@ -5562,42 +3647,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) -"auo" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/med_data/laptop{ - dir = 8 - }, -/obj/item/device/flashlight/lamp{ - pixel_x = -5; - pixel_y = 16 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "auu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -5605,17 +3654,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"; @@ -5635,31 +3673,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) -"auD" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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"; @@ -5784,35 +3797,20 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"avj" = ( -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/hallways/aft_hallway) -"avl" = ( -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"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) -"avr" = ( -/obj/structure/bed/sofa/south/grey/left{ - pixel_y = 12 +"avp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/almayer{ + id = "s_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/port_umbilical) "avs" = ( /turf/closed/wall/biodome, /area/almayer/powered/agent) @@ -5854,10 +3852,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"; @@ -5898,11 +3892,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"; @@ -5936,15 +3925,13 @@ 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{ +/obj/structure/machinery/computer/cameras/almayer{ dir = 8; pixel_x = 17; - pixel_y = 6 + pixel_y = 8 }, /obj/structure/surface/table/reinforced/almayer_B{ climbable = 0; @@ -5956,6 +3943,11 @@ pixel_y = 6 }, /obj/item/tool/pen, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 8; + pixel_x = 17; + pixel_y = -6 + }, /turf/open/floor/almayer/no_build{ icon_state = "ai_floors" }, @@ -6033,15 +4025,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) @@ -6057,15 +4040,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) @@ -6149,9 +4123,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, @@ -6159,16 +4131,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; @@ -6219,6 +4181,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) @@ -6239,19 +4204,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"awJ" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"awM" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) "awQ" = ( /obj/structure/surface/table/almayer, /obj/item/cell/high{ @@ -6311,7 +4263,7 @@ }, /area/almayer/living/pilotbunks) "awY" = ( -/obj/effect/landmark/start/pilot, +/obj/effect/landmark/start/pilot/cas_pilot, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/pilotbunks) "awZ" = ( @@ -6404,19 +4356,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{ @@ -6574,6 +4513,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; @@ -6628,19 +4578,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"ayh" = ( -/obj/structure/machinery/power/smes/buildable, -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/high_voltage{ - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "ayi" = ( /obj/structure/machinery/recharger, /obj/structure/surface/table/almayer, @@ -6694,7 +4631,13 @@ /obj/item/storage/belt/medical/full, /obj/structure/machinery/computer/working_joe{ dir = 8; - pixel_x = 17 + pixel_x = 17; + pixel_y = 8 + }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 8; + pixel_x = 17; + pixel_y = -6 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -6713,8 +4656,8 @@ name = "\improper Combat Information Center Blast Door" }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Combat Information Center"; - closeOtherId = "ciclobby_n" + closeOtherId = "ciclobby_n"; + name = "\improper Combat Information Center" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -6767,21 +4710,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{ @@ -6825,12 +4753,6 @@ icon_state = "silver" }, /area/almayer/command/cic) -"ayP" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "ayQ" = ( /obj/structure/platform_decoration{ dir = 4 @@ -6849,21 +4771,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{ @@ -6908,16 +4815,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{ @@ -6942,6 +4852,12 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) +"azg" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "azh" = ( /obj/structure/pipes/vents/pump/on, /turf/open/floor/almayer{ @@ -7059,19 +4975,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, @@ -7093,43 +4996,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) -"azH" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) -"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{ @@ -7145,23 +5011,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; @@ -7205,28 +5054,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; @@ -7237,16 +5069,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) -"aAe" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aAf" = ( /obj/structure/disposalpipe/junction{ dir = 4; @@ -7282,9 +5104,9 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ + closeOtherId = "ciclobby_n"; id_tag = "cic_exterior"; - name = "\improper Combat Information Center"; - closeOtherId = "ciclobby_n" + name = "\improper Combat Information Center" }, /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -7318,17 +5140,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{ @@ -7445,22 +5256,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 @@ -7472,18 +5276,6 @@ icon_state = "plate" }, /area/almayer/command/telecomms) -"aBa" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "aBb" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -7546,27 +5338,6 @@ icon_state = "test_floor4" }, /area/almayer/command/telecomms) -"aBg" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aBh" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -7644,11 +5415,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; @@ -7710,14 +5476,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{ @@ -7765,6 +5523,15 @@ icon_state = "test_floor4" }, /area/almayer/living/synthcloset) +"aBQ" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/o2, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/technology_scanner, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "aBR" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/ashtray/glass, @@ -7846,9 +5613,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, @@ -7877,18 +5642,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, @@ -7916,11 +5669,26 @@ 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, /turf/open/floor/plating, /area/almayer/medical/morgue) +"aCA" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "aCC" = ( /turf/open/floor/almayer{ icon_state = "sterile_green" @@ -7957,6 +5725,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, @@ -7995,14 +5771,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) -"aDg" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aDh" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -8027,15 +5795,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{ @@ -8063,16 +5822,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 @@ -8100,6 +5849,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 @@ -8108,21 +5861,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) -"aDz" = ( -/obj/structure/platform_decoration, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8177,12 +5915,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) -"aDF" = ( -/obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aDH" = ( /obj/structure/bed/chair/office/light{ dir = 4 @@ -8208,16 +5940,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; @@ -8262,23 +5984,17 @@ /area/almayer/living/grunt_rnr) "aDX" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/containment{ - dir = 4 - }, /obj/structure/sign/safety/terminal{ pixel_x = 8; pixel_y = 32 }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4 + }, /turf/open/floor/almayer{ 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 @@ -8288,14 +6004,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" @@ -8331,12 +6039,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"aEp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +"aEr" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/lower/l_a_p) "aEA" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -8379,24 +6090,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, @@ -8436,21 +6129,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{ @@ -8555,31 +6236,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"aFp" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) -"aFq" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/station_alert, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "aFr" = ( /obj/structure/machinery/light, /obj/structure/reagent_dispensers/watertank, @@ -8663,15 +6319,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{ @@ -8694,23 +6350,13 @@ 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 - }, +"aGa" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/upper/p_bow) "aGb" = ( /obj/structure/ladder{ height = 2; @@ -8724,22 +6370,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 @@ -8759,6 +6389,12 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"aGm" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "aGn" = ( /obj/structure/barricade/handrail, /turf/open/floor/almayer{ @@ -8828,19 +6464,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{ @@ -8850,12 +6473,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"; @@ -8942,15 +6559,10 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/living/numbertwobunks) "aHo" = ( -/obj/structure/machinery/computer/working_joe{ - dir = 4; - pixel_x = -17 - }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/upper/u_f_s) "aHq" = ( /turf/closed/wall/almayer, /area/almayer/command/computerlab) @@ -9045,12 +6657,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) -"aHB" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "aHK" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -9065,12 +6671,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"; @@ -9126,34 +6726,20 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_missiles) -"aIa" = ( -/obj/structure/machinery/power/terminal, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"aIb" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "aId" = ( /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"aIe" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) "aIf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/command/cic) +"aIh" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "aIl" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -9224,6 +6810,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, @@ -9284,20 +6877,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 @@ -9335,9 +6914,22 @@ icon_state = "plate" }, /area/almayer/living/tankerbunks) -"aIZ" = ( -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) +"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" @@ -9458,12 +7050,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 @@ -9505,20 +7091,6 @@ /obj/structure/bed/chair, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"aJL" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/snacks/mre_pack/meal5, -/obj/item/device/flashlight/lamp{ - pixel_x = 3; - pixel_y = 12 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"aJM" = ( -/obj/docking_port/stationary/escape_pod/east, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) "aJU" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -9631,9 +7203,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{ @@ -9702,21 +7272,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/pilotbunks) -"aKI" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 1; - pixel_y = 7 - }, -/obj/item/storage/toolbox/mechanical/green{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "aKN" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clothing/accessory/red, @@ -9771,15 +7326,6 @@ icon_state = "plating" }, /area/almayer/shipboard/starboard_point_defense) -"aKW" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_m_s) -"aLa" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "aLc" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -9793,24 +7339,11 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"aLd" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull) -"aLf" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"aLk" = ( -/obj/structure/reagent_dispensers/watertank, +"aLh" = ( /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"aLl" = ( -/obj/structure/machinery/light/small{ - dir = 8 + icon_state = "mono" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/upper/starboard) "aLp" = ( /obj/structure/sign/safety/cryo{ pixel_x = 8; @@ -9825,28 +7358,42 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) -"aLB" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_hallway) -"aLC" = ( -/obj/docking_port/stationary/escape_pod/south, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) +"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) -"aLF" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"aLG" = ( -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "aLJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -9891,6 +7438,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" @@ -9911,6 +7461,11 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"aMf" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_s) "aMg" = ( /obj/structure/sign/safety/intercom{ layer = 2.9; @@ -9936,36 +7491,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"aMh" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/ladder{ - height = 2; - id = "cicladder3" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = 23; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull) -"aMi" = ( -/obj/structure/ladder{ - height = 2; - id = "cicladder4" - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull) -"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, @@ -9993,19 +7518,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"aMr" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) -"aMs" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "aMt" = ( /obj/structure/machinery/light{ dir = 1 @@ -10091,12 +7603,10 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"aMM" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) +"aML" = ( +/obj/item/ammo_casing/bullet, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "aMO" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -10128,12 +7638,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{ @@ -10152,33 +7656,6 @@ "aNi" = ( /turf/closed/wall/almayer, /area/almayer/living/chapel) -"aNj" = ( -/obj/structure/bed/chair/office/dark, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) -"aNk" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/largecrate/random/barrel/green, -/obj/structure/sign/safety/maint{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "aNl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -10188,14 +7665,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, @@ -10212,18 +7681,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"aNw" = ( -/obj/structure/machinery/door_control{ - id = "safe_armory"; - name = "Hangar Armory Lockdown"; - pixel_y = 24; - req_access_txt = "4" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) "aNx" = ( /obj/structure/window/reinforced{ dir = 4; @@ -10234,21 +7691,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; @@ -10272,6 +7720,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" @@ -10307,16 +7760,6 @@ dir = 1 }, /area/almayer/medical/containment/cell) -"aOg" = ( -/obj/structure/bed/sofa/south/grey{ - pixel_y = 12 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"aOi" = ( -/obj/effect/landmark/start/nurse, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) "aOq" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, @@ -10346,6 +7789,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/midship_hallway) "aOy" = ( /obj/structure/machinery/light{ dir = 1 @@ -10381,12 +7836,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"aOD" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "aOE" = ( /obj/structure/platform{ dir = 8 @@ -10458,15 +7907,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, @@ -10481,12 +7921,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 @@ -10526,15 +7960,14 @@ }, /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" +"aPe" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "aPf" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer, @@ -10563,12 +7996,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; @@ -10607,9 +8034,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" @@ -10669,6 +8093,19 @@ /obj/structure/sign/nosmoking_1, /turf/closed/wall/almayer, /area/almayer/squads/alpha) +"aPN" = ( +/obj/structure/ladder{ + height = 2; + id = "ForeStarboardMaint" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = -17 + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/s_bow) +"aPO" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "aPS" = ( /obj/structure/machinery/power/port_gen/pacman, /turf/open/floor/almayer{ @@ -10687,21 +8124,6 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"aPX" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"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 @@ -10721,15 +8143,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{ @@ -10761,23 +8174,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"aQs" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/extinguisher, -/obj/item/tool/extinguisher, -/obj/item/tool/crowbar, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) -"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; @@ -10829,10 +8225,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices) -"aQI" = ( -/obj/effect/landmark/start/researcher, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) "aQL" = ( /turf/closed/wall/almayer, /area/almayer/squads/bravo) @@ -10920,6 +8312,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/midship_hallway) "aRo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -10928,12 +8328,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"aRp" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) "aRq" = ( /obj/structure/closet/secure_closet/staff_officer/gear, /obj/structure/machinery/camera/autoname/almayer{ @@ -10945,14 +8339,14 @@ }, /area/almayer/living/bridgebunks) "aRr" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/toolbox, -/obj/item/storage/firstaid/o2, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/lifeboat_pumps/south2) "aRt" = ( /turf/open/floor/almayer{ dir = 8; @@ -11033,16 +8427,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/morgue) -"aRG" = ( -/obj/structure/bed/chair/comfy/beige, -/obj/item/reagent_container/glass/bucket{ - pixel_x = 12; - pixel_y = -5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aRJ" = ( /obj/structure/ladder{ height = 2; @@ -11069,6 +8453,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; @@ -11094,14 +8494,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"aRV" = ( -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "aRX" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -11147,21 +8539,16 @@ /area/almayer/engineering/lower/engine_core) "aSl" = ( /obj/structure/machinery/light, -/obj/structure/machinery/cm_vending/sorted/medical, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, /turf/open/floor/almayer{ dir = 4; icon_state = "sterile_green_corner" }, /area/almayer/medical/medical_science) -"aSm" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "aSn" = ( /obj/item/stack/sheet/mineral/plastic{ amount = 15 @@ -11218,24 +8605,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, @@ -11243,18 +8612,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{ @@ -11264,18 +8621,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; @@ -11286,20 +8631,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 @@ -11348,20 +8679,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_two) -"aSY" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/item/reagent_container/glass/bucket/mopbucket, -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = 14 - }, -/obj/structure/janitorialcart, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "aTa" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/junction{ @@ -11422,16 +8739,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 @@ -11525,53 +8832,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) -"aTR" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 2; - id = "CIC Lockdown"; - layer = 2.2; - name = "\improper Combat Information Center Blast Door" - }, -/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ - dir = 1; - name = "\improper Command Power Substation" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"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"; @@ -11825,6 +9085,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 @@ -11846,10 +9112,6 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) -"aVt" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "aVC" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -11895,6 +9157,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; @@ -11948,16 +9217,11 @@ 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; - pixel_x = -17 + pixel_x = -17; + pixel_y = 8 }, /obj/structure/machinery/door_control/brbutton{ id = "engie_store"; @@ -11966,6 +9230,11 @@ pixel_y = 26; req_one_access_txt = "6" }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4; + pixel_x = -17; + pixel_y = -6 + }, /turf/open/floor/almayer{ dir = 1; icon_state = "orangecorner" @@ -11980,23 +9249,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"; @@ -12023,15 +9275,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 @@ -12072,14 +9315,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"aWs" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "aWt" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ @@ -12141,23 +9376,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 @@ -12251,88 +9469,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) -"aYc" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "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) -"aYm" = ( -/obj/structure/sign/safety/med_life_support{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/lower_medical_medbay) -"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; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) -"aYr" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"aYs" = ( -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/living/starboard_garden) "aYt" = ( /turf/open/floor/almayer, /area/almayer/hallways/hangar) @@ -12363,15 +9505,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{ @@ -12390,23 +9523,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 @@ -12424,59 +9540,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) -"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 - }, +"aYU" = ( +/obj/effect/landmark/yautja_teleport, /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) +/area/almayer/maint/upper/u_a_s) "aZe" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -12496,46 +9565,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/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"aZm" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"aZn" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_a_s) "aZr" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -12548,6 +9577,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/chapel) +"aZv" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_p) "aZy" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -12558,10 +9595,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{ @@ -12569,10 +9602,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"; @@ -12583,14 +9612,12 @@ 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" +"aZI" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/upper/p_stern) "aZK" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -12611,15 +9638,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"aZM" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv/empty, -/obj/item/storage/firstaid/adv/empty, -/obj/item/storage/firstaid/adv/empty, -/turf/open/floor/almayer{ - icon_state = "sterile_green_corner" - }, -/area/almayer/medical/lower_medical_medbay) "aZO" = ( /obj/structure/machinery/landinglight/ds2/delaytwo, /turf/open/floor/almayer{ @@ -12678,10 +9696,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{ @@ -12695,38 +9709,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"; @@ -12735,31 +9717,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, @@ -12807,6 +9769,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 @@ -12815,19 +9785,20 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"baY" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/bomb_supply, -/obj/effect/spawner/random/bomb_supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "baZ" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lower_medical_lobby) +"bba" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/reagent_dispensers/fueltank{ + anchored = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "bbd" = ( /obj/structure/machinery/light{ dir = 4 @@ -12851,83 +9822,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{ @@ -12938,18 +9844,6 @@ "bbs" = ( /turf/closed/wall/almayer, /area/almayer/living/cryo_cells) -"bbv" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"bbx" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bby" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -12977,49 +9871,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) -"bbR" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "bbS" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/starboard_point_defense) @@ -13276,10 +10127,6 @@ }, /turf/open/floor/plating, /area/almayer/living/briefing) -"bdi" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "bdj" = ( /turf/open/floor/almayer, /area/almayer/squads/req) @@ -13306,15 +10153,6 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"bdn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bdr" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) @@ -13562,36 +10400,15 @@ 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 }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"beG" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "beH" = ( /turf/open/floor/almayer, /area/almayer/living/briefing) -"beI" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "beL" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -13668,25 +10485,24 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"bfb" = ( -/obj/structure/surface/table/almayer, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/technology_scanner, -/obj/effect/spawner/random/technology_scanner, -/obj/structure/machinery/light/small{ - dir = 8 +"bfd" = ( +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bfc" = ( -/obj/structure/disposalpipe/segment{ dir = 1; - icon_state = "pipe-c" + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/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/fore_hallway) "bfl" = ( /turf/open/floor/almayer{ dir = 5; @@ -13711,6 +10527,9 @@ icon_state = "redcorner" }, /area/almayer/living/cryo_cells) +"bfs" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/l_f_s) "bft" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -13821,13 +10640,10 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bfP" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, +"bfO" = ( +/obj/structure/pipes/vents/pump/on, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/repair_bay) "bfV" = ( /obj/structure/machinery/landinglight/ds2{ dir = 8 @@ -13849,18 +10665,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bga" = ( +"bgh" = ( /turf/open/floor/almayer{ - icon_state = "redcorner" - }, -/area/almayer/hallways/starboard_hallway) -"bgc" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" + dir = 9; + icon_state = "silver" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/midship_hallway) "bgj" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 @@ -14019,12 +10829,6 @@ /obj/structure/window/framed/almayer/white, /turf/open/floor/plating, /area/almayer/medical/chemistry) -"bgH" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) "bgK" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -14102,22 +10906,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 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "bho" = ( /obj/structure/machinery/computer/med_data, /turf/open/floor/almayer{ @@ -14141,14 +10929,14 @@ icon_state = "plate" }, /area/almayer/living/chapel) -"bhC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, +"bhy" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_m_p) "bhG" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -14191,6 +10979,36 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"bhV" = ( +/obj/structure/ladder/fragile_almayer{ + height = 2; + id = "kitchen" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 24 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) +"bhZ" = ( +/obj/structure/surface/table/almayer, +/obj/item/frame/table, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/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/port) "biq" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/beaker/large, @@ -14207,12 +11025,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; @@ -14245,14 +11057,21 @@ /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_three) "biB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) +"biC" = ( +/obj/structure/largecrate/random/case, +/obj/structure/machinery/access_button/airlock_exterior, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull) +/area/almayer/maint/hull/upper/u_a_s) "biF" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/roller/surgical, @@ -14302,7 +11121,7 @@ dir = 10; icon_state = "red" }, -/area/almayer/living/starboard_garden) +/area/almayer/lifeboat_pumps/north1) "biV" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 8 @@ -14310,10 +11129,10 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/starboard_garden) -"bjb" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +"bjg" = ( +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "bjk" = ( /obj/structure/machinery/door_control{ id = "perma_lockdown_2"; @@ -14336,6 +11155,14 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"bjt" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "bju" = ( /turf/open/floor/almayer{ dir = 1; @@ -14360,64 +11187,6 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) -"bjI" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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 @@ -14437,6 +11206,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bkb" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) "bkd" = ( /obj/structure/machinery/landinglight/ds2/delaytwo{ dir = 8 @@ -14503,16 +11281,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{ @@ -14551,26 +11319,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 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/aft_hallway) -"bkR" = ( -/obj/structure/platform_decoration{ - dir = 1 +"bkS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "bkT" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -14594,24 +11353,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 @@ -14686,6 +11427,7 @@ /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -14856,12 +11598,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; @@ -14876,21 +11612,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{ @@ -14917,9 +11638,9 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ +/obj/structure/disposalpipe/junction{ dir = 8; - icon_state = "pipe-c" + icon_state = "pipe-y" }, /turf/open/floor/almayer{ icon_state = "plate" @@ -15082,15 +11803,14 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/bravo) -"bnD" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 +"bnF" = ( +/obj/structure/machinery/cryopod{ + pixel_y = 6 }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/upper/u_m_p) "bnH" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -15164,32 +11884,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"bob" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"boc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "bof" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -15210,32 +11904,31 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"boq" = ( -/obj/structure/bed/chair/comfy/alpha, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/living/briefing) -"bot" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 8 +"bom" = ( +/obj/structure/sign/safety/south{ + pixel_x = -17; + pixel_y = 8 }, -/obj/effect/spawner/random/toolbox, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "blue" }, -/area/almayer/hallways/starboard_umbilical) -"bou" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light{ - dir = 4 +/area/almayer/hallways/lower/port_midship_hallway) +"bop" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "cargo" }, -/obj/item/tank/emergency_oxygen/double, +/area/almayer/engineering/upper_engineering/port) +"boq" = ( +/obj/structure/bed/chair/comfy/alpha, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "redfull" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/living/briefing) +"bos" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/lower/s_bow) "boy" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -15275,13 +11968,11 @@ icon_state = "mono" }, /area/almayer/squads/req) -"boC" = ( -/obj/structure/barricade/handrail, +"boU" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldingtool, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"boL" = ( -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) +/area/almayer/maint/upper/u_m_s) "boV" = ( /obj/structure/cargo_container/wy/left, /obj/structure/prop/almayer/minigun_crate{ @@ -15305,13 +11996,6 @@ icon_state = "greenfull" }, /area/almayer/living/offices) -"boZ" = ( -/obj/item/storage/box/donkpockets, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "bpa" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, @@ -15424,14 +12108,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"bpJ" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "bpK" = ( /obj/structure/machinery/door/airlock/almayer/marine/alpha/sl, /turf/open/floor/almayer{ @@ -15458,7 +12134,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{ @@ -15474,26 +12150,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{ @@ -15506,12 +12186,6 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) -"bqG" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "silver" - }, -/area/almayer/hull/upper_hull/u_m_p) "bqH" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -15549,14 +12223,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; @@ -15648,6 +12314,12 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) +"brm" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) "brn" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo/smart, /turf/open/floor/almayer{ @@ -15658,6 +12330,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{ @@ -15714,31 +12391,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, @@ -15752,12 +12404,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"brX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "brY" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -15771,18 +12417,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; @@ -15836,20 +12470,14 @@ }, /area/almayer/living/gym) "bsF" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/emails{ +/obj/structure/machinery/camera/autoname/almayer{ dir = 1; - pixel_x = 1; - pixel_y = 4 - }, -/obj/item/tool/kitchen/utensil/fork{ - pixel_x = -9; - pixel_y = 3 + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/shipboard/brig/mp_bunks) "bsG" = ( /obj/structure/machinery/disposal{ density = 0; @@ -15876,7 +12504,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{ @@ -15898,10 +12526,6 @@ icon_state = "greenfull" }, /area/almayer/living/offices) -"bsO" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "bsP" = ( /obj/structure/machinery/optable, /turf/open/floor/almayer{ @@ -15937,15 +12561,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{ @@ -15956,25 +12571,12 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"bsV" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/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; @@ -15998,29 +12600,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"btk" = ( -/obj/structure/sign/poster/pinup{ - pixel_x = -30 - }, -/obj/structure/sign/poster/hunk{ - pixel_x = -25; - pixel_y = 10 - }, -/obj/item/trash/buritto, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"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, @@ -16028,6 +12607,12 @@ icon_state = "plate" }, /area/almayer/living/gym) +"btu" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "btv" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ @@ -16081,6 +12666,15 @@ "btO" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"btV" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "btX" = ( /obj/structure/machinery/light{ dir = 4 @@ -16108,11 +12702,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{ @@ -16147,15 +12736,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_one) -"buq" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) "bur" = ( /obj/structure/prop/almayer/missile_tube, /obj/effect/decal/warning_stripes{ @@ -16197,26 +12777,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"buD" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"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{ @@ -16248,15 +12808,22 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"buU" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"buY" = ( +/obj/structure/stairs{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/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/starboard_hallway) +/area/almayer/hallways/lower/port_midship_hallway) "bvb" = ( /obj/structure/machinery/light{ dir = 8 @@ -16302,6 +12869,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; @@ -16319,35 +12899,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) -"bvO" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"bvS" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull) -"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{ @@ -16367,11 +12918,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{ @@ -16452,15 +12998,32 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"bwF" = ( -/obj/structure/machinery/light/small{ +"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 }, -/obj/structure/largecrate/random/case/double, +/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/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_aft_hallway) +"bwG" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_m_s) "bwH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/crew/alt{ @@ -16471,26 +13034,21 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"bwQ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"bwN" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) +"bwP" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "bwR" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/med_data/laptop{ @@ -16516,18 +13074,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" @@ -16564,13 +13110,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; @@ -16583,12 +13122,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/fore_hallway) "bxA" = ( /obj/structure/machinery/power/apc/almayer/hardened, /obj/effect/decal/warning_stripes{ @@ -16627,27 +13168,45 @@ 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) -"bxX" = ( -/obj/structure/sign/safety/hvac_old{ +"bxV" = ( +/obj/structure/sign/safety/ladder{ pixel_x = 8; - pixel_y = -32 + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"bxY" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 11 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "byb" = ( /obj/structure/barricade/handrail/medical, /turf/open/floor/almayer{ @@ -16715,15 +13274,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bys" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, +"byt" = ( +/obj/structure/surface/rack, +/obj/item/tool/crowbar, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_m_s) "byu" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -16751,33 +13310,15 @@ 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) -"byI" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"byH" = ( +/obj/structure/bed/sofa/south/white/right{ + pixel_y = 16 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "silver" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/upper/u_m_p) "bzg" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -16793,9 +13334,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 @@ -16803,11 +13341,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" @@ -16816,25 +13349,6 @@ icon_state = "test_floor4" }, /area/almayer/command/telecomms) -"bzE" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"bzF" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bzH" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) "bzI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -16846,10 +13360,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, @@ -16868,34 +13378,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 @@ -16913,12 +13395,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, @@ -16928,12 +13404,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) @@ -16949,6 +13419,13 @@ icon_state = "test_floor4" }, /area/almayer/command/securestorage) +"bAy" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = -32 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "bAH" = ( /obj/structure/largecrate/random/case, /turf/open/floor/almayer{ @@ -17025,17 +13502,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" @@ -17054,21 +13520,12 @@ 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, +"bBc" = ( +/obj/structure/surface/rack, /turf/open/floor/almayer{ - icon_state = "greencorner" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/upper/u_m_p) "bBd" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -17095,14 +13552,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 @@ -17156,9 +13605,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 @@ -17206,6 +13652,18 @@ 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 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "bBY" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/almayer{ @@ -17243,21 +13701,10 @@ /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, +/area/almayer/maint/hull/lower/l_a_s) "bCl" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -17281,17 +13728,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 @@ -17300,6 +13736,18 @@ icon_state = "redfull" }, /area/almayer/living/briefing) +"bCv" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "bCx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -17344,22 +13792,6 @@ icon_state = "silver" }, /area/almayer/living/cryo_cells) -"bCE" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"bCF" = ( -/obj/structure/disposalpipe/junction{ - dir = 2; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "bCG" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -17367,10 +13799,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/cryo_cells) -"bCH" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull) "bCM" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ @@ -17392,12 +13820,12 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"bCQ" = ( -/obj/structure/machinery/light/small, +"bCR" = ( +/obj/structure/largecrate/random/case, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/upper/u_a_p) "bCS" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -17406,15 +13834,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" @@ -17431,20 +13850,11 @@ icon_state = "plate" }, /area/almayer/shipboard/weapon_room) -"bDe" = ( -/obj/structure/surface/table/almayer, -/obj/item/circuitboard{ - pixel_x = 12; - pixel_y = 7 - }, -/obj/item/tool/crowbar{ - pixel_x = 6; - pixel_y = 1 - }, +"bDi" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/fore_hallway) "bDn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/closed/wall/almayer, @@ -17460,28 +13870,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 - }, -/turf/open/floor/almayer, -/area/almayer/living/starboard_garden) "bDF" = ( /obj/structure/machinery/door/poddoor/almayer{ dir = 4; @@ -17506,7 +13894,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" @@ -17671,6 +14059,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, @@ -17682,12 +14080,6 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) -"bEo" = ( -/obj/structure/bed/sofa/south/grey/right{ - pixel_y = 12 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "bEp" = ( /obj/structure/filingcabinet, /obj/structure/sign/safety/galley{ @@ -17733,14 +14125,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"; @@ -17799,16 +14183,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"; @@ -17920,7 +14294,7 @@ }, /area/almayer/squads/bravo) "bET" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, @@ -17933,10 +14307,6 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"bFb" = ( -/obj/structure/foamed_metal, -/turf/open/floor/plating, -/area/almayer/medical/lower_medical_medbay) "bFj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -17952,6 +14322,21 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/weapon_room) +"bFl" = ( +/obj/structure/surface/table/almayer, +/obj/item/pizzabox/meat, +/obj/item/reagent_container/food/drinks/cans/souto/diet/peach{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{ + pixel_x = 8; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "bFp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -17986,10 +14371,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 @@ -17999,6 +14380,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 @@ -18021,6 +14411,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{ @@ -18034,9 +14432,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 @@ -18046,60 +14441,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{ @@ -18116,17 +14457,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{ @@ -18136,12 +14466,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"bGr" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "bGu" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ @@ -18287,48 +14611,22 @@ 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 +"bHg" = ( +/obj/structure/bed, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_side" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/medical/lower_medical_medbay) "bHk" = ( /turf/open/floor/almayer/research/containment/floor2{ dir = 1 }, /area/almayer/medical/containment/cell/cl) -"bHm" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) "bHp" = ( /obj/structure/disposalpipe/trunk{ dir = 2 @@ -18362,16 +14660,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 @@ -18392,20 +14687,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, @@ -18413,73 +14694,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 @@ -18498,21 +14715,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"bIi" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, +"bIj" = ( /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"bIl" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 + 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, @@ -18541,7 +14748,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; @@ -18593,16 +14800,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 @@ -18626,27 +14823,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) -"bIN" = ( -/obj/structure/bed/chair/office/dark, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"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{ @@ -18663,18 +14852,13 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"bIX" = ( -/obj/structure/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 +"bIW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"bJb" = ( -/obj/structure/disposalpipe/junction, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/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, @@ -18699,21 +14883,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; @@ -18733,9 +14902,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) @@ -18752,11 +14918,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) @@ -18779,19 +14940,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, @@ -18828,12 +14976,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 @@ -18850,12 +14992,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, @@ -18865,36 +15001,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." @@ -18979,23 +15100,62 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"bKE" = ( +"bKI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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{ - dir = 4; - icon_state = "orange" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/lower/cryo_cells) "bKM" = ( /obj/effect/landmark/start/marine/medic/charlie, /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{ + closeOtherId = "brignorth"; + dir = 2; + name = "\improper Brig Armoury"; + req_access = null; + req_one_access_txt = "1;3" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"bKP" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "bKQ" = ( /obj/structure/bed/chair{ dir = 8 }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) +"bKU" = ( +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "bKX" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/masks, @@ -19004,18 +15164,39 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"bLb" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ +"bLc" = ( +/obj/structure/surface/rack, +/obj/item/roller, +/obj/item/roller, +/obj/structure/machinery/light{ dir = 1 }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" +/obj/item/clothing/glasses/disco_fever{ + pixel_x = 5; + pixel_y = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) +"bLf" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/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/aft_hallway) "bLh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -19129,24 +15310,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"; @@ -19159,9 +15322,9 @@ dir = 8; pixel_y = 2 }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "bLw" = ( @@ -19240,34 +15403,6 @@ /obj/item/tool/pen, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"bLS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) -"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{ @@ -19284,6 +15419,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/midship_hallway) "bMq" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /obj/structure/machinery/light{ @@ -19293,12 +15442,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; @@ -19357,6 +15500,16 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"bME" = ( +/obj/structure/surface/rack, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "bMJ" = ( /obj/structure/machinery/light, /obj/structure/machinery/portable_atmospherics/canister/oxygen, @@ -19429,21 +15582,19 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"bMY" = ( -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +"bMV" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_x = -8; + pixel_y = 28 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/obj/structure/sign/safety/intercom{ + pixel_x = 14; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "bNa" = ( /obj/structure/surface/table/almayer, /obj/item/folder/black, @@ -19458,6 +15609,12 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"bNc" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orangecorner" + }, +/area/almayer/maint/upper/u_a_s) "bNe" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -19539,15 +15696,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, @@ -19557,6 +15705,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 @@ -19640,6 +15796,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/fore_hallway) "bNL" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -19683,46 +15849,14 @@ }, /area/almayer/shipboard/navigation) "bNT" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"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) -"bNX" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"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 +/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/midship_hallway) "bOq" = ( /obj/structure/prop/almayer/cannon_cables, /turf/open/floor/almayer{ @@ -19738,12 +15872,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{ @@ -19871,11 +16008,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 @@ -19919,15 +16051,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, @@ -20003,6 +16126,11 @@ }, /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/surface/table/reinforced/almayer_blend/north, +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = -8; + anchored = 1 + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -20086,36 +16214,6 @@ icon_state = "logo_c" }, /area/almayer/living/briefing) -"bPS" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPT" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPU" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPV" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bPW" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bQc" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1 @@ -20284,76 +16382,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 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/vehiclehangar) -"bRF" = ( -/obj/structure/machinery/light/small, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"bRK" = ( -/obj/structure/machinery/light/small{ - dir = 1 + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/starboard_umbilical) "bRP" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -20367,15 +16409,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" @@ -20388,18 +16421,15 @@ }, /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/surface/table/reinforced/almayer_blend, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/squads/req) -"bRU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = 10; + anchored = 1 }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/squads/req) "bRV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -20432,13 +16462,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; @@ -20448,22 +16471,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; @@ -20550,15 +16557,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; @@ -20643,6 +16641,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) @@ -20655,6 +16661,12 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"bTD" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "greencorner" + }, +/area/almayer/hallways/upper/fore_hallway) "bTE" = ( /turf/open/floor/almayer{ dir = 4; @@ -20675,10 +16687,6 @@ "bTH" = ( /turf/open/floor/almayer, /area/almayer/living/tankerbunks) -"bTI" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "bTJ" = ( /obj/structure/machinery/vending/cigarette{ density = 0; @@ -20710,12 +16718,6 @@ "bTO" = ( /turf/open/floor/almayer, /area/almayer/shipboard/port_point_defense) -"bTQ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "bTR" = ( /obj/structure/machinery/light{ dir = 1 @@ -20773,6 +16775,12 @@ icon_state = "plate" }, /area/almayer/living/tankerbunks) +"bTW" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "bUa" = ( /obj/structure/closet, /turf/open/floor/almayer{ @@ -20791,38 +16799,6 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"bUc" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "Secretroom"; - indestructible = 1; - unacidable = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) -"bUd" = ( -/turf/open/floor/almayer{ - 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{ @@ -20918,35 +16894,18 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) -"bUz" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/port_hallway) -"bUE" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"bUH" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/hallways/aft_hallway) -"bUF" = ( -/turf/open/floor/almayer{ - icon_state = "bluecorner" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/hallways/port_hallway) -"bUG" = ( -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/port_hallway) -"bUM" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "blue" - }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_m_p) "bUN" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -20961,16 +16920,11 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"bUP" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, +"bUQ" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_f_p) "bUT" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 26 @@ -21004,15 +16958,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"bVi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "bVn" = ( /obj/structure/machinery/light{ dir = 8 @@ -21037,6 +16982,14 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"bVr" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "bVs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -21072,31 +17025,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) -"bVF" = ( -/obj/structure/surface/rack, -/obj/item/roller, -/obj/item/roller, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/item/clothing/glasses/disco_fever{ - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"bVL" = ( -/obj/structure/surface/rack, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "bVM" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, @@ -21107,37 +17035,9 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"bVR" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"bVT" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -19; - pixel_y = -6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -19; - pixel_y = 6 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "bVU" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/port_point_defense) -"bWb" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "bWc" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -21174,6 +17074,12 @@ icon_state = "plate" }, /area/almayer/living/starboard_garden) +"bWg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "bWh" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -21223,6 +17129,11 @@ icon_state = "test_floor4" }, /area/almayer/living/chapel) +"bWx" = ( +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/port) "bWJ" = ( /obj/structure/machinery/shower{ dir = 4 @@ -21231,10 +17142,6 @@ /obj/structure/window/reinforced/tinted/frosted, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/auxiliary_officer_office) -"bWK" = ( -/obj/docking_port/stationary/escape_pod/north, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_s) "bWL" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -21242,18 +17149,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 @@ -21267,18 +17166,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) @@ -21290,6 +17177,14 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"bXh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "bXo" = ( /obj/structure/ladder{ height = 1; @@ -21303,12 +17198,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 @@ -21317,6 +17206,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, @@ -21330,12 +17228,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; @@ -21349,10 +17241,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{ @@ -21360,43 +17248,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) -"bYg" = ( -/obj/item/reagent_container/glass/bucket{ - pixel_x = 4; - pixel_y = 9 - }, -/obj/item/tool/shovel/spade{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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) -"bYi" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "bYn" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/upper_engineering/port) @@ -21446,16 +17297,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"; @@ -21463,6 +17304,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) +"bYW" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/panic) "bYY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -21504,13 +17348,18 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"bZg" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 +"bZf" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 }, -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "bZi" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -21531,6 +17380,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/aft_hallway) "bZr" = ( /turf/open/floor/almayer{ dir = 1; @@ -21540,49 +17399,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) -"bZH" = ( -/obj/structure/machinery/firealarm{ - dir = 8; - pixel_x = -24 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" - }, -/area/almayer/hull/upper_hull/u_f_p) "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 @@ -21604,6 +17426,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"; @@ -21684,12 +17513,19 @@ icon_state = "green" }, /area/almayer/squads/req) -"can" = ( -/obj/structure/machinery/conveyor{ - id = "req_belt" +"cap" = ( +/obj/structure/surface/rack, +/obj/item/tool/wirecutters, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/upper/u_a_s) +"caq" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "car" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 @@ -21702,14 +17538,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{ @@ -21726,63 +17554,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) -"caE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) "caM" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -21836,6 +17607,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_three) +"cbc" = ( +/obj/structure/platform_decoration, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "cbg" = ( /obj/structure/machinery/door/airlock/almayer/command{ dir = 2; @@ -21874,17 +17656,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"cbo" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) -"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 @@ -21899,150 +17670,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/fore_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) -"cbA" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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) -"cbZ" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/item/storage/firstaid{ - pixel_x = -13; - pixel_y = 13 - }, -/obj/item/clipboard, -/obj/item/paper, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "ccb" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ @@ -22060,9 +17706,9 @@ pixel_x = -1 }, /obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_n"; dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_n" + name = "\improper Containment Airlock" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 @@ -22103,31 +17749,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 @@ -22136,22 +17759,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{ @@ -22161,64 +17768,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" @@ -22259,27 +17825,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, @@ -22291,37 +17836,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 @@ -22369,23 +17883,6 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"cdZ" = ( -/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_hallway) -"cea" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "ceg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -22395,50 +17892,6 @@ 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, @@ -22461,28 +17914,12 @@ 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" +"ceY" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/hallways/repair_bay) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "ceZ" = ( /obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer{ @@ -22500,6 +17937,24 @@ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"cfm" = ( +/obj/structure/flora/pottedplant{ + desc = "Life is underwhelming, especially when you're a potted plant."; + icon_state = "pottedplant_22"; + name = "Jerry"; + pixel_y = 8 + }, +/obj/item/clothing/glasses/sunglasses/prescription{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "cfo" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) @@ -22528,71 +17983,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; @@ -22666,29 +18062,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{ @@ -22707,6 +18080,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"cgU" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "chb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ @@ -22772,33 +18155,17 @@ 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) "chC" = ( -/obj/structure/platform_decoration, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"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" - }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "chL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -22921,6 +18288,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{ @@ -22931,47 +18308,12 @@ 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{ icon_state = "green" }, /area/almayer/squads/req) -"cit" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 7 - }, -/obj/item/tool/pen, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "ciu" = ( /obj/structure/platform{ dir = 8 @@ -23007,6 +18349,21 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"ciB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = 16; + pixel_y = -15 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "ciD" = ( /obj/structure/platform_decoration{ dir = 1 @@ -23015,6 +18372,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/midship_hallway) "ciN" = ( /turf/open/floor/almayer{ dir = 6; @@ -23028,31 +18394,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, @@ -23083,10 +18424,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"cjh" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "cji" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -23104,59 +18441,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{ @@ -23196,41 +18485,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 @@ -23273,29 +18527,34 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"ckl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"cke" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 18 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) -"ckm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/area/almayer/maint/hull/upper/u_a_p) +"ckh" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/obj/structure/machinery/status_display{ - pixel_x = 32 +/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{ + pixel_x = -3; + pixel_y = 14 }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/upper/p_stern) "ckr" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -23303,28 +18562,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"ckB" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1; - name = "\improper Emergency Air Storage" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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 @@ -23357,22 +18594,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, @@ -23383,29 +18604,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; @@ -23533,55 +18740,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{ @@ -23641,35 +18803,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"clO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"clP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"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{ @@ -23691,7 +18824,6 @@ /area/almayer/squads/delta) "clV" = ( /obj/structure/machinery/computer/arcade, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 9; icon_state = "green" @@ -23728,44 +18860,17 @@ 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) -"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" +"cme" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, -/area/almayer/hallways/port_hallway) -"cmk" = ( -/obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_m_s) "cml" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -23806,10 +18911,9 @@ icon_state = "green" }, /area/almayer/squads/req) -"cmq" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"cmr" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "cmv" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_x = -30 @@ -23833,10 +18937,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"cmE" = ( -/obj/docking_port/stationary/escape_pod/south, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_s) "cmF" = ( /obj/structure/platform, /obj/structure/platform{ @@ -23851,18 +18951,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 @@ -23873,10 +18961,10 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/security/reinforced{ access_modified = 1; + closeOtherId = "astroladder_n"; name = "\improper Astronavigational Deck"; req_access = null; - req_one_access_txt = "3;19"; - closeOtherId = "astroladder_n" + req_one_access_txt = "3;19" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -23886,10 +18974,10 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/security/reinforced{ access_modified = 1; + closeOtherId = "astroladder_s"; name = "\improper Astronavigational Deck"; req_access = null; - req_one_access_txt = "3;19"; - closeOtherId = "astroladder_s" + req_one_access_txt = "3;19" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -23902,21 +18990,32 @@ icon_state = "silver" }, /area/almayer/command/securestorage) -"cmX" = ( -/obj/docking_port/stationary/escape_pod/west, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_p) -"cna" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +"cmL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/obj/structure/machinery/alarm/almayer{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/upper/port) +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"cmV" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "cnd" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -23941,25 +19040,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{ @@ -23992,12 +19077,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; @@ -24023,6 +19102,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; @@ -24052,6 +19140,14 @@ icon_state = "plate" }, /area/almayer/living/port_emb) +"cnP" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "cnR" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -24094,12 +19190,6 @@ icon_state = "test_floor4" }, /area/almayer/command/computerlab) -"cnU" = ( -/obj/structure/machinery/vending/hydronutrients, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "cnV" = ( /obj/structure/machinery/light{ dir = 8 @@ -24115,22 +19205,10 @@ icon_state = "dark_sterile" }, /area/almayer/medical/morgue) -"cnX" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"cnY" = ( -/obj/item/tool/wirecutters/clippers, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "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" @@ -24171,10 +19249,20 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"com" = ( -/obj/structure/largecrate/supply/weapons/pistols, +"coo" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = -32 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/lower/l_f_s) "cop" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/tankerbunks) @@ -24208,12 +19296,6 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) -"coG" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "coH" = ( /obj/structure/platform_decoration{ dir = 1 @@ -24247,16 +19329,6 @@ dir = 4 }, /area/almayer/medical/containment/cell) -"cpf" = ( -/obj/structure/ladder{ - height = 2; - id = "ForeStarboardMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = -17 - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_f_s) "cpj" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper, @@ -24284,12 +19356,12 @@ }, /turf/open/floor/almayer, /area/almayer/living/offices) -"cpw" = ( +"cpz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/l_m_s) "cpJ" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -24311,12 +19383,22 @@ /obj/structure/window/framed/almayer/hull/hijack_bustable, /turf/open/floor/plating, /area/almayer/squads/req) -"cqa" = ( +"cpQ" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"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{ @@ -24326,15 +19408,25 @@ 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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "cqz" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/black, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"cqH" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_m_s) "cqJ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -24367,20 +19459,18 @@ /turf/open/floor/almayer, /area/almayer/living/bridgebunks) "crc" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"cre" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 +/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 @@ -24390,47 +19480,31 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"crp" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/secure_data{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/chief_mp_office) -"crD" = ( +"cri" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/squads/req) -"crP" = ( -/obj/item/tool/kitchen/utensil/pfork, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) -"crW" = ( -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) -"csl" = ( -/obj/structure/pipes/vents/scrubber, +/area/almayer/maint/hull/upper/u_f_s) +"crD" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "greencorner" }, -/area/almayer/hallways/starboard_hallway) -"csz" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/squads/req) +"csd" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"csy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/warden_office) "csI" = ( /turf/open/floor/almayer{ dir = 8; @@ -24462,10 +19536,29 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/bravo) +"cth" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) +"ctp" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "cts" = ( /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" @@ -24495,15 +19588,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; @@ -24516,6 +19605,15 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cryo) +"cui" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "cuq" = ( /obj/structure/machinery/computer/arcade, /turf/open/floor/wood/ship, @@ -24541,6 +19639,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/fore_hallway) "cuN" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -24561,18 +19672,39 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha) +"cva" = ( +/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ + name = "\improper Armourer's Workshop"; + req_access = null + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_s) "cvb" = ( +/obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" + dir = 1 }, /turf/open/floor/almayer{ 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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"cvx" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/lower/cryo_cells) "cvH" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -24585,6 +19717,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 @@ -24594,6 +19730,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/fore_hallway) "cwo" = ( /obj/structure/largecrate/random/mini/chest{ pixel_x = 4 @@ -24604,31 +19750,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 = "orangecorner" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/aft_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{ @@ -24642,28 +19780,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) -"cxo" = ( +"cxF" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/structure/barricade/handrail, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor5" }, -/area/almayer/hull/upper_hull/u_a_p) -"cxA" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +/area/almayer/hallways/lower/port_midship_hallway) +"cyc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/pipes/vents/pump, /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) "cyo" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -24671,29 +19812,39 @@ icon_state = "green" }, /area/almayer/squads/req) -"cyy" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"cyp" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" }, +/obj/structure/plasticflaps, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "plating_striped" }, -/area/almayer/hull/lower_hull/stern) -"cyE" = ( -/obj/structure/platform_decoration{ - dir = 8 +/area/almayer/maint/hull/lower/l_a_p) +"cyv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_s) -"cyG" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/blocker/forcefield/multitile_vehicles, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/area/almayer/maint/hull/upper/u_f_p) +"cyL" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/toolbox, +/obj/item/storage/firstaid/o2, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) +"cyR" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "cyU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -24708,24 +19859,38 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"czu" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_m_p) "czJ" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 15; + pixel_y = 32 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"czM" = ( /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/midship_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 @@ -24743,6 +19908,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) +"cAz" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/item/stack/sheet/metal, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "cAF" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -24755,11 +19929,9 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"cAH" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) +"cAR" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/mp_bunks) "cBb" = ( /obj/structure/machinery/light{ dir = 1 @@ -24776,16 +19948,6 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/starboard) -"cBi" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "cBj" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -24802,14 +19964,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"; @@ -24823,10 +19977,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, @@ -24844,82 +19995,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) -"cBB" = ( -/obj/structure/surface/rack, -/obj/item/tool/wirecutters, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"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 @@ -24943,15 +20039,22 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"cDe" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/sign/safety/storage{ - pixel_x = -17 +"cCL" = ( +/obj/effect/landmark/crap_item, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"cDb" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null }, +/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/p_bow) "cDn" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/glass{ @@ -24979,6 +20082,15 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) +"cDx" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_p) "cDC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25005,13 +20117,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/lobby) -"cDW" = ( -/obj/structure/largecrate/supply/supplies/flares, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "cDZ" = ( /obj/structure/surface/table/almayer, /obj/item/paper, @@ -25019,16 +20124,6 @@ icon_state = "plate" }, /area/almayer/living/tankerbunks) -"cEg" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - pixel_x = 5; - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "cEi" = ( /obj/structure/sign/poster, /turf/closed/wall/almayer, @@ -25049,6 +20144,21 @@ icon_state = "plating" }, /area/almayer/command/cic) +"cEA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "cEC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25071,25 +20181,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie) -"cEO" = ( -/obj/structure/largecrate/supply/floodlights, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"cES" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/stern_hallway) -"cEY" = ( -/obj/structure/largecrate/supply/ammo/m41a/half, -/obj/structure/largecrate/supply/ammo/pistol/half{ - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "cFh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -25109,13 +20200,6 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"cFA" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "cFC" = ( /obj/structure/machinery/light{ dir = 1 @@ -25125,6 +20209,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/midship_hallway) "cFP" = ( /obj/structure/sign/safety/outpatient{ pixel_x = -17; @@ -25134,30 +20230,34 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"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) -"cGr" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"cGd" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_s) +"cGA" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, -/area/almayer/hallways/aft_hallway) -"cGI" = ( -/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"cGB" = ( +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/hull/lower/l_m_s) +"cGR" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) "cGV" = ( /turf/open/floor/almayer{ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) +"cGY" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "cHc" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/ladder{ @@ -25168,6 +20268,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" @@ -25180,10 +20283,12 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"cHq" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +"cHn" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) "cHu" = ( /turf/closed/wall/almayer/research/containment/wall/south, /area/almayer/medical/containment/cell/cl) @@ -25192,6 +20297,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 @@ -25207,15 +20318,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"cHP" = ( -/obj/structure/machinery/light/small, -/obj/effect/decal/warning_stripes{ - icon_state = "N" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "cIe" = ( /obj/structure/machinery/light{ dir = 4 @@ -25223,20 +20325,14 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"cIi" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 +"cIm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_fore_hallway) "cIr" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25258,15 +20354,11 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"cIU" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"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" @@ -25284,6 +20376,20 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) +"cJm" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/bed/chair{ + dir = 16 + }, +/turf/open/floor/almayer{ + 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" @@ -25296,16 +20402,19 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"cJB" = ( -/obj/structure/machinery/vending/coffee, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "cJE" = ( /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; @@ -25348,36 +20457,58 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) -"cJP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"cJV" = ( +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 }, -/obj/structure/sign/safety/water{ +/turf/open/floor/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/fore_hallway) +"cKm" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = -8 + }, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_y = 12 + }, +/obj/item/clothing/head/militia/bucket{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/reagent_container/spray/cleaner{ pixel_x = 8; - pixel_y = 32 + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"cKp" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) +"cKJ" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_a_p) -"cKt" = ( -/obj/structure/bed/sofa/south/grey/left, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_f_p) +/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, -/turf/open/floor/almayer{ - icon_state = "silver" - }, -/area/almayer/hallways/aft_hallway) "cLl" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -25392,8 +20523,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" = ( @@ -25432,23 +20563,6 @@ icon_state = "cargo" }, /area/almayer/living/bridgebunks) -"cLV" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"cMb" = ( -/obj/structure/surface/table/almayer, -/obj/item/paper_bin/uscm{ - pixel_y = 7 - }, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "cMl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25489,26 +20603,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) -"cNc" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"cNe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "cNf" = ( /turf/open/floor/almayer{ 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"; @@ -25524,6 +20629,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 @@ -25556,12 +20672,26 @@ }, /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) -"cOi" = ( -/obj/effect/landmark/yautja_teleport, +"cOh" = ( +/obj/item/stool{ + pixel_x = 15; + pixel_y = 6 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"cOo" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_a_p) +"cOt" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "cOK" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -25575,13 +20705,57 @@ icon_state = "outerhull_dir" }, /area/almayer/engineering/upper_engineering/starboard) -"cOM" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = -32 +"cOY" = ( +/obj/item/clothing/under/blackskirt{ + desc = "A stylish skirt, in a business-black and red colour scheme."; + name = "liaison's skirt" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/item/clothing/under/suit_jacket/charcoal{ + desc = "A professional black suit and blue tie. A combination popular among government agents and corporate Yes-Men alike."; + name = "liaison's black suit" + }, +/obj/item/clothing/under/suit_jacket/navy{ + desc = "A navy suit and red tie, intended for the Almayer's finest. And accountants."; + name = "liaison's navy suit" + }, +/obj/item/clothing/under/suit_jacket/trainee, +/obj/item/clothing/under/liaison_suit/charcoal, +/obj/item/clothing/under/liaison_suit/blazer, +/obj/item/clothing/suit/storage/snow_suit/liaison, +/obj/item/clothing/gloves/black, +/obj/item/clothing/gloves/marine/dress, +/obj/item/clothing/glasses/sunglasses/big, +/obj/item/clothing/accessory/blue, +/obj/item/clothing/accessory/red, +/obj/structure/machinery/status_display{ + pixel_x = -32 + }, +/obj/item/clothing/accessory/black, +/obj/item/clothing/accessory/green, +/obj/item/clothing/accessory/gold, +/obj/item/clothing/accessory/purple, +/obj/item/clothing/under/liaison_suit/corporate_formal, +/obj/item/clothing/under/liaison_suit/field, +/obj/item/clothing/under/liaison_suit/ivy, +/obj/item/clothing/under/liaison_suit/blue, +/obj/item/clothing/under/liaison_suit/brown, +/obj/item/clothing/under/liaison_suit/black, +/obj/item/clothing/suit/storage/jacket/marine/vest, +/obj/item/clothing/suit/storage/jacket/marine/vest/grey, +/obj/item/clothing/suit/storage/jacket/marine/vest/tan, +/obj/item/clothing/suit/storage/jacket/marine/bomber, +/obj/item/clothing/suit/storage/jacket/marine/bomber/red, +/obj/item/clothing/suit/storage/jacket/marine/bomber/grey, +/obj/item/clothing/suit/storage/jacket/marine/corporate, +/obj/item/clothing/suit/storage/jacket/marine/corporate/black, +/obj/item/clothing/suit/storage/jacket/marine/corporate/blue, +/obj/item/clothing/suit/storage/jacket/marine/corporate/brown, +/obj/item/clothing/suit/storage/jacket/marine/corporate/formal, +/obj/structure/closet/cabinet{ + storage_capacity = 35 + }, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliaison) "cPg" = ( /obj/structure/sign/safety/north{ pixel_x = 32; @@ -25596,6 +20770,10 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"cPj" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/p_bow) "cPK" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -25608,6 +20786,23 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"cPP" = ( +/obj/structure/sign/poster/pinup{ + pixel_x = -30 + }, +/obj/structure/sign/poster/hunk{ + pixel_x = -25; + pixel_y = 10 + }, +/obj/item/trash/buritto, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "cQc" = ( /turf/open/floor/almayer{ dir = 1; @@ -25639,12 +20834,9 @@ "cQv" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/general_equipment) -"cQF" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_f_s) +"cQG" = ( +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "cQL" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -25652,15 +20844,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/lobby) -"cQN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "cQW" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -25685,15 +20868,6 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) -"cRc" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "cRi" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -25754,16 +20928,30 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"cSK" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +"cSH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/largecrate/supply/supplies/flares, +/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{ - icon_state = "plate" + dir = 8; + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/upper/midship_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 @@ -25790,6 +20978,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{ @@ -25797,34 +20991,59 @@ icon_state = "green" }, /area/almayer/living/offices) -"cUv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"cTM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light/small{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" + }, +/area/almayer/maint/upper/mess) +"cTX" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) +"cUl" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/s_bow) "cVb" = ( /obj/structure/machinery/sentry_holder/almayer, /turf/open/floor/almayer{ 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) -"cVs" = ( -/obj/structure/platform_decoration{ - dir = 8 +"cVt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_fore_hallway) "cVw" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -25845,6 +21064,47 @@ icon_state = "plate" }, /area/almayer/living/gym) +"cVT" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) +"cWm" = ( +/obj/structure/surface/rack, +/obj/item/storage/firstaid/adv/empty, +/obj/item/storage/firstaid/adv/empty, +/obj/item/storage/firstaid/adv/empty, +/obj/structure/sign/safety/med_life_support{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/lower_medical_medbay) +"cWo" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_p) "cWr" = ( /obj/structure/machinery/photocopier{ density = 0; @@ -25883,26 +21143,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; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) "cWy" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/item/reagent_container/food/snacks/packaged_burger, @@ -25912,10 +21152,6 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"cWA" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "cWE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -25926,16 +21162,17 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"cWI" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"cXd" = ( +/obj/structure/surface/rack, +/obj/item/stack/cable_coil, +/obj/item/attachable/flashlight/grip, +/obj/item/ammo_box/magazine/l42a{ + pixel_y = 14 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/upper/u_m_s) "cXi" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -25951,12 +21188,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"cXq" = ( -/obj/structure/largecrate/supply/supplies/water, +"cXm" = ( +/obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_m_s) "cXC" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -25966,6 +21203,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; @@ -25984,6 +21234,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 @@ -25995,18 +21251,27 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) +"cXX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "cXY" = ( /obj/item/stack/catwalk, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"cXZ" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"cYo" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "cYu" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -26039,6 +21304,9 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/south1) +"cZe" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_f_s) "cZh" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -26048,27 +21316,35 @@ }, /turf/open/floor/plating, /area/almayer/command/cichallway) -"cZj" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, +"cZp" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ +/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" + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"cZm" = ( -/obj/structure/machinery/light{ - dir = 1 +/area/almayer/maint/hull/lower/l_m_p) +"cZO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_f_p) "cZV" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/fancy/cigarettes/wypacket, @@ -26104,23 +21380,15 @@ 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{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "dbc" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -26203,6 +21471,12 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"dbX" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "dcd" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -26216,55 +21490,57 @@ 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; icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"dcS" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"dcT" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"dcZ" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_p) "ddf" = ( /obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/almayer{ 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/fore_hallway) "ddw" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/sign/safety/terminal{ @@ -26280,6 +21556,20 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) +"ddF" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/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, @@ -26292,6 +21582,23 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"deq" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"deA" = ( +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_x = -1; + pixel_y = 13 + }, +/obj/structure/sign/safety/water{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) "deD" = ( /obj/structure/machinery/prop/almayer/CICmap{ pixel_x = -5 @@ -26299,14 +21606,13 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer, /area/almayer/command/cic) +"deF" = ( +/obj/structure/closet/emcloset, +/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 @@ -26323,19 +21629,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" @@ -26365,14 +21658,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; @@ -26396,17 +21681,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"dgq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "dgx" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_18"; @@ -26418,17 +21692,17 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) -"dgN" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/etool{ - pixel_x = 6 +"dgI" = ( +/turf/open/floor/almayer{ + icon_state = "blue" }, -/obj/item/tool/shovel/etool, -/obj/item/tool/wirecutters, +/area/almayer/hallways/upper/fore_hallway) +"dgP" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/upper/fore_hallway) "dha" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -26459,6 +21733,19 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"dhp" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + 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; @@ -26469,27 +21756,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"; @@ -26513,18 +21792,6 @@ 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" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/lobby) "djQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -26551,9 +21818,6 @@ }, /area/almayer/medical/operating_room_four) "dkj" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/surface/table/almayer, /obj/item/device/radio/intercom/alamo{ layer = 2.9 @@ -26579,6 +21843,36 @@ icon_state = "red" }, /area/almayer/living/briefing) +"dkt" = ( +/obj/structure/surface/rack, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = -6; + pixel_y = -3 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0; + pixel_x = 5; + pixel_y = -3 + }, +/obj/structure/noticeboard{ + desc = "The note is haphazardly attached to the cork board by what looks like a bent firing pin. 'The order has come in to perform end of life service checks on all L42A service rifles, any that are defective are to be dis-assembled and packed into a crate and sent to to the cargo hold. L42A service rifles that are in working order after servicing, are to be locked in secure cabinets ready to be off-loaded at Chinook. Scheduled end of life service for the L42A - Complete'"; + pixel_y = 29 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "dkO" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down2"; @@ -26595,6 +21889,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, @@ -26608,13 +21908,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"dlp" = ( -/obj/structure/largecrate/supply/supplies/water, -/obj/item/toy/deck{ - pixel_y = 12 +"dlT" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "mono" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/fore_hallway) "dmg" = ( /obj/structure/machinery/vending/coffee, /obj/structure/sign/safety/coffee{ @@ -26626,6 +21925,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; @@ -26654,11 +21965,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"dmQ" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "dmR" = ( /obj/effect/glowshroom, /obj/effect/glowshroom{ @@ -26696,17 +22002,13 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) -"dnk" = ( -/obj/structure/largecrate/supply/generator, -/obj/item/reagent_container/food/drinks/bottle/whiskey{ - layer = 2.9; - pixel_x = -10; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"dni" = ( +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "dnm" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/intelligence_officer, /obj/structure/machinery/light{ @@ -26740,6 +22042,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{ @@ -26747,16 +22056,19 @@ icon_state = "silver" }, /area/almayer/command/securestorage) -"dnX" = ( -/obj/structure/disposalpipe/segment{ +"dnZ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"dod" = ( -/obj/structure/closet/crate/trashcart, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/almayer{ + dir = 4; + icon_state = "plating_striped" + }, +/area/almayer/maint/hull/lower/l_a_p) "dof" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ name = "\improper Upper Engineering" @@ -26768,14 +22080,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 @@ -26822,17 +22126,27 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"dpy" = ( +"dpA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/bed/chair{ - dir = 4 - }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/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/midship_hallway) "dpO" = ( /obj/structure/machinery/cm_vending/clothing/marine/delta{ density = 0; @@ -26843,16 +22157,18 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/delta) +"dpS" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/midship_hallway) "dqb" = ( /obj/structure/sign/safety/security{ pixel_x = -16 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"dqd" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "dqg" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/almayer{ @@ -26891,30 +22207,6 @@ icon_state = "test_floor4" }, /area/almayer/living/offices) -"dqH" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/dart, -/obj/item/weapon/dart, -/obj/item/weapon/dart, -/obj/item/weapon/dart/green, -/obj/item/weapon/dart/green, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"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; @@ -26935,15 +22227,16 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"drt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, +"dro" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/bomb_supply, +/obj/effect/spawner/random/bomb_supply, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_m_s) "drT" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -26964,25 +22257,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) -"dsu" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "dsA" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/almayer{ @@ -26990,18 +22264,22 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/execution) +"dsS" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"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 @@ -27014,9 +22292,9 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ + closeOtherId = "ciclobby_s"; id_tag = "cic_exterior"; - name = "\improper Combat Information Center"; - closeOtherId = "ciclobby_s" + name = "\improper Combat Information Center" }, /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -27063,11 +22341,6 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"dux" = ( -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/living/starboard_garden) "duz" = ( /obj/structure/mirror{ pixel_y = 32 @@ -27084,6 +22357,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/fore_hallway) "duT" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -27133,6 +22414,27 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) +"dvD" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"dvZ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + 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, @@ -27164,6 +22466,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/lifeboat_pumps/north2) "dxu" = ( /obj/structure/sink{ dir = 1; @@ -27179,15 +22490,6 @@ icon_state = "silvercorner" }, /area/almayer/command/computerlab) -"dxC" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "dxF" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down1"; @@ -27198,6 +22500,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 @@ -27266,6 +22579,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; @@ -27283,6 +22605,11 @@ icon_state = "plating" }, /area/almayer/squads/req) +"dyJ" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/upper/midship_hallway) "dyK" = ( /obj/structure/machinery/light{ dir = 8 @@ -27295,29 +22622,38 @@ "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" +"dzG" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/general_equipment) +"dzV" = ( /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/starboard_hallway) -"dzG" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 26 +/area/almayer/hallways/upper/fore_hallway) +"dzX" = ( +/obj/structure/sign/safety/water{ + pixel_x = -17 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/general_equipment) -"dAb" = ( -/obj/structure/largecrate/random/barrel/blue, +/area/almayer/maint/hull/lower/l_a_p) +"dAm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "dAq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -27330,6 +22666,24 @@ 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/lifeboat_pumps/south2) +"dAA" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "dAQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -27352,6 +22706,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"; @@ -27416,13 +22784,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"; @@ -27431,8 +22807,27 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/execution) +/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/fore_hallway) "dCe" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -27449,22 +22844,6 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cells) -"dCh" = ( -/obj/structure/prop/invuln/pipe_water, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "dCr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -27472,14 +22851,6 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"dCt" = ( -/obj/structure/surface/rack, -/obj/item/book/manual/orbital_cannon_manual, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "dCx" = ( /obj/structure/disposalpipe/segment, /obj/structure/flora/pottedplant{ @@ -27494,6 +22865,13 @@ icon_state = "plate" }, /area/almayer/command/cichallway) +"dCz" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wrench{ + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "dCD" = ( /obj/structure/sign/nosmoking_2{ pixel_x = 32 @@ -27511,27 +22889,35 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"dCP" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/storage/box/lights/tubes{ - pixel_x = -4; - pixel_y = 3 +"dCM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/effect/decal/cleanable/ash{ - pixel_y = 19 +/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{ - icon_state = "plate" + dir = 8; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/upper/fore_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{ @@ -27547,15 +22933,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"dDC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, +"dDJ" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/lower/stern) "dDL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/research/main_terminal{ @@ -27582,6 +22965,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"dDT" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "dEm" = ( /obj/structure/machinery/power/apc/almayer, /obj/effect/decal/warning_stripes{ @@ -27603,6 +22992,16 @@ }, /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) "dEt" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -27613,16 +23012,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; @@ -27639,6 +23028,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, @@ -27646,13 +23052,6 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"dEV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "dEX" = ( /obj/structure/closet/secure_closet/guncabinet/riot_control, /obj/item/weapon/shield/riot, @@ -27663,44 +23062,75 @@ }, /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/fore_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" }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) +"dFL" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + 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) -"dFV" = ( +"dFW" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/cell_charger, /obj/item/cell/apc, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) -"dGc" = ( -/obj/effect/decal/cleanable/dirt, +/area/almayer/maint/hull/lower/l_f_p) +"dGg" = ( +/obj/structure/bed/chair{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_m_s) "dGl" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_AresUp"; @@ -27713,10 +23143,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{ @@ -27727,13 +23154,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"dGz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "dGC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment{ @@ -27745,6 +23165,30 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"dGP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + req_access = null; + req_one_access = null; + req_one_access_txt = "3;22;19" + }, +/turf/open/floor/almayer{ + 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 @@ -27774,12 +23218,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"dHk" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "dHu" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -27814,24 +23252,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) -"dIl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "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{ @@ -27864,74 +23291,68 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha) -"dIR" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/lower_hull/l_m_s) -"dJI" = ( -/obj/structure/bed/chair/comfy/bravo{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/arcturianstopsign{ - pixel_y = 32 +"dJe" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/stack/sheet/mineral/phoron/medium_stack, +/obj/item/stack/sheet/mineral/phoron/medium_stack{ + pixel_y = 10 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/living/briefing) -"dKa" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_s) -"dKc" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 9" +/area/almayer/maint/hull/upper/u_a_p) +"dJy" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering/lower/engine_core) -"dKm" = ( -/obj/structure/machinery/power/apc/almayer{ +/area/almayer/maint/hull/upper/p_bow) +"dJF" = ( +/obj/structure/pipes/standard/cap/hidden{ dir = 4 }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - layer = 3.33; - pixel_x = 2 +/obj/structure/sign/safety/hvac_old{ + pixel_x = 15; + pixel_y = 32 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - layer = 3.33; - pixel_y = 2 +/turf/open/floor/almayer{ + icon_state = "mono" }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - layer = 3.3 +/area/almayer/lifeboat_pumps/south2) +"dJG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/effect/decal/warning_stripes{ - icon_state = "S"; - layer = 3.3 +/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/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/midship_hallway) "dKK" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -27945,6 +23366,27 @@ "dKL" = ( /turf/closed/wall/almayer/outer, /area/almayer/engineering/airmix) +"dKO" = ( +/obj/structure/machinery/door_control{ + id = "panicroomback"; + name = "\improper Safe Room"; + pixel_x = 25; + req_one_access_txt = "3" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) +"dKS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "dLc" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -27962,14 +23404,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; @@ -27989,25 +23423,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; @@ -28019,13 +23434,6 @@ dir = 8 }, /area/almayer/medical/containment/cell) -"dNe" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "dNq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -28048,12 +23456,6 @@ }, /turf/open/floor/plating, /area/almayer/living/cryo_cells) -"dNB" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "dNM" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco{ @@ -28064,6 +23466,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 @@ -28095,6 +23504,53 @@ 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/midship_hallway) +"dPd" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/almayer{ + 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; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "dPm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -28103,6 +23559,14 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"dPq" = ( +/obj/structure/surface/table/almayer, +/obj/item/stack/sheet/cardboard{ + amount = 50; + pixel_x = 4 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "dPC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -28118,6 +23582,12 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) +"dPO" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "dPQ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, @@ -28135,12 +23605,6 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"dPU" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "dQl" = ( /obj/structure/platform{ dir = 4 @@ -28153,10 +23617,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, @@ -28177,23 +23638,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 @@ -28203,22 +23647,12 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower) -"dQE" = ( +"dQV" = ( /obj/structure/machinery/light{ dir = 1 }, -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"dQH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "dRh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -28229,6 +23663,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/sign/safety/bridge{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/west{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "dRs" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -28244,18 +23706,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{ @@ -28268,15 +23732,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{ @@ -28288,19 +23743,30 @@ }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) +"dRQ" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "dRT" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"dRV" = ( -/obj/effect/landmark/crap_item, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"dSm" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = -32 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "dSp" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -28311,10 +23777,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"dSA" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "dSJ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -28337,6 +23799,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" @@ -28350,30 +23822,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/workshop) -"dTt" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/camera, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "dTI" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"dTQ" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "dTS" = ( /obj/structure/machinery/fuelcell_recycler, /turf/open/floor/almayer{ @@ -28392,21 +23846,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"dUF" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"dUI" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Port Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "dUS" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" @@ -28434,18 +23873,6 @@ icon_state = "blue" }, /area/almayer/living/briefing) -"dVm" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Port Railguns and Viewing Room" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "dVn" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -28477,6 +23904,21 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"dVH" = ( +/obj/structure/platform{ + dir = 8 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "dVO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -28486,26 +23928,59 @@ icon_state = "plate" }, /area/almayer/living/offices) +"dVR" = ( +/obj/structure/ladder{ + height = 2; + id = "AftPortMaint" + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/u_a_p) +"dWc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "dWg" = ( /obj/effect/landmark/start/cargo, /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"dWm" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/o2, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "dWw" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "bluecorner" }, /area/almayer/living/basketball) +"dWA" = ( +/obj/structure/sign/poster{ + pixel_y = 32 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) +"dWJ" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "dWX" = ( /obj/structure/machinery/light{ dir = 8 @@ -28514,6 +23989,12 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) +"dXb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) "dXd" = ( /obj/item/storage/fancy/cigarettes/kpack, /obj/structure/surface/rack, @@ -28553,7 +24034,13 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/device/camera_film{ pixel_x = 4; - pixel_y = -2 + pixel_y = 1; + layer = 3.03 + }, +/obj/item/stack/sheet/cardboard/small_stack{ + pixel_x = -5; + pixel_y = 3; + layer = 3.02 }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) @@ -28566,17 +24053,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/stern_point_defense) -"dXO" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -19; - pixel_y = -6 - }, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -19; - pixel_y = 6 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "dXV" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 16 @@ -28596,12 +24072,19 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"dYh" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"dYb" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/starboard_aft_hallway) +"dYc" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "dYu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -28619,22 +24102,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"dYK" = ( -/obj/item/folder/red{ - desc = "A red folder. The previous contents are a mystery, though the number 28 has been written on the inside of each flap numerous times. Smells faintly of cough syrup."; - name = "folder: 28"; - pixel_x = -4; - pixel_y = 5 - }, -/obj/structure/surface/table/almayer, -/obj/item/toy/crayon{ - pixel_x = 9; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "dYR" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/reagentgrinder{ @@ -28642,6 +24109,30 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"dYU" = ( +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/cobweb{ + dir = 8; + plane = -6 + }, +/obj/effect/decal/cleanable/dirt, +/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/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/reagent_container/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/lower_medical_medbay) "dYX" = ( /obj/structure/machinery/door/airlock/almayer/marine/bravo{ dir = 1 @@ -28654,12 +24145,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 @@ -28678,6 +24163,19 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"dZR" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) +"dZZ" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "eaf" = ( /obj/structure/machinery/cm_vending/clothing/military_police{ density = 0; @@ -28708,6 +24206,12 @@ dir = 4 }, /area/almayer/medical/containment/cell) +"ear" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) "eas" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28724,10 +24228,33 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"eaz" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "ebd" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"ebf" = ( +/obj/structure/closet/crate/freezer{ + desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." + }, +/obj/item/storage/beer_pack, +/obj/item/reagent_container/food/drinks/cans/beer, +/obj/item/reagent_container/food/drinks/cans/beer, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "ebn" = ( /obj/structure/sign/safety/airlock{ pixel_x = 15; @@ -28746,62 +24273,35 @@ 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" +"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/aicore/reinforced, +/area/almayer/command/airoom) +"ebV" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/shipboard/brig/surgery) -"ebD" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"ecb" = ( /obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" + dir = 4 }, -/area/almayer/hull/lower_hull/l_m_s) -"ebN" = ( -/turf/closed/wall/almayer/white/reinforced, -/area/almayer/command/airoom) -"ebO" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"ecj" = ( +/obj/structure/largecrate/supply/supplies/mre, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/lower_hull/l_a_p) -"ebY" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/l_m_p) "eco" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17; @@ -28815,29 +24315,24 @@ "ecr" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/captain_mess) -"ecM" = ( -/obj/structure/bed/chair{ - dir = 4 +"ecz" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"ecP" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"ecR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" }, -/obj/structure/pipes/vents/pump{ - dir = 1 +/area/almayer/hallways/upper/midship_hallway) +"ecS" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/hull/lower/s_bow) "ecZ" = ( /obj/structure/ladder{ height = 1; @@ -28847,6 +24342,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{ @@ -28859,6 +24360,16 @@ icon_state = "sterile_green" }, /area/almayer/medical/medical_science) +"edG" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) +"edV" = ( +/obj/structure/machinery/power/terminal, +/turf/open/floor/almayer, +/area/almayer/maint/upper/mess) "eed" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -28896,18 +24407,6 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) -"eep" = ( -/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/hull/lower_hull/l_m_p) "eet" = ( /obj/structure/machinery/power/terminal{ dir = 1 @@ -28932,12 +24431,44 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"eeA" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) +"eeC" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) +"eeR" = ( +/obj/structure/surface/rack, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/frame/table, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "efj" = ( /turf/open/floor/almayer{ dir = 4; 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 @@ -28947,6 +24478,11 @@ icon_state = "plate" }, /area/almayer/engineering/lower) +"efJ" = ( +/obj/item/tool/wet_sign, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "efK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28958,6 +24494,20 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"efP" = ( +/obj/structure/surface/table/almayer, +/obj/item/toy/deck{ + pixel_y = 14 + }, +/obj/item/trash/cigbutt/ucigbutt{ + layer = 3.7; + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "efT" = ( /obj/structure/machinery/atm{ pixel_y = 32 @@ -28967,14 +24517,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"efU" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "egc" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28999,12 +24541,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" @@ -29019,23 +24555,34 @@ icon_state = "test_floor4" }, /area/almayer/living/chapel) -"egB" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/structure/largecrate/random/case, +"egD" = ( +/obj/structure/bed/stool, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_s) -"egS" = ( -/obj/structure/closet, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/glasses/regular/hipster, -/turf/open/floor/almayer{ - icon_state = "plate" +/area/almayer/hallways/lower/port_midship_hallway) +"egQ" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) "ehc" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -29063,19 +24610,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{ @@ -29094,6 +24636,14 @@ icon_state = "test_floor4" }, /area/almayer/hallways/upper/starboard) +"ehM" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "ehR" = ( /obj/structure/window/reinforced{ dir = 4; @@ -29190,6 +24740,20 @@ icon_state = "plate" }, /area/almayer/living/gym) +"ejj" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/tool/wrench{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/tool/wrench{ + pixel_x = 2; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "ejo" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -29203,12 +24767,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 @@ -29218,56 +24776,48 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/grunt_rnr) -"ejK" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/clothing/glasses/welding{ - pixel_x = 8; - pixel_y = 3 - }, -/obj/item/tool/weldingtool{ - pixel_x = -11; - pixel_y = 5 - }, +"ejV" = ( +/obj/structure/closet, +/obj/item/device/flashlight/pen, +/obj/item/attachable/reddot, /obj/structure/machinery/light/small{ dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/upper/u_m_s) "ejY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"eko" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "eky" = ( /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"ekF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"ekz" = ( +/obj/structure/girder/displaced, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"ekO" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 +/area/almayer/maint/hull/upper/u_a_p) +"ekM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/structure/sign/safety/cryo{ - pixel_x = -17 +/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{ - icon_state = "cargo" + dir = 4; + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/starboard_umbilical) "ekY" = ( /obj/structure/machinery/door/airlock/almayer/generic/glass{ name = "\improper Memorial Room" @@ -29279,6 +24829,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; @@ -29299,12 +24859,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; @@ -29317,20 +24871,41 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_one) -"elM" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "elR" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 1 }, /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 @@ -29339,6 +24914,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, @@ -29358,18 +24941,19 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"emx" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"emG" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"emw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/port_fore_hallway) +"emA" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_a_s) +"emC" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_f_p) "emK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -29383,14 +24967,6 @@ icon_state = "silvercorner" }, /area/almayer/command/securestorage) -"enf" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "eni" = ( /obj/structure/machinery/power/monitor{ name = "Main Power Grid Monitoring" @@ -29399,16 +24975,83 @@ 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/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" + dir = 6; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) +"enF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_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, +/obj/item/frame/table, +/obj/item/frame/table, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) +"enY" = ( +/obj/item/storage/firstaid, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"eob" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) +"eox" = ( +/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) +"eoD" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_s) +"eoE" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_f_s) "eoG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -29416,18 +25059,19 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) -"eoM" = ( +"eoK" = ( +/obj/structure/machinery/optable, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) +"epk" = ( /obj/structure/surface/table/almayer, -/obj/item/storage/beer_pack, -/obj/structure/sign/poster{ - desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; - icon_state = "poster11"; - name = "YOU ALWAYS KNOW A WORKING JOE."; - pixel_x = -27; - serial_number = 11 +/obj/item/tank/emergency_oxygen/double, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/port_umbilical) "epu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -29439,16 +25083,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/lobby) -"epA" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "epJ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -29484,12 +25118,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"eqk" = ( -/mob/living/simple_animal/mouse/brown, +"eqd" = ( +/obj/item/stack/folding_barricade/three, +/obj/item/stack/folding_barricade/three, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/shipboard/panic) +"eqm" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, +/obj/structure/machinery/door_control{ + id = "Secretroom"; + indestructible = 1; + layer = 2.5; + name = "Shutters"; + use_power = 0 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_m_s) "eqB" = ( /obj/item/bedsheet/brown{ layer = 3.2 @@ -29552,6 +25201,12 @@ dir = 1 }, /area/almayer/medical/containment/cell/cl) +"ere" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "erh" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -29579,6 +25234,14 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) +"erE" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "erF" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/toxin{ @@ -29599,40 +25262,48 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"erN" = ( -/obj/structure/machinery/light{ - dir = 8 +"erL" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/crushed_cup, +/obj/item/reagent_container/food/drinks/cup{ + pixel_x = -5; + pixel_y = 9 }, -/obj/structure/pipes/vents/pump/no_boom{ - dir = 1 +/obj/item/spacecash/c10{ + pixel_x = 5; + pixel_y = 10 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/obj/item/ashtray/plastic{ + pixel_x = 5; + pixel_y = -10 }, -/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 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/sign/safety/west{ - pixel_y = 32 +/area/almayer/maint/hull/lower/l_m_s) +"erN" = ( +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_plates" }, -/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 +/area/almayer/command/airoom) +"esd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "esC" = ( /obj/structure/toilet{ pixel_y = 13 @@ -29718,6 +25389,12 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) +"ety" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "etE" = ( /obj/structure/prop/almayer/name_stencil, /turf/open/floor/almayer_hull{ @@ -29732,6 +25409,10 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) +"etN" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "eua" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -29746,6 +25427,18 @@ icon_state = "test_floor4" }, /area/almayer/living/officer_study) +"euL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Starboard Railguns and Viewing Room" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_s) "euN" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -29757,20 +25450,8 @@ 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{ - unacidable = 1; - unslashable = 1 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/north1) "euV" = ( /turf/open/floor/almayer/uscm/directional{ dir = 8; @@ -29817,12 +25498,13 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/starboard) -"evl" = ( -/obj/structure/largecrate/random/barrel/yellow, +"evG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "mono" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/fore_hallway) "evR" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical/green{ @@ -29837,16 +25519,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 @@ -29869,6 +25548,18 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/execution) +"ewL" = ( +/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/fore_hallway) "ewO" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -29887,28 +25578,30 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) -"ewT" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Brig" +"exb" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = -16 + }, +/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{ - icon_state = "test_floor4" + dir = 4; + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_midship_hallway) "exi" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"ext" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) +"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" @@ -29920,21 +25613,33 @@ icon_state = "tcomms" }, /area/almayer/engineering/upper_engineering/starboard) -"eyd" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5 - }, +"exQ" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "greencorner" }, -/area/almayer/hull/upper_hull/u_f_p) +/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{ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"eyI" = ( +/obj/structure/window/framed/almayer, +/obj/structure/curtain/open/shower{ + name = "hypersleep curtain" + }, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_p) +"eyM" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "eyQ" = ( /obj/structure/machinery/light{ dir = 1 @@ -30001,6 +25706,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 @@ -30043,14 +25754,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 @@ -30084,27 +25787,30 @@ /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 }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"eBG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "eBO" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -30179,6 +25885,12 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) +"eCC" = ( +/obj/structure/bed/chair, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/lifeboat_pumps/north1) "eCI" = ( /obj/structure/window/reinforced/ultra{ pixel_y = -12 @@ -30189,6 +25901,13 @@ icon_state = "plating" }, /area/almayer/shipboard/brig/execution) +"eDk" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_p) "eDo" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -30199,6 +25918,12 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"eDq" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "eDt" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/almayer_network{ @@ -30215,30 +25940,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/bridgebunks) -"eDz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"eDG" = ( -/obj/structure/barricade/handrail{ - dir = 1; - 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{ @@ -30248,12 +25949,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"eEf" = ( -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "eEk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -30275,6 +25970,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/midship_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{ @@ -30292,17 +26002,6 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"eFp" = ( -/obj/structure/surface/rack, -/obj/item/clothing/head/headband/red{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/clothing/glasses/regular/hipster, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "eFG" = ( /obj/structure/machinery/light{ dir = 1 @@ -30314,9 +26013,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) -"eFH" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +"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/midship_hallway) "eFK" = ( /obj/structure/bed{ icon_state = "abed" @@ -30401,64 +26108,34 @@ 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{ pixel_x = -1; pixel_y = 10 }, -/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/item/stack/cable_coil{ + pixel_y = 1; + pixel_x = 8 }, -/obj/structure/sign/safety/intercom{ - pixel_x = 14; - pixel_y = 32 +/obj/item/stack/sheet/cardboard/small_stack{ + pixel_y = 2; + pixel_x = -3; + layer = 3.01 }, +/turf/open/floor/almayer, +/area/almayer/squads/alpha_bravo_shared) +"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" - }, -/area/almayer/shipboard/brig/surgery) -"eGz" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/port_midship_hallway) "eGB" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eGF" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "eGH" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -30481,15 +26158,6 @@ icon_state = "plate" }, /area/almayer/squads/req) -"eHf" = ( -/obj/structure/machinery/light/small, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "eHx" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/faxmachine/uscm/command, @@ -30497,6 +26165,22 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"eHy" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "plating_striped" + }, +/area/almayer/maint/hull/lower/l_a_p) +"eHz" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "eHY" = ( /obj/structure/surface/rack, /obj/item/device/taperecorder, @@ -30504,35 +26188,39 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"eIA" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"eJd" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, +"eIN" = ( +/obj/item/tool/kitchen/utensil/pfork, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) -"eJg" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "cargo" +/area/almayer/maint/hull/upper/p_stern) +"eIO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/hull/lower_hull/l_m_s) -"eJh" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +/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/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_fore_hallway) +"eJj" = ( +/obj/structure/closet/crate, +/obj/item/ammo_box/magazine/l42a, +/obj/item/ammo_box/magazine/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "eJQ" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -30549,24 +26237,30 @@ "eJX" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) +"eJZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) "eKa" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ + closeOtherId = "briglobby"; dir = 2; - name = "\improper Brig Lobby"; - closeOtherId = "briglobby" + name = "\improper Brig Lobby" }, /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/processing) -"eKg" = ( -/obj/structure/disposalpipe/segment{ - layer = 5.1; - name = "water pipe" +"eKm" = ( +/obj/structure/machinery/suit_storage_unit/compression_suit/uscm, +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) "eKy" = ( /obj/structure/pipes/standard/simple/visible{ dir = 6 @@ -30578,12 +26272,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"eKD" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_a_s) "eKH" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, @@ -30604,32 +26292,10 @@ /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) -"eKM" = ( -/obj/structure/surface/rack, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"eKO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "eKQ" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -30644,22 +26310,98 @@ icon_state = "green" }, /area/almayer/living/offices) -"eLz" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"eKZ" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Port Viewing Room" }, /turf/open/floor/almayer{ - icon_state = "silver" + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_p) +"eLp" = ( +/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/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, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 + }, +/obj/item/reagent_container/food/snacks/sliceable/bread{ + pixel_y = 8 + }, +/obj/item/tool/kitchen/knife{ + pixel_x = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"eLH" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/beer_pack, +/obj/structure/sign/poster{ + desc = "YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE. YOU ALWAYS KNOW A WORKING JOE."; + icon_state = "poster11"; + name = "YOU ALWAYS KNOW A WORKING JOE."; + pixel_x = -27; + serial_number = 11 + }, +/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/hallways/repair_bay) +/area/almayer/shipboard/brig/mp_bunks) "eMh" = ( /obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Laundry Room" + name = "\improper Laundry Room"; + req_one_access = list(19,7); + req_access = list() }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/engineering/laundry) +"eMx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/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; @@ -30686,19 +26428,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) -"eNx" = ( -/obj/structure/machinery/vending/snack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "eNI" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -30710,13 +26449,11 @@ }, /area/almayer/medical/containment) "eNL" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/sheet/cardboard{ - amount = 50; - pixel_x = 4 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "eNR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -30724,18 +26461,14 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) -"eOr" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"eOx" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "eOM" = ( /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ dir = 2; @@ -30756,26 +26489,15 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"ePk" = ( -/obj/structure/airlock_assembly, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"ePs" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"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 @@ -30817,6 +26539,41 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) +"eQd" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/smg/m39{ + pixel_y = 6 + }, +/obj/item/weapon/gun/smg/m39{ + pixel_y = -6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/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/midship_hallway) +"eQm" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + 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 @@ -30826,14 +26583,11 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"eRe" = ( -/obj/structure/bed/chair/comfy/orange{ - dir = 8 - }, +"eQR" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/s_bow) "eRi" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/folder/black{ @@ -30874,9 +26628,14 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) -"eRL" = ( -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"eRG" = ( +/obj/structure/closet, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/regular/hipster, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "eRR" = ( /obj/item/clothing/head/helmet/marine{ pixel_x = 16; @@ -30893,6 +26652,15 @@ icon_state = "cargo_arrow" }, /area/almayer/engineering/lower/workshop/hangar) +"eSc" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/lower) "eSk" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -30917,6 +26685,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" @@ -30925,6 +26699,9 @@ icon_state = "outerhull_dir" }, /area/space) +"eTb" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/stern) "eTd" = ( /obj/structure/surface/table/almayer, /obj/item/trash/boonie{ @@ -30935,15 +26712,36 @@ /obj/effect/landmark/crap_item, /turf/open/floor/almayer, /area/almayer/living/briefing) -"eTO" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"eTx" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "red" + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/lower/port_aft_hallway) +"eTD" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) +"eUe" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hallways/stern_hallway) +/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 @@ -30970,17 +26768,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/chemistry) -"eUz" = ( -/obj/structure/machinery/disposal{ - density = 0; - layer = 3.2; - pixel_y = 16 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "eUA" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -31080,6 +26867,20 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"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 @@ -31088,13 +26889,12 @@ icon_state = "test_floor4" }, /area/almayer/living/basketball) -"eWY" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"eWN" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/upper/midship_hallway) "eXb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -31111,15 +26911,12 @@ "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) -"eXo" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "eXq" = ( /turf/closed/wall/almayer, /area/almayer/living/offices/flight) @@ -31127,17 +26924,17 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/living/offices) -"eXS" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 +"eXD" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = 16; + pixel_y = -16 }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 2 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/lower/l_m_s) "eYj" = ( /obj/structure/machinery/light{ dir = 8 @@ -31153,6 +26950,15 @@ /obj/structure/filingcabinet/security, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"eYp" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1; + name = "\improper Tool Closet" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) "eYr" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -31188,9 +26994,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{ @@ -31209,15 +27013,6 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) -"eYH" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "eYM" = ( /obj/structure/desertdam/decals/road_edge{ pixel_x = 2; @@ -31246,16 +27041,9 @@ 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) "eZo" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -31283,33 +27071,26 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"eZz" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, +"eZC" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/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) -"eZQ" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"eZR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_p) -"fad" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - icon_state = "green" +/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{ @@ -31317,14 +27098,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"; @@ -31348,6 +27131,18 @@ /obj/item/stack/cable_coil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"faR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "faX" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 4; @@ -31380,6 +27175,15 @@ icon_state = "plate" }, /area/almayer/squads/alpha) +"fbe" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "fbo" = ( /obj/structure/machinery/door_control{ id = "kitchen2"; @@ -31413,24 +27217,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"fbx" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "fbB" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/medical/upper_medical) -"fbH" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, +"fbC" = ( +/obj/structure/closet/toolcloset, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 6; + icon_state = "orange" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/maint/hull/lower/l_m_s) "fbR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -31444,12 +27243,41 @@ 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; + name = "water pipe" + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "fcf" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"fco" = ( +/obj/structure/surface/rack, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/device/radio, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "fcy" = ( /obj/structure/machinery/light{ dir = 8 @@ -31471,18 +27299,6 @@ icon_state = "bluecorner" }, /area/almayer/living/basketball) -"fcF" = ( -/obj/structure/surface/rack, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"fcG" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "fcM" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -31508,24 +27324,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{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) -"fdj" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/pouch/tools/full, +"fdf" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 6; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/fore_hallway) "fdx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31535,13 +27347,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"fdA" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "fdE" = ( /obj/item/clothing/mask/rebreather/scarf, /obj/structure/closet/secure_closet/personal/cabinet{ @@ -31563,9 +27368,31 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lockerroom) +"fea" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "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 @@ -31578,6 +27405,12 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"fes" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "feD" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -31588,6 +27421,10 @@ icon_state = "silver" }, /area/almayer/command/cichallway) +"feG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "feI" = ( /obj/item/trash/cigbutt, /turf/open/floor/almayer, @@ -31616,11 +27453,51 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/perma) +"ffq" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/head/hardhat{ + pixel_y = 15 + }, +/obj/item/clothing/head/hardhat/dblue{ + pixel_x = -7; + pixel_y = 10 + }, +/obj/item/clothing/head/hardhat{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/item/clothing/head/hardhat/orange{ + pixel_x = 7; + pixel_y = -5 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"ffx" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/item/clothing/head/helmet/marine/tech/tanker, +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "ffE" = ( /turf/open/floor/almayer/no_build{ icon_state = "plating" }, /area/almayer/command/airoom) +"ffN" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "fgh" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -31647,16 +27524,15 @@ icon_state = "green" }, /area/almayer/squads/req) -"fgo" = ( -/obj/docking_port/stationary/escape_pod/north, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"fgx" = ( -/obj/structure/sign/poster{ - pixel_y = 32 +"fgt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/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 @@ -31695,41 +27571,44 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/cells) +"fgU" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "fhf" = ( /obj/structure/surface/rack, /obj/item/storage/toolbox/mechanical, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) -"fhA" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/surface/rack, -/obj/item/storage/belt/utility/full{ - pixel_y = 8 - }, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/suit/storage/hazardvest/black, -/obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "fhH" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ 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; icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"fiq" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_p) +"fix" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "fiE" = ( /obj/structure/machinery/computer/cameras/containment/hidden{ dir = 4; @@ -31740,15 +27619,10 @@ /obj/item/device/camera_film, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) -"fiI" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) +"fiN" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "fiQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -31757,52 +27631,36 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"fjO" = ( -/obj/item/tool/wet_sign, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fkO" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, +"fjz" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "cargo" }, -/area/almayer/hallways/port_hallway) -"fkW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/area/almayer/maint/hull/upper/u_f_p) +"fkK" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/obj/structure/surface/table/almayer, -/obj/item/toy/handcard/uno_reverse_red{ - pixel_x = 5; - pixel_y = 5 +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/obj/item/toy/deck/uno, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/upper/u_m_s) "fkX" = ( /turf/closed/wall/almayer/research/containment/wall/corner{ dir = 8 }, /area/almayer/medical/containment/cell/cl) -"flE" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"flP" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +"flr" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/lower/p_bow) "flW" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light{ @@ -31814,6 +27672,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"; @@ -31823,9 +27693,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{ @@ -31835,12 +27703,26 @@ icon_state = "bluecorner" }, /area/almayer/living/pilotbunks) -"fmS" = ( -/obj/structure/closet/secure_closet/engineering_electrical, +"fmX" = ( +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/upper/u_a_p) +"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 @@ -31874,15 +27756,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 @@ -31894,15 +27767,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"fnZ" = ( -/obj/structure/machinery/portable_atmospherics/canister/air, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_a_s) "foC" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -31949,19 +27813,26 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"foR" = ( -/obj/structure/largecrate/random/case, +"foS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) -"fpd" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +/area/almayer/maint/hull/lower/l_a_p) +"fpi" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/stern) "fpA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -31974,10 +27845,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, @@ -32005,6 +27887,21 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) +"fqb" = ( +/obj/item/paper/prison_station/interrogation_log{ + pixel_x = 10; + pixel_y = 7 + }, +/obj/structure/largecrate/random/barrel/green, +/obj/item/limb/hand/l_hand{ + pixel_x = -5; + pixel_y = 14 + }, +/obj/effect/spawner/random/balaclavas, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "fqc" = ( /obj/structure/machinery/vending/cigarette, /obj/structure/machinery/light, @@ -32012,27 +27909,38 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"fqu" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"fqx" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 +"fqw" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" +/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/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/port_midship_hallway) "fqC" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"fqJ" = ( +/obj/structure/machinery/door_control{ + id = "safe_armory"; + name = "Hangar Armory Lockdown"; + pixel_y = 24; + req_access_txt = "4" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "fqO" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -32040,6 +27948,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{ @@ -32080,6 +28008,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"; @@ -32097,6 +28061,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/midship_hallway) "frM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -32106,43 +28077,24 @@ 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) -"frX" = ( -/obj/structure/machinery/optable, -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 29 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_corner" - }, -/area/almayer/shipboard/brig/surgery) -"frY" = ( -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 - }, -/obj/item/weapon/gun/rifle/l42a, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = -6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"frV" = ( +/obj/structure/toilet{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_m_s) -"fsd" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"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; @@ -32153,15 +28105,18 @@ icon_state = "plate" }, /area/almayer/living/gym) -"fsH" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 +"fsu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + dir = 4; + icon_state = "blue" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/midship_hallway) "fsR" = ( /obj/structure/pipes/vents/pump{ dir = 8; @@ -32184,45 +28139,44 @@ icon_state = "plating_striped" }, /area/almayer/living/cryo_cells) -"fti" = ( -/obj/structure/machinery/door/poddoor/railing{ - dir = 2; - id = "vehicle_elevator_railing" +"ftb" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" }, +/area/almayer/hallways/upper/midship_hallway) +"ftw" = ( /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) +"ftG" = ( +/obj/structure/sign/safety/life_support{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/vehiclehangar) -"ftl" = ( -/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) -"fut" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/area/almayer/maint/upper/u_a_s) +"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/fore_hallway) "fuz" = ( /obj/structure/machinery/cm_vending/clothing/pilot_officer, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"fuB" = ( -/obj/structure/machinery/light/small, -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "fuS" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -32243,20 +28197,22 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"fuY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"fuU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice2"; - pixel_x = 16; - pixel_y = 16 +/area/almayer/hallways/lower/port_umbilical) +"fuY" = ( +/obj/structure/bed/chair/bolted{ + dir = 1 }, -/obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/shipboard/brig/interrogation) "fva" = ( /obj/structure/machinery/light{ dir = 1 @@ -32285,18 +28241,23 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"fvu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"fvv" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Port Viewing Room" +"fvo" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/clothing/glasses/welding{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/tool/weldingtool{ + pixel_x = -11; + pixel_y = 5 + }, +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_a_p) "fvA" = ( /obj/structure/closet/secure_closet/brig, /turf/open/floor/almayer, @@ -32307,20 +28268,19 @@ icon_state = "redfull" }, /area/almayer/command/cic) +"fvE" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "bluecorner" + }, +/area/almayer/hallways/upper/midship_hallway) "fvJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, /turf/open/floor/almayer{ dir = 1; 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 @@ -32331,6 +28291,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; @@ -32341,6 +28314,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, @@ -32352,25 +28328,19 @@ icon_state = "redfull" }, /area/almayer/living/briefing) +"fwP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "fwY" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie_delta_shared) -"fxz" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/effect/landmark/yautja_teleport, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "fxI" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -32392,15 +28362,6 @@ /obj/item/weapon/shield/riot, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"fxO" = ( -/obj/structure/machinery/vending/coffee{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "fxZ" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -32422,14 +28383,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; @@ -32447,9 +28400,41 @@ }, /turf/open/floor/plating/almayer, /area/almayer/living/briefing) -"fza" = ( -/turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_m_s) +"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 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 2; + id = "CIC Lockdown"; + layer = 2.2; + name = "\improper Combat Information Center Blast Door" + }, +/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ + dir = 1; + name = "\improper Command Power Substation" + }, +/turf/open/floor/almayer{ + 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/aft_hallway) "fzq" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -32462,6 +28447,18 @@ icon_state = "test_floor4" }, /area/almayer/squads/charlie) +"fzx" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "fzP" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -32478,11 +28475,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) +"fzT" = ( +/obj/structure/surface/rack, +/obj/item/tool/wirecutters, +/obj/item/tool/shovel/snow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "fAa" = ( /obj/structure/surface/table/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/machinery/light{ dir = 1 }, @@ -32501,67 +28503,41 @@ /obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"fAt" = ( -/obj/structure/largecrate/guns/merc{ - name = "\improper dodgy crate" +"fAW" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fAE" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/almayer{ - icon_state = "cargo" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) -"fAS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) +"fBi" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "redcorner" }, -/area/almayer/hull/lower_hull/l_m_s) -"fBd" = ( +/area/almayer/hallways/lower/starboard_midship_hallway) +"fBo" = ( /obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) -"fBf" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 + dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) -"fBD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/area/almayer/maint/hull/lower/l_a_s) +"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/fore_hallway) "fBO" = ( /obj/structure/machinery/chem_master{ vial_maker = 1 @@ -32574,18 +28550,54 @@ 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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "fCp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /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/fore_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"; @@ -32608,6 +28620,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/midship_hallway) "fDG" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ @@ -32673,13 +28693,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, @@ -32687,13 +28711,6 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) -"fEV" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "fFe" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 @@ -32709,6 +28726,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) +"fFs" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_f_s) "fFD" = ( /obj/structure/window/reinforced{ dir = 4; @@ -32744,6 +28769,23 @@ icon_state = "plate" }, /area/almayer/medical/morgue) +"fFQ" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/spray/cleaner{ + pixel_x = 7; + pixel_y = 14 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) +"fFU" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "fGa" = ( /obj/structure/surface/rack, /obj/effect/decal/warning_stripes{ @@ -32754,10 +28796,26 @@ 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, /area/almayer/lifeboat_pumps/south1) +"fGi" = ( +/obj/effect/spawner/random/toolbox, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "fGu" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -32784,34 +28842,20 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"fGY" = ( -/obj/structure/machinery/door_control{ - id = "panicroomback"; - name = "\improper Safe Room"; - pixel_x = 25; - req_one_access_txt = "3" - }, +"fGB" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"fHc" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_x = 10; - pixel_y = 1 - }, -/obj/item/clothing/suit/storage/hazardvest{ - pixel_x = -8; - pixel_y = 6 - }, -/obj/item/clothing/suit/storage/hazardvest/yellow, -/obj/item/clothing/suit/storage/hazardvest{ - pixel_x = 8; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/lower/l_a_s) +"fGD" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) +"fHb" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "fHh" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -32834,25 +28878,10 @@ icon_state = "greenfull" }, /area/almayer/living/offices) -"fHO" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"fIf" = ( -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 8; - pixel_y = -32 - }, +"fHM" = ( +/obj/docking_port/stationary/escape_pod/cl, /turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"fIH" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/command/corporateliaison) "fIM" = ( /obj/effect/landmark/start/marine/tl/bravo, /obj/effect/landmark/late_join/bravo, @@ -32862,7 +28891,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" @@ -32890,6 +28919,25 @@ icon_state = "plate" }, /area/almayer/command/cichallway) +"fJp" = ( +/obj/structure/girder, +/turf/open/floor/almayer{ + 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, +/area/almayer/maint/hull/lower/p_bow) "fJy" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/toy/deck{ @@ -32924,32 +28972,20 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) -"fJX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "fJY" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "cargo_arrow" + icon_state = "ai_arrow" }, /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, @@ -32965,17 +29001,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/chief_mp_office) -"fKl" = ( -/obj/structure/surface/rack, -/obj/item/tool/shovel/etool{ - pixel_x = 6 - }, -/obj/item/tool/shovel/etool, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "fKt" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/structure/prop/dam/crane{ @@ -33040,6 +29065,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{ @@ -33050,6 +29082,26 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"fLi" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) +"fLl" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/s_stern) +"fLt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "fLu" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -33101,9 +29153,9 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "fMt" = ( @@ -33113,7 +29165,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; @@ -33134,23 +29186,28 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"fMA" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" +"fMU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/sign/safety/stairs{ - pixel_x = -17 +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" +/obj/structure/sign/safety/coffee{ + pixel_y = 32 }, -/area/almayer/hallways/aft_hallway) -"fNg" = ( -/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/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 @@ -33166,13 +29223,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 @@ -33204,6 +29260,15 @@ icon_state = "orangecorner" }, /area/almayer/engineering/upper_engineering) +"fOK" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/camera, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "fOL" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -33269,10 +29334,26 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"fQk" = ( -/obj/structure/largecrate/random, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +"fPF" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/clothing/gloves/yellow, +/obj/item/device/multitool, +/obj/item/tool/screwdriver{ + icon_state = "screwdriver7" + }, +/obj/item/tool/crowbar/red, +/obj/item/book/manual/engineering_hacking, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"fQl" = ( +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "fQn" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -33294,15 +29375,14 @@ }, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"fQF" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"fQK" = ( -/obj/effect/step_trigger/clone_cleaner, -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_p) +"fQy" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "fQS" = ( /obj/structure/bed/chair/comfy/orange, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -33313,20 +29393,16 @@ }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) -"fQY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate/supply/weapons/m39{ - pixel_x = 2 - }, -/obj/structure/largecrate/supply/weapons/m41a{ - layer = 3.1; - pixel_x = 6; - pixel_y = 17 +"fRg" = ( +/obj/structure/closet/emcloset, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_f_s) "fRr" = ( /obj/structure/machinery/light{ dir = 1 @@ -33342,13 +29418,13 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"fRN" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = 32 +"fRL" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/port_aft_hallway) "fRS" = ( /obj/effect/landmark/start/warden, /obj/effect/decal/warning_stripes{ @@ -33383,20 +29459,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) -"fTi" = ( -/obj/structure/largecrate/supply/floodlights, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "fTj" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -33408,6 +29470,9 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"fTl" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_a_s) "fTm" = ( /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer, @@ -33419,24 +29484,6 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) -"fTu" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/lower_hull/l_f_p) -"fTx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "fTF" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -33446,25 +29493,17 @@ icon_state = "test_floor4" }, /area/almayer/engineering/laundry) -"fTR" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"fTU" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light{ - dir = 1 +"fUz" = ( +/obj/structure/surface/rack, +/obj/item/storage/box/cups{ + pixel_x = 4; + pixel_y = 9 }, +/obj/item/storage/box/cups, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/s_bow) "fUA" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) @@ -33483,6 +29522,22 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"fUZ" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"fVa" = ( +/obj/item/stack/catwalk, +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/u_a_p) +"fVe" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_a_p) "fVo" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -33519,6 +29574,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) +"fWg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "fWi" = ( /obj/structure/toilet{ dir = 1 @@ -33531,14 +29594,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"fXd" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"fXf" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/upper/fore_hallway) "fXg" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -33561,11 +29625,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{ @@ -33606,18 +29665,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) -"fYc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "fYf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -33625,15 +29672,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"fYN" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +"fYr" = ( +/obj/structure/surface/rack, +/obj/item/device/radio{ + pixel_x = 5; + pixel_y = 4 }, +/obj/item/device/radio, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/hull/upper/u_f_s) "fYZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -33664,18 +29713,15 @@ /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 +"fZy" = ( +/obj/structure/sign/poster{ + pixel_y = -32 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "fZA" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 @@ -33689,12 +29735,9 @@ icon_state = "orangecorner" }, /area/almayer/engineering/lower) -"fZF" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"fZE" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "fZG" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -33703,6 +29746,22 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"fZI" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = 7; + pixel_y = -3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"fZR" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "fZX" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -33726,30 +29785,15 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"gai" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"gax" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"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/midship_hallway) "gaJ" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/cryo) -"gaO" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "gaQ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -33778,9 +29822,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{ @@ -33804,8 +29846,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" = ( @@ -33826,26 +29868,16 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"gbO" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/structure/closet/emcloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"gcc" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" +"gbR" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/aft_hallway) "gcm" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -33856,19 +29888,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"gcq" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/upper/starboard) "gcN" = ( /obj/structure/machinery/door/airlock/almayer/command{ access_modified = 1; @@ -33880,21 +29899,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) -"gdd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "gde" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -33905,11 +29909,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"gdi" = ( -/obj/item/tool/wet_sign, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "gdp" = ( /obj/structure/bed/chair{ dir = 4 @@ -33919,15 +29918,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 @@ -33964,6 +29964,20 @@ "gel" = ( /turf/closed/wall/almayer/research/containment/wall/west, /area/almayer/medical/containment/cell/cl) +"gen" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp{ + layer = 3.1; + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/paper_bin/uscm, +/obj/item/tool/pen, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "ger" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/wy{ @@ -33983,21 +29997,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/almayer{ - dir = 4; - icon_state = "orangecorner" +/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 }, -/area/almayer/hallways/stern_hallway) -"gfk" = ( -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/shipboard/brig/starboard_hallway) "gfo" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -34011,12 +30034,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"gfs" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) "gfu" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -34026,10 +30043,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/midship_hallway) "gfE" = ( /obj/structure/machinery/recharge_station, /turf/open/floor/plating, @@ -34051,12 +30069,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"gfS" = ( -/obj/structure/sign/safety/cryo{ - pixel_y = -26 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "gfW" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lockerroom) @@ -34075,6 +30087,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; @@ -34087,6 +30107,10 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_four) +"ggD" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "ggJ" = ( /obj/structure/machinery/door_control{ dir = 1; @@ -34113,25 +30137,33 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"ghD" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 +"ghA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/surface/table/almayer, +/obj/item/toy/handcard/uno_reverse_red{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/toy/deck/uno, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"ghF" = ( /turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"ghW" = ( -/obj/effect/landmark/start/liaison, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"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{ @@ -34153,15 +30185,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 @@ -34175,6 +30198,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"; @@ -34187,10 +30224,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 @@ -34212,14 +30245,6 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"gjv" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "gjw" = ( /obj/structure/machinery/faxmachine/uscm/command{ density = 0; @@ -34238,9 +30263,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{ @@ -34259,22 +30282,20 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"gjN" = ( -/obj/effect/landmark/yautja_teleport, +"gkr" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) -"gka" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/area/almayer/maint/hull/upper/s_bow) +"gkE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ - icon_state = "redfull" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"gks" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/upper/mess) "gkK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/surface/table/reinforced/almayer_B, @@ -34285,23 +30306,30 @@ icon_state = "plate" }, /area/almayer/command/cic) +"gkV" = ( +/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/fore_hallway) +"glc" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "gll" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) -"glr" = ( -/obj/item/tool/warning_cone{ - pixel_x = -20; - pixel_y = 18 - }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "gls" = ( /obj/structure/filingcabinet/filingcabinet, /obj/item/clipboard, @@ -34324,6 +30352,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; @@ -34337,15 +30376,13 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop) -"glM" = ( -/obj/structure/window/reinforced{ - dir = 8; - health = 80 - }, +"glP" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/shipboard/brig/execution_storage) "gmb" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -34373,6 +30410,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"gmZ" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) "gnu" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/green, @@ -34384,15 +30427,27 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"gob" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 32 +"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, +/obj/item/frame/table, +/obj/item/frame/table, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"gof" = ( +/obj/structure/platform_decoration{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "goj" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; @@ -34414,6 +30469,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{ @@ -34438,6 +30506,17 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"goM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"goY" = ( +/turf/closed/wall/almayer, +/area/almayer/shipboard/panic) "gpc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/engineering{ @@ -34448,9 +30527,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) -"gpe" = ( -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "gpi" = ( /obj/structure/dropship_equipment/rappel_system, /turf/open/floor/almayer{ @@ -34465,25 +30541,28 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"gpO" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "gpY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/lifeboat_pumps/north1) -"gqq" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +"gqf" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) +"gqt" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/obj/structure/largecrate/random, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"gqv" = ( /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"gqK" = ( -/obj/structure/machinery/light/small{ - dir = 1 + dir = 5; + icon_state = "silver" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/upper/midship_hallway) "gqP" = ( /obj/structure/largecrate/random/case, /obj/structure/machinery/camera/autoname/almayer{ @@ -34506,10 +30585,22 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"grF" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +"grd" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"grv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "grG" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17 @@ -34525,6 +30616,22 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) +"grT" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/tool/wet_sign{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gsd" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler{ @@ -34581,30 +30688,35 @@ /obj/effect/landmark/late_join, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) -"gsC" = ( -/obj/structure/disposalpipe/segment, +"gsp" = ( +/obj/structure/bed/chair{ + dir = 4 + }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/upper/port) -"gsH" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Port Viewing Room" +/area/almayer/maint/hull/lower/l_f_p) +"gsy" = ( +/obj/structure/surface/rack, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/ob_ammo/ob_fuel, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"gsL" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 + icon_state = "plate" }, +/area/almayer/maint/hull/lower/p_bow) +"gsC" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 1; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/port) "gsM" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /turf/open/floor/almayer{ @@ -34634,6 +30746,25 @@ 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"; + pixel_x = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "gtU" = ( /obj/structure/machinery/power/apc/almayer{ dir = 8 @@ -34647,14 +30778,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"; @@ -34664,6 +30787,24 @@ icon_state = "redfull" }, /area/almayer/lifeboat_pumps/south2) +"gur" = ( +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = 24 + }, +/obj/item/reagent_container/glass/bucket, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_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{ @@ -34698,24 +30839,10 @@ icon_state = "silver" }, /area/almayer/command/cic) -"gvC" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +"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{ @@ -34726,12 +30853,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"gvW" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_p) "gwj" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -34740,20 +30861,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"gwm" = ( -/obj/structure/largecrate/random/case/small, -/obj/item/device/taperecorder{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_x = -9; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "gwn" = ( /obj/structure/machinery/ares/processor/bioscan, /turf/open/floor/almayer/no_build{ @@ -34775,15 +30882,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"gwF" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "gwM" = ( /obj/structure/pipes/vents/pump, /obj/structure/mirror{ @@ -34816,18 +30914,6 @@ /obj/structure/surface/table/reinforced/black, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"gwY" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - dir = 1; - name = "\improper Starboard Viewing Room" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "gxh" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/o2, @@ -34843,33 +30929,29 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) -"gxk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +"gxm" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/stairs) "gxn" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"gxr" = ( -/obj/structure/largecrate/random/barrel/green, -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +"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 = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/brig/warden_office) +"gxI" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/upper/s_bow) "gxO" = ( /turf/open/floor/almayer{ dir = 10; @@ -34885,54 +30967,62 @@ 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/aft_hallway) "gxU" = ( /obj/structure/surface/table/almayer, /obj/item/toy/deck, /turf/open/floor/almayer{ - dir = 10; + dir = 8; icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"gyt" = ( -/obj/item/storage/firstaid/regular, -/obj/structure/surface/rack, +"gyb" = ( +/obj/structure/sign/safety/medical{ + pixel_x = 8; + pixel_y = 32 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "blue" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/upper/midship_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{ + icon_state = "plate" }, +/area/almayer/hallways/lower/port_aft_hallway) +"gyE" = ( /turf/open/floor/almayer{ - dir = 4; + dir = 1; 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 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/area/almayer/hallways/lower/port_aft_hallway) +"gyH" = ( +/obj/item/tool/warning_cone{ + pixel_x = -12; + pixel_y = 16 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gyN" = ( /obj/structure/machinery/prop{ desc = "It's a server box..."; @@ -35012,6 +31102,23 @@ }, /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; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gzV" = ( /obj/structure/sink{ dir = 1; @@ -35021,12 +31128,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"gAd" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "gAe" = ( /obj/structure/machinery/door_control{ id = "ARES JoeCryo"; @@ -35035,9 +31136,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{ @@ -35058,12 +31157,6 @@ }, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"gAt" = ( -/obj/structure/platform_decoration{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "gAz" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/drinks/golden_cup{ @@ -35099,18 +31192,34 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"gBd" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "gBo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"gBM" = ( -/obj/structure/machinery/light/small{ +"gBs" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) +"gBU" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/bag/trash{ + pixel_x = -3 + }, +/obj/structure/machinery/power/apc/almayer{ dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gBW" = ( /obj/structure/machinery/floodlight/landing{ name = "bolted floodlight" @@ -35119,27 +31228,27 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"gCd" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"gBZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "redfull" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/lifeboat_pumps/north2) "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 +"gCu" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = 16 }, -/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/hull/lower/l_a_s) "gCw" = ( /obj/item/reagent_container/food/drinks/cans/beer{ pixel_x = 10 @@ -35167,6 +31276,12 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"gCQ" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/upper/u_a_s) "gDp" = ( /obj/structure/machinery/light{ dir = 4 @@ -35190,20 +31305,25 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"gDF" = ( +/obj/structure/largecrate/random/case{ + layer = 2.98 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "gDH" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"gDP" = ( -/obj/structure/closet/crate, -/obj/item/ammo_box/magazine/l42a, -/obj/item/ammo_box/magazine/l42a, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"gDQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) "gDW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35216,10 +31336,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"gDX" = ( +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) "gEg" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/offices/flight) +"gEh" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "gEo" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ @@ -35258,20 +31387,24 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"gFs" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" +"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/midship_hallway) +"gFN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hull/lower_hull/l_m_s) -"gFG" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "blue" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/upper/fore_hallway) "gFP" = ( /turf/closed/wall/almayer/outer, /area/almayer/shipboard/stern_point_defense) @@ -35282,30 +31415,22 @@ icon_state = "cargo" }, /area/almayer/living/commandbunks) -"gGf" = ( -/obj/structure/machinery/light{ +"gGb" = ( +/obj/structure/platform{ dir = 1 }, /turf/open/floor/almayer{ 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 +/area/almayer/maint/hull/upper/u_a_p) +"gGf" = ( +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/command/combat_correspondent) +/area/almayer/squads/delta) "gGr" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -35335,6 +31460,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; @@ -35365,12 +31498,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"gHg" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "gHh" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -35378,6 +31505,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) +"gHi" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_m_s) "gHj" = ( /obj/structure/machinery/light, /obj/structure/closet/secure_closet/fridge/groceries/stock, @@ -35404,6 +31537,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/fore_hallway) "gHZ" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -35421,6 +31565,27 @@ icon_state = "test_floor4" }, /area/almayer/engineering/ce_room) +"gIm" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/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 @@ -35433,12 +31598,18 @@ }, /area/almayer/engineering/upper_engineering/port) "gIN" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"gIO" = ( +/obj/structure/bed/chair/bolted{ + dir = 8 }, -/obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/shipboard/brig/interrogation) "gIU" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/tapes{ @@ -35457,16 +31628,41 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/evidence_storage) -"gJd" = ( -/obj/structure/disposalpipe/segment{ +"gJf" = ( +/obj/structure/bed/sofa/south/grey/left{ + pixel_y = 12 + }, +/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 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/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) "gJO" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door/window/southleft{ @@ -35486,6 +31682,20 @@ icon_state = "green" }, /area/almayer/living/offices) +"gJY" = ( +/obj/structure/surface/table/almayer, +/obj/item/circuitboard{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/tool/crowbar{ + pixel_x = 6; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) "gKd" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -35496,6 +31706,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{ @@ -35515,15 +31744,11 @@ icon_state = "redfull" }, /area/almayer/shipboard/port_missiles) -"gKJ" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 18 - }, +"gKK" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "silvercorner" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/repair_bay) "gKR" = ( /obj/structure/closet/emcloset, /obj/structure/machinery/light{ @@ -35534,12 +31759,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"gKS" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "gKZ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/wet_sign, @@ -35563,6 +31782,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/hydroponics) +"gLm" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "gLz" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -35628,18 +31853,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, @@ -35649,20 +31862,17 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"gMx" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"gMA" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 8; - req_one_access = list(2,34,30) - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"gMk" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/maint{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_m_p) +/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, +/area/almayer/maint/upper/u_m_s) "gMN" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -35692,10 +31902,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 @@ -35704,6 +31924,18 @@ dir = 4 }, /area/almayer/living/briefing) +"gNg" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"gNo" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "gNp" = ( /turf/open/floor/almayer{ dir = 9; @@ -35721,27 +31953,22 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"gNx" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"gNG" = ( -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +"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, +/area/almayer/maint/hull/upper/u_m_p) "gNO" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -35751,6 +31978,22 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"gNQ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"gNZ" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"gOk" = ( +/obj/structure/largecrate/guns/merc{ + name = "\improper dodgy crate" + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "gOs" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -35773,9 +32016,9 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "gOC" = ( @@ -35792,6 +32035,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 @@ -35807,24 +32056,30 @@ 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, +"gPS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" + 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/stern_hallway) +/area/almayer/hallways/lower/vehiclehangar) "gQk" = ( /obj/structure/surface/table/almayer, /obj/structure/sign/safety/terminal{ @@ -35833,6 +32088,16 @@ /obj/structure/machinery/faxmachine/corporate/liaison, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"gQu" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/item/storage/firstaid/rad, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "gQF" = ( /obj/structure/bed/chair/comfy{ buckling_y = 2; @@ -35849,6 +32114,18 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"gQQ" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"gRc" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "gRd" = ( /obj/structure/platform, /obj/structure/target{ @@ -35857,9 +32134,17 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"gRn" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull) +"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 @@ -35900,12 +32185,42 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"gSs" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"gSy" = ( +/obj/item/frame/rack{ + layer = 3.1; + pixel_y = 19 + }, +/obj/structure/surface/rack, +/obj/item/tool/weldpack{ + pixel_x = 5 + }, +/obj/item/tool/weldpack{ + pixel_x = -2 + }, +/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/hull/upper_hull/u_f_p) +/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{ @@ -35919,10 +32234,32 @@ 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" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/turf/open/floor/almayer{ + 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/midship_hallway) "gUf" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/almayer{ @@ -35938,23 +32275,38 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) -"gUv" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"gUi" = ( +/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{ - icon_state = "plate" +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"gUn" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"gUu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/area/almayer/hull/lower_hull/l_f_p) -"gUy" = ( -/obj/structure/machinery/vending/cola{ - density = 0; - pixel_y = 18 +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"gUG" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/upper/u_a_s) "gUL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -35975,9 +32327,9 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom{ dir = 4 }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "cargo_arrow" + icon_state = "ai_arrow" }, /area/almayer/command/airoom) "gUS" = ( @@ -36040,6 +32392,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, @@ -36058,22 +32434,6 @@ }, /turf/open/floor/plating, /area/almayer/medical/upper_medical) -"gWR" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"gXh" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "gXl" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access_txt = "5" @@ -36114,9 +32474,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"gXZ" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/stern) "gYe" = ( /obj/structure/machinery/vending/sea, /turf/open/floor/almayer{ @@ -36124,6 +32481,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 @@ -36143,54 +32528,36 @@ icon_state = "redfull" }, /area/almayer/living/offices/flight) -"gYB" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "Saferoom Channel"; - pixel_x = 27 +"gYx" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"gYS" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 + dir = 1; + icon_state = "red" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 +/area/almayer/shipboard/brig/starboard_hallway) +"gYI" = ( +/obj/structure/platform{ + dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 +/obj/effect/decal/cleanable/blood/oil/streak, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 +/area/almayer/maint/hull/upper/u_a_p) +"gYU" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/obj/structure/sign/safety/water{ - pixel_x = -17 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/u_a_p) "gZw" = ( /obj/structure/bed/sofa/vert/grey/bot, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"gZG" = ( -/obj/structure/largecrate/supply/supplies/mre, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "gZK" = ( /turf/open/floor/almayer, /area/almayer/living/auxiliary_officer_office) @@ -36204,6 +32571,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{ @@ -36224,15 +32601,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/lower_medical_lobby) -"haq" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_a_p) -"har" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "haz" = ( /obj/structure/machinery/floodlight, /turf/open/floor/almayer{ @@ -36271,6 +32639,11 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) +"haO" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "haQ" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -36284,12 +32657,40 @@ icon_state = "plate" }, /area/almayer/living/offices) -"haT" = ( -/obj/structure/machinery/light, +"haR" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = -17 + }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/lower/s_bow) +"haY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "redcorner" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"hbl" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_s) +"hbp" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/p_stern) "hbs" = ( /obj/structure/surface/table/almayer, /obj/item/frame/fire_alarm, @@ -36307,6 +32708,26 @@ 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{ + pixel_y = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "hbI" = ( /obj/structure/sign/safety/ammunition{ pixel_x = 32; @@ -36348,15 +32769,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, @@ -36380,34 +32792,21 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"hcZ" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) -"hdb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"hcX" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/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" @@ -36417,6 +32816,13 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"hdy" = ( +/obj/item/storage/firstaid/fire, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "hdE" = ( /obj/structure/filingcabinet, /obj/item/reagent_container/food/drinks/coffeecup/uscm{ @@ -36426,38 +32832,34 @@ icon_state = "green" }, /area/almayer/squads/req) -"hdR" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "OfficeSafeRoom"; - name = "\improper Office Safe Room" +"hdQ" = ( +/obj/structure/closet/secure_closet{ + name = "\improper Execution Firearms" }, +/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" }, -/area/almayer/hull/lower_hull/l_f_s) -"heb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/area/almayer/shipboard/brig/execution_storage) +"hdV" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "greencorner" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/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; @@ -36488,18 +32890,16 @@ icon_state = "test_floor4" }, /area/almayer/living/port_emb) +"heO" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "heS" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/lower) -"heV" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "hfa" = ( /obj/structure/window/reinforced{ dir = 8 @@ -36530,16 +32930,36 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"hfk" = ( -/obj/item/trash/crushed_cup, +"hfc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/aft_hallway) +"hfv" = ( +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) -"hfy" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/lower/s_bow) +"hfO" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/surface/rack, +/obj/item/storage/belt/utility/full{ + pixel_y = 8 + }, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/suit/storage/hazardvest/black, +/obj/item/tool/crowbar, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "hfQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -36555,30 +32975,52 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"hgm" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/binoculars{ - pixel_x = 4; - pixel_y = 5 +"hgk" = ( +/obj/structure/largecrate/random, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/device/binoculars, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +/area/almayer/maint/hull/upper/u_m_s) +"hgo" = ( +/obj/structure/machinery/light{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 10; + 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 }, -/area/almayer/hull/upper_hull/u_f_p) -"hgo" = ( -/obj/structure/machinery/light{ - dir = 8 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 10; - icon_state = "orange" + dir = 8; + icon_state = "blue" }, -/area/almayer/engineering/lower) +/area/almayer/hallways/upper/midship_hallway) "hgB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/intel, @@ -36602,13 +33044,6 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) -"hgH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "hgL" = ( /obj/item/tool/warning_cone{ pixel_x = 4; @@ -36625,22 +33060,11 @@ dir = 4 }, /obj/item/tool/stamp/approved{ - pixel_y = -11; - pixel_x = -3 + pixel_x = -3; + pixel_y = -11 }, /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; @@ -36653,17 +33077,31 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_three) -"hhe" = ( -/obj/structure/sign/safety/nonpress_0g{ - pixel_y = 32 +"hhd" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/head/hardhat/orange{ + pixel_x = -9; + pixel_y = 16 }, -/obj/structure/sign/safety/press_area_ag{ - pixel_y = -32 +/obj/item/clothing/suit/storage/hazardvest/blue{ + pixel_x = -7; + pixel_y = -4 + }, +/obj/item/clothing/head/hardhat{ + pixel_x = 10; + pixel_y = 1 }, +/obj/item/clothing/suit/storage/hazardvest{ + pixel_x = 1 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"hhg" = ( +/obj/structure/surface/rack, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/starboard_umbilical) +/area/almayer/maint/hull/lower/l_f_p) "hhn" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -36674,24 +33112,10 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) -"hhw" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_s) "hhA" = ( /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{ @@ -36706,16 +33130,16 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"hit" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/bag/trash{ - pixel_x = -3 +"hiu" = ( +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice13"; + pixel_x = 16; + pixel_y = 16 }, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/lower/l_m_s) "hiy" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -36731,12 +33155,22 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"hiQ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 +"hiP" = ( +/obj/structure/sign/safety/escapepod{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "hji" = ( /obj/structure/bed/chair{ dir = 4 @@ -36790,27 +33224,36 @@ 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; + pixel_y = 20 + }, +/obj/structure/largecrate, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "hki" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"hkm" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/structure/platform{ +"hkz" = ( +/obj/structure/machinery/light/small{ dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) -"hkx" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/p_stern) "hkB" = ( /obj/structure/sign/safety/rewire{ pixel_x = 8; @@ -36818,12 +33261,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 @@ -36877,21 +33320,13 @@ pixel_x = -1; pixel_y = 3 }, +/obj/item/reagent_container/spray/cleaner{ + layer = 3.04; + pixel_x = 5; + pixel_y = 22 + }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"hlw" = ( -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"hlz" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "hlH" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -36903,11 +33338,22 @@ }, /area/almayer/engineering/lower) "hlI" = ( -/obj/structure/girder, +/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{ - icon_state = "plate" + dir = 9; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/shipboard/brig/warden_office) "hlT" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -36946,20 +33392,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"; @@ -36982,6 +33414,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 @@ -37003,6 +33441,19 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"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/midship_hallway) "hmC" = ( /obj/structure/machinery/cm_vending/sorted/marine_food{ density = 0; @@ -37027,20 +33478,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{ @@ -37060,6 +33497,17 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"hmZ" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "hng" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/accessory/storage/black_vest/acid_harness, @@ -37075,6 +33523,34 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) +"hnt" = ( +/obj/item/toy/deck{ + pixel_y = 12 + }, +/obj/structure/sign/safety/storage{ + pixel_x = 32 + }, +/obj/structure/surface/table/woodentable/poor, +/turf/open/floor/almayer{ + 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 @@ -37088,35 +33564,65 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"hnV" = ( -/obj/structure/machinery/light, +"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/hull/upper_hull/u_f_p) -"hon" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 +/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{ - dir = 1; - icon_state = "green" + icon_state = "mono" }, -/area/almayer/hallways/aft_hallway) -"hop" = ( +/area/almayer/hallways/lower/vehiclehangar) +"hog" = ( +/obj/structure/machinery/light/small, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"hoX" = ( -/obj/structure/machinery/light/small, +/area/almayer/maint/upper/u_a_p) +"hoK" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"hoT" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/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; @@ -37152,6 +33658,10 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) +"hqb" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_s) "hqc" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -37170,24 +33680,37 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom, /turf/open/floor/almayer/research/containment/entrance, /area/almayer/medical/containment/cell) -"hqs" = ( +"hqm" = ( /obj/structure/machinery/light/small{ - dir = 8 + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"hqU" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +/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) +"hqx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - dir = 5; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/upper/aft_hallway) "hqW" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -37225,6 +33748,15 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) +"hro" = ( +/obj/structure/machinery/vending/coffee{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "hrF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -37234,25 +33766,31 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/starboard_point_defense) +"hrI" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "hrJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical, /obj/structure/sign/safety/autodoc{ pixel_x = 20; pixel_y = -32 }, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, /turf/open/floor/almayer{ 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 @@ -37263,6 +33801,21 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"hsh" = ( +/obj/structure/coatrack, +/obj/structure/sign/poster/clf{ + pixel_x = -28 + }, +/obj/structure/sign/nosmoking_1{ + pixel_y = 30 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "hsj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -37280,9 +33833,19 @@ icon_state = "test_floor4" }, /area/almayer/squads/delta) +"hsu" = ( +/obj/structure/bed/sofa/south/grey{ + pixel_y = 12 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "hsy" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/engineering/lower/engine_core) +"hsK" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "hsW" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -37299,6 +33862,55 @@ 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; + pixel_y = 32 + }, +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"htk" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer{ + 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"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + 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/midship_hallway) "htG" = ( /obj/item/tool/soap, /obj/structure/machinery/light/small{ @@ -37327,15 +33939,32 @@ icon_state = "greenfull" }, /area/almayer/living/offices) -"htP" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +"htS" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_s) +"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{ - icon_state = "plate" + dir = 8; + icon_state = "red" + }, +/area/almayer/hallways/upper/port) +"huD" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/lower_hull/stern) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "huK" = ( /turf/open/floor/almayer{ icon_state = "redcorner" @@ -37351,6 +33980,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; @@ -37366,18 +34001,18 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"huX" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/structure/machinery/light{ - dir = 1 +"hvd" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/interrogation) +"hvq" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"hvp" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "hvv" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -37407,23 +34042,26 @@ /obj/structure/pipes/standard/simple/hidden/supply/no_boom, /turf/open/floor/plating, /area/almayer/powered/agent) +"hvx" = ( +/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" + }, +/turf/open/floor/almayer{ + 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) -"hvQ" = ( -/obj/effect/landmark/start/professor, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) -"hwd" = ( -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/item/fuelCell, -/obj/structure/surface/table/almayer, -/obj/item/fuelCell, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering/lower/engine_core) "hwC" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -37433,6 +34071,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 @@ -37479,26 +34130,17 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"hyc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"hyk" = ( +"hyb" = ( +/obj/structure/largecrate/random/barrel/red, /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 - }, +/area/almayer/maint/hull/lower/l_a_s) +"hyk" = ( /turf/open/floor/almayer{ - dir = 6; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/squads/charlie_delta_shared) "hyw" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -37526,6 +34168,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; @@ -37540,6 +34203,16 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) +"hzl" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/snacks/mre_pack/meal5, +/obj/item/device/flashlight/lamp{ + pixel_x = 3; + pixel_y = 12 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "hzs" = ( /obj/structure/bed, /obj/item/bedsheet/medical, @@ -37557,6 +34230,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{ @@ -37568,25 +34250,17 @@ dir = 4 }, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ - name = "\improper Combat Information Center"; - closeOtherId = "ciclobby_s" + closeOtherId = "ciclobby_s"; + name = "\improper Combat Information Center" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/command/cic) -"hzM" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"hzV" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, +"hzN" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/upper/s_bow) "hAc" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/flare, @@ -37595,6 +34269,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 @@ -37603,6 +34287,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, @@ -37625,14 +34322,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"hAY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) "hAZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -37645,6 +34334,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/midship_hallway) "hBc" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -37653,6 +34350,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/fore_hallway) "hBz" = ( /obj/item/mortar_kit, /turf/open/floor/almayer{ @@ -37660,43 +34381,54 @@ 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) -"hBU" = ( -/obj/structure/largecrate/random/secure, -/obj/effect/decal/warning_stripes{ - icon_state = "E" - }, +"hBW" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) -"hCo" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_22"; - pixel_y = 8 +/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/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/port_midship_hallway) +"hCk" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"hCq" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "hCt" = ( /obj/structure/sign/safety/terminal{ pixel_x = 15; @@ -37709,6 +34441,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"hCF" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "hCS" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin/uscm{ @@ -37736,10 +34474,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"hDv" = ( -/obj/effect/landmark/start/reporter, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "hDw" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -37747,13 +34481,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{ @@ -37769,6 +34496,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, @@ -37791,30 +34528,54 @@ 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{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "hEl" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"hEt" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_x = -8 - }, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_y = 12 +"hEm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 2 }, -/obj/item/clothing/head/militia/bucket{ - pixel_x = 5; - pixel_y = -5 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"hEr" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 }, -/obj/item/reagent_container/spray/cleaner{ +/obj/structure/filingcabinet{ + density = 0; pixel_x = 8; - pixel_y = -1 + pixel_y = 18 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "hEw" = ( /obj/structure/pipes/standard/simple/visible{ dir = 10 @@ -37828,6 +34589,12 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"hFt" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) "hFw" = ( /obj/structure/machinery/disposal/broken, /turf/open/floor/almayer{ @@ -37853,16 +34620,15 @@ icon_state = "test_floor4" }, /area/almayer/medical/morgue) -"hFW" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"hGD" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"hGo" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "hGG" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -37905,12 +34671,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"hGZ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "hHe" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -37940,35 +34700,15 @@ 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) -"hHU" = ( -/obj/structure/platform_decoration{ - dir = 8 - }, -/obj/item/reagent_container/glass/bucket/mopbucket{ - pixel_x = 7; - pixel_y = -3 +"hIp" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_a_p) "hIs" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -37979,6 +34719,16 @@ 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, +/area/almayer/maint/hull/upper/p_bow) "hII" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -37993,12 +34743,18 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"hJb" = ( -/obj/item/tool/pen, +"hIX" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/maint/hull/upper/u_a_p) +"hJe" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_p) "hJg" = ( /obj/structure/pipes/trinary/mixer{ dir = 4; @@ -38018,60 +34774,27 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"hJp" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"hJu" = ( -/obj/structure/sign/safety/stairs{ - pixel_x = -15 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "green" - }, -/area/almayer/hallways/aft_hallway) -"hJz" = ( -/obj/structure/sign/safety/restrictedarea, -/obj/structure/sign/safety/security{ - pixel_x = 15 +"hJD" = ( +/obj/structure/bed/sofa/south/grey/right{ + pixel_y = 12 }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "hJI" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"hJJ" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ +"hKe" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"hJN" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/airlock{ - pixel_x = 32; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) -"hKe" = ( -/obj/structure/sign/poster/safety, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_s) -"hKi" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_fore_hallway) "hKl" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/warning_stripes{ @@ -38086,70 +34809,46 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"hKq" = ( -/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/main_office) -"hLB" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/crate, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +"hKJ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/area/almayer/hallways/upper/midship_hallway) +"hKO" = ( +/obj/structure/largecrate/random/barrel/green, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/area/almayer/maint/hull/lower/l_f_s) +"hLt" = ( +/obj/structure/sign/poster{ + desc = "It says DRUG."; + icon_state = "poster2"; + pixel_y = 30 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) +"hLu" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/lower/p_bow) "hLC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -38173,54 +34872,52 @@ 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, /area/almayer/engineering/lower) -"hMI" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/binoculars, -/obj/item/device/whistle{ - pixel_y = 5 - }, +"hMM" = ( +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/s_bow) "hMN" = ( /obj/structure/machinery/power/apc/almayer, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_three) -"hNl" = ( -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 16 +"hNh" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"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 @@ -38228,6 +34925,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{ @@ -38254,15 +34962,25 @@ 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) "hPe" = ( /obj/structure/disposalpipe/segment, /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/research, @@ -38275,14 +34993,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) -"hPg" = ( -/obj/structure/machinery/constructable_frame{ - icon_state = "box_2" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "hPh" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/almayer{ @@ -38290,24 +35000,33 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) -"hPo" = ( -/obj/structure/surface/rack, -/obj/item/tool/wet_sign, -/obj/item/tool/wet_sign, +"hPr" = ( +/obj/structure/machinery/status_display{ + pixel_y = -30 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_a_p) -"hPI" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/shipboard/brig/perma) -"hPK" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/area/almayer/hallways/upper/aft_hallway) +"hPu" = ( +/obj/structure/largecrate/supply, +/obj/item/tool/crowbar, /turf/open/floor/almayer{ - dir = 1; + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_p) +"hPD" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer{ + 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{ @@ -38320,12 +35039,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/hydroponics) -"hPT" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "hQc" = ( /obj/structure/window/reinforced{ dir = 4; @@ -38338,6 +35051,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{ @@ -38345,6 +35062,10 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"hQK" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_m_p) "hQP" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -38396,33 +35117,12 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"hRc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/upper/port) "hRd" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/squads/alpha) -"hRi" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "hRk" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ density = 0; @@ -38432,6 +35132,20 @@ 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 + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "hRW" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -38455,10 +35169,28 @@ 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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"hSj" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_n"; + dir = 1; + name = "\improper Brig" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/s_bow) "hSk" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) @@ -38471,14 +35203,18 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"hSu" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"hSv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Starboard Viewing Room" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/u_f_s) "hSw" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk, @@ -38500,13 +35236,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 @@ -38522,14 +35251,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"hTk" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 - }, -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_a_p) "hTl" = ( /obj/structure/prop/server_equipment/yutani_server{ density = 0; @@ -38538,9 +35259,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{ @@ -38551,10 +35270,6 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"hTu" = ( -/obj/structure/machinery/light, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "hTF" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm{ isopen = 1; @@ -38598,18 +35313,36 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"hUc" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"hTU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, +/obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) -"hUg" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/lower/l_a_p) +"hUb" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + 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; @@ -38633,6 +35366,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; @@ -38661,20 +35416,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"hWa" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/ashtray/plastic, -/obj/item/trash/cigbutt{ - pixel_x = 4 - }, -/obj/item/trash/cigbutt{ - pixel_x = -10; - pixel_y = 13 - }, +"hVL" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_f_p) "hWq" = ( /obj/structure/platform{ layer = 3.1 @@ -38723,6 +35470,27 @@ 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 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "hWJ" = ( /obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ @@ -38737,18 +35505,12 @@ icon_state = "blue" }, /area/almayer/command/cichallway) -"hWS" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) -"hWU" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" +"hWV" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/upper/fore_hallway) "hXb" = ( /turf/open/floor/almayer{ dir = 1; @@ -38786,6 +35548,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"hXD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "hXG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38798,22 +35566,6 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/upper_engineering/port) -"hXS" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"hXV" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/south1) "hXX" = ( /obj/effect/projector{ name = "Almayer_Down4"; @@ -38831,22 +35583,12 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"hYc" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/kitchen/tray, -/obj/item/tool/kitchen/tray{ - pixel_y = 6 - }, -/obj/item/reagent_container/food/snacks/sliceable/bread{ - pixel_y = 8 - }, -/obj/item/tool/kitchen/knife{ - pixel_x = 6 - }, +"hYf" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/lower/l_a_s) "hYn" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -38859,6 +35601,14 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"hYE" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_22"; + pixel_y = 8 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "hYG" = ( /obj/structure/bed/chair{ dir = 1 @@ -38883,10 +35633,14 @@ 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{ + icon_state = "SW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "hZE" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -38919,18 +35673,10 @@ 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, +/area/almayer/maint/hull/lower/l_f_p) "iaa" = ( /obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, /turf/open/floor/almayer{ @@ -39007,6 +35753,30 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) +"ibf" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) +"ibP" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -19; + pixel_y = -6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"icn" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "icp" = ( /turf/open/floor/almayer{ dir = 8; @@ -39052,12 +35822,49 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"idL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"idM" = ( +/turf/open/floor/plating, +/area/almayer/command/corporateliaison) "idX" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/prison{ 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/aft_hallway) +"ied" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"ien" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "ieu" = ( /obj/structure/window/reinforced{ dir = 4; @@ -39124,17 +35931,8 @@ dir = 1; icon_state = "ramptop" }, -/turf/open/floor/almayer/no_build{ - dir = 4 - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"ieH" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "ieX" = ( /obj/structure/surface/table/almayer, /obj/structure/sign/safety/distribution_pipes{ @@ -39159,48 +35957,73 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"ifR" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"igf" = ( -/obj/structure/largecrate/random/case{ - layer = 2.98 +"ifz" = ( +/obj/structure/machinery/keycard_auth{ + pixel_x = 25 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/shipboard/brig/warden_office) +"igb" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "igr" = ( /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 +"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 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering/lower/engine_core) +"igw" = ( +/obj/structure/sign/poster/ad{ + pixel_x = 30 }, +/obj/structure/closet, +/obj/item/clothing/mask/cigarette/weed, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"ihn" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/souto/blue{ - pixel_x = 2; - pixel_y = 3 +/area/almayer/maint/hull/lower/l_m_s) +"igS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, +/obj/structure/closet/emcloset, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/upper/p_bow) +"iho" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/constr) "ihw" = ( /obj/structure/machinery/cm_vending/sorted/medical, /turf/open/floor/almayer{ @@ -39208,6 +36031,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; @@ -39220,6 +36050,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 @@ -39234,26 +36073,15 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) -"iid" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 2; - req_one_access = null; - req_one_access_txt = "19;34;30" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) "iis" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, /obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigcells"; dir = 1; - name = "\improper Brig Prison Yard And Offices"; - closeOtherId = "brigcells" + name = "\improper Brig Prison Yard And Offices" }, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -39280,35 +36108,12 @@ 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) -"iiP" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "iiZ" = ( /obj/structure/machinery/cm_vending/sorted/marine_food, /turf/open/floor/almayer{ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"ije" = ( -/obj/item/tool/weldingtool, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "ijf" = ( /obj/structure/surface/table/almayer, /obj/item/cell/crap, @@ -39318,14 +36123,14 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"ijp" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" +"ijn" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" }, -/area/almayer/hull/lower_hull/l_f_s) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "ijr" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -39347,16 +36152,17 @@ }, /obj/structure/transmitter/rotary{ name = "Senior Enlisted Advisor Office Telephone"; - phone_category = "Almayer"; + phone_category = "Offices"; phone_id = "Senior Enlisted Advisor's Office"; pixel_x = -3 }, /turf/open/floor/wood/ship, /area/almayer/shipboard/sea_office) -"ijU" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +"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 @@ -39377,6 +36183,19 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"ikA" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) +"ikC" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "ikQ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/tool/stamp/hop{ @@ -39398,16 +36217,15 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"ikT" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "ilq" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"ils" = ( -/obj/structure/window/framed/almayer/hull, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_f_p) "ily" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -39433,12 +36251,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"ilZ" = ( -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "imo" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -39452,33 +36264,30 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) +"imt" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_y = 17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "imy" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"imJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"ina" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, +"imM" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/upper/midship_hallway) "inh" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /obj/structure/disposalpipe/junction{ - dir = 1 + dir = 4; + icon_state = "pipe-y" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) @@ -39495,14 +36304,6 @@ }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering) -"inC" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "inL" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -39513,12 +36314,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"ioj" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "iow" = ( /obj/structure/machinery/cm_vending/sorted/attachments/squad{ req_access = null; @@ -39539,6 +36334,9 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) +"ioM" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "ioP" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -39562,12 +36360,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{ @@ -39583,12 +36375,39 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) -"ipD" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"ipk" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_f_s) +"ipn" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"ipr" = ( +/obj/item/tool/weldpack{ + pixel_y = 15 + }, +/obj/structure/surface/table/almayer, +/obj/item/clothing/head/welding, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"ipB" = ( +/obj/structure/surface/rack, +/obj/item/tool/kitchen/rollingpin, +/obj/item/tool/hatchet, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "ipE" = ( /obj/structure/bed/chair{ dir = 8 @@ -39623,11 +36442,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) -"ipT" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "iqd" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -39638,7 +36452,6 @@ /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" }, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 10; icon_state = "green" @@ -39674,14 +36487,6 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) -"irn" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"irr" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "iry" = ( /obj/structure/platform{ dir = 8 @@ -39691,12 +36496,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{ @@ -39729,6 +36539,23 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) +"isq" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) +"isB" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "isC" = ( /obj/effect/projector{ name = "Almayer_AresDown"; @@ -39739,9 +36566,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{ @@ -39765,15 +36590,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"; @@ -39796,9 +36612,9 @@ unacidable = 0; unslashable = 0 }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "ito" = ( @@ -39834,6 +36650,23 @@ icon_state = "red" }, /area/almayer/command/lifeboat) +"iuf" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) +"iuh" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "iun" = ( /obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, @@ -39852,25 +36685,6 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) -"iuu" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat/orange{ - pixel_x = -9; - pixel_y = 16 - }, -/obj/item/clothing/suit/storage/hazardvest/blue{ - pixel_x = -7; - pixel_y = -4 - }, -/obj/item/clothing/head/hardhat{ - pixel_x = 10; - pixel_y = 1 - }, -/obj/item/clothing/suit/storage/hazardvest{ - pixel_x = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "iuz" = ( /obj/structure/surface/rack, /obj/effect/spawner/random/warhead, @@ -39878,10 +36692,6 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) -"iuA" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "iuE" = ( /obj/structure/machinery/vending/coffee, /obj/structure/machinery/light{ @@ -39897,6 +36707,12 @@ /obj/structure/machinery/computer/emails, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"iuI" = ( +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ivf" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/camera, @@ -39917,18 +36733,22 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"ivu" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "ivz" = ( /obj/structure/closet, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/port_emb) -"ivB" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"ivL" = ( +/obj/structure/platform{ + dir = 8 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "ivM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -39950,14 +36770,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"iwh" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "iwB" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -40030,26 +36842,22 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) -"ixv" = ( -/obj/structure/bed/chair/comfy/blue{ - dir = 4 +"ixu" = ( +/obj/structure/largecrate/random/case{ + layer = 2.98 }, /turf/open/floor/almayer{ 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{ +/area/almayer/maint/hull/upper/u_a_s) +"ixv" = ( +/obj/structure/bed/chair/comfy/blue{ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/command/cic) "ixD" = ( /obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ @@ -40069,12 +36877,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"ixP" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "ixQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -40082,6 +36884,27 @@ }, /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"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "iyF" = ( /obj/structure/pipes/standard/simple/visible{ dir = 9 @@ -40099,16 +36922,8 @@ 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) -"iyQ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) "iyS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40130,13 +36945,12 @@ icon_state = "plate" }, /area/almayer/living/offices) -"izx" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 +"izu" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/lifeboat_pumps/north2) "izG" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -40152,10 +36966,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"izU" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "izY" = ( /obj/structure/machinery/autodoc_console, /turf/open/floor/almayer{ @@ -40163,6 +36973,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 @@ -40184,14 +37000,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 @@ -40200,16 +37008,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 @@ -40220,26 +37018,14 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) -"iBt" = ( -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"iBE" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"iBG" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/reagent_dispensers/fueltank{ - anchored = 1 +"iBu" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/p_bow) "iBY" = ( /obj/structure/machinery/vending/snack, /turf/open/floor/almayer{ @@ -40267,14 +37053,14 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) -"iCz" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"iCD" = ( +/obj/structure/bed/chair/comfy/orange{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_a_p) "iCF" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -40287,44 +37073,24 @@ 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) -"iDm" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"iDN" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"iDT" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/spray/cleaner{ - pixel_x = 7; - pixel_y = 14 +"iDk" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_m_p) +"iDs" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) -"iEb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/area/almayer/maint/hull/upper/u_a_s) +"iEa" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/upper/p_bow) "iEg" = ( /turf/open/floor/almayer{ dir = 9; @@ -40337,14 +37103,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) -"iEs" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_p) "iEw" = ( /obj/structure/machinery/light{ dir = 1 @@ -40376,28 +37134,49 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"iFc" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/cells) -"iFm" = ( -/obj/structure/machinery/light{ - dir = 1 +"iEM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "plating_striped" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/starboard_midship_hallway) +"iFc" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/cells) "iFn" = ( /turf/open/floor/almayer{ 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 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Railguns and Viewing Room" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_p) "iFC" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -40425,6 +37204,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 @@ -40437,13 +37225,29 @@ icon_state = "test_floor4" }, /area/almayer/living/port_emb) -"iGg" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/obj/item/reagent_container/food/snacks/tomatomeat, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +"iFY" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) +"iGc" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + 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{ @@ -40454,14 +37258,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"iGK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "iGQ" = ( /obj/structure/machinery/landinglight/ds2/delayone{ dir = 8 @@ -40476,20 +37272,6 @@ "iHc" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) -"iHF" = ( -/obj/structure/largecrate/random, -/obj/item/reagent_container/food/snacks/cheesecakeslice{ - pixel_y = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "iHG" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -40519,6 +37301,20 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"iIH" = ( +/obj/structure/largecrate/supply/medicine/medivend{ + pixel_x = 3 + }, +/obj/structure/largecrate/random/mini/med{ + density = 1; + pixel_x = 3; + pixel_y = 11 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/medical/lower_medical_medbay) "iIP" = ( /obj/structure/toilet{ pixel_y = 16 @@ -40533,6 +37329,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/aft_hallway) "iIR" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -40544,16 +37349,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) -"iIY" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"iJf" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "iJB" = ( /obj/structure/sign/safety/galley{ pixel_x = 8; @@ -40574,6 +37369,13 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"iJT" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "iKb" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -40630,6 +37432,15 @@ icon_state = "mono" }, /area/almayer/engineering/port_atmos) +"iKV" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "iKZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -40662,17 +37473,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 @@ -40739,6 +37548,46 @@ 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 + }, +/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"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "iNY" = ( /obj/structure/machinery/status_display{ pixel_x = 32; @@ -40746,23 +37595,51 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"iNZ" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 16 +"iOo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/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/aft_hallway) +"iOX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"iPf" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"iPq" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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, @@ -40790,12 +37667,46 @@ 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{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"iPN" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/station_alert, +/obj/structure/sign/safety/maint{ + pixel_x = 32 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "iPS" = ( /obj/structure/machinery/cryopod/right, /turf/open/floor/almayer{ 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/fore_hallway) "iQd" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -40859,12 +37770,6 @@ icon_state = "emerald" }, /area/almayer/living/port_emb) -"iQx" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "iQB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/card{ @@ -40872,33 +37777,53 @@ layer = 3.2; pixel_y = 4 }, -/obj/structure/machinery/computer/secure_data{ - dir = 4; - pixel_y = 23 - }, /obj/structure/machinery/light{ dir = 8 }, +/obj/structure/machinery/computer/secure_data{ + dir = 4; + pixel_y = 23; + layer = 2.99 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"iRr" = ( -/obj/structure/machinery/light{ - dir = 1 +"iQG" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"iQJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"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/fore_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, @@ -40919,10 +37844,6 @@ dir = 4 }, /area/almayer/medical/containment/cell) -"iRS" = ( -/obj/item/trash/chips, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "iSm" = ( /obj/structure/pipes/vents/pump, /obj/structure/mirror{ @@ -40969,6 +37890,34 @@ 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/aft_hallway) +"iSB" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"iSV" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + req_one_access = null; + req_one_access_txt = "2;7" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_p) "iSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40999,25 +37948,16 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"iTf" = ( -/obj/structure/closet/crate/trashcart, -/obj/item/clothing/gloves/yellow, -/obj/item/device/multitool, -/obj/item/tool/screwdriver{ - icon_state = "screwdriver7" - }, -/obj/item/tool/crowbar/red, -/obj/item/book/manual/engineering_hacking, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "iTl" = ( /turf/open/floor/almayer{ dir = 10; icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"iTq" = ( +/obj/structure/curtain/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "iTw" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -41026,18 +37966,6 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"iTz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "iTD" = ( /obj/effect/landmark/start/auxiliary_officer, /turf/open/floor/plating/plating_catwalk, @@ -41048,26 +37976,20 @@ }, /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 +"iTQ" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) -"iTN" = ( -/obj/item/stool{ - pixel_x = -15; - pixel_y = 6 +/area/almayer/maint/hull/upper/u_m_s) +"iUh" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "iUk" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie{ dir = 1 @@ -41109,6 +38031,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/midship_hallway) "iUW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -41119,16 +38059,22 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"iUZ" = ( -/obj/docking_port/stationary/escape_pod/cl, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"iVo" = ( -/obj/structure/bed/sofa/south/grey/right, +"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/hull/upper_hull/u_f_p) +/area/almayer/shipboard/brig/interrogation) "iVy" = ( /turf/open/floor/almayer{ dir = 1; @@ -41141,15 +38087,15 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"iVO" = ( -/obj/structure/surface/table/almayer, -/obj/item/weapon/gun/revolver/m44{ - desc = "A bulky revolver, occasionally carried by assault troops and officers in the Colonial Marines, as well as civilian law enforcement. Fires .44 Magnum rounds. 'J.P' Is engraved into the barrel." +"iVG" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/p_bow) "iVP" = ( /obj/structure/sign/safety/restrictedarea{ pixel_x = -17; @@ -41161,6 +38107,13 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"iWa" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "iWc" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -41171,15 +38124,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" @@ -41190,19 +38134,31 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"iWL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"iWH" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/item/reagent_container/glass/bucket/mopbucket, +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/structure/janitorialcart, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) -"iWN" = ( +/area/almayer/maint/lower/s_bow) +"iWJ" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ - dir = 1; - icon_state = "silver" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/s_bow) +"iWQ" = ( +/obj/effect/landmark/start/researcher, +/obj/effect/landmark/late_join/researcher, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "iWR" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/prison{ @@ -41217,12 +38173,28 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"iXm" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "InnerShutter"; + name = "\improper Saferoom Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "iXA" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) +"iXB" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "iXT" = ( /obj/item/trash/uscm_mre, /turf/open/floor/almayer, @@ -41269,35 +38241,12 @@ icon_state = "cargo_arrow" }, /area/almayer/medical/hydroponics) -"iYi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"iYj" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/stern_hallway) -"iYp" = ( -/obj/item/paper/almayer_storage, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"iYr" = ( -/obj/structure/machinery/light{ - dir = 4 - }, +"iYm" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/living/starboard_garden) +/area/almayer/maint/hull/upper/s_stern) "iYt" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -41314,6 +38263,12 @@ icon_state = "plate" }, /area/almayer/living/gym) +"iZd" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "iZg" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -41335,11 +38290,13 @@ /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) +"iZz" = ( +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) "iZE" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, /obj/effect/decal/warning_stripes{ @@ -41353,15 +38310,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 @@ -41387,13 +38335,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"iZX" = ( -/obj/structure/surface/rack, -/obj/item/clothing/glasses/meson, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "jac" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -41402,6 +38343,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/aft_hallway) "jaf" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 4 @@ -41418,17 +38365,51 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"jaj" = ( -/obj/item/ammo_box/magazine/misc/mre/empty{ - pixel_x = 8; - pixel_y = 8 +"jak" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/reagent_container/food/drinks/cans/aspen{ - pixel_x = 11; - pixel_y = -3 +/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/midship_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/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_midship_hallway) +"jay" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/etool{ + pixel_x = 6 + }, +/obj/item/tool/shovel/etool, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer{ + 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{ @@ -41439,15 +38420,13 @@ icon_state = "plating" }, /area/almayer/command/airoom) -"jaK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"jaI" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/vehiclehangar) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "jaM" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -41474,23 +38453,10 @@ icon_state = "test_floor4" }, /area/almayer/squads/req) -"jbb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, +"jaW" = ( +/obj/effect/landmark/start/reporter, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/upper/u_m_p) "jbq" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -41527,15 +38493,6 @@ /obj/structure/machinery/light{ dir = 8 }, -/obj/item/clothing/mask/cigarette/pipe{ - layer = 2.8; - pixel_y = -7 - }, -/obj/item/reagent_container/spray/cleaner{ - layer = 3.04; - pixel_x = -4; - pixel_y = 7 - }, /obj/structure/machinery/door_control/brbutton{ id = "Brig Lockdown Shutters"; name = "Brig Lockdown"; @@ -41554,10 +38511,13 @@ pixel_x = 8; pixel_y = 26 }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4 + }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) "jbO" = ( -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, @@ -41572,17 +38532,20 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) +"jcE" = ( +/obj/structure/machinery/vending/coffee{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "jcP" = ( /turf/open/floor/almayer{ 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{ @@ -41597,6 +38560,21 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"jdn" = ( +/obj/structure/surface/rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) +"jdu" = ( +/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; @@ -41607,26 +38585,20 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_three) -"jdQ" = ( -/obj/structure/machinery/shower{ - pixel_y = 16 - }, -/obj/item/tool/soap, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) -"jea" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_y = 32 - }, -/obj/structure/sign/safety/water{ - pixel_x = 15; - pixel_y = 32 +"jdZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "jeb" = ( /turf/closed/wall/almayer, /area/almayer/squads/alpha_bravo_shared) +"jei" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "jeq" = ( /obj/structure/surface/rack, /obj/item/storage/box/pillbottles{ @@ -41642,6 +38614,27 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"jer" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_a_p) +"jev" = ( +/obj/structure/largecrate/random/case/small, +/obj/item/device/taperecorder{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/reagent_container/glass/bucket/mopbucket{ + pixel_x = -9; + pixel_y = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "jew" = ( /obj/structure/surface/table/reinforced/black, /turf/open/floor/almayer{ @@ -41688,29 +38681,6 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"jeU" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"jfm" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"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"; @@ -41721,6 +38691,13 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"jfS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "jfY" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -41814,14 +38791,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) -"jgC" = ( -/obj/structure/closet/emcloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "jgF" = ( /obj/structure/platform, /turf/open/floor/almayer{ @@ -41834,18 +38803,53 @@ icon_state = "blue" }, /area/almayer/command/cichallway) -"jgM" = ( -/obj/structure/surface/table/almayer, +"jgK" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_f_s) -"jgU" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/area/almayer/maint/hull/lower/l_m_s) +"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/aft_hallway) "jhb" = ( /obj/structure/sign/safety/cryo{ pixel_x = -6; @@ -41853,12 +38857,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/aft_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; @@ -41882,14 +38901,9 @@ }, /area/almayer/living/offices) "jhA" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +/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 @@ -41903,22 +38917,35 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) -"jhW" = ( -/obj/structure/machinery/cryopod/right, +"jhK" = ( +/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"jhR" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_y = 17 }, -/area/almayer/living/bridgebunks) -"jhY" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; pixel_x = -1 }, +/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{ - dir = 8; - icon_state = "silver" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/living/bridgebunks) "jic" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -41931,14 +38958,17 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/lobby) -"jiw" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"jiM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/area/almayer/hallways/port_hallway) +/obj/structure/surface/rack, +/obj/item/frame/table, +/obj/item/frame/table, +/obj/item/frame/table, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "jiU" = ( /obj/structure/sink{ dir = 1; @@ -41958,27 +38988,13 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) -"jiX" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"jjm" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Lethal Injection Locker" - }, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/obj/item/reagent_container/ld50_syringe/choral, -/turf/open/floor/almayer{ - icon_state = "plate" +"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{ @@ -41988,19 +39004,15 @@ /obj/structure/machinery/door/window/eastleft{ req_access_txt = "8" }, -/obj/item/book/manual/medical_diagnostics_manual, -/obj/item/device/megaphone, +/obj/item/desk_bell{ + pixel_x = -6; + pixel_y = 10; + anchored = 1 + }, /turf/open/floor/almayer{ 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"; @@ -42014,42 +39026,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) -"jjX" = ( -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"jjZ" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/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{ @@ -42066,6 +39042,17 @@ icon_state = "plate" }, /area/almayer/medical/morgue) +"jkq" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = -28 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "jks" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer/open{ @@ -42125,6 +39112,40 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"jkL" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"jkN" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + 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; @@ -42142,6 +39163,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"; @@ -42166,6 +39206,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"jlO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) "jlQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -42187,10 +39233,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"jmg" = ( -/obj/structure/largecrate/supply/ammo/shotgun, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "jmn" = ( /obj/structure/surface/table/almayer, /obj/item/prop/magazine/dirty{ @@ -42204,6 +39246,15 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"jmz" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "jmK" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -42225,48 +39276,70 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"jmR" = ( -/obj/structure/ladder/fragile_almayer{ - height = 2; - id = "kitchen" +"jmY" = ( +/turf/open/floor/almayer{ + icon_state = "blue" }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 24 +/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/hull/upper_hull/u_m_p) -"jmY" = ( +/area/almayer/hallways/lower/port_midship_hallway) +"jne" = ( /turf/open/floor/almayer{ - icon_state = "blue" + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_p) +"jnh" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/area/almayer/command/cichallway) -"jnk" = ( -/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) -"jnw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/area/almayer/maint/upper/mess) +"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/engineering/upper_engineering/port) +"jnx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "jnD" = ( /turf/open/floor/almayer{ dir = 1; @@ -42305,12 +39378,6 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"joT" = ( -/obj/structure/largecrate/random/case, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "jpn" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -42345,23 +39412,12 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) -"jpJ" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"jpN" = ( -/obj/structure/surface/rack, -/obj/item/storage/box/cups{ - pixel_x = 4; - pixel_y = 9 - }, -/obj/item/storage/box/cups, -/turf/open/floor/almayer{ - icon_state = "plate" +"jpW" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) "jqP" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -42369,7 +39425,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; @@ -42382,9 +39438,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"jqT" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "jqY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42399,6 +39452,10 @@ icon_state = "green" }, /area/almayer/squads/req) +"jri" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "jrm" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -42409,6 +39466,38 @@ 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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) +"jrI" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "jrM" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ dir = 4 @@ -42418,6 +39507,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 @@ -42426,6 +39526,14 @@ icon_state = "bluefull" }, /area/almayer/living/captain_mess) +"jsu" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "jsx" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -42437,6 +39545,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"jsA" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"jsE" = ( +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "jsP" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42446,35 +39565,44 @@ 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) -"jup" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_y = 1 +/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/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_fore_hallway) "juD" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -42482,12 +39610,26 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"juF" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, +"juG" = ( /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/upper/u_a_p) +"juM" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) +"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 @@ -42508,6 +39650,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{ @@ -42533,18 +39681,41 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha) +"jvt" = ( +/obj/item/tool/warning_cone{ + pixel_x = -20; + pixel_y = 18 + }, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice12"; + pixel_y = -16 + }, +/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/midship_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) -"jvI" = ( -/obj/structure/reagent_dispensers/fueltank, +"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 = "plate" + icon_state = "greencorner" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_fore_hallway) "jvM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -42587,19 +39758,41 @@ "jvY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/telecomms) -"jwD" = ( -/obj/structure/prop/almayer/computers/sensor_computer2, +"jwi" = ( /obj/structure/machinery/door_control{ - id = "Secretroom"; - indestructible = 1; - layer = 2.5; - name = "Shutters"; - use_power = 0 + id = "InnerShutter"; + name = "Inner Shutter"; + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/toy/deck{ + pixel_x = -9 + }, +/obj/item/ashtray/plastic, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/sign/safety/intercom{ + pixel_y = -32 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/panic) +"jwq" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/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, +/area/almayer/maint/hull/upper/u_a_p) "jwK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -42607,6 +39800,19 @@ icon_state = "red" }, /area/almayer/squads/alpha_bravo_shared) +"jwM" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/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{ @@ -42614,6 +39820,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 @@ -42629,13 +39841,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; @@ -42646,6 +39860,20 @@ /obj/structure/machinery/light, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) +"jyJ" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/ladder{ + height = 2; + id = "cicladder3" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 23; + pixel_y = 32 + }, +/turf/open/floor/plating/almayer, +/area/almayer/medical/medical_science) "jyR" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage{ req_one_access_txt = "7;23;27" @@ -42672,6 +39900,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{ @@ -42685,9 +39920,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{ @@ -42729,15 +39973,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) -"jBB" = ( -/obj/structure/surface/rack, -/obj/item/circuitboard/firealarm, -/obj/item/circuitboard, -/obj/item/clipboard, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "jBO" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 4; @@ -42752,15 +39987,10 @@ dir = 8 }, /area/almayer/medical/containment/cell) -"jBX" = ( -/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/command/lifeboat) +"jCg" = ( +/obj/docking_port/stationary/escape_pod/south, +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_s) "jCn" = ( /obj/structure/surface/table/almayer, /obj/item/tool/screwdriver, @@ -42772,6 +40002,18 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) +"jCr" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + 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"; @@ -42782,6 +40024,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 @@ -42799,6 +40045,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 @@ -42835,35 +40090,50 @@ 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) -"jEs" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/screwdriver{ - pixel_x = -1; - pixel_y = 2 +"jEA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/stack/cable_coil{ +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/water{ pixel_x = 8; - pixel_y = -4 + pixel_y = 32 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"jEM" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "jES" = ( /obj/structure/bed/chair/comfy/black{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) -"jFe" = ( -/obj/structure/prop/holidays/string_lights{ - pixel_y = 27 +"jEV" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin{ + pixel_x = -7 }, -/obj/item/frame/rack, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/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 @@ -42878,24 +40148,14 @@ }, /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) -"jFh" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "cargo" +"jFt" = ( +/obj/structure/machinery/light/small, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "jFx" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/bucket{ @@ -42939,12 +40199,14 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"jFX" = ( -/obj/structure/machinery/door/airlock/almayer/maint, +"jFI" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/u_m_s) "jFY" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ @@ -42968,16 +40230,18 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"jGN" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +"jGQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "jGR" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -42987,16 +40251,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"jHe" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) "jHh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43006,21 +40260,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"jHn" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + 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 @@ -43037,26 +40291,29 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) -"jIo" = ( -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 +"jHX" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) -"jIH" = ( -/obj/structure/surface/rack, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/obj/structure/machinery/camera/autoname/almayer{ +/area/almayer/maint/upper/u_m_p) +"jIC" = ( +/obj/structure/machinery/computer/working_joe{ + dir = 4; + pixel_x = -17 + }, +/turf/open/floor/almayer{ dir = 8; - name = "ship-grade camera" + icon_state = "orange" }, +/area/almayer/maint/upper/mess) +"jIJ" = ( +/obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/maint/hull/lower/l_f_s) "jIT" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm/brig/chief, @@ -43071,18 +40328,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 @@ -43092,18 +40337,6 @@ icon_state = "blue" }, /area/almayer/living/port_emb) -"jJs" = ( -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"jKh" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 - }, -/obj/effect/landmark/start/doctor, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) "jKn" = ( /turf/open/floor/almayer{ dir = 5; @@ -43126,14 +40359,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{ @@ -43159,15 +40384,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 @@ -43183,34 +40405,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) -"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" - }, +"jLH" = ( +/obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ - dir = 8; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/lower/l_m_p) "jLS" = ( /obj/structure/bed/chair/comfy/charlie, /obj/effect/decal/cleanable/dirt, @@ -43218,30 +40418,18 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"jMb" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) -"jMi" = ( -/obj/structure/surface/table/almayer, -/obj/item/toy/deck{ - pixel_y = 14 +"jMa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/obj/item/trash/cigbutt/ucigbutt{ - layer = 3.7; - pixel_x = 5; - pixel_y = 8 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/hallways/lower/port_fore_hallway) "jMm" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null @@ -43266,15 +40454,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"jMt" = ( -/obj/structure/sign/poster{ - pixel_y = -32 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "jMx" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -43303,19 +40482,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/midship_hallway) "jMQ" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -43364,22 +40543,33 @@ icon_state = "test_floor4" }, /area/almayer/medical/containment/cell) -"jNq" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null +"jNo" = ( +/obj/structure/surface/rack, +/obj/item/tool/shovel/etool{ + pixel_x = 6 }, -/obj/item/clothing/mask/rebreather/scarf/tacticalmask/red, +/obj/item/tool/shovel/etool, +/obj/item/tool/wirecutters, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) -"jNt" = ( -/obj/structure/surface/rack, -/obj/item/stack/folding_barricade/three, +/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{ - icon_state = "plate" + dir = 8; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_fore_hallway) "jND" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -43387,14 +40577,19 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"jNG" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/random/balaclavas, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "jNT" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/execution) "jOc" = ( /obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null; + pixel_x = 1; pixel_y = 17; - pixel_x = 1 + req_access = null }, /turf/open/floor/almayer, /area/almayer/living/numbertwobunks) @@ -43445,6 +40640,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) +"jOq" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"jOt" = ( +/obj/item/trash/barcardine, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "jOx" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -43491,18 +40696,30 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) -"jPf" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "jPq" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"jPu" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "Saferoom Channel"; + pixel_x = 27 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) +"jPx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "jPP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -43515,6 +40732,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/chief_mp_office) +"jPU" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "jQt" = ( /turf/open/floor/almayer/research/containment/floor2{ dir = 8 @@ -43529,6 +40754,27 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"jRg" = ( +/obj/effect/landmark/crap_item, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_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/fore_hallway) +"jRp" = ( +/obj/structure/largecrate/supply/supplies/water, +/obj/item/toy/deck{ + pixel_y = 12 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "jRz" = ( /obj/effect/step_trigger/teleporter/random{ affect_ghosts = 1; @@ -43632,13 +40878,6 @@ icon_state = "green" }, /area/almayer/living/offices) -"jTi" = ( -/obj/item/reagent_container/glass/bucket/janibucket{ - pixel_x = -1; - pixel_y = 13 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "jTj" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -43648,18 +40887,41 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) -"jTu" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 32 +"jTt" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/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{ @@ -43667,6 +40929,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{ @@ -43684,6 +40951,10 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"jUh" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "jUl" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -43721,24 +40992,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"jUG" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) -"jUL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "jUM" = ( /obj/structure/machinery/camera/autoname/almayer/containment{ dir = 8 @@ -43748,6 +41001,16 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) +"jUV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "jUY" = ( /turf/open/floor/almayer{ icon_state = "silver" @@ -43792,13 +41055,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; @@ -43817,13 +41073,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"; @@ -43833,13 +41082,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 }, -/area/almayer/hallways/starboard_hallway) +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "jXd" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -43854,27 +41109,20 @@ name = "Lobby" }, /turf/open/floor/almayer{ - icon_state = "dark_sterile" + 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 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"jXR" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/blocker/forcefield/multitile_vehicles, +/obj/structure/sign/safety/stairs{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hallways/vehiclehangar) -"jXY" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/starboard_fore_hallway) "jYc" = ( /obj/item/bedsheet/blue{ layer = 3.2 @@ -43917,14 +41165,24 @@ icon_state = "blue" }, /area/almayer/living/port_emb) -"jYd" = ( -/obj/structure/machinery/gear{ - id = "vehicle_elevator_gears" - }, +"jYm" = ( +/obj/item/reagent_container/food/snacks/wrapped/chunk, +/obj/structure/surface/rack, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) +"jYM" = ( +/obj/structure/ladder{ + height = 1; + id = "ForePortMaint" }, -/area/almayer/hallways/vehiclehangar) +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/lower/p_bow) "jYR" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -43937,9 +41195,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{ @@ -43950,6 +41206,39 @@ 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, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) +"jZl" = ( +/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/fore_hallway) +"jZo" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) "jZs" = ( /obj/structure/machinery/light/containment{ dir = 4 @@ -43997,47 +41286,36 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"jZO" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "jZU" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 }, /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/midship_hallway) "jZY" = ( /obj/structure/closet/l3closet/virology, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/medical/upper_medical) -"kag" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 16" - }, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) -"kaj" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, +"kac" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/tool/hand_labeler, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/s_bow) "kam" = ( /obj/item/tool/screwdriver{ layer = 2.9; @@ -44051,24 +41329,17 @@ "kan" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/lower_medical_medbay) -"kat" = ( -/obj/structure/pipes/vents/scrubber{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_m_s) -"kaA" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/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; @@ -44080,17 +41351,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 @@ -44099,12 +41359,16 @@ icon_state = "bluefull" }, /area/almayer/squads/charlie_delta_shared) -"kaN" = ( -/obj/structure/platform{ - dir = 1 +"kaQ" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer{ + dir = 4; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) "kaS" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -44165,9 +41429,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{ @@ -44180,6 +41442,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/midship_hallway) "kbV" = ( /obj/structure/platform{ dir = 1 @@ -44196,6 +41468,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 @@ -44206,6 +41489,12 @@ "kcp" = ( /turf/closed/wall/almayer, /area/almayer/living/auxiliary_officer_office) +"kcs" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "kcA" = ( /obj/structure/machinery/light{ dir = 1 @@ -44215,6 +41504,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"kcG" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "kcH" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/synthcloset) @@ -44245,26 +41540,12 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"kdt" = ( -/obj/structure/machinery/door_control{ - id = "OuterShutter"; - name = "Outer Shutter"; - pixel_x = 5; - pixel_y = -2; - req_one_access_txt = "1;3" - }, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door_control{ - id = "OfficeSafeRoom"; - name = "Office Safe Room"; - pixel_x = 5; - pixel_y = 5; - req_one_access_txt = "1;3" - }, +"kdo" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_f_s) "kdv" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -44280,21 +41561,39 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"keE" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/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{ + icon_state = "E" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "keR" = ( /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 - }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; pixel_x = 1; @@ -44304,20 +41603,22 @@ icon_state = "SE-out"; pixel_x = 1 }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 8; + icon_state = "red" }, /area/almayer/hallways/upper/port) -"kfv" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/nanopaste{ - pixel_x = -3; - pixel_y = 14 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"kfB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "kfE" = ( /obj/structure/bed/sofa/south/grey/right, /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ @@ -44336,33 +41637,9 @@ 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) -"kfR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "kfU" = ( /turf/open/floor/plating, /area/almayer/powered/agent) -"kfX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) "kgp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -44382,14 +41659,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{ @@ -44402,17 +41671,29 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) -"kgQ" = ( -/obj/structure/surface/rack, -/obj/item/storage/firstaid/adv{ - pixel_x = 6; - pixel_y = 6 +"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 }, -/obj/item/storage/firstaid/regular, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/maint/hull/lower/l_m_s) +"kgS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/vehiclehangar) "khd" = ( /obj/structure/bed/chair{ dir = 4 @@ -44445,6 +41726,15 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"khI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "khJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -44457,33 +41747,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) -"khS" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"kif" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"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 @@ -44496,6 +41768,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/fore_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{ @@ -44519,6 +41809,14 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"kiR" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_s) "kiT" = ( /obj/structure/platform{ dir = 8 @@ -44564,6 +41862,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; @@ -44583,6 +41897,24 @@ 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) +"kjX" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/aft_hallway) +"kjY" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "kkk" = ( /obj/structure/machinery/power/monitor{ name = "Core Power Monitoring" @@ -44622,14 +41954,13 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"kkE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 2; - pixel_y = 3 +"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, @@ -44639,6 +41970,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"klr" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) "klH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -44647,6 +41984,10 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) +"klT" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "kmd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -44656,12 +41997,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{ @@ -44681,19 +42016,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/north2) -"kmK" = ( -/obj/structure/platform{ - dir = 1 - }, -/obj/item/tool/mop, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"kmM" = ( -/obj/structure/sink{ - pixel_y = 24 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "kng" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -44702,6 +42024,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{ @@ -44724,36 +42059,13 @@ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/south2) -"knO" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/almayer{ +"kow" = ( +/obj/structure/disposalpipe/segment{ 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) -"koz" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/lightreplacer{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/toolbox/emergency, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 + icon_state = "pipe-c" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/l_f_p) "koB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44787,6 +42099,11 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/engine_core) +"kpj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "kpo" = ( /obj/structure/machinery/floodlight/landing{ name = "bolted floodlight" @@ -44807,25 +42124,29 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"kpY" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/hardhat{ - pixel_y = 15 +"kqb" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/item/clothing/head/hardhat/dblue{ - pixel_x = -7; - pixel_y = 10 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/clothing/head/hardhat{ - pixel_x = 4; - pixel_y = 7 +/area/almayer/maint/hull/lower/l_m_p) +"kqd" = ( +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 }, -/obj/item/clothing/head/hardhat/orange{ - pixel_x = 7; - pixel_y = -5 +/turf/open/floor/almayer{ + icon_state = "red" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/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; @@ -44862,6 +42183,32 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"kqB" = ( +/obj/structure/prop/holidays/string_lights{ + pixel_y = 27 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/surface/table/almayer, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"kqC" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/largecrate/random/barrel/green, +/obj/structure/sign/safety/maint{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "kqK" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -44883,11 +42230,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, @@ -44907,6 +42249,17 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) +"krG" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) +"krJ" = ( +/obj/item/tool/wet_sign, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "krN" = ( /obj/structure/machinery/conveyor{ id = "req_belt" @@ -44968,6 +42321,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 @@ -44976,48 +42333,49 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"ksw" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_stern) "ksN" = ( /turf/open/floor/almayer/uscm/directional{ dir = 6 }, /area/almayer/living/briefing) -"ksP" = ( -/obj/structure/surface/table/almayer, -/obj/item/ashtray/bronze{ - pixel_x = 3; - pixel_y = 5 +"kti" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 3 }, -/obj/effect/decal/cleanable/ash, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = 4; - pixel_y = 13 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktl" = ( +/obj/structure/machinery/firealarm{ + dir = 1; + pixel_y = -28 }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -7; - pixel_y = 14 +/turf/open/floor/almayer{ + icon_state = "green" }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -13; - pixel_y = 8 +/area/almayer/hallways/lower/starboard_midship_hallway) +"ktI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/item/trash/cigbutt/ucigbutt{ - pixel_x = -6; - pixel_y = 9 +/obj/structure/platform{ + dir = 4 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"ktB" = ( -/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ - icon_state = "cargo" + dir = 4; + icon_state = "silver" }, -/area/almayer/hull/lower_hull/l_m_s) -"ktP" = ( -/obj/structure/curtain/red, +/area/almayer/hallways/lower/repair_bay) +"ktR" = ( +/obj/item/trash/crushed_cup, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_m_s) "ktX" = ( /turf/open/floor/almayer{ dir = 4; @@ -45061,6 +42419,14 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"kuK" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "kvf" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -45085,6 +42451,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, @@ -45109,14 +42485,25 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) +"kwg" = ( +/obj/structure/bookcase/manuals/medical, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + 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, /area/almayer/lifeboat_pumps/south1) -"kwq" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "kws" = ( /obj/structure/machinery/line_nexter/med{ dir = 4 @@ -45125,15 +42512,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"kwz" = ( -/obj/structure/sign/poster{ - pixel_y = 32 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "kwQ" = ( /obj/item/tool/warning_cone{ pixel_y = 16 @@ -45145,15 +42523,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"kwS" = ( -/obj/structure/bookcase/manuals/medical, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "kxd" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -45167,6 +42536,14 @@ icon_state = "dark_sterile" }, /area/almayer/living/port_emb) +"kxe" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "kxo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -45189,6 +42566,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" @@ -45208,6 +42591,9 @@ icon_state = "test_floor4" }, /area/almayer/hallways/upper/starboard) +"kyw" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_m_s) "kyN" = ( /obj/structure/disposalpipe/segment, /obj/structure/sign/safety/distribution_pipes{ @@ -45218,6 +42604,9 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) +"kyP" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_f_p) "kyR" = ( /obj/structure/safe/co_office, /obj/item/weapon/pole/fancy_cane, @@ -45243,16 +42632,20 @@ 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, /area/almayer/living/briefing) +"kzc" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 11 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "kzk" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -45271,6 +42664,13 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/execution) +"kzs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "kzy" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -45329,12 +42729,12 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"kzP" = ( -/turf/open/floor/almayer{ - dir = 9; - icon_state = "red" +"kzR" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "kzT" = ( /obj/structure/machinery/door_control{ id = "ARES StairsLower"; @@ -45343,9 +42743,9 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "kAh" = ( @@ -45357,20 +42757,74 @@ 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{ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"kAs" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"kAp" = ( +/obj/structure/surface/rack{ + desc = "A bunch of metal shelves stacked on top of eachother. Excellent for storage purposes, less so as cover. One of the shelf legs is damaged, resulting in the rack being propped up by what appears to be circuit boards." + }, +/obj/structure/machinery/light/small{ + dir = 4; + icon_state = "bulb-burned"; + status = 3 + }, +/obj/effect/decal/cleanable/blood, +/obj/item/prop{ + desc = "A blood bag with a hole in it. The rats must have gotten to it first."; + icon = 'icons/obj/items/bloodpack.dmi'; + icon_state = "bloodpack"; + name = "blood bag" + }, +/obj/item/prop{ + desc = "A blood bag with a hole in it. The rats must have gotten to it first."; + icon = 'icons/obj/items/bloodpack.dmi'; + icon_state = "bloodpack"; + name = "blood bag" + }, +/obj/item/prop{ + desc = "A blood bag with a hole in it. The rats must have gotten to it first."; + icon = 'icons/obj/items/bloodpack.dmi'; + icon_state = "bloodpack"; + name = "blood bag" + }, +/obj/item/prop{ + desc = "The words \"Cloning Pod\" are scrawled onto it. It appears to be heavily damaged."; + icon = 'icons/obj/items/circuitboards.dmi'; + icon_state = "id_mod"; + layer = 2.78; + name = "circuit board"; + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/prop{ + desc = "The words \"Cloning Scanner\" are scrawled onto it. It appears to be heavily damaged."; + icon = 'icons/obj/items/circuitboards.dmi'; + icon_state = "id_mod"; + layer = 2.79; + name = "circuit board"; + pixel_x = 8; + pixel_y = 7 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "sterile_green_corner" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/medical/lower_medical_medbay) +"kAv" = ( +/obj/structure/largecrate/supply/ammo/shotgun, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "kAL" = ( /obj/structure/closet/secure_closet/brig, /turf/open/floor/almayer{ @@ -45386,21 +42840,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"; @@ -45418,13 +42857,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"; @@ -45441,6 +42873,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) @@ -45462,6 +42902,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"kCu" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "kCE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -45477,35 +42923,21 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) -"kCS" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) -"kCT" = ( -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"kDi" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/structure/machinery/light/small{ +"kCY" = ( +/obj/structure/machinery/sleep_console{ dir = 8 }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "dark_sterile" }, -/area/almayer/hull/upper_hull/u_a_p) -"kDj" = ( -/obj/structure/bed, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" +/area/almayer/shipboard/brig/medical) +"kDd" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/medical/lower_medical_medbay) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "kDk" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -45541,12 +42973,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 @@ -45600,15 +43026,21 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"kEU" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, +"kED" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/upper/fore_hallway) +"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{ @@ -45644,24 +43076,22 @@ icon_state = "plating" }, /area/almayer/squads/req) +"kFU" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "kFY" = ( /obj/structure/sign/safety/cryo{ pixel_x = 7 }, /turf/closed/wall/almayer, /area/almayer/living/cryo_cells) -"kGt" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +"kGi" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "kGu" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -45674,6 +43104,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; @@ -45684,21 +43120,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 @@ -45707,9 +43128,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/midship_hallway) "kHd" = ( /obj/structure/machinery/computer/arcade, /obj/item/prop/helmetgarb/spacejam_tickets{ @@ -45721,14 +43144,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 @@ -45738,12 +43169,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 @@ -45753,15 +43178,25 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"kIm" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 +"kIf" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"kIk" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = 16; + pixel_y = -16 }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"kIl" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hallways/starboard_umbilical) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "kIP" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -45770,11 +43205,25 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) -"kIV" = ( -/turf/open/floor/almayer{ - icon_state = "plate" +"kJc" = ( +/obj/structure/ladder{ + height = 1; + id = "ForeStarboardMaint" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_f_p) +/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{ @@ -45787,30 +43236,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) -"kJG" = ( -/obj/item/toy/deck{ - pixel_y = 12 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 32 - }, -/obj/structure/surface/table/woodentable/poor, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "kJH" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -45832,13 +43257,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{ @@ -45852,15 +43270,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/commandbunks) -"kKb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, +"kJZ" = ( +/obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ - dir = 4; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/hull/lower/l_a_s) "kKk" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -45884,35 +43299,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) -"kKG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"kKB" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/port_aft_hallway) "kKR" = ( /obj/structure/pipes/vents/pump{ dir = 1 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) -"kKX" = ( -/obj/structure/machinery/conveyor{ - id = "lower_garbage" - }, -/obj/structure/plasticflaps, +"kKY" = ( /turf/open/floor/almayer{ dir = 4; - icon_state = "plating_striped" + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/starboard_aft_hallway) "kLc" = ( /obj/structure/machinery/door/airlock/almayer/maint{ req_one_access = null; @@ -45931,30 +43337,57 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"kLp" = ( -/obj/structure/sign/safety/stairs{ - pixel_x = -17; - pixel_y = 7 +"kLm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/sign/safety/escapepod{ - pixel_x = -17; - pixel_y = -8 +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"kLB" = ( +/obj/docking_port/stationary/escape_pod/east, +/turf/open/floor/plating, +/area/almayer/maint/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{ - dir = 8; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/lower/starboard_fore_hallway) "kLP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ dir = 8; icon_state = "greencorner" }, /area/almayer/squads/req) +"kLZ" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"kMa" = ( +/obj/structure/platform_decoration, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "kMp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -45967,17 +43400,17 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"kMq" = ( -/obj/structure/sign/poster{ - desc = "It says DRUG."; - icon_state = "poster2"; - pixel_y = 30 +"kMr" = ( +/obj/item/trash/uscm_mre, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice1"; + pixel_x = 16; + pixel_y = -16 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_m_s) "kMH" = ( /obj/structure/machinery/door/window/brigdoor/southright{ id = "Cell 1"; @@ -46001,6 +43434,37 @@ icon_state = "outerhull_dir" }, /area/almayer/engineering/upper_engineering/port) +"kMR" = ( +/obj/effect/spawner/random/toolbox, +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"kMW" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + req_access = null + }, +/obj/item/clothing/suit/chef/classic, +/obj/item/tool/kitchen/knife/butcher, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) +"kNf" = ( +/obj/structure/bed/chair/office/dark, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "kNk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -46013,6 +43477,9 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) +"kNq" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_a_p) "kNx" = ( /obj/structure/sign/safety/ref_bio_storage{ pixel_x = -17; @@ -46063,19 +43530,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/weapon_room) -"kOf" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"kOk" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "kOv" = ( /obj/structure/machinery/light{ dir = 8 @@ -46113,6 +43567,46 @@ icon_state = "dark_sterile" }, /area/almayer/command/corporateliaison) +"kOJ" = ( +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"kON" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"kOR" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) +"kOW" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/squads/req) "kPx" = ( /obj/structure/surface/table/almayer, /obj/item/device/mass_spectrometer, @@ -46191,6 +43685,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"kQr" = ( +/obj/structure/surface/table/almayer, +/obj/item/trash/pistachios, +/obj/item/tool/lighter/random{ + pixel_x = 13 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "kQu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46202,19 +43704,6 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"kQz" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig Maintenance" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "kRd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46230,18 +43719,21 @@ icon_state = "cargo" }, /area/almayer/command/lifeboat) -"kRu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"kRk" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/screwdriver, +/obj/item/prop/helmetgarb/gunoil{ + pixel_x = -7; + pixel_y = 12 }, -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = 17 +/obj/item/weapon/gun/rifle/l42a{ + pixel_x = 17; + pixel_y = 6 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "kRD" = ( /obj/item/reagent_container/glass/bucket/janibucket, /obj/structure/machinery/light{ @@ -46259,6 +43751,13 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) +"kRN" = ( +/obj/structure/surface/rack, +/obj/item/clothing/glasses/meson, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "kRP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/prop/magazine/dirty/torn, @@ -46268,14 +43767,28 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"kSd" = ( -/obj/item/cell/high/empty, -/obj/item/cell/high/empty, -/obj/structure/surface/rack, +"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; + name = "ship-grade camera" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/p_bow) "kSv" = ( /obj/item/reagent_container/glass/bucket/janibucket, /turf/open/floor/almayer{ @@ -46294,10 +43807,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 @@ -46310,23 +43832,18 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"kSJ" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +"kSL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/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 +/obj/structure/machinery/alarm/almayer{ + dir = 1 }, /turf/open/floor/almayer{ - dir = 8; icon_state = "red" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/upper/port) "kSU" = ( /obj/structure/transmitter/no_dnd{ name = "Requisition Telephone"; @@ -46339,12 +43856,13 @@ icon_state = "plating" }, /area/almayer/squads/req) -"kTq" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - icon_state = "plate" +"kTp" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/plating, +/area/almayer/shipboard/brig/medical) "kTv" = ( /obj/structure/machinery/light{ dir = 4 @@ -46354,20 +43872,6 @@ icon_state = "tcomms" }, /area/almayer/command/telecomms) -"kTM" = ( -/obj/item/frame/rack{ - layer = 3.1; - pixel_y = 19 - }, -/obj/structure/surface/rack, -/obj/item/tool/weldpack{ - pixel_x = 5 - }, -/obj/item/tool/weldpack{ - pixel_x = -2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "kTN" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -46384,6 +43888,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{ @@ -46396,35 +43910,37 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"kUt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +"kUs" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 }, -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) +"kUA" = ( +/obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"kUw" = ( -/obj/structure/surface/rack, -/obj/item/storage/bag/trash{ - pixel_x = 2; - pixel_y = 2 +/area/almayer/hallways/lower/port_umbilical) +"kUI" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/item/storage/bag/trash{ - pixel_x = -8; - pixel_y = 4 +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" }, -/obj/item/storage/bag/trash{ - pixel_x = -3; - pixel_y = -2 +/area/almayer/hallways/lower/starboard_midship_hallway) +"kUL" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/maint/hull/upper/u_m_p) "kUQ" = ( /obj/effect/decal/cleanable/blood/oil/streak, /obj/structure/machinery/constructable_frame, @@ -46452,16 +43968,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"kVX" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "OfficeSafeRoom"; - name = "\improper Office Safe Room" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "kVZ" = ( /obj/structure/machinery/door/window/brigdoor/southright{ id = "Cell 2"; @@ -46472,6 +43978,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/aft_hallway) "kWk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -46494,6 +44008,14 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"kWI" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_s) "kWN" = ( /obj/structure/sign/poster{ desc = "It says DRUG."; @@ -46526,16 +44048,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"kWY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "kXa" = ( /obj/structure/machinery/cm_vending/clothing/marine/bravo{ density = 0; @@ -46559,9 +44071,9 @@ }, /area/almayer/command/computerlab) "kXj" = ( -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "kXm" = ( @@ -46577,6 +44089,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; @@ -46589,15 +44110,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"kXJ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/secure_data{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "kXN" = ( /obj/item/clothing/glasses/sunglasses/aviator{ pixel_x = -1; @@ -46607,16 +44119,12 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"kYa" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "OuterShutter"; - name = "\improper Saferoom Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"kYl" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) "kYt" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/bible{ @@ -46653,28 +44161,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 @@ -46687,18 +44182,6 @@ icon_state = "plate" }, /area/almayer/living/offices) -"kZA" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/hallways/port_umbilical) -"kZH" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "kZN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/computer/PC{ @@ -46736,13 +44219,6 @@ icon_state = "emerald" }, /area/almayer/living/gym) -"lau" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "laM" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -46764,6 +44240,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) +"laP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "laQ" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -46798,29 +44281,23 @@ }, /turf/open/floor/plating, /area/almayer/command/cic) -"laY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 4; - pixel_y = -3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"lbc" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" }, -/area/almayer/hull/upper_hull/u_m_s) -"lbb" = ( -/obj/structure/surface/table/almayer, -/obj/item/organ/heart/prosthetic{ - pixel_x = -4 +/obj/structure/machinery/light{ + dir = 1 }, -/obj/item/circuitboard{ - pixel_x = 12; - pixel_y = 7 +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/fore_hallway) "lbf" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -46892,9 +44369,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 @@ -46903,6 +44394,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/midship_hallway) "ldt" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -46913,26 +44414,28 @@ icon_state = "plate" }, /area/almayer/living/gym) -"ldu" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"ldz" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "ldC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/captain_mess) -"ldN" = ( -/obj/structure/platform{ - dir = 1 - }, +"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{ - icon_state = "plate" + dir = 1; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_midship_hallway) "lea" = ( /obj/structure/sink{ dir = 4; @@ -46969,16 +44472,6 @@ icon_state = "emerald" }, /area/almayer/hallways/hangar) -"leh" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "let" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -46989,6 +44482,12 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"leM" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "leY" = ( /obj/structure/bed/sofa/south/white/left, /turf/open/floor/almayer{ @@ -46996,6 +44495,9 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"lfc" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_f_s) "lft" = ( /obj/structure/surface/table/almayer, /obj/item/storage/firstaid/fire, @@ -47004,6 +44506,13 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"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 @@ -47013,6 +44522,12 @@ icon_state = "blue" }, /area/almayer/living/basketball) +"lgk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "lgt" = ( /obj/structure/sink{ dir = 4; @@ -47062,42 +44577,26 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"lgX" = ( -/obj/structure/sign/safety/storage{ - pixel_y = 32 +"lhj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/safety/bulkhead_door{ + pixel_y = -34 }, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) -"lgY" = ( -/obj/structure/machinery/door/airlock/almayer/maint, +/area/almayer/maint/hull/upper/p_bow) +"lhs" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_aft_hallway) "lht" = ( /turf/open/floor/almayer{ dir = 6; icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"lhu" = ( -/obj/structure/coatrack, -/obj/structure/sign/poster/clf{ - pixel_x = -28 - }, -/obj/structure/sign/nosmoking_1{ - pixel_y = 30 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "lhv" = ( /obj/structure/machinery/door_control{ id = "CMO Shutters"; @@ -47133,19 +44632,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"lhL" = ( -/obj/structure/sign/safety/life_support{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"lhW" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "lhX" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -47153,6 +44639,24 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"lia" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"lib" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "lid" = ( /obj/structure/machinery/chem_master{ vial_maker = 1 @@ -47174,10 +44678,20 @@ 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{ + dir = 8 + }, +/obj/structure/closet, +/obj/item/clothing/under/marine, +/obj/item/clothing/suit/storage/marine, +/obj/item/clothing/head/helmet/marine, +/obj/item/clothing/head/cmcap, +/obj/item/clothing/head/cmcap, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "liJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -47220,20 +44734,30 @@ icon_state = "plate" }, /area/almayer/living/gym) +"ljm" = ( +/obj/item/clothing/gloves/botanic_leather{ + name = "leather gloves" + }, +/obj/item/clothing/gloves/botanic_leather{ + name = "leather gloves" + }, +/obj/item/clothing/gloves/botanic_leather{ + name = "leather gloves" + }, +/obj/structure/closet/crate, +/obj/item/clothing/suit/storage/hazardvest/black, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "ljs" = ( /obj/effect/landmark/start/marine/spec/bravo, /obj/effect/landmark/late_join/bravo, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/bravo) -"ljt" = ( -/obj/structure/machinery/door_control/cl/quarter/backdoor{ - pixel_x = -25; - pixel_y = 23 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) +"ljv" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_a_p) "ljG" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_container/food/condiment/coldsauce, @@ -47277,6 +44801,16 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"lka" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "lkd" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -47353,6 +44887,15 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"llt" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) "llK" = ( /obj/structure/platform_decoration{ dir = 4 @@ -47362,22 +44905,25 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"llM" = ( -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "llO" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "orange" }, /area/almayer/hallways/hangar) -"lmk" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"lma" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/starboard_umbilical) +"lmi" = ( +/obj/structure/bed, +/obj/item/bedsheet/green, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/medical/upper_medical) "lml" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -47385,6 +44931,13 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) +"lmq" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "lmw" = ( /obj/structure/closet/l3closet/general, /obj/structure/machinery/light{ @@ -47397,7 +44950,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{ @@ -47439,6 +44992,10 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) +"lnD" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_a_s) "lnP" = ( /obj/structure/machinery/vending/cola, /obj/structure/window/reinforced, @@ -47468,8 +45025,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" = ( @@ -47534,11 +45091,13 @@ /area/almayer/living/briefing) "loz" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - layer = 2.5 + icon_state = "W" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/starboard) +"loE" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "loK" = ( /obj/structure/closet/crate/medical, /obj/item/storage/firstaid/adv, @@ -47598,6 +45157,15 @@ icon_state = "cargo" }, /area/almayer/living/commandbunks) +"lpl" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Security Checkpoint" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "lpt" = ( /turf/open/floor/almayer{ icon_state = "blue" @@ -47611,51 +45179,24 @@ icon_state = "test_floor4" }, /area/almayer/powered/agent) -"lpD" = ( +"lpJ" = ( /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/starboard_hallway) -"lpS" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"lpX" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 + icon_state = "NW-out"; + pixel_y = 1 }, +/turf/open/floor/almayer, +/area/almayer/lifeboat_pumps/north1) +"lql" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/starboard_umbilical) "lqF" = ( /turf/open/floor/almayer{ dir = 9; icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"lqI" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"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{ @@ -47677,35 +45218,33 @@ icon_state = "orange" }, /area/almayer/living/port_emb) -"lra" = ( -/obj/structure/machinery/door/airlock/almayer/engineering{ - name = "\improper Disposals" - }, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" +"lrd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_p) -"lrb" = ( -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_p) -"lre" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/midship_hallway) "lrq" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/armory) +"lrE" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/s_bow) "lrF" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"lrH" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "lrT" = ( /obj/structure/bed/chair, /turf/open/floor/almayer, @@ -47729,10 +45268,15 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"lsb" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +"lsh" = ( +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "lsn" = ( /obj/structure/surface/table/almayer, /obj/item/paper{ @@ -47744,6 +45288,12 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"lso" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "lsp" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Conference Room" @@ -47794,14 +45344,49 @@ "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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "lto" = ( /obj/structure/machinery/iv_drip, /turf/open/floor/almayer{ 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/midship_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, +/area/almayer/maint/hull/upper/u_f_s) +"lty" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "ltA" = ( /obj/item/tool/weldingtool, /turf/open/floor/almayer, @@ -47815,31 +45400,27 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"ltK" = ( -/obj/structure/window/framed/almayer, -/obj/structure/curtain/open/shower{ - name = "hypersleep curtain" - }, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) -"ltU" = ( -/obj/structure/bed/chair{ - dir = 8 +"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/command/combat_correspondent) -"luk" = ( -/obj/structure/machinery/light/small{ +/area/almayer/shipboard/brig/execution_storage) +"ltU" = ( +/obj/structure/bed/chair{ dir = 8 }, -/obj/item/clothing/head/helmet/marine/tech/tanker, -/obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/command/combat_correspondent) "lul" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/command/reinforced{ @@ -47851,28 +45432,12 @@ icon_state = "test_floor4" }, /area/almayer/living/commandbunks) -"luu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 8; +"luE" = ( +/obj/structure/sign/poster{ pixel_y = 32 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"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) +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "luS" = ( /obj/structure/surface/rack, /obj/item/stack/sheet/cardboard{ @@ -47946,24 +45511,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"lwi" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - req_one_access = null; - req_one_access_txt = "2;7" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_p) -"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; @@ -47986,6 +45533,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 @@ -47994,12 +45547,20 @@ icon_state = "emeraldfull" }, /area/almayer/squads/charlie) -"lwK" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"lwY" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Viewing Room" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer{ + 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; @@ -48013,20 +45574,17 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) -"lxy" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/shipboard/brig/main_office) "lxE" = ( /obj/structure/machinery/cm_vending/clothing/commanding_officer, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/living/commandbunks) +"lxJ" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_p) "lxT" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer{ @@ -48041,14 +45599,6 @@ icon_state = "plate" }, /area/almayer/living/auxiliary_officer_office) -"lyi" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/pistachios, -/obj/item/tool/lighter/random{ - pixel_x = 13 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "lyk" = ( /obj/structure/sign/safety/storage{ pixel_x = -17 @@ -48058,12 +45608,37 @@ icon_state = "green" }, /area/almayer/squads/req) +"lym" = ( +/obj/structure/machinery/vending/cigarette, +/turf/open/floor/almayer{ + 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 }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"lyz" = ( +/obj/structure/surface/table/almayer, +/obj/item/organ/heart/prosthetic{ + pixel_x = -4 + }, +/obj/item/circuitboard{ + pixel_x = 12; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "lyE" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -48071,6 +45646,15 @@ icon_state = "silvercorner" }, /area/almayer/command/computerlab) +"lyP" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) +"lyW" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_m_p) "lyX" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ req_access = null; @@ -48097,24 +45681,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) -"lzn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "lzq" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -48130,21 +45696,26 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"lzH" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ +"lzF" = ( +/obj/structure/pipes/standard/manifold/hidden/supply, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lzY" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = -25 +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"lAa" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/lightreplacer{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/toolbox/emergency, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/maint/hull/lower/l_m_p) "lAl" = ( /turf/open/floor/almayer{ dir = 4; @@ -48169,28 +45740,6 @@ }, /turf/open/floor/carpet, /area/almayer/command/cichallway) -"lAA" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_a_p) -"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) -"lAP" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "lAQ" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -48203,18 +45752,25 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"lAU" = ( -/obj/structure/closet/emcloset, +"lBf" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 10; + icon_state = "red" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/hallways/upper/aft_hallway) "lBg" = ( /obj/structure/bedsheetbin, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"lBl" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "lBv" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -48227,25 +45783,55 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"lBz" = ( +"lBw" = ( +/obj/structure/machinery/cryopod{ + pixel_y = 6 + }, +/obj/structure/sign/safety/cryo{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/upper/u_m_p) +"lBB" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) +"lCc" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 4; + icon_state = "pipe-c" }, -/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"lBR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +/area/almayer/hallways/upper/aft_hallway) +"lCf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"lCp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/aft_hallway) +"lCm" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "lCr" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -48280,20 +45866,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"; @@ -48301,15 +45889,13 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"lDJ" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" +"lDA" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "lDL" = ( /obj/structure/machinery/light{ dir = 4 @@ -48317,6 +45903,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 8; icon_state = "plating_striped" @@ -48340,6 +45927,15 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"lDT" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "lDV" = ( /obj/effect/landmark/start/marine/medic/bravo, /obj/effect/landmark/late_join/bravo, @@ -48392,12 +45988,11 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"lFb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"lEV" = ( +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/lower/vehiclehangar) "lFe" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -48434,6 +46029,24 @@ "lFp" = ( /turf/closed/wall/almayer, /area/almayer/engineering/lower/workshop/hangar) +"lFq" = ( +/obj/structure/pipes/vents/pump/no_boom{ + dir = 1 + }, +/turf/open/floor/almayer/aicore/no_build{ + icon_state = "ai_plates" + }, +/area/almayer/command/airoom) +"lFr" = ( +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "lFt" = ( /obj/structure/machinery/portable_atmospherics/powered/pump, /obj/structure/sign/safety/maint{ @@ -48445,6 +46058,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, @@ -48456,25 +46080,10 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"lFF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -15 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "lFJ" = ( /obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - name = "\improper Brig Prisoner Yard"; - closeOtherId = "brigcells" + closeOtherId = "brigcells"; + name = "\improper Brig Prisoner Yard" }, /obj/structure/disposalpipe/segment{ dir = 8 @@ -48500,75 +46109,45 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south2) -"lGg" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/lower/workshop/hangar) -"lGh" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/maint{ - pixel_x = -17 +"lFL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"lGr" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/obj/structure/machinery/light{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"lGu" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 + 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{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"lGG" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; - name = "\improper Starboard Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) -"lGL" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = -32 + icon_state = "orange" }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lHc" = ( -/obj/effect/landmark/start/doctor, -/obj/structure/sign/safety/maint{ - pixel_y = 26 +/area/almayer/engineering/lower/workshop/hangar) +"lHk" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) +/area/almayer/maint/hull/upper/s_bow) "lHu" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "greencorner" }, /area/almayer/living/grunt_rnr) +"lHB" = ( +/obj/structure/prop/almayer/computers/sensor_computer3, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "lHG" = ( /obj/structure/machinery/door/airlock/almayer/maint{ access_modified = 1; @@ -48583,21 +46162,9 @@ icon_state = "test_floor4" }, /area/almayer/living/grunt_rnr) -"lIh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"lIl" = ( -/obj/structure/machinery/door/airlock/almayer/secure/reinforced{ - name = "\improper Armourer's Workshop"; - req_access = null - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) +"lIj" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/mess) "lIp" = ( /obj/structure/bed/chair/comfy/beige{ dir = 1 @@ -48607,15 +46174,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 @@ -48624,26 +46196,18 @@ icon_state = "mono" }, /area/almayer/engineering/port_atmos) +"lIQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "lIU" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/port) -"lIV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) -"lJg" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "lJu" = ( /obj/structure/barricade/metal{ dir = 1 @@ -48707,6 +46271,12 @@ icon_state = "dark_sterile" }, /area/almayer/shipboard/brig/cells) +"lJM" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "lJO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48742,15 +46312,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, @@ -48762,10 +46323,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 @@ -48775,10 +46355,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"lLV" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "lMb" = ( /turf/open/floor/almayer{ dir = 5; @@ -48807,6 +46383,10 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ dir = 8; icon_state = "plating_striped" @@ -48818,6 +46398,14 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/starboard) +"lMO" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "lMY" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -48827,12 +46415,12 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"lNl" = ( -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" +"lNk" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/area/almayer/hallways/stern_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) "lNw" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -48848,26 +46436,20 @@ icon_state = "plate" }, /area/almayer/squads/charlie) -"lNy" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"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/midship_hallway) "lOr" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -48887,16 +46469,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{ @@ -48960,6 +46532,10 @@ icon_state = "silver" }, /area/almayer/command/securestorage) +"lPW" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) "lQa" = ( /obj/structure/machinery/light{ dir = 8 @@ -48972,37 +46548,42 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"lQj" = ( -/obj/structure/machinery/door_control{ - id = "InnerShutter"; - name = "Inner Shutter"; - pixel_x = 5; - pixel_y = 10 - }, -/obj/item/toy/deck{ - pixel_x = -9 +"lQf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/ashtray/plastic, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/sign/safety/intercom{ - pixel_y = -32 +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"lQu" = ( -/obj/structure/bed/stool, +/area/almayer/maint/hull/lower/l_f_p) +"lQl" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 32 + }, +/obj/structure/machinery/power/apc/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/port_aft_hallway) "lQz" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer{ 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, @@ -49021,24 +46602,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{ @@ -49052,6 +46615,10 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"lRt" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "lRE" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -49066,13 +46633,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, @@ -49105,12 +46665,21 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) -"lSD" = ( -/obj/structure/closet/firecloset, +"lSJ" = ( +/obj/structure/machinery/light/small, +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/s_bow) +"lSX" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "lTt" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -49130,14 +46699,10 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/chapel) -"lTK" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "lUm" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/secdoor/glass/reinforced{ - name = "\improper Brig Cells"; - closeOtherId = "briglobby" + closeOtherId = "briglobby"; + name = "\improper Brig Cells" }, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -49146,19 +46711,24 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/processing) -"lUz" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_f_s) "lUA" = ( -/obj/structure/surface/table/almayer, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 +/obj/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 }, -/obj/item/weapon/gun/rifle/l42a, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_a_s) "lVl" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer, @@ -49167,6 +46737,17 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"lVR" = ( +/obj/structure/stairs{ + icon_state = "ramptop" + }, +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "lVS" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/open{ dir = 4; @@ -49177,6 +46758,17 @@ icon_state = "redfull" }, /area/almayer/living/briefing) +"lVW" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "lVX" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/overwatch/almayer{ @@ -49198,12 +46790,12 @@ icon_state = "plate" }, /area/almayer/command/cic) -"lWh" = ( -/obj/structure/machinery/pipedispenser/orderable, -/turf/open/floor/almayer{ - icon_state = "plate" +"lVZ" = ( +/obj/structure/platform_decoration{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "lWr" = ( /obj/structure/largecrate/random/case, /turf/open/floor/almayer{ @@ -49211,6 +46803,25 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"lWt" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) +"lWO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) +"lWY" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "lXb" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -49230,15 +46841,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"lXF" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) "lXO" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -49253,11 +46855,10 @@ icon_state = "green" }, /area/almayer/living/offices) -"lYi" = ( +"lYg" = ( /obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_a_p) "lYk" = ( /obj/item/trash/c_tube{ pixel_x = 16; @@ -49267,17 +46868,14 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"lYu" = ( -/obj/item/tool/wet_sign, -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, +"lYt" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) -"lYA" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_a_p) "lYL" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -49295,6 +46893,18 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"lZb" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "lZs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/radio/intercom{ @@ -49317,38 +46927,52 @@ icon_state = "plate" }, /area/almayer/command/cic) -"lZB" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 8; - pixel_y = 32 +"lZI" = ( +/obj/structure/prop/invuln/lattice_prop{ + dir = 1; + icon_state = "lattice-simple"; + pixel_x = -16; + pixel_y = 17 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) -"lZO" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" +/area/almayer/maint/hull/lower/l_m_p) +"lZM" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/cryo_cells) "lZZ" = ( /obj/structure/machinery/autolathe/medilathe/full, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/medical/hydroponics) -"maw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"may" = ( +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 16 }, -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/surface/table/almayer, /turf/open/floor/almayer{ - icon_state = "test_floor4" + 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/hull/lower_hull/l_m_s) +/area/almayer/hallways/upper/fore_hallway) "maI" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -49357,6 +46981,10 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"maK" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "maL" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/protein_pack, @@ -49395,11 +47023,16 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"mce" = ( +"mbR" = ( +/obj/docking_port/stationary/escape_pod/north, +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_p) +"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{ @@ -49409,13 +47042,6 @@ icon_state = "plate" }, /area/almayer/living/gym) -"mcV" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wirecutters, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "mcW" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/gloves, @@ -49424,12 +47050,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{ @@ -49442,10 +47084,30 @@ }, /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 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "meu" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -49460,63 +47122,50 @@ 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" - }, -/area/almayer/hallways/aft_hallway) -"meN" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "Under Construction Shutters"; - name = "\improper Construction Site" + 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 = "test_floor4" + icon_state = "mono" }, -/area/almayer/hull/lower_hull/l_f_p) -"meS" = ( -/obj/structure/sign/safety/water{ - pixel_x = -17 +/area/almayer/hallways/upper/midship_hallway) +"meT" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/l_f_s) "meY" = ( /turf/closed/wall/almayer{ damage_cap = 15000 }, /area/almayer/squads/alpha) -"mfe" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"mfI" = ( -/obj/structure/ladder{ - height = 1; - id = "AftPortMaint" +"mfH" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/upper/u_a_s) "mfM" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -49536,6 +47185,19 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"mfR" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 7 + }, +/obj/item/tool/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) +"mgb" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "mgd" = ( /obj/structure/machinery/autolathe/armylathe/full, /turf/open/floor/almayer{ @@ -49581,6 +47243,14 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) +"mgX" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "mha" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -49598,16 +47268,6 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) -"mhl" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice13"; - pixel_x = 16; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "mhm" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -49651,6 +47311,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 @@ -49661,12 +47332,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) -"miK" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "miV" = ( /obj/structure/sign/safety/rewire{ pixel_x = -17; @@ -49681,22 +47346,32 @@ icon_state = "redfull" }, /area/almayer/command/cic) -"mji" = ( -/obj/structure/pipes/standard/manifold/fourway/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +"mjs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "mjt" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"mjR" = ( -/obj/structure/largecrate/random/secure, +"mjy" = ( +/obj/structure/machinery/conveyor_switch{ + id = "lower_garbage" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/lower/l_a_p) +"mjR" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_f_s) "mjS" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -49781,16 +47456,30 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop/hangar) -"mko" = ( -/obj/item/tool/weldpack{ - pixel_y = 15 +"mkw" = ( +/obj/structure/sign/safety/security{ + pixel_y = -32 }, -/obj/structure/surface/table/almayer, -/obj/item/clothing/head/welding, +/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{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/p_bow) "mkG" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -49856,27 +47545,13 @@ 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{ icon_state = "redfull" }, /area/almayer/living/cryo_cells) -"mlp" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ - name = "\improper Starboard Railguns and Viewing Room" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_s) "mlz" = ( /obj/structure/platform_decoration{ dir = 1 @@ -49908,12 +47583,6 @@ icon_state = "test_floor4" }, /area/almayer/command/corporateliaison) -"mmC" = ( -/obj/structure/closet/secure_closet/engineering_welding{ - req_one_access_txt = "7;23;27" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "mmN" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 @@ -49926,53 +47595,50 @@ /obj/structure/machinery/door/poddoor/almayer/biohazard/white, /turf/open/floor/plating, /area/almayer/medical/medical_science) -"mnf" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer, +"mnc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 8 + dir = 5 }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/plating, -/area/almayer/squads/req) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/starboard_umbilical) "mng" = ( /turf/open/floor/almayer{ icon_state = "redcorner" }, /area/almayer/living/briefing) -"mni" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wrench{ - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"mnm" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "mnA" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, /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/fore_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/fore_hallway) "mnW" = ( /obj/structure/surface/table/almayer, /obj/item/device/reagent_scanner{ @@ -49998,10 +47664,21 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) -"moh" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"moc" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_p) +"moq" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_p) "mor" = ( /obj/structure/machinery/light{ dir = 8 @@ -50021,19 +47698,33 @@ "moB" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/cells) -"moE" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "moI" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha_bravo_shared) +"moK" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_s) +"moL" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/emails{ + dir = 1; + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_x = -9; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "moM" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ @@ -50045,10 +47736,18 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"moY" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/almayer, -/area/almayer/squads/req) +"mph" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out" + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "mpn" = ( /obj/structure/pipes/vents/pump, /obj/structure/surface/table/almayer, @@ -50062,12 +47761,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/midship_hallway) "mqg" = ( /obj/structure/bed/chair{ dir = 4 @@ -50081,15 +47795,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{ @@ -50112,33 +47829,12 @@ icon_state = "dark_sterile" }, /area/almayer/medical/operating_room_two) -"mrc" = ( -/obj/item/reagent_container/glass/bucket, -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = 24 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"mru" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"mrB" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"mqZ" = ( +/obj/structure/platform{ + dir = 8 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "mrD" = ( /obj/structure/machinery/light{ dir = 1 @@ -50211,16 +47907,22 @@ icon_state = "orange" }, /area/almayer/squads/bravo) +"msC" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 8; + req_one_access = list(2,34,30) + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) "msP" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"msV" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "msZ" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -50239,6 +47941,14 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"mtq" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "mtr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -50253,17 +47963,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"mts" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/l42a, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "mtD" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -50274,19 +47973,6 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"mtE" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/sign/safety/east{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/coffee{ - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "mtM" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -50302,6 +47988,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 @@ -50356,6 +48048,19 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"mvg" = ( +/obj/docking_port/stationary/escape_pod/west, +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_p) +"mvi" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/revolver/m44{ + desc = "A bulky revolver, occasionally carried by assault troops and officers in the Colonial Marines, as well as civilian law enforcement. Fires .44 Magnum rounds. 'J.P' Is engraved into the barrel." + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "mvl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50369,36 +48074,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; @@ -50412,15 +48087,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; @@ -50442,6 +48114,11 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) +"mwP" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "mwQ" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 @@ -50462,26 +48139,15 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/stair_clone/upper) -"mxL" = ( +"mxg" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/autoopenclose{ - pixel_y = 32 - }, -/obj/structure/sign/safety/water{ - pixel_x = 15; - pixel_y = 32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) "mxT" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp, @@ -50489,6 +48155,13 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"mxV" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 7; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "myl" = ( /obj/structure/machinery/power/apc/almayer/hardened{ cell_type = /obj/item/cell/hyper; @@ -50502,13 +48175,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"myn" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/power/apc/almayer, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "myo" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/head/soft/purple, @@ -50517,14 +48183,6 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) -"myC" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "myJ" = ( /obj/structure/machinery/light{ dir = 4 @@ -50549,7 +48207,7 @@ "mza" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 2; - id = "firearm_storage_armory"; + id = "bot_armory"; name = "\improper Armory Shutters" }, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -50573,29 +48231,26 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/armory) -"mzb" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/bed/chair{ - dir = 4 +"mze" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigmaint_n"; + name = "\improper Brig" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/shipboard/brig/starboard_hallway) "mzg" = ( /turf/open/floor/almayer{ icon_state = "emerald" }, /area/almayer/squads/charlie) -"mzo" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_p) "mzq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -50620,6 +48275,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, @@ -50628,13 +48287,15 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"mzR" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = -32 +"mzI" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "mzS" = ( /turf/open/floor/almayer{ dir = 9; @@ -50672,18 +48333,24 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"mBb" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" +"mAY" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +/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{ - icon_state = "test_floor4" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "mBc" = ( /obj/structure/bed/chair{ dir = 8 @@ -50704,12 +48371,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/pilotbunks) -"mBk" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "mBp" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50720,10 +48381,10 @@ }, /obj/structure/machinery/door/airlock/almayer/security/reinforced{ access_modified = 1; + closeOtherId = "astroladder_n"; name = "\improper Astronavigational Deck"; req_access = null; - req_one_access_txt = "3;19"; - closeOtherId = "astroladder_n" + req_one_access_txt = "3;19" }, /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -50739,19 +48400,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"mBA" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 11 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "mBJ" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -50775,6 +48423,15 @@ }, /turf/open/floor/plating, /area/almayer/squads/req) +"mCE" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "mCL" = ( /obj/structure/sign/safety/fire_haz{ pixel_x = 8; @@ -50798,6 +48455,13 @@ icon_state = "green" }, /area/almayer/squads/req) +"mDz" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 + }, +/obj/item/tool/soap, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "mDJ" = ( /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/starboard) @@ -50846,22 +48510,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; @@ -50898,6 +48553,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{ @@ -50905,7 +48570,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; @@ -50943,21 +48608,26 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"mFQ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/s_bow) "mGe" = ( /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/midship_hallway) "mGu" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "silver" }, /area/almayer/command/securestorage) -"mGL" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "mGT" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -50982,16 +48652,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{ @@ -51023,19 +48683,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" @@ -51049,11 +48696,22 @@ }, /area/almayer/medical/hydroponics) "mHE" = ( -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) +"mHF" = ( +/obj/structure/surface/rack, +/obj/item/clothing/head/headband/red{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/item/clothing/glasses/regular/hipster, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "mHO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light, @@ -51061,13 +48719,17 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) -"mHR" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +"mId" = ( +/obj/structure/closet, +/obj/item/clothing/suit/armor/riot/marine/vintage_riot, +/obj/item/clothing/head/helmet/riot/vintage_riot, +/obj/structure/machinery/light/small{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "mIy" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -51091,26 +48753,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"mIB" = ( -/obj/structure/machinery/cm_vending/sorted/medical/marinemed, -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"mIJ" = ( -/obj/structure/sign/safety/ladder{ - pixel_x = -16 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/vehiclehangar) "mIP" = ( /obj/structure/pipes/vents/pump, /obj/effect/decal/warning_stripes{ @@ -51121,13 +48763,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, @@ -51165,6 +48800,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/fore_hallway) "mJu" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/command/cic) @@ -51181,6 +48825,9 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) +"mJO" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_m_p) "mJP" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -51195,6 +48842,12 @@ icon_state = "orange" }, /area/almayer/squads/bravo) +"mJX" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "mKb" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -51207,10 +48860,6 @@ icon_state = "red" }, /area/almayer/squads/alpha) -"mKf" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "mKi" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -51226,6 +48875,17 @@ "mKq" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/living/bridgebunks) +"mKs" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "mKw" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -51259,6 +48919,15 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"mKG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "mKJ" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -51291,14 +48960,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 @@ -51312,14 +48973,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"; @@ -51346,12 +49002,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"mLJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ +"mLN" = ( +/obj/structure/machinery/light/small, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "mLR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -51361,12 +49022,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, @@ -51382,26 +49037,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) -"mNf" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "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 @@ -51419,41 +49079,26 @@ icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"mNR" = ( -/obj/structure/surface/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/tool/hand_labeler, -/turf/open/floor/almayer{ - icon_state = "plate" +"mNS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate/supply/weapons/m39{ + pixel_x = 2 }, -/area/almayer/hull/upper_hull/u_f_s) -"mNW" = ( -/obj/structure/platform{ - dir = 4 +/obj/structure/largecrate/supply/weapons/m41a{ + layer = 3.1; + pixel_x = 6; + pixel_y = 17 }, -/obj/item/storage/firstaid/rad, -/obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/upper/u_m_s) "mNX" = ( /turf/open/floor/almayer_hull{ dir = 4; icon_state = "outerhull_dir" }, /area/space/almayer/lifeboat_dock) -"mNZ" = ( -/obj/item/trash/uscm_mre, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice1"; - pixel_x = 16; - pixel_y = -16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "mOb" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -51477,22 +49122,36 @@ "mOi" = ( /turf/closed/wall/almayer/outer, /area/almayer/command/airoom) -"mOL" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 - }, +"mOw" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - dir = 1; icon_state = "green" }, -/area/almayer/hallways/aft_hallway) -"mOU" = ( -/obj/structure/machinery/light/small{ - dir = 4 +/area/almayer/hallways/upper/fore_hallway) +"mOE" = ( +/obj/structure/sign/safety/water{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"mOR" = ( +/obj/structure/surface/rack, +/obj/item/roller, +/obj/item/roller, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) +"mPc" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/l_a_p) "mPf" = ( /turf/open/floor/almayer/uscm/directional{ dir = 6 @@ -51525,13 +49184,17 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) +"mPw" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "mPK" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 }, /obj/structure/sign/safety/storage{ - pixel_y = 7; - pixel_x = -17 + pixel_x = -17; + pixel_y = 7 }, /obj/structure/sign/safety/commline_connection{ pixel_x = -17; @@ -51542,6 +49205,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 @@ -51551,11 +49219,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 @@ -51565,6 +49228,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 @@ -51574,37 +49245,34 @@ 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" = ( /turf/open/floor/almayer{ - dir = 5; - icon_state = "blue" + icon_state = "orangecorner" }, -/area/almayer/hallways/aft_hallway) -"mQV" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ +/area/almayer/hallways/upper/midship_hallway) +"mQY" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"mQW" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"mRl" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 4; - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/l_m_s) "mRn" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES Interior"; @@ -51612,7 +49280,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; @@ -51633,17 +49301,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"mRp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = -28 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "mRq" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -51663,6 +49320,26 @@ 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{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_s) "mRQ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -51679,16 +49356,9 @@ 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) "mRW" = ( /turf/open/floor/almayer/research/containment/corner1, /area/almayer/medical/containment/cell/cl) @@ -51698,6 +49368,10 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"mSr" = ( +/obj/effect/landmark/crap_item, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "mSs" = ( /obj/structure/machinery/light{ dir = 8 @@ -51724,36 +49398,19 @@ icon_state = "test_floor5" }, /area/almayer/medical/hydroponics) -"mSP" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 4; - id = "officers_mess"; - name = "\improper Privacy Shutters" - }, -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - access_modified = 1; - req_one_access = null; - req_one_access_txt = "19;30" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"mSM" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "mSU" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ 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{ @@ -51781,12 +49438,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/midship_hallway) "mTp" = ( /obj/structure/window/reinforced{ dir = 4; @@ -51801,27 +49462,20 @@ icon_state = "cargo_arrow" }, /area/almayer/medical/hydroponics) +"mTL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "mTN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"mUa" = ( -/obj/structure/disposalpipe/junction{ - dir = 4; - icon_state = "pipe-j2" - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"mUn" = ( -/obj/structure/machinery/conveyor_switch{ - id = "lower_garbage" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "mUq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -51843,27 +49497,39 @@ dir = 8; pixel_x = 17 }, -/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) -"mUC" = ( -/obj/structure/machinery/light{ - dir = 4; - invisibility = 101; - unacidable = 1; - unslashable = 1 +"mUE" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" +/area/almayer/maint/hull/lower/l_f_s) +"mUL" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/area/almayer/command/airoom) -"mUQ" = ( -/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/upper/u_a_s) +"mUY" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/obj/effect/spawner/random/powercell, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_m_s) +"mVh" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "mVr" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -51874,6 +49540,17 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"mVA" = ( +/obj/item/reagent_container/glass/bucket, +/obj/item/tool/mop{ + pixel_x = -6; + pixel_y = 24 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "mVE" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -51896,6 +49573,21 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"mVF" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + dir = 4; + id = "officers_mess"; + name = "\improper Privacy Shutters" + }, +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + req_one_access = null; + req_one_access_txt = "19;30" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/mess) "mWs" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -51907,14 +49599,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{ @@ -51966,12 +49650,32 @@ "mXj" = ( /turf/closed/wall/almayer, /area/almayer/living/commandbunks) -"mYs" = ( -/obj/structure/machinery/light{ - dir = 4 +"mXm" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) +"mYd" = ( +/obj/structure/sign/safety/escapepod{ + pixel_y = 32 }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) +"mYt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/vehiclehangar) "mYv" = ( /obj/structure/disposalpipe/sortjunction{ dir = 4; @@ -51980,29 +49684,6 @@ }, /turf/closed/wall/almayer, /area/almayer/squads/req) -"mYw" = ( -/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/port_hallway) -"mYY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/vehiclehangar) "mZb" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -52017,6 +49698,24 @@ icon_state = "blue" }, /area/almayer/command/cichallway) +"mZc" = ( +/obj/structure/sign/poster/blacklight{ + pixel_y = 35 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/reagent_dispensers/beerkeg/alt_dark{ + anchored = 1; + chemical = null; + density = 0; + pixel_x = -7; + pixel_y = 10 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "mZf" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -52042,6 +49741,12 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"mZv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "mZF" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; @@ -52070,6 +49775,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, @@ -52081,6 +49798,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; @@ -52091,12 +49817,12 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"naf" = ( -/obj/structure/closet/firecloset, +"naj" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/upper/midship_hallway) "nar" = ( /obj/structure/toilet{ dir = 4 @@ -52161,14 +49887,29 @@ 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/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"nbY" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/upper/aft_hallway) "ncf" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -52181,6 +49922,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" @@ -52222,49 +49966,31 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"ndx" = ( -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/west{ - pixel_y = 32 - }, +"ncV" = ( +/obj/structure/closet, +/obj/item/clothing/glasses/welding, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"ndJ" = ( -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ +/area/almayer/maint/upper/u_a_s) +"ndl" = ( +/obj/structure/disposalpipe/segment{ dir = 8; - icon_state = "orange" - }, -/area/almayer/hallways/stern_hallway) -"ndM" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice1"; - pixel_x = 16; - pixel_y = -8 + icon_state = "pipe-c" }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) -"ndQ" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +/area/almayer/maint/hull/lower/l_m_p) +"ndm" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/lower/cryo_cells) "ndZ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/flashlight/lamp, @@ -52285,6 +50011,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{ @@ -52316,6 +50051,12 @@ icon_state = "red" }, /area/almayer/command/lifeboat) +"neH" = ( +/obj/item/trash/cigbutt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "neO" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -52334,7 +50075,7 @@ "neT" = ( /obj/structure/transmitter/rotary{ name = "CL Office Telephone"; - phone_category = "Almayer"; + phone_category = "Offices"; phone_id = "CL Office" }, /obj/structure/surface/table/woodentable/fancy, @@ -52350,24 +50091,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) -"nfI" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"nfS" = ( -/obj/item/reagent_container/food/snacks/wrapped/chunk, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "ngf" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -52413,12 +50136,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/lobby) -"ngs" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "ngw" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/frag, @@ -52453,20 +50170,35 @@ icon_state = "plate" }, /area/almayer/squads/bravo) -"ngE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"ngF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/upper/starboard) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "ngI" = ( /turf/open/floor/almayer{ dir = 8; 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 @@ -52503,12 +50235,6 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"nho" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "nhr" = ( /obj/structure/ladder{ height = 1; @@ -52519,6 +50245,10 @@ icon_state = "plating" }, /area/almayer/engineering/lower/workshop) +"nhw" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "nhx" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/toy/deck{ @@ -52535,6 +50265,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" @@ -52562,6 +50302,15 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"nhV" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) +"nic" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/stern) "nig" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -52609,6 +50358,15 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"niF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/medical/medical_science) "niL" = ( /obj/structure/machinery/light{ dir = 1 @@ -52666,12 +50424,9 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"njy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +"njn" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_m_s) "njD" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ @@ -52691,35 +50446,29 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"njL" = ( +"njO" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, /turf/open/floor/almayer{ - dir = 8; - icon_state = "emerald" + icon_state = "redfull" }, -/area/almayer/hallways/port_hallway) -"njT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/area/almayer/shipboard/panic) +"njS" = ( +/obj/structure/sign/safety/rad_haz{ + pixel_x = 8; + pixel_y = -32 }, -/obj/structure/sign/safety/distribution_pipes{ +/obj/structure/machinery/power/reactor, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering/lower/engine_core) +"nkj" = ( +/obj/structure/sign/safety/hvac_old{ pixel_x = 8; pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"nka" = ( -/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 = "cargo_arrow" - }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/hull/lower/l_f_s) "nkn" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -52762,20 +50511,25 @@ /area/almayer/hallways/upper/starboard) "nkX" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 4; - layer = 2.8; - pixel_y = 5 - }, /obj/structure/sign/safety/terminal{ pixel_x = 8; pixel_y = 32 }, +/obj/structure/machinery/computer/cameras/almayer/ares{ + dir = 4; + pixel_y = 5 + }, /turf/open/floor/almayer{ dir = 9; icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"nlh" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "nlz" = ( /obj/structure/machinery/brig_cell/cell_3{ pixel_x = 32; @@ -52815,26 +50569,28 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"nmx" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"nmp" = ( +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 15; + pixel_y = 32 }, -/obj/structure/disposalpipe/junction{ - dir = 4 +/obj/structure/sign/safety/west{ + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/aft_hallway) -"nmD" = ( -/obj/structure/machinery/light{ - dir = 1 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +/area/almayer/maint/hull/lower/l_f_s) +"nmH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_aft_hallway) "nmK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -52856,12 +50612,6 @@ "nmY" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/engineering/lower/workshop/hangar) -"nnc" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "nne" = ( /obj/structure/ladder{ height = 2; @@ -52872,22 +50622,17 @@ }, /area/almayer/command/cichallway) "nnr" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/electrical{ - pixel_y = 9 - }, -/obj/item/storage/toolbox/mechanical/green, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +/obj/structure/machinery/light{ + dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orangecorner" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/port_aft_hallway) "nny" = ( /obj/structure/sign/safety/rewire{ pixel_x = -17; @@ -52906,10 +50651,18 @@ icon_state = "plate" }, /area/almayer/stair_clone/upper) -"nnF" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +"nnH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/secure{ + pixel_x = -5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "nnL" = ( /obj/structure/toilet{ dir = 8 @@ -52957,6 +50710,27 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"noy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"noE" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/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 @@ -52967,13 +50741,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"noV" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "nph" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -52981,17 +50748,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"; @@ -53007,6 +50763,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"; @@ -53041,22 +50803,12 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"nqD" = ( -/obj/item/ammo_box/magazine/misc/mre, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "nqG" = ( -/obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; pixel_x = 1 }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, +/turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) "nqO" = ( /obj/structure/closet/secure_closet/fridge/fish/stock, @@ -53064,9 +50816,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"nqU" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "nqV" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -53105,22 +50854,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 @@ -53130,14 +50863,6 @@ icon_state = "emeraldcorner" }, /area/almayer/squads/charlie) -"nrz" = ( -/obj/structure/surface/rack, -/obj/item/tool/kitchen/rollingpin, -/obj/item/tool/hatchet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "nrN" = ( /obj/structure/machinery/sleep_console, /turf/open/floor/almayer{ @@ -53159,20 +50884,22 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"nsu" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Security Checkpoint" - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "safe_armory"; - name = "\improper Hangar Armory Shutters" +"nsd" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/lights/bulbs{ + pixel_x = 3; + pixel_y = 7 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/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 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "nsQ" = ( /obj/structure/sink{ dir = 4; @@ -53219,17 +50946,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"; @@ -53242,41 +50958,12 @@ icon_state = "test_floor4" }, /area/almayer/living/port_emb) -"ntA" = ( -/obj/structure/machinery/light/small, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "ntI" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"nub" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/living/starboard_garden) -"nun" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "nux" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -53315,12 +51002,33 @@ /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"nuY" = ( -/obj/structure/closet, +"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; + icon_state = "silver" + }, +/area/almayer/maint/upper/u_m_p) +"nve" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/u_m_p) "nvG" = ( /obj/structure/machinery/light{ dir = 8 @@ -53339,6 +51047,14 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) +"nvI" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "nvM" = ( /obj/structure/window/framed/almayer/white, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -53358,6 +51074,18 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"nvX" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/screwdriver{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/stack/cable_coil{ + pixel_x = 8; + pixel_y = -4 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "nwb" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -53376,22 +51104,39 @@ }, /area/almayer/medical/containment/cell) "nwu" = ( -/obj/structure/closet/crate/freezer{ - desc = "A freezer crate. Someone has written 'open on christmas' in marker on the top." +/obj/structure/sign/safety/escapepod{ + pixel_y = -32 + }, +/obj/structure/sign/safety/east{ + pixel_x = 15; + pixel_y = -32 }, -/obj/item/reagent_container/food/snacks/mre_pack/xmas2, -/obj/item/reagent_container/food/snacks/mre_pack/xmas1, -/obj/item/reagent_container/food/snacks/mre_pack/xmas3, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) +"nww" = ( +/turf/open/floor/almayer{ + dir = 6; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/upper/midship_hallway) "nwx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"nwA" = ( +/obj/structure/largecrate/supply/generator, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "nwD" = ( /turf/open/floor/almayer{ dir = 1; @@ -53402,6 +51147,7 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ dir = 8; icon_state = "plating_striped" @@ -53414,6 +51160,10 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"nwT" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "nwU" = ( /obj/structure/machinery/light{ dir = 4 @@ -53451,44 +51201,28 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"nxc" = ( -/obj/structure/machinery/light/small{ - dir = 4 +"nxe" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/effect/spawner/random/toolbox, +/obj/item/stack/sheet/metal{ + desc = "Semiotic Standard denoting the nearby presence of coffee: the lifeblood of any starship crew."; + icon = 'icons/obj/structures/props/semiotic_standard.dmi'; + icon_state = "coffee"; + name = "coffee semiotic"; + pixel_x = 20; + pixel_y = 12; + singular_name = "coffee semiotic" }, -/obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_a_p) "nxx" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/lower) -"nxK" = ( -/obj/structure/sign/safety/high_voltage{ - pixel_y = -32 - }, -/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" @@ -53511,23 +51245,6 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"nyz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"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) @@ -53538,6 +51255,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, @@ -53549,15 +51272,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, @@ -53579,6 +51293,10 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) +"nAm" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "nAY" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53601,12 +51319,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) -"nBc" = ( -/obj/structure/largecrate/random, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "nBi" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp{ @@ -53635,21 +51347,36 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) +"nBF" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"nBJ" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/s_bow) "nBK" = ( /turf/open/floor/almayer{ dir = 8; 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, @@ -53696,8 +51423,23 @@ pixel_x = -1; pixel_y = 2 }, +/obj/item/clothing/mask/cigarette/pipe{ + layer = 2.8; + pixel_x = 14 + }, /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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "nCR" = ( /obj/structure/sink{ dir = 4; @@ -53733,19 +51475,13 @@ icon_state = "tcomms" }, /area/almayer/engineering/lower/engine_core) -"nDd" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" +"nDb" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_umbilical) "nDo" = ( /obj/structure/closet/l3closet/general, /obj/structure/window/reinforced{ @@ -53758,24 +51494,23 @@ }, /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, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) +"nEc" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) +"nEl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "nEo" = ( /obj/structure/surface/table/almayer, /obj/item/storage/donut_box{ @@ -53784,29 +51519,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) -"nEz" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"nEA" = ( -/obj/structure/prop/holidays/string_lights{ - pixel_y = 27 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/obj/structure/surface/table/almayer, -/obj/item/storage/box/drinkingglasses, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "nEF" = ( /obj/structure/machinery/conveyor_switch{ id = "gym_1"; @@ -53814,13 +51526,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/gym) -"nEG" = ( -/obj/structure/largecrate/random/case, -/obj/structure/machinery/access_button/airlock_exterior, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "nEH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ @@ -53844,6 +51549,16 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"nEO" = ( +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) +"nEZ" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "nFm" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/surgery/scalpel, @@ -53851,12 +51566,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 @@ -53906,24 +51615,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; @@ -53937,12 +51628,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) -"nGc" = ( -/obj/structure/machinery/vending/hydroseeds, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "nGh" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -53962,15 +51647,48 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) +"nGk" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"nGM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "nGY" = ( /obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/north2) -"nHF" = ( -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_s) +"nGZ" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) +"nHu" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"nHG" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "nHJ" = ( /obj/structure/machinery/light{ dir = 8 @@ -53994,6 +51712,16 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) +"nHX" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "nIj" = ( /turf/open/floor/almayer{ icon_state = "green" @@ -54039,6 +51767,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/midship_hallway) "nIG" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -54048,6 +51783,9 @@ icon_state = "silver" }, /area/almayer/command/securestorage) +"nIN" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_m_p) "nIS" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54072,20 +51810,6 @@ /obj/item/newspaper, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"nJy" = ( -/obj/structure/sign/safety/bathunisex{ - pixel_x = -18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"nJz" = ( -/turf/open/floor/almayer{ - dir = 4; - icon_state = "redcorner" - }, -/area/almayer/shipboard/brig/main_office) "nJH" = ( /obj/structure/machinery/computer/cameras/almayer{ dir = 8; @@ -54115,30 +51839,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"nLa" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"nLb" = ( -/obj/effect/decal/cleanable/blood, -/obj/structure/prop/broken_arcade, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) -"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{ @@ -54149,6 +51849,9 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"nLp" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_f_p) "nLt" = ( /turf/open/floor/almayer{ dir = 1; @@ -54179,31 +51882,15 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"nLK" = ( -/obj/structure/machinery/cm_vending/sorted/marine_food, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"nLZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_y = -25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"nLM" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, /turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/hallways/starboard_hallway) -"nMc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 + dir = 1; + icon_state = "blue" }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/upper/midship_hallway) "nMe" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -54223,14 +51910,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"nMz" = ( -/obj/structure/sign/safety/cryo{ - pixel_x = 35 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "nMV" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -54276,27 +51955,22 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"nNA" = ( -/obj/structure/machinery/cryopod{ - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_m_p) -"nNC" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "nNH" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "emeraldcorner" }, /area/almayer/living/briefing) +"nNI" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) +"nNT" = ( +/obj/item/tool/weldingtool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "nNV" = ( /obj/structure/bed/chair{ dir = 8; @@ -54343,15 +52017,22 @@ icon_state = "plate" }, /area/almayer/command/corporateliaison) +"nOx" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "nOC" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/execution) -"nOG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"nOX" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/secure_data{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "nPa" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -54427,6 +52108,13 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"nPO" = ( +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/maint/hull/lower/l_m_s) "nPT" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ desc = "These shutters seem to be pretty poorly mantained and almost wedged into the room.. you're not sure if these are official."; @@ -54450,12 +52138,18 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"nQg" = ( -/obj/structure/sink{ - pixel_y = 24 +"nQn" = ( +/obj/structure/surface/rack, +/obj/item/storage/toolbox/mechanical, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/s_bow) +"nQo" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/l_m_p) "nQv" = ( /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -54465,20 +52159,33 @@ icon_state = "plating_striped" }, /area/almayer/squads/req) -"nQx" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +"nQw" = ( +/obj/structure/closet, +/obj/item/clothing/glasses/mgoggles/prescription, +/obj/item/clothing/glasses/mbcg, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "nQA" = ( /turf/open/floor/carpet, /area/almayer/command/corporateliaison) -"nRq" = ( -/obj/effect/decal/cleanable/blood/oil/streak, +"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 = 4 + dir = 9 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_f_s) "nRH" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -54487,6 +52194,12 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"nRN" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "nRR" = ( /turf/open/floor/almayer{ dir = 1; @@ -54497,6 +52210,29 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) +"nSk" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/item/stack/tile/carpet{ + amount = 20 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"nSq" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "nSu" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -54517,35 +52253,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/telecomms) -"nSN" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "nSS" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"nSU" = ( -/obj/structure/machinery/vending/snack{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"nTi" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) +"nTc" = ( +/obj/docking_port/stationary/escape_pod/south, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_f_p) "nTl" = ( /turf/open/floor/almayer{ dir = 1; @@ -54646,6 +52363,16 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) +"nUm" = ( +/obj/structure/bed/chair/comfy/beige, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 12; + pixel_y = -5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "nUn" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -54662,30 +52389,45 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"nUy" = ( -/obj/structure/sign/poster{ - pixel_y = -32 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"nVe" = ( -/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 +"nUT" = ( +/obj/structure/platform{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_a_s) "nVi" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" }, /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 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/starboard_hallway) +"nVn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "nVq" = ( /obj/structure/sign/safety/security{ pixel_x = -17; @@ -54700,17 +52442,29 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"nVu" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +"nVA" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/effect/projector{ + name = "Almayer_Down3"; + vector_x = 1; + vector_y = -102 + }, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/upper/fore_hallway) "nVB" = ( /turf/open/floor/almayer, /area/almayer/command/securestorage) +"nVE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "nVF" = ( /obj/structure/disposalpipe/junction{ dir = 8 @@ -54719,20 +52473,20 @@ 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) -"nVS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "nVX" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat2-D1"; @@ -54743,27 +52497,25 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/starboard) -"nWc" = ( -/obj/structure/machinery/door/airlock/almayer/generic/glass{ - name = "\improper Passenger Cryogenics Bay" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) "nWN" = ( /obj/structure/surface/table/almayer, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) -"nXF" = ( -/obj/structure/bed/sofa/south/white/right{ - pixel_y = 16 +"nWS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "silver" + icon_state = "dark_sterile" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/shipboard/brig/medical) +"nXo" = ( +/obj/item/storage/box/donkpockets, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "nXO" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/storage/fancy/cigar{ @@ -54785,9 +52537,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"nXP" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_f_s) "nXU" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 1; @@ -54829,12 +52578,12 @@ icon_state = "silverfull" }, /area/almayer/command/securestorage) -"nYh" = ( -/obj/structure/machinery/portable_atmospherics/hydroponics, +"nYi" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/p_bow) "nYn" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54853,20 +52602,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) -"nYC" = ( -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 7; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "nYD" = ( /obj/structure/closet/secure_closet/medical2, /turf/open/floor/almayer{ @@ -54878,6 +52613,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{ @@ -54886,11 +52629,37 @@ /obj/item/facepaint/black, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"nZF" = ( +"nZG" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) +"nZK" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, /turf/open/floor/almayer{ - icon_state = "orange" + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_f_p) +"nZR" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) +"nZW" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/drinks/cans/souto/blue{ + pixel_x = 2; + pixel_y = 3 }, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "oap" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -54898,22 +52667,28 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"oas" = ( -/obj/structure/surface/table/almayer, -/obj/item/stack/rods/plasteel{ - amount = 36 - }, -/obj/item/stack/catwalk{ - amount = 60; - pixel_x = 5; - pixel_y = 4 +"oaw" = ( +/obj/structure/closet/firecloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/p_stern) "oaK" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"oaO" = ( +/obj/structure/machinery/conveyor{ + id = "lower_garbage" + }, +/obj/structure/machinery/recycler, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "plating_striped" + }, +/area/almayer/maint/hull/lower/l_a_p) "oaW" = ( /obj/structure/machinery/cryopod/right, /turf/open/floor/almayer{ @@ -54952,32 +52727,20 @@ icon_state = "plate" }, /area/almayer/squads/alpha_bravo_shared) -"obG" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/card{ - dir = 8 +"obJ" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/upper/u_a_s) "obQ" = ( /obj/structure/bed/chair{ dir = 8 }, /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 @@ -55024,35 +52787,55 @@ /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) -"oda" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/device/radio{ - pixel_x = 8; - pixel_y = 7 +"ocI" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/clothing/head/soft/ferret{ - pixel_x = -7 +/area/almayer/maint/upper/u_a_s) +"ocX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "green" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/upper/fore_hallway) "odb" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"ode" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/s_bow) "odl" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /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 @@ -55081,6 +52864,22 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"odG" = ( +/obj/structure/platform, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "odN" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -55100,11 +52899,6 @@ icon_state = "red" }, /area/almayer/command/lifeboat) -"oed" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "oee" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -55123,15 +52917,17 @@ icon_state = "cargo" }, /area/almayer/squads/alpha_bravo_shared) -"oeo" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "oer" = ( /turf/closed/wall/almayer{ damage_cap = 15000 }, /area/almayer/squads/delta) +"oes" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "oex" = ( /obj/structure/machinery/cm_vending/sorted/tech/comp_storage, /obj/structure/machinery/light, @@ -55145,30 +52941,29 @@ icon_state = "redcorner" }, /area/almayer/shipboard/brig/processing) -"oeL" = ( -/obj/structure/machinery/vending/coffee{ - density = 0; - pixel_y = 18 +"oeH" = ( +/obj/structure/bed/chair{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/upper/u_m_s) "oeM" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "silver" }, /area/almayer/command/computerlab) -"ofs" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, +"oeN" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "cargo" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/fore_hallway) +"oeZ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/shipboard/brig/medical) "ofH" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -55200,12 +52995,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"ofZ" = ( -/obj/structure/bed/sofa/south/grey, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "ogK" = ( /obj/structure/bed/bedroll{ desc = "A bed of cotton fabric, purposely made for a cat to comfortably sleep on."; @@ -55226,6 +53015,19 @@ icon_state = "cargo" }, /area/almayer/squads/charlie) +"ohu" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + dir = 1; + name = "\improper Brig Maintenance" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/p_bow) "ohA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -55263,6 +53065,19 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) +"ohI" = ( +/obj/structure/surface/table/almayer, +/obj/item/circuitboard/airlock, +/obj/item/circuitboard/airlock{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/stack/cable_coil{ + pixel_x = -7; + pixel_y = 11 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ohJ" = ( /obj/structure/machinery/computer/arcade, /turf/open/floor/wood/ship, @@ -55285,6 +53100,10 @@ icon_state = "test_floor4" }, /area/almayer/living/captain_mess) +"oif" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "oih" = ( /obj/structure/bed{ icon_state = "abed" @@ -55314,6 +53133,16 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"oiq" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 8; + req_one_access = list(2,34,30) + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) "oir" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -55332,6 +53161,13 @@ 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) "oiL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -55350,6 +53186,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"; @@ -55401,22 +53241,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, @@ -55430,14 +53254,15 @@ }, /area/almayer/squads/charlie) "okd" = ( -/obj/structure/platform_decoration, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +/obj/structure/machinery/door/poddoor/almayer{ + id = "n_umbilical"; + name = "\improper Umbillical Airlock"; + unacidable = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/starboard_umbilical) "okg" = ( /obj/structure/sign/safety/reception{ pixel_x = 8; @@ -55447,13 +53272,19 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"oks" = ( -/obj/effect/decal/cleanable/cobweb{ - pixel_x = -9; - pixel_y = 19 +"oko" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/upper/u_a_p) +"okx" = ( +/turf/open/floor/almayer{ + dir = 9; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "okD" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer6" @@ -55462,14 +53293,26 @@ 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 = "mono" + }, +/area/almayer/medical/upper_medical) +"old" = ( +/obj/structure/machinery/light/small, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"olC" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/machinery/light/small{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/maint/upper/u_f_s) "olM" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -55506,6 +53349,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) +"olQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "olU" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -55513,6 +53362,12 @@ icon_state = "blue" }, /area/almayer/command/cichallway) +"olW" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/s_bow) "omb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -55522,15 +53377,45 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"ome" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "omo" = ( /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" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "omt" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"omx" = ( +/obj/structure/largecrate/random/barrel/white, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = 32 + }, +/obj/structure/sign/safety/maint{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_f_s) "omy" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -55549,21 +53434,36 @@ 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/midship_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 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "onN" = ( /obj/structure/surface/table/almayer, /obj/structure/disposalpipe/segment{ @@ -55609,17 +53509,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"ooo" = ( -/obj/structure/reagent_dispensers/water_cooler/stacks{ - density = 0; - pixel_y = 17 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "oos" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) @@ -55638,6 +53527,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"ooA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/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" @@ -55665,27 +53567,51 @@ 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/fore_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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "oqt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -55724,22 +53650,10 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"oqD" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wet_sign, -/obj/item/tool/wet_sign{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/tool/wet_sign{ - pixel_x = -8; - pixel_y = 6 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +"oqI" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "oqS" = ( /obj/structure/toilet{ dir = 1 @@ -55800,20 +53714,17 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"orm" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"orq" = ( +/obj/item/storage/toolbox/mechanical{ + pixel_y = 13 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) -"orv" = ( -/obj/structure/machinery/light/small, -/obj/structure/largecrate/random/secure, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/upper/u_m_s) "orH" = ( /turf/open/floor/almayer/uscm/directional{ dir = 10 @@ -55829,6 +53740,9 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop/hangar) +"orV" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "osc" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep, /obj/structure/machinery/light{ @@ -55836,6 +53750,23 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) +"osn" = ( +/obj/item/trash/USCMtray{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/structure/surface/table/almayer, +/obj/item/tool/kitchen/utensil/pfork{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) "osx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -55850,13 +53781,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{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "osz" = ( @@ -55897,14 +53825,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{ @@ -55923,9 +53850,52 @@ 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) +"otW" = ( +/obj/structure/machinery/light/small, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "ouf" = ( /obj/structure/stairs{ dir = 1; @@ -55952,25 +53922,13 @@ icon_state = "plate" }, /area/almayer/command/cic) -"ouo" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "our" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm{ 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{ @@ -55994,6 +53952,18 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"ouU" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/technology_scanner, +/obj/effect/spawner/random/technology_scanner, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "ouW" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -56008,6 +53978,10 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) +"ove" = ( +/obj/structure/airlock_assembly, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ovi" = ( /turf/open/floor/almayer{ dir = 4; @@ -56025,15 +53999,6 @@ icon_state = "silver" }, /area/almayer/living/briefing) -"ovF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "ovG" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -56047,28 +54012,26 @@ 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" +"owU" = ( +/obj/structure/machinery/light/small{ + dir = 8 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "owW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -56092,47 +54055,75 @@ /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/midship_hallway) "oxi" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /turf/open/floor/almayer, /area/almayer/living/cafeteria_officer) -"oxp" = ( -/obj/structure/largecrate/random/case, +"oxl" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_a_p) +"oxn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "oxu" = ( /obj/structure/sign/safety/galley{ pixel_x = -17 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"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) -"oyo" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "orangecorner" - }, -/area/almayer/hull/upper_hull/u_a_s) -"oyw" = ( -/obj/structure/platform_decoration{ - dir = 8 +"oyC" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"oyy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/brig/starboard_hallway) "oyE" = ( /obj/effect/landmark/start/intel, /obj/structure/sign/poster{ @@ -56145,18 +54136,25 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/port_atmos) -"oyG" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" +"oyO" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/sign/safety/water{ + pixel_x = -17 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "oyR" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "orange" }, /area/almayer/engineering/lower) +"oyX" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "ozq" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -56166,21 +54164,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha) -"ozr" = ( -/obj/structure/closet, -/obj/item/reagent_container/food/drinks/bottle/sake, -/obj/item/newspaper, -/obj/item/clothing/gloves/yellow, -/obj/item/stack/tile/carpet{ - amount = 20 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "ozz" = ( /obj/structure/surface/table/almayer, /obj/item/tank/emergency_oxygen/double, @@ -56188,6 +54171,18 @@ icon_state = "mono" }, /area/almayer/engineering/upper_engineering/starboard) +"ozH" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) "ozN" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor{ id_tag = "Boat2-D2"; @@ -56216,6 +54211,24 @@ 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) +"oAp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) "oAB" = ( /obj/structure/platform{ dir = 8; @@ -56225,12 +54238,43 @@ dir = 10 }, /area/almayer/living/briefing) +"oAK" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "oAO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"oAT" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/radio{ + pixel_x = 8; + pixel_y = 7 + }, +/obj/item/clothing/head/soft/ferret{ + pixel_x = -7 + }, +/turf/open/floor/almayer{ + 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/fore_hallway) "oBq" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -56242,6 +54286,9 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) +"oBr" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_a_s) "oBA" = ( /obj/structure/sign/safety/conference_room{ pixel_x = -17; @@ -56256,6 +54303,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; @@ -56283,18 +54354,13 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"oCL" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"oDf" = ( +"oCK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"oDh" = ( /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/upper/p_bow) "oDi" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -56347,6 +54413,23 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"oDJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/spiderling_remains{ + pixel_x = 18; + pixel_y = -5 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = 11; + pixel_y = 25 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_corner" + }, +/area/almayer/medical/lower_medical_medbay) "oDL" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -56367,6 +54450,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, @@ -56435,15 +54527,6 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"oES" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "oEX" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -56460,18 +54543,29 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"oFG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"oFn" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wirecutters/clippers, +/obj/item/handcuffs/zip, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_f_p) +"oFr" = ( +/obj/item/storage/firstaid/regular, +/obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) -"oFM" = ( -/obj/docking_port/stationary/escape_pod/north, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/upper/u_a_s) +"oFU" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_p) "oFV" = ( /obj/structure/sign/poster{ pixel_x = -32; @@ -56482,6 +54576,40 @@ "oFY" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/lobby) +"oGf" = ( +/obj/structure/surface/rack, +/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" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"oGj" = ( +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 + }, +/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 @@ -56507,16 +54635,27 @@ /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) "oGF" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/platform{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/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 @@ -56566,6 +54705,21 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie) +"oHf" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) +"oHg" = ( +/obj/structure/largecrate/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "oHl" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/electrical, @@ -56574,6 +54728,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 @@ -56600,15 +54771,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"oIn" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "oIr" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -56621,9 +54783,9 @@ pixel_y = 1 }, /obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_n"; dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_n" + name = "\improper Containment Airlock" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 @@ -56641,9 +54803,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 @@ -56655,6 +54832,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"; @@ -56674,9 +54867,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{ @@ -56702,17 +54893,31 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) -"oLd" = ( -/obj/structure/platform{ - dir = 4 +"oLf" = ( +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "oLi" = ( /obj/effect/landmark/start/marine/medic/bravo, /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"; @@ -56726,25 +54931,11 @@ pixel_y = -8 }, /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "silver" + icon_state = "ai_silver" }, /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) -"oLw" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "oLF" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -56776,15 +54967,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; @@ -56831,6 +55013,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/midship_hallway) "oNb" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -56841,14 +55027,6 @@ icon_state = "mono" }, /area/almayer/engineering/ce_room) -"oNf" = ( -/obj/item/stack/folding_barricade/three, -/obj/item/stack/folding_barricade/three, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hull/lower_hull/l_f_s) "oNj" = ( /obj/structure/sign/prop1{ pixel_x = -32; @@ -56875,6 +55053,12 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"oNM" = ( +/obj/structure/largecrate/random/barrel, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "oNP" = ( /obj/structure/machinery/vending/cola{ density = 0; @@ -56895,6 +55079,22 @@ }, /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/midship_hallway) +"oOp" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/wirecutters, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "oOw" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -56931,36 +55131,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"; @@ -56999,34 +55169,20 @@ icon_state = "red" }, /area/almayer/command/cic) -"oPI" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"oQj" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/machinery/door_control{ - id = "laddernortheast"; - name = "North East Ladders Shutters"; - pixel_y = -25; - req_one_access_txt = "2;3;12;19"; - throw_range = 15 +"oPF" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) -"oQo" = ( -/obj/item/stool, -/obj/effect/landmark/yautja_teleport, +/area/almayer/maint/hull/lower/l_a_s) +"oQn" = ( /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "greencorner" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/port_midship_hallway) "oQs" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/book/manual/surgery{ @@ -57036,11 +55192,30 @@ 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" }, /area/almayer/living/briefing) +"oQJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"oQL" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "oQM" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -57064,23 +55239,20 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) -"oRj" = ( -/obj/structure/stairs{ - icon_state = "ramptop" - }, -/obj/structure/platform{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "oRk" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"oRm" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Port Viewing Room" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_s) "oRJ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -57112,9 +55284,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, @@ -57161,6 +55331,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/lobby) +"oSG" = ( +/obj/structure/surface/table/almayer, +/obj/item/card/id/visa, +/obj/item/tool/crew_monitor, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "oSL" = ( /obj/structure/window/reinforced{ dir = 8 @@ -57184,6 +55362,26 @@ 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" + }, +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"oTc" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "oTe" = ( /obj/item/prop/almayer/box, /obj/item/prop{ @@ -57213,12 +55411,6 @@ icon_state = "test_floor5" }, /area/almayer/squads/req) -"oTz" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "oTA" = ( /obj/structure/machinery/cryopod, /obj/structure/machinery/light{ @@ -57228,6 +55420,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; @@ -57241,6 +55442,35 @@ 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; + pixel_y = 32 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"oUx" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + 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 @@ -57250,6 +55480,21 @@ 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/midship_hallway) +"oUZ" = ( +/obj/structure/surface/rack, +/obj/item/tool/crowbar, +/obj/item/tool/weldingtool, +/obj/item/tool/wrench, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "oVf" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/evidence{ @@ -57267,12 +55512,28 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) -"oVP" = ( -/obj/structure/bed/chair{ +"oVk" = ( +/obj/structure/stairs{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/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 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "oWf" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -57301,6 +55562,10 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"oWq" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "oWx" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -57317,35 +55582,54 @@ 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, /area/almayer/shipboard/brig/cells) -"oXt" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/upper/starboard) "oXJ" = ( /obj/structure/machinery/suit_storage_unit/compression_suit/uscm, /turf/open/floor/almayer{ @@ -57370,25 +55654,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"oYb" = ( -/obj/structure/disposalpipe/segment{ +"oYi" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_midship_hallway) "oYp" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -57398,16 +55669,55 @@ icon_state = "red" }, /area/almayer/living/offices/flight) -"oZd" = ( -/obj/structure/closet/secure_closet/personal/cabinet{ - req_access = null +"oYr" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_a_p) +"oYs" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/item/clothing/suit/chef/classic, -/obj/item/tool/kitchen/knife/butcher, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/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 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) "oZp" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light, @@ -57508,15 +55818,56 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"paJ" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "paL" = ( /turf/open/floor/almayer/uscm/directional{ dir = 1 }, /area/almayer/command/cic) -"pbb" = ( -/obj/effect/landmark/start/doctor, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/living/offices) +"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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "pbp" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -57544,13 +55895,22 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"pch" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +"pcc" = ( +/obj/structure/surface/rack, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/upper/u_f_s) +"pcf" = ( +/obj/item/tool/wet_sign, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/u_f_s) "pcj" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -57575,22 +55935,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"pcD" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - layer = 5.1; - name = "water pipe" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Hangar Lockdown"; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) "pcE" = ( /obj/structure/machinery/conveyor{ dir = 8; @@ -57621,26 +55965,25 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"pda" = ( -/obj/structure/largecrate/random/case/double, +"pcY" = ( +/obj/structure/disposalpipe/segment, /obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 + pixel_x = -17 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) +"pdp" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"pdk" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/p_bow) "pdy" = ( /obj/structure/machinery/door_control{ id = "OTStore"; name = "Shutters"; - pixel_y = 24 + pixel_y = 24; + access_modified = 1; + req_one_access_txt = "35" }, /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -57661,6 +56004,38 @@ 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/midship_hallway) +"peM" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_s) "peO" = ( /obj/structure/sign/safety/medical{ pixel_x = -17; @@ -57693,6 +56068,23 @@ 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) +"pfe" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) "pfp" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Up4"; @@ -57703,12 +56095,27 @@ allow_construction = 0 }, /area/almayer/stair_clone) +"pfD" = ( +/obj/structure/machinery/cm_vending/sorted/marine_food, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "pfH" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"pfL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "pfM" = ( /obj/structure/machinery/light{ dir = 4 @@ -57724,13 +56131,6 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"pgt" = ( -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) "pgw" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -57756,10 +56156,15 @@ 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{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "pgM" = ( /obj/structure/reagent_dispensers/water_cooler/walk_past{ pixel_x = 10; @@ -57818,6 +56223,15 @@ icon_state = "plate" }, /area/almayer/command/combat_correspondent) +"phw" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/card{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "phN" = ( /obj/structure/disposalpipe/junction{ dir = 4; @@ -57828,6 +56242,19 @@ }, /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 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "piK" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/locked{ @@ -57837,24 +56264,17 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/perma) -"piO" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"piX" = ( -/obj/item/trash/barcardine, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "pje" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"pji" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/stern_hallway) +"pjh" = ( +/obj/structure/machinery/vending/snack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "pjj" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -57870,6 +56290,9 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"pjz" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/p_bow) "pjF" = ( /obj/structure/surface/table/almayer, /obj/item/paper, @@ -57889,18 +56312,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/midship_hallway) "pjR" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -57911,13 +56334,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"pky" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/hallways/port_hallway) "pkz" = ( /turf/open/floor/almayer{ icon_state = "redfull" @@ -57933,22 +56349,18 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"plI" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/shipboard/brig/surgery) -"pmk" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 +"plv" = ( +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_p) +"pmd" = ( +/obj/structure/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_aft_hallway) "pmq" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -57979,34 +56391,26 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"pmI" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "pmV" = ( -/obj/structure/prop/server_equipment/yutani_server/broken{ - density = 0; - desc = "A powerful server tower housing various AI functions."; - name = "server tower"; - pixel_y = 16 - }, /obj/structure/pipes/standard/simple/hidden/supply/no_boom, +/obj/structure/machinery/computer/tech_control{ + pixel_y = 16; + density = 0 + }, /turf/open/floor/almayer/no_build{ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"pno" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = 32 +"pnh" = ( +/obj/structure/ladder{ + height = 2; + id = "ForePortMaint" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/structure/sign/safety/ladder{ + pixel_x = -17 + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/p_bow) "pns" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -58018,7 +56422,7 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) "pnC" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, @@ -58040,13 +56444,21 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"poq" = ( -/obj/item/pipe{ - dir = 4; - layer = 3.5 +"pok" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "poA" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/glass/bucket/mopbucket, @@ -58057,22 +56469,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"poR" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"ppc" = ( -/obj/structure/largecrate/supply/generator, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "ppe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -58101,6 +56497,21 @@ /obj/item/device/camera, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) +"ppG" = ( +/obj/structure/bed/sofa/south/grey, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) +"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" @@ -58125,6 +56536,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/aft_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, @@ -58148,6 +56572,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{ @@ -58157,27 +56591,45 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"pqQ" = ( +"pqR" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/upper/u_f_p) "pqX" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/gym) -"pre" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" +"prf" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"pri" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = -25 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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{ - icon_state = "test_floor4" + dir = 5; + icon_state = "plating" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/vehiclehangar) "prx" = ( /obj/structure/bed/chair/comfy{ dir = 4 @@ -58202,6 +56654,19 @@ }, /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/aft_hallway) +"prX" = ( +/obj/structure/ladder{ + height = 2; + id = "AftStarboardMaint" + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/upper/u_a_s) "prY" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray, @@ -58217,18 +56682,6 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"psm" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_a_s) -"psy" = ( -/obj/structure/machinery/door/airlock/almayer/security{ - dir = 2; - name = "\improper Security Checkpoint" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "psK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58316,6 +56769,14 @@ "ptK" = ( /turf/closed/wall/almayer, /area/almayer/engineering/upper_engineering/starboard) +"ptQ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/s_stern) "ptZ" = ( /obj/structure/platform{ dir = 4; @@ -58329,6 +56790,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, @@ -58342,60 +56813,40 @@ 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 }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"puK" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) +"puJ" = ( +/obj/structure/prop/invuln/pipe_water, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) "puO" = ( /obj/structure/sign/safety/maint{ pixel_x = 32 }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north2) -"puR" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldpack, -/obj/effect/spawner/random/tool, -/turf/open/floor/almayer{ - icon_state = "plate" +"puT" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "pvh" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /obj/item/tool/warning_cone{ @@ -58405,22 +56856,25 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) -"pvt" = ( -/obj/structure/sign/safety/refridgeration{ - pixel_y = -32 +"pvE" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/obj/structure/sign/safety/medical{ - pixel_x = 15; - pixel_y = -32 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orangecorner" }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +/area/almayer/hallways/upper/aft_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 @@ -58460,19 +56914,29 @@ 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/fore_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 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"pwK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "pxj" = ( /obj/structure/bed, /obj/item/bedsheet/brown, @@ -58612,6 +57076,15 @@ icon_state = "red" }, /area/almayer/shipboard/weapon_room) +"pzc" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "pzd" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -58622,6 +57095,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{ @@ -58641,63 +57124,36 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"pzO" = ( -/obj/item/tool/warning_cone{ - pixel_y = 13 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"pzQ" = ( -/obj/structure/largecrate/random/barrel, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "pzV" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "bluecorner" }, /area/almayer/living/briefing) -"pzZ" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) +"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" +"pAV" = ( +/obj/structure/platform{ + dir = 1 }, -/area/almayer/hallways/starboard_umbilical) -"pBn" = ( -/obj/structure/sign/safety/escapepod{ - pixel_x = 8; - pixel_y = -32 +/obj/item/tool/mop, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) +"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/midship_hallway) "pBG" = ( /turf/closed/wall/almayer, /area/almayer/command/corporateliaison) -"pBW" = ( -/turf/open/floor/almayer{ - icon_state = "orangecorner" - }, -/area/almayer/hull/upper_hull/u_a_s) -"pCi" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_f_s) "pCq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -58715,18 +57171,17 @@ 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 +"pCQ" = ( +/obj/structure/surface/table/almayer, +/obj/item/attachable/lasersight, +/obj/item/reagent_container/food/drinks/cans/souto/vanilla{ + pixel_x = 10; + pixel_y = 11 }, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/upper/u_m_s) "pDh" = ( /obj/structure/machinery/power/monitor{ name = "Core Power Monitoring" @@ -58745,15 +57200,6 @@ icon_state = "tcomms" }, /area/almayer/engineering/upper_engineering/starboard) -"pDm" = ( -/obj/structure/surface/rack, -/obj/item/roller, -/obj/item/roller, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "pDo" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -58832,10 +57278,14 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"pEy" = ( -/obj/item/ammo_casing/bullet, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +"pEA" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/fore_hallway) "pEB" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -58869,18 +57319,51 @@ icon_state = "test_floor4" }, /area/almayer/lifeboat_pumps/south1) -"pFM" = ( -/obj/structure/machinery/light/small{ - dir = 8 +"pFq" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/binoculars, +/obj/item/device/whistle{ + pixel_y = 5 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) +"pFr" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"pFJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) +"pGh" = ( +/obj/effect/decal/cleanable/cobweb{ + pixel_x = -9; + pixel_y = 19 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"pFP" = ( -/obj/effect/landmark/yautja_teleport, +/area/almayer/maint/hull/upper/u_m_p) +"pGj" = ( +/obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/lower/l_a_s) +"pGG" = ( +/obj/effect/landmark/start/doctor, +/obj/structure/sign/safety/maint{ + pixel_y = 26 + }, +/obj/effect/landmark/late_join/doctor, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "pGK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -58892,21 +57375,6 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) -"pGM" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"pGP" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/lights/bulbs{ - pixel_x = 3; - pixel_y = 7 - }, -/obj/item/storage/box/lights/mixed, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "pGT" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -58917,6 +57385,26 @@ 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) +"pHj" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_p) "pHp" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/perma) @@ -58926,6 +57414,23 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"pHD" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer{ + 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 @@ -58944,17 +57449,40 @@ /obj/structure/surface/table/almayer, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) -"pIk" = ( -/obj/structure/ladder{ - height = 1; - id = "AftStarboardMaint" +"pIf" = ( +/obj/structure/mirror{ + pixel_x = 28 }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_a_s) +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/maint/upper/u_a_s) +"pIo" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"pIC" = ( +/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" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/constr) "pIU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -58978,6 +57506,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 @@ -58986,31 +57524,6 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"pJt" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/stern) -"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 @@ -59030,12 +57543,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"; @@ -59045,23 +57552,49 @@ /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) -"pJW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 1; - req_access = null; - req_one_access = null; - req_one_access_txt = "3;22;19" +"pKh" = ( +/obj/structure/machinery/alarm/almayer{ + dir = 1 + }, +/obj/effect/landmark/start/nurse, +/obj/effect/landmark/late_join/nurse, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) +"pKB" = ( +/obj/structure/surface/rack, +/obj/item/circuitboard/firealarm, +/obj/item/circuitboard, +/obj/item/clipboard, +/turf/open/floor/almayer{ + 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/hull/lower_hull/l_f_s) +/area/almayer/hallways/lower/repair_bay) "pKZ" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -59114,10 +57647,6 @@ icon_state = "cargo" }, /area/almayer/living/pilotbunks) -"pLZ" = ( -/obj/effect/landmark/crap_item, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "pMj" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -59148,6 +57677,13 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"pMH" = ( +/obj/item/tool/wet_sign, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "pMJ" = ( /obj/structure/bed/chair{ dir = 1 @@ -59175,41 +57711,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) -"pNp" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) -"pNG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "pNM" = ( /obj/structure/platform{ dir = 4 @@ -59236,20 +57737,28 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/offices) -"pOB" = ( -/obj/item/trash/cigbutt{ - pixel_x = -10; - pixel_y = 13 - }, -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice10"; - pixel_x = -16; - pixel_y = 16 +"pOp" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) +/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/port) "pOD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment{ @@ -59260,11 +57769,27 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) +"pOH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "pON" = ( /turf/open/floor/almayer/uscm/directional{ 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{ @@ -59275,6 +57800,16 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"pPd" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "OuterShutter"; + name = "\improper Saferoom Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "pPv" = ( /obj/structure/closet/cabinet, /obj/item/reagent_container/food/drinks/bottle/wine, @@ -59299,12 +57834,14 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) -"pPz" = ( -/obj/structure/machinery/vending/cola, -/turf/open/floor/almayer{ - icon_state = "plate" +"pPy" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = -32 }, -/area/almayer/hull/upper_hull/u_a_s) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "pPA" = ( /obj/structure/sign/poster{ desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; @@ -59321,6 +57858,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"pPG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "pPM" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -59335,6 +57881,15 @@ 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) "pQr" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -59358,13 +57913,16 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"pQG" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +"pQI" = ( +/obj/structure/machinery/power/apc/almayer{ + cell_type = /obj/item/cell/hyper; + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +/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, @@ -59407,19 +57965,15 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"pRs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "pRy" = ( /turf/open/floor/almayer/research/containment/corner_var1{ 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 @@ -59451,13 +58005,6 @@ icon_state = "test_floor5" }, /area/almayer/medical/hydroponics) -"pRY" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) "pRZ" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -59465,15 +58012,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/midship_hallway) "pSQ" = ( /obj/structure/reagent_dispensers/fueltank{ anchored = 1 @@ -59489,13 +58045,6 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"pTc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = -17 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "pTj" = ( /obj/structure/barricade/handrail{ dir = 8 @@ -59514,14 +58063,16 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) -"pTT" = ( -/obj/structure/platform{ - dir = 4 +"pTX" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/maint/hull/lower/l_f_p) "pUd" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -59543,14 +58094,6 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) -"pUi" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/item/tool/crowbar{ - pixel_x = 6; - pixel_y = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "pUj" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer, @@ -59598,34 +58141,23 @@ icon_state = "redfull" }, /area/almayer/shipboard/brig/processing) -"pUJ" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"pUY" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"pVu" = ( -/obj/item/paper/prison_station/interrogation_log{ - pixel_x = 10; - pixel_y = 7 - }, -/obj/structure/largecrate/random/barrel/green, -/obj/item/limb/hand/l_hand{ - pixel_x = -5; - pixel_y = 14 - }, -/obj/effect/spawner/random/balaclavas, +"pUL" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/rifle/m41a, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/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{ @@ -59673,14 +58205,27 @@ }, /turf/open/floor/almayer, /area/almayer/command/corporateliaison) -"pVZ" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_a_s) +"pVI" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "pWb" = ( /obj/effect/landmark/start/marine/tl/delta, /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) +"pWd" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "pWr" = ( /obj/structure/surface/rack, /obj/item/tool/minihoe{ @@ -59708,6 +58253,16 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) +"pWw" = ( +/obj/structure/bed/chair, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "pWN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -59726,20 +58281,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"pXn" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -12; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "pXx" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -59748,15 +58289,6 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"pXQ" = ( -/obj/structure/sign/safety/intercom{ - pixel_x = 32; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "pXV" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -59772,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{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) "pYo" = ( @@ -59803,6 +58350,24 @@ }, /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"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "pYS" = ( /obj/structure/pipes/binary/pump/on{ dir = 4 @@ -59818,12 +58383,6 @@ icon_state = "silvercorner" }, /area/almayer/shipboard/brig/cic_hallway) -"pZo" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_umbilical) "pZH" = ( /obj/structure/machinery/shower{ dir = 8 @@ -59865,12 +58424,28 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"qaD" = ( +"qan" = ( /obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" +/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" }, -/area/almayer/hull/lower_hull/l_a_s) +/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; @@ -59885,23 +58460,6 @@ icon_state = "red" }, /area/almayer/living/briefing) -"qaZ" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_f_s) -"qbd" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "qbx" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -59945,12 +58503,6 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) -"qce" = ( -/obj/item/trash/cigbutt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "qck" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/machinery/computer/cameras/wooden_tv/almayer{ @@ -59958,12 +58510,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; @@ -59973,6 +58519,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/midship_hallway) "qdk" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -60046,6 +58599,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{ @@ -60056,14 +58615,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"qee" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "qej" = ( /obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ @@ -60142,6 +58693,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"; @@ -60177,6 +58734,21 @@ }, /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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "qga" = ( /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ dir = 1 @@ -60202,34 +58774,15 @@ }, /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) -"qgH" = ( -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 6 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "qgK" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/generic/press{ dir = 1; name = "\improper Combat Correspondent Room" }, -/turf/open/floor/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/almayer/command/combat_correspondent) "qgN" = ( /obj/structure/bed/chair{ @@ -60260,12 +58813,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" @@ -60283,14 +58830,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"qhB" = ( -/obj/structure/closet, -/obj/item/clothing/glasses/mgoggles/prescription, -/obj/item/clothing/glasses/mbcg, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "qhD" = ( /obj/structure/closet{ name = "backpack storage" @@ -60303,6 +58842,31 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop/hangar) +"qhG" = ( +/obj/structure/surface/table/almayer, +/obj/item/ashtray/bronze{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/ash, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = 4; + pixel_y = 13 + }, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = -7; + pixel_y = 14 + }, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = -13; + pixel_y = 8 + }, +/obj/item/trash/cigbutt/ucigbutt{ + pixel_x = -6; + pixel_y = 9 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "qhU" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -60318,15 +58882,22 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"qic" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"qid" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"qig" = ( +/obj/effect/landmark/yautja_teleport, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull) +/area/almayer/maint/hull/lower/l_f_s) "qih" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -60337,6 +58908,9 @@ icon_state = "test_floor4" }, /area/almayer/living/tankerbunks) +"qii" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "qim" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -60348,14 +58922,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{ @@ -60363,12 +58932,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/chapel) -"qiI" = ( -/obj/structure/girder/displaced, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "qjz" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/clipboard, @@ -60385,11 +58948,34 @@ 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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "qjN" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"qjT" = ( +/obj/structure/surface/table/almayer, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "qjV" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -60401,30 +58987,11 @@ "qjZ" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/stern_point_defense) -"qkb" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "qki" = ( /obj/effect/landmark/start/marine/smartgunner/charlie, /obj/effect/landmark/late_join/charlie, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/charlie) -"qkn" = ( -/obj/structure/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; @@ -60461,13 +59028,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{ @@ -60485,6 +59045,12 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) +"qlu" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "qlz" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -60502,21 +59068,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{ @@ -60531,6 +59092,27 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) +"qmq" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "qmy" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/door_control{ @@ -60566,21 +59148,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 @@ -60593,12 +59160,19 @@ icon_state = "dark_sterile" }, /area/almayer/medical/medical_science) -"qmL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 +"qmM" = ( +/obj/structure/bed/chair{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/obj/item/device/radio/intercom{ + freerange = 1; + name = "Saferoom Channel"; + pixel_y = -28 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "qmP" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm, @@ -60636,6 +59210,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/lifeboat_pumps/north2) "qnh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60660,6 +59243,14 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"qnA" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/tool/crowbar{ + pixel_x = 6; + pixel_y = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "qnC" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -60675,18 +59266,6 @@ icon_state = "test_floor4" }, /area/almayer/living/pilotbunks) -"qnP" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "qom" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/chem_dispenser/soda{ @@ -60732,6 +59311,11 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"qoN" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_p) "qoR" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -60758,6 +59342,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/aft_hallway) "qpQ" = ( /obj/item/reagent_container/glass/beaker/bluespace, /obj/structure/machinery/chem_dispenser/medbay, @@ -60765,6 +59356,29 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/chemistry) +"qpV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/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/midship_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"; @@ -60787,17 +59401,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{ @@ -60822,16 +59425,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"qqV" = ( -/obj/structure/machinery/cm_vending/clothing/military_police_warden, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/chief_mp_office) -"qqW" = ( -/obj/structure/closet/firecloset, +"qqS" = ( +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/hull/upper/s_stern) "qra" = ( /obj/structure/reagent_dispensers/fueltank/custom, /turf/open/floor/almayer{ @@ -60856,12 +59455,10 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"qsd" = ( -/obj/structure/largecrate/random, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"qsp" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "qsC" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/junction, @@ -60875,9 +59472,6 @@ /turf/open/floor/almayer, /area/almayer/engineering/ce_room) "qtj" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; layer = 2.5 @@ -60885,29 +59479,20 @@ /obj/effect/decal/warning_stripes{ icon_state = "NW-out" }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "red" }, /area/almayer/hallways/upper/port) -"qtn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) "qtv" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/gym) -"qtS" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) "quj" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -60936,7 +59521,6 @@ }, /area/almayer/medical/cryo_tubes) "quy" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ pixel_x = 8; pixel_y = -32 @@ -60945,29 +59529,8 @@ icon_state = "SW-out"; pixel_x = -1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer, /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 @@ -61012,6 +59575,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 @@ -61033,6 +59614,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/fore_hallway) "qwo" = ( /obj/structure/machinery/washing_machine, /obj/structure/machinery/washing_machine{ @@ -61074,11 +59662,17 @@ pixel_y = -8; req_one_access_txt = "90;91;92" }, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) +"qwY" = ( +/obj/structure/machinery/vending/coffee, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_s) "qxe" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1 @@ -61133,12 +59727,6 @@ icon_state = "test_floor4" }, /area/almayer/powered) -"qxA" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "qxC" = ( /obj/structure/machinery/door/airlock/almayer/generic{ id = "Alpha_1"; @@ -61165,6 +59753,21 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"qxI" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) +"qxJ" = ( +/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/fore_hallway) "qxL" = ( /obj/structure/machinery/medical_pod/autodoc, /turf/open/floor/almayer{ @@ -61215,21 +59818,13 @@ 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" +"qyG" = ( +/obj/structure/sign/safety/hazard{ + desc = "A sign that warns of a hazardous environment nearby"; + name = "\improper Warning: Hazardous Environment" }, -/area/almayer/hallways/vehiclehangar) +/turf/closed/wall/almayer, +/area/almayer/maint/hull/lower/l_f_p) "qyK" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -61237,6 +59832,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 @@ -61245,6 +59855,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, @@ -61268,6 +59885,18 @@ icon_state = "plating" }, /area/almayer/shipboard/port_point_defense) +"qzA" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) +"qzQ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) "qAs" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -61277,6 +59906,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" @@ -61297,6 +59936,29 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"qAG" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"qAK" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/ashtray/plastic, +/obj/item/trash/cigbutt{ + pixel_x = 4 + }, +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "qAT" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, @@ -61319,6 +59981,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"qBl" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "qBq" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -61342,6 +60010,18 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"qBS" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "qCc" = ( /obj/structure/sign/safety/security{ pixel_x = 15; @@ -61352,12 +60032,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"qCi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "qCo" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -61368,6 +60042,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"; @@ -61375,6 +60059,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"qCH" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Secretroom"; + indestructible = 1; + unacidable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) "qCU" = ( /obj/structure/machinery/light{ dir = 4 @@ -61409,20 +60103,12 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) -"qDv" = ( -/obj/structure/closet, -/obj/item/stack/sheet/glass/large_stack, -/obj/item/device/lightreplacer, -/obj/item/reagent_container/spray/cleaner, -/obj/item/stack/rods{ - amount = 40 - }, -/obj/item/tool/weldingtool, -/obj/item/clothing/glasses/welding, +"qDB" = ( +/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/upper/u_a_p) "qDN" = ( /obj/structure/machinery/light{ dir = 8 @@ -61441,6 +60127,22 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) +"qDS" = ( +/obj/item/stack/tile/carpet{ + amount = 20 + }, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"qDX" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/upper/aft_hallway) +"qEc" = ( +/obj/effect/step_trigger/clone_cleaner, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) "qEk" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -61454,6 +60156,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{ @@ -61475,6 +60186,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{ @@ -61499,33 +60229,34 @@ icon_state = "plate" }, /area/almayer/engineering/lower) -"qEW" = ( -/obj/structure/sign/poster/ad{ - pixel_x = 30 +"qEM" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" }, -/obj/structure/closet, -/obj/item/clothing/mask/cigarette/weed, +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_s) -"qFb" = ( -/obj/structure/sign/safety/storage{ - pixel_y = -32 +/area/almayer/hallways/lower/port_fore_hallway) +"qEZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "dark_sterile" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/upper/u_a_s) "qFi" = ( /obj/structure/bed/chair/comfy/black{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/chief_mp_office) -"qFl" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/upper_hull/u_f_p) "qFu" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -61563,15 +60294,19 @@ icon_state = "bluefull" }, /area/almayer/squads/delta) -"qFW" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = 32 +"qFS" = ( +/obj/structure/largecrate/random/barrel/yellow, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/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; @@ -61595,50 +60330,45 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) +"qGC" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "qGF" = ( /obj/structure/machinery/optable, /turf/open/floor/almayer{ 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/midship_hallway) "qGU" = ( /obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/lifeboat_pumps/south2) -"qHb" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "Saferoom Channel"; - pixel_y = -28 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"qGZ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_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; @@ -61649,6 +60379,23 @@ icon_state = "test_floor4" }, /area/almayer/powered) +"qHu" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"qHA" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_a_s) +"qHG" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "qHM" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -61659,6 +60406,23 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"qIa" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor/almayer{ + 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; @@ -61739,21 +60503,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) -"qJF" = ( -/obj/structure/largecrate/supply, -/obj/item/tool/crowbar, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hull/upper_hull/u_f_p) -"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; @@ -61797,6 +60546,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"qKb" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/lights/tubes{ + pixel_x = -8 + }, +/obj/item/storage/box/lights/tubes{ + pixel_x = 5 + }, +/obj/item/storage/box/lights/tubes{ + pixel_y = 10 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "qKi" = ( /obj/effect/decal/warning_stripes{ icon_state = "E" @@ -61809,16 +60571,15 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"qKt" = ( -/obj/structure/closet/emcloset, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +"qKl" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = 32; + pixel_y = 7 }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/shipboard/panic) "qKz" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -61826,27 +60587,24 @@ icon_state = "silver" }, /area/almayer/command/securestorage) -"qKF" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/device/radio/headset/almayer/mt, +"qKK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_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 +/area/almayer/maint/hull/lower/l_a_p) +"qKU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "greencorner" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "qKY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -61879,23 +60637,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, @@ -61929,20 +60670,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" = ( @@ -61953,15 +60684,13 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"qMf" = ( -/obj/structure/bed/chair, -/turf/open/floor/almayer{ - icon_state = "plate" +"qLY" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, -/area/almayer/hull/upper_hull/u_a_p) -"qMu" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "qMD" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/flashbangs, @@ -62003,22 +60732,15 @@ icon_state = "cargo" }, /area/almayer/squads/delta) -"qNy" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"qNG" = ( +"qNe" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sign/safety/autoopenclose{ - pixel_x = 8; - pixel_y = -32 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "qNI" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -62028,6 +60750,20 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) +"qNK" = ( +/obj/structure/largecrate/random/barrel/red, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/fire_haz{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_f_s) "qNR" = ( /obj/structure/disposalpipe/junction, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -62062,19 +60798,43 @@ /obj/structure/disposalpipe/junction, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/gym) -"qOU" = ( +"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 + }, +/turf/open/floor/almayer{ + 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/hull/lower_hull/l_f_p) -"qPg" = ( -/obj/item/tool/warning_cone{ - pixel_x = -12; - pixel_y = 16 +/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" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/midship_hallway) "qPD" = ( /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) @@ -62091,9 +60851,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{ @@ -62103,6 +60860,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{ @@ -62136,31 +60897,29 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"qQP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/nonpress_ag{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/west{ - pixel_y = -32 +"qQG" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer{ + dir = 6; + icon_state = "red" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/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; @@ -62190,6 +60949,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/fore_hallway) "qSm" = ( /obj/structure/pipes/vents/pump{ dir = 4 @@ -62203,6 +60971,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; @@ -62224,6 +61000,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 @@ -62236,12 +61020,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 @@ -62250,12 +61028,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"qUj" = ( -/obj/structure/largecrate/random/case/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "qUp" = ( /obj/structure/surface/table/almayer, /turf/open/shuttle/dropship{ @@ -62295,18 +61067,26 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"qUE" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out" +"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_x = -2; + pixel_y = -11 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) -"qUH" = ( -/obj/structure/surface/rack, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/command/combat_correspondent) "qUL" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 @@ -62318,6 +61098,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{ @@ -62340,14 +61125,17 @@ icon_state = "plate" }, /area/almayer/living/captain_mess) +"qVE" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "qVF" = ( /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/shipboard/brig/execution) -"qVM" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_m_p) "qVS" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; @@ -62361,17 +61149,6 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) -"qVU" = ( -/obj/structure/surface/rack, -/obj/item/tool/weldingtool, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "qWt" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -62391,12 +61168,34 @@ 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 + }, +/obj/item/frame/rack, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "qWQ" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -62411,12 +61210,38 @@ dir = 4 }, /area/almayer/medical/containment/cell/cl) -"qWT" = ( -/obj/effect/landmark/yautja_teleport, +"qWS" = ( +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/pill/happy{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/prop/helmetgarb/prescription_bottle{ + pixel_x = 9 + }, +/obj/item/tool/surgery/bonegel/empty{ + pixel_x = 4; + pixel_y = 15 + }, +/obj/item/tool/surgery/bonegel/empty{ + pixel_x = -8; + pixel_y = 13 + }, +/obj/item/tool/surgery/bonegel/empty{ + layer = 3.01; + pixel_x = -5; + pixel_y = 19 + }, +/obj/item/storage/box/gloves{ + layer = 3.2; + pixel_x = -5; + pixel_y = 2 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "sterile_green_corner" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/medical/lower_medical_medbay) "qXk" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -62448,14 +61273,6 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) -"qXM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "qXO" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/snacks/mre_pack/xmas3{ @@ -62474,9 +61291,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"qXR" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/stern) "qXS" = ( /obj/structure/stairs{ icon_state = "ramptop" @@ -62506,14 +61320,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; @@ -62536,15 +61342,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{ @@ -62565,9 +61362,6 @@ /area/almayer/command/lifeboat) "qYN" = ( /obj/structure/surface/table/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/machinery/light{ dir = 1 }, @@ -62590,10 +61384,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie_delta_shared) -"qYW" = ( -/obj/item/clothing/shoes/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "qYZ" = ( /obj/structure/sign/safety/security{ pixel_y = -32 @@ -62604,6 +61394,20 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) +"qZy" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice2"; + pixel_x = 16; + pixel_y = 16 + }, +/obj/structure/largecrate/supply/supplies/flares, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "qZA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -62641,6 +61445,21 @@ icon_state = "greenfull" }, /area/almayer/living/offices) +"qZK" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/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 @@ -62655,18 +61474,19 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower/engine_core) -"rav" = ( -/obj/structure/platform{ - dir = 4 - }, -/obj/item/reagent_container/glass/rag, -/obj/structure/machinery/light/small{ - dir = 4 +"rao" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" }, +/area/almayer/lifeboat_pumps/south2) +"raE" = ( +/obj/structure/machinery/light, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/port_fore_hallway) "raK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62679,30 +61499,31 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"rbi" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/ids{ - pixel_x = -6; - pixel_y = 8 +"raO" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/item/device/flash, -/obj/structure/machinery/light{ - dir = 8; - invisibility = 101 +/area/almayer/maint/hull/upper/u_f_p) +"rbd" = ( +/obj/structure/barricade/handrail{ + dir = 8 + }, +/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) -"rbv" = ( -/obj/structure/machinery/light/small{ +/area/almayer/hallways/lower/starboard_midship_hallway) +"rbp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "rby" = ( /obj/structure/machinery/door_control{ id = "ARES Mainframe Left"; @@ -62711,9 +61532,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{ @@ -62753,16 +61572,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{ @@ -62787,14 +61596,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"rcH" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"rcG" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/area/almayer/hull/lower_hull/l_f_p) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "rcS" = ( /obj/structure/machinery/computer/cryopod/eng{ dir = 8 @@ -62815,19 +61623,18 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"rdr" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/box/lights/tubes{ - pixel_x = -8 +"rdo" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/obj/item/storage/box/lights/tubes{ - pixel_x = 5 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/item/storage/box/lights/tubes{ - pixel_y = 10 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/fore_hallway) "rdt" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -62855,9 +61662,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"rdK" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_a_s) "rdM" = ( /obj/structure/machinery/vending/snack, /obj/structure/machinery/status_display{ @@ -62870,6 +61674,12 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/general_equipment) +"rdN" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "rdS" = ( /obj/structure/machinery/light{ dir = 8 @@ -62884,15 +61694,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 @@ -62913,6 +61720,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; @@ -62936,6 +61748,24 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) +"reM" = ( +/obj/structure/machinery/power/smes/buildable, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/high_voltage{ + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) +"reN" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) "rfa" = ( /obj/effect/landmark/start/marine/medic/alpha, /obj/effect/landmark/late_join/alpha, @@ -62949,17 +61779,11 @@ icon_state = "containment_window_h" }, /area/almayer/medical/containment/cell/cl) -"rfg" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 - }, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) +"rfB" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "rfI" = ( /obj/structure/sign/safety/airlock{ pixel_y = -32 @@ -63002,18 +61826,23 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"rgk" = ( +/obj/structure/platform_decoration{ + dir = 1 + }, +/turf/open/floor/almayer{ + 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 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"rgA" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "rgK" = ( /obj/structure/pipes/vents/scrubber{ dir = 8 @@ -63033,22 +61862,26 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) +"rgL" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_p) "rgW" = ( /turf/open/floor/almayer{ icon_state = "emeraldcorner" }, /area/almayer/living/briefing) -"rhl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ +"rhm" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"rht" = ( +/obj/structure/machinery/vending/cola, /turf/open/floor/almayer{ - icon_state = "redcorner" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/upper/s_stern) "rhy" = ( /obj/structure/surface/table/almayer, /obj/item/device/flashlight/lamp{ @@ -63063,6 +61896,12 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) +"rhD" = ( +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "rhO" = ( /obj/structure/machinery/vending/cola/research{ pixel_x = 4 @@ -63087,17 +61926,41 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) -"ril" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = 17 +"rir" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/upper/s_bow) +"riB" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"riC" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "riE" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -63116,13 +61979,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"riM" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/sign/safety/water{ - pixel_x = -17 +"riK" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silvercorner" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/midship_hallway) "riP" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/rewire{ @@ -63148,6 +62010,17 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"rjF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "rjG" = ( /obj/structure/pipes/standard/tank/oxygen, /turf/open/floor/almayer{ @@ -63214,24 +62087,27 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"rku" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/tool/wrench{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/tool/wrench{ - pixel_x = 2; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "rkz" = ( /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, @@ -63268,21 +62144,15 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"rlz" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 +"rlD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/repair_bay) "rlQ" = ( /turf/open/floor/almayer{ dir = 1; @@ -63314,18 +62184,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, @@ -63334,6 +62201,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/midship_hallway) "rmD" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -63351,13 +62230,24 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/upper_engineering/port) -"rmN" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "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/fore_hallway) "rnF" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -63380,16 +62270,8 @@ 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) -"rnM" = ( -/obj/structure/machinery/vending/cigarette, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "rnN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/sign/nosmoking_2{ @@ -63404,15 +62286,12 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) -"rod" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 8 - }, +"roj" = ( +/obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/p_bow) "rou" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -63453,36 +62332,27 @@ }, /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/lifeboat_pumps/south2) "rpp" = ( /obj/effect/landmark/start/executive, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/bridgebunks) -"rpF" = ( -/obj/structure/machinery/body_scanconsole{ - dir = 8 +"rpG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "sterile_green_side" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/maint/hull/upper/u_m_s) "rpK" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -63492,18 +62362,10 @@ icon_state = "plate" }, /area/almayer/command/cichallway) -"rpW" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) +"rpP" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "rqb" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_x = 32 @@ -63520,15 +62382,38 @@ }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"rqw" = ( -/obj/structure/machinery/alarm/almayer{ - dir = 1 +"rqv" = ( +/obj/structure/sign/poster/safety, +/turf/closed/wall/almayer, +/area/almayer/maint/lower/s_bow) +"rqz" = ( +/obj/structure/sign/safety/autoopenclose{ + pixel_y = 32 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "green" +/obj/structure/sign/safety/water{ + pixel_x = 15; + pixel_y = 32 }, -/area/almayer/hallways/port_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"rqD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) "rqE" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -63540,6 +62425,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{ @@ -63555,13 +62447,15 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/evidence_storage) -"rri" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"rrh" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Under Construction Shutters"; + name = "\improper Construction Site" }, -/obj/structure/window/framed/almayer, -/turf/open/floor/plating, -/area/almayer/living/offices/flight) +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/constr) "rrq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63592,6 +62486,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/aft_hallway) "rrK" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -63617,35 +62518,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" - }, -/area/almayer/hallways/port_hallway) -"rsx" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 32; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" +"rrU" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hull/lower_hull/l_f_s) +/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 @@ -63655,18 +62546,57 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"rsN" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "rsO" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"rsY" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 +"rsP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/autoopenclose{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"rsS" = ( +/obj/structure/machinery/door_control{ + id = "panicroomback"; + name = "\improper Safe Room"; + pixel_x = -25; + req_one_access_txt = "3" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"rsV" = ( +/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/hull/upper_hull/u_a_s) +/area/almayer/command/combat_correspondent) "rtd" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -63679,7 +62609,7 @@ "rtj" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, /area/almayer/squads/req) "rtA" = ( @@ -63776,18 +62706,50 @@ "rvA" = ( /turf/open/floor/almayer, /area/almayer/living/numbertwobunks) +"rvI" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/structure/largecrate/random, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "rvT" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ icon_state = "emerald" }, /area/almayer/squads/charlie) -"rwb" = ( -/obj/structure/largecrate/random/barrel/white, +"rwe" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -16 + }, +/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{ - icon_state = "plate" + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/upper/midship_hallway) +"rwj" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "rwq" = ( /obj/structure/sign/safety/cryo{ pixel_x = 7; @@ -63812,11 +62774,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower) -"rwS" = ( -/obj/structure/machinery/light/small, -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "rwY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -63828,28 +62785,26 @@ }, /turf/open/floor/plating, /area/almayer/living/pilotbunks) -"rxk" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, +"rwZ" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/u_f_p) +"rxe" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"rxG" = ( -/obj/structure/sign/safety/medical{ - pixel_x = 8; - pixel_y = -32 +/area/almayer/maint/hull/lower/l_m_p) +"rxq" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/lower/l_m_p) "rxK" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -63860,11 +62815,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{ @@ -63891,38 +62841,52 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) -"rzN" = ( -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/medical/containment) -"rzP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +"rzk" = ( +/obj/item/tool/screwdriver, +/obj/structure/platform_decoration{ + dir = 8 }, -/obj/structure/machinery/door/airlock/almayer/maint, /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_s) -"rzY" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 + 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{ - dir = 1; - icon_state = "red" + icon_state = "dark_sterile" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/medical/containment) "rAb" = ( /turf/open/floor/almayer{ icon_state = "bluecorner" }, /area/almayer/living/briefing) +"rAo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"rAw" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 8 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 32; + pixel_y = -7 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_f_s) "rAx" = ( /obj/structure/disposalpipe/junction{ dir = 4 @@ -63965,20 +62929,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{ @@ -64002,16 +62952,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{ @@ -64029,6 +62969,12 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"rBD" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_p) "rBH" = ( /obj/structure/machinery/constructable_frame{ icon_state = "box_2" @@ -64037,20 +62983,20 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"rBV" = ( -/obj/structure/bed/chair/bolted, +"rCh" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ - dir = 9; - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/lower/l_m_p) "rCi" = ( /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{ @@ -64062,15 +63008,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"rCp" = ( -/obj/structure/largecrate/random/case/small, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "rCw" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_AresDown"; @@ -64083,9 +63020,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{ @@ -64109,22 +63044,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 @@ -64157,12 +63076,15 @@ icon_state = "green" }, /area/almayer/squads/req) -"rDi" = ( -/obj/structure/sign/safety/water{ - pixel_x = -17 - }, +"rDf" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/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/midship_hallway) "rDr" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -64199,57 +63121,52 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"rDB" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 13" - }, -/obj/structure/sign/safety/rad_haz{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) -"rDI" = ( -/obj/structure/largecrate/supply, -/obj/structure/sign/safety/bulkhead_door{ - pixel_y = 32 +"rDH" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"rDO" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/lower/port_fore_hallway) "rDQ" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/shipboard/brig/cryo) +"rDR" = ( +/obj/structure/machinery/vending/coffee, +/obj/item/toy/bikehorn/rubberducky{ + desc = "You feel as though this rubber duck has been here for a long time. It's Mr. Quackers! He loves you!"; + name = "Quackers"; + pixel_x = 5; + pixel_y = 17 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "rDV" = ( /obj/structure/bed/chair/comfy{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/medical_science) -"rDY" = ( -/obj/item/stack/sheet/glass/reinforced{ - amount = 50 - }, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/obj/structure/surface/rack, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 1; - name = "ship-grade camera" +"rEd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "laddersouthwest"; + name = "\improper South West Ladders Shutters" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/chief_mp_office) -"rEb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/hallways/lower/port_fore_hallway) "rEf" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -64266,17 +63183,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower) -"rEn" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/adv{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/storage/firstaid/regular, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "rEr" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer3" @@ -64285,12 +63191,17 @@ icon_state = "outerhull_dir" }, /area/space) -"rEu" = ( -/obj/structure/largecrate/random/case/double, +"rEs" = ( /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "orange" }, -/area/almayer/hallways/vehiclehangar) +/area/almayer/maint/upper/u_a_s) +"rEt" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_f_s) "rEv" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -64304,28 +63215,25 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"rEK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "rEL" = ( /obj/structure/machinery/cm_vending/gear/intelligence_officer, /turf/open/floor/almayer{ 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{ @@ -64362,15 +63270,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{ @@ -64384,33 +63283,32 @@ 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/lifeboat_pumps/north2) "rGj" = ( /turf/open/floor/almayer{ icon_state = "red" }, /area/almayer/squads/alpha) -"rGl" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, +"rGr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) +"rGz" = ( +/obj/structure/closet/firecloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/u_m_s) "rGE" = ( /obj/structure/machinery/door/airlock/almayer/command{ name = "\improper Conference Room" @@ -64435,6 +63333,15 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"rGL" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "rGU" = ( /obj/structure/machinery/computer/skills{ req_one_access_txt = "200" @@ -64452,6 +63359,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/fore_hallway) "rHo" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ layer = 1.9 @@ -64471,10 +63385,19 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_medbay) -"rHs" = ( -/obj/item/storage/firstaid, +"rHq" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/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 @@ -64486,6 +63409,17 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"rHB" = ( +/obj/item/ammo_box/magazine/misc/mre/empty{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/reagent_container/food/drinks/cans/aspen{ + pixel_x = 11; + pixel_y = -3 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_stern) "rHN" = ( /obj/structure/pipes/vents/pump/on, /turf/open/floor/plating/plating_catwalk, @@ -64518,12 +63452,27 @@ icon_state = "test_floor4" }, /area/almayer/medical/lower_medical_lobby) +"rIw" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/s_bow) "rID" = ( /turf/open/floor/almayer{ dir = 6; icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"rIE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "rIH" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -64531,17 +63480,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"rII" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 2; - id = "OuterShutter"; - name = "\improper Saferoom Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "rIO" = ( /obj/structure/machinery/vending/snack, /obj/item/clothing/head/cmcap/boonie/tan{ @@ -64552,6 +63490,27 @@ 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 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "rIW" = ( /obj/structure/machinery/cm_vending/gear/synth, /obj/effect/decal/cleanable/cobweb2, @@ -64559,13 +63518,12 @@ icon_state = "cargo" }, /area/almayer/living/synthcloset) -"rJb" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 +"rJf" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/l_a_p) "rJh" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -64624,39 +63582,14 @@ /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 - }, +"rJY" = ( +/obj/item/book/manual/medical_diagnostics_manual, +/obj/structure/surface/rack, /turf/open/floor/almayer{ dir = 5; icon_state = "red" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/upper/u_a_p) "rKd" = ( /turf/open/floor/almayer/uscm/directional{ dir = 5 @@ -64675,22 +63608,6 @@ icon_state = "rasputin15" }, /area/almayer/powered/agent) -"rKs" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - req_one_access = null; - req_one_access_txt = "2;30;34" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_s) -"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 @@ -64734,6 +63651,30 @@ icon_state = "containment_window_h" }, /area/almayer/medical/containment/cell/cl) +"rLH" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/binoculars{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/device/binoculars, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) +"rLK" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/hvac_old{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/cryo_cells) "rLP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -64751,6 +63692,20 @@ 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 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/lower/s_bow) "rMT" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -64811,9 +63766,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 +63783,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 +63792,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 @@ -64870,14 +63822,28 @@ icon_state = "plate" }, /area/almayer/living/gym) +"rPq" = ( +/obj/structure/machinery/constructable_frame{ + icon_state = "box_2" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "rPt" = ( /turf/open/floor/wood/ship, /area/almayer/engineering/ce_room) -"rPC" = ( +"rPB" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 1; + icon_state = "blue" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/hallways/upper/fore_hallway) "rPE" = ( /obj/structure/bed/chair{ dir = 8; @@ -64887,6 +63853,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; @@ -64914,12 +63885,14 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"rQj" = ( -/obj/structure/largecrate/random/barrel/yellow, +"rQs" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/hull/lower/l_f_p) "rQt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -64927,6 +63900,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) +"rQw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 2 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/panic) "rQy" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/hydroponics) @@ -64936,12 +63923,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/delta) -"rQU" = ( -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "rQV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64967,23 +63948,24 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"rRq" = ( -/turf/closed/wall/almayer, -/area/almayer/lifeboat_pumps/south2) -"rRr" = ( -/obj/structure/machinery/light{ - dir = 1 +"rRb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/obj/structure/surface/table/almayer, -/obj/item/toy/deck/uno, -/obj/item/toy/deck{ - pixel_x = -9 +/area/almayer/maint/upper/u_m_s) +"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/port) +"rRq" = ( +/turf/closed/wall/almayer, +/area/almayer/lifeboat_pumps/south2) "rRz" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -65029,6 +64011,30 @@ icon_state = "orangefull" }, /area/almayer/squads/alpha_bravo_shared) +"rSx" = ( +/obj/structure/surface/table/almayer, +/obj/item/stack/rods/plasteel{ + amount = 36 + }, +/obj/item/stack/catwalk{ + amount = 60; + pixel_x = 5; + pixel_y = 4 + }, +/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 @@ -65043,30 +64049,43 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"rSK" = ( -/obj/structure/machinery/light/small, +"rSR" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/cryo{ + pixel_x = 36 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/cryo_cells) +"rTe" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/janitorialcart, +/obj/item/tool/mop, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/upper/u_f_p) "rTk" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, /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{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"rTV" = ( -/obj/structure/sign/safety/security{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "rTZ" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -65082,12 +64101,25 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"rUi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "rUk" = ( /obj/structure/bed/chair/wood/normal{ dir = 1 }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"rUq" = ( +/obj/effect/landmark/start/nurse, +/obj/effect/landmark/late_join/nurse, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "rUy" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -65096,44 +64128,47 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"rUU" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - req_access = null; - req_one_access = null - }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - dir = 4; - id = "panicroomback"; - name = "\improper Safe Room Shutters" +"rVc" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"rVm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/area/almayer/maint/hull/lower/l_f_p) +"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/shipboard/brig/main_office) -"rVo" = ( -/obj/structure/machinery/light/small{ - dir = 1 +/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/hull/lower_hull/l_a_s) +/area/almayer/hallways/lower/starboard_aft_hallway) "rVN" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "red" }, /area/almayer/shipboard/port_missiles) +"rWb" = ( +/obj/item/tool/minihoe{ + pixel_x = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "rWn" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -65153,16 +64188,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"rWF" = ( -/obj/structure/machinery/firealarm{ - dir = 4; - pixel_x = 21 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +"rWv" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 }, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_fore_hallway) +"rWz" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_s) "rWL" = ( /obj/structure/barricade/metal, /turf/open/floor/almayer{ @@ -65208,6 +64242,47 @@ 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 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) +"rXH" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) +"rXQ" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_bow) "rXS" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/disposalpipe/segment{ @@ -65220,6 +64295,23 @@ icon_state = "test_floor4" }, /area/almayer/squads/delta) +"rXU" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + 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/aft_hallway) "rYh" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65235,13 +64327,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, @@ -65261,6 +64346,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/fore_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, @@ -65268,17 +64373,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 @@ -65287,17 +64400,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_medbay) -"rZF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 8 +"rZC" = ( +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "blue" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/upper/midship_hallway) "rZP" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack, @@ -65306,6 +64417,18 @@ icon_state = "plate" }, /area/almayer/shipboard/starboard_point_defense) +"sab" = ( +/obj/effect/landmark/start/doctor, +/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" @@ -65314,6 +64437,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/fore_hallway) "sbq" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; @@ -65323,8 +64453,29 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/notunnel) +"sbt" = ( +/obj/structure/machinery/door/airlock/almayer/security{ + dir = 2; + name = "\improper Security Checkpoint" + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "safe_armory"; + name = "\improper Hangar Armory Shutters" + }, +/turf/open/floor/almayer{ + 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, @@ -65334,13 +64485,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cryo) -"scg" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "sco" = ( /obj/structure/sign/prop1{ layer = 3.1 @@ -65351,6 +64495,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; @@ -65398,12 +64555,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) -"scI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "scN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65412,20 +64563,15 @@ 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" +"scX" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/kitchen/tray, +/obj/item/reagent_container/food/drinks/bottle/whiskey, +/obj/item/toy/deck{ + pixel_x = -9 }, -/area/almayer/command/airoom) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "sdf" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -65475,12 +64621,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"sdw" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_a_p) "sdC" = ( /obj/structure/bed/chair{ dir = 4 @@ -65498,19 +64638,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"sed" = ( +"seL" = ( /obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"seO" = ( -/obj/structure/sign/safety/terminal{ - pixel_x = 8; - pixel_y = 32 + dir = 8; + id_tag = "mining_outpost_pump" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/port_fore_hallway) "sfT" = ( /turf/open/floor/almayer, /area/almayer/hallways/upper/port) @@ -65598,29 +64732,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) -"sgy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hull/lower_hull/l_f_s) "sgD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65640,6 +64751,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{ @@ -65656,6 +64777,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) +"she" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "shh" = ( /obj/structure/machinery/autolathe, /turf/open/floor/almayer, @@ -65695,10 +64822,6 @@ "sht" = ( /turf/open/floor/almayer, /area/almayer/living/pilotbunks) -"shw" = ( -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "shL" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/electrical, @@ -65710,6 +64833,36 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) +"sir" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + req_access = null; + req_one_access = null + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "panicroomback"; + name = "\improper Safe Room Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_s) +"sit" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/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{ @@ -65726,6 +64879,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 @@ -65741,6 +64900,23 @@ 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/lifeboat_pumps/south2) +"siT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "siW" = ( /obj/structure/machinery/body_scanconsole, /obj/structure/disposalpipe/segment{ @@ -65753,10 +64929,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; @@ -65786,6 +64961,16 @@ icon_state = "test_floor4" }, /area/almayer/command/lifeboat) +"sjw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/maint/upper/u_m_p) "sjz" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -65815,13 +65000,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 @@ -65879,37 +65057,91 @@ }, /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; icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"slP" = ( -/obj/structure/stairs/perspective{ - icon_state = "p_stair_full" +"smi" = ( +/turf/open/floor/almayer{ + icon_state = "green" }, -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = 8 +/area/almayer/living/grunt_rnr) +"smw" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/med_data/laptop{ + dir = 8 }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 32; - pixel_y = -7 +/obj/item/device/flashlight/lamp{ + pixel_x = -5; + pixel_y = 16 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"smA" = ( +/obj/item/trash/cigbutt{ + pixel_x = -10; + pixel_y = 13 + }, +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice10"; + pixel_x = -16; + pixel_y = 16 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"smH" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + req_access = null; + req_one_access = null; + req_one_access_txt = "3;22;19" }, -/turf/open/floor/almayer, -/area/almayer/hull/lower_hull/l_f_s) -"smi" = ( /turf/open/floor/almayer{ - icon_state = "green" + icon_state = "test_floor4" }, -/area/almayer/living/grunt_rnr) -"smn" = ( -/obj/structure/sign/safety/escapepod{ - pixel_y = -32 +/area/almayer/maint/hull/lower/l_f_s) +"smU" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/area/almayer/shipboard/panic) "smW" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -65919,23 +65151,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; @@ -65949,18 +65164,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{ @@ -65979,6 +65182,10 @@ icon_state = "plate" }, /area/almayer/squads/req) +"snx" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "snE" = ( /obj/structure/machinery/cryopod/right, /obj/effect/decal/warning_stripes{ @@ -66015,18 +65222,24 @@ }, /area/almayer/command/cic) "snM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" }, -/obj/structure/disposalpipe/junction{ - dir = 8; - icon_state = "pipe-j2" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, /turf/open/floor/almayer{ dir = 8; icon_state = "green" }, /area/almayer/squads/req) +"snN" = ( +/obj/structure/curtain/red, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "snR" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer{ @@ -66052,41 +65265,12 @@ 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; icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) -"sow" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "soA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -66108,33 +65292,34 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering/port) -"soQ" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"soS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +"soT" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 2 +/obj/structure/prop/invuln/lattice_prop{ + icon_state = "lattice1"; + pixel_x = 16; + pixel_y = -8 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_m_p) "soX" = ( /obj/structure/window/reinforced/toughened, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/command/cic) +"spd" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "spF" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -66169,6 +65354,39 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"spT" = ( +/obj/structure/closet/crate{ + desc = "One of those old special operations crates from back in the day. After a leaked report from a meeting of SOF leadership lambasted the crates as 'waste of operational funds' the crates were removed from service."; + name = "special operations crate" + }, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/clothing/mask/gas/swat, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/attachable/suppressor, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/obj/item/explosive/grenade/smokebomb, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/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/midship_hallway) "sqa" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -66204,6 +65422,16 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"sqP" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) "sqW" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/tomatoseed, @@ -66212,6 +65440,39 @@ 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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"srO" = ( +/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 @@ -66223,42 +65484,42 @@ 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" +"ssk" = ( +/obj/structure/surface/rack, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -4; + pixel_y = 6 }, -/obj/structure/machinery/door/poddoor/shutters/almayer{ - id = "DeployWorkR"; - name = "\improper Workshop Shutters" +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = 3; + pixel_y = -2 }, -/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/repair_bay) -"ssD" = ( -/obj/structure/machinery/light/small{ - dir = 4 + icon_state = "plate" }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" +/area/almayer/maint/hull/lower/l_m_p) +"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/port) "ssU" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer{ @@ -66290,11 +65551,15 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/navigation) -"sti" = ( -/obj/structure/closet/crate/trashcart, -/obj/effect/spawner/random/balaclavas, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +"stk" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_hallway) "str" = ( /obj/effect/step_trigger/teleporter_vector{ name = "Almayer_Down3"; @@ -66314,6 +65579,12 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) +"stA" = ( +/obj/structure/machinery/portable_atmospherics/hydroponics, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "stO" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm/brig, @@ -66325,49 +65596,43 @@ icon_state = "red" }, /area/almayer/shipboard/brig/perma) -"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" - }, +"stP" = ( +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) -"suc" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, +/area/almayer/maint/hull/lower/l_f_s) +"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) -"suk" = ( -/obj/item/tool/weldingtool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) +/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" @@ -66380,20 +65645,18 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/engine_core) -"suT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"suU" = ( +/obj/structure/stairs, +/obj/effect/projector{ + name = "Almayer_Up1"; + vector_x = -19; + vector_y = 98 }, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/blocker/forcefield/multitile_vehicles, +/turf/open/floor/plating/almayer{ + allow_construction = 0 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"suV" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/hallways/lower/starboard_midship_hallway) "suY" = ( /obj/structure/platform_decoration, /turf/open/floor/almayer{ @@ -66415,25 +65678,43 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"svC" = ( -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/smg/m39{ - pixel_y = 6 +"svt" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" }, -/obj/item/weapon/gun/smg/m39{ - pixel_y = -6 +/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 + }, +/obj/effect/landmark/yautja_teleport, +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) -"swn" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +/area/almayer/maint/hull/lower/l_m_p) +"svV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/surgery) +/obj/item/weapon/gun/rifle/l42a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "swt" = ( /turf/open/floor/almayer{ icon_state = "greencorner" @@ -66449,6 +65730,12 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"swG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "swH" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/device/radio/intercom{ @@ -66484,37 +65771,13 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering) -"sxe" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"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; name = "\improper Officer's Bunk" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, /area/almayer/living/bridgebunks) "sxE" = ( @@ -66530,17 +65793,10 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"sxT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/m41a{ - pixel_y = 6 - }, -/obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) +"sxS" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "sxW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66552,6 +65808,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 @@ -66561,13 +65823,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/midship_hallway) "szf" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -66592,6 +65854,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."; @@ -66613,30 +65889,12 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) -"szR" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "szU" = ( /obj/structure/toilet{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/numbertwobunks) -"szX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/hull/upper_hull/u_a_s) "sAc" = ( /obj/structure/bed/chair{ dir = 8; @@ -66646,12 +65904,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"sAm" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "sAz" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -66661,30 +65913,37 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"sAA" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "sAC" = ( /turf/open/floor/almayer{ 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, +/area/almayer/maint/hull/lower/l_m_p) "sBg" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/general_equipment) -"sBo" = ( -/obj/structure/closet/firecloset, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out" +"sBK" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/lifeboat_pumps/south2) "sBL" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/light, @@ -66692,6 +65951,20 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"sBY" = ( +/obj/item/tool/wet_sign, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + 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 @@ -66700,14 +65973,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"sCC" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "sCD" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -66737,6 +66002,12 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"sCT" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_f_s) "sCV" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -66750,18 +66021,47 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) +"sCW" = ( +/obj/effect/decal/cleanable/cobweb, +/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/aft_hallway) "sDu" = ( /obj/item/clothing/under/marine/dress, /turf/open/floor/almayer{ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"sDy" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +"sDx" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/lower/vehiclehangar) "sDA" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/bed/chair/comfy/charlie{ @@ -66771,19 +66071,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{ @@ -66797,17 +66084,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{ @@ -66817,6 +66093,15 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"sEg" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "sEi" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -66870,13 +66155,23 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) +"sEu" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/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, @@ -66897,6 +66192,15 @@ icon_state = "plate" }, /area/almayer/command/cic) +"sER" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "sEZ" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 26 @@ -66918,59 +66222,26 @@ icon_state = "cargo" }, /area/almayer/shipboard/starboard_missiles) -"sFh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) -"sFC" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - dir = 8; - id = "Interrogation Shutters"; - name = "\improper Privacy Shutters" - }, -/turf/open/floor/plating, -/area/almayer/shipboard/brig/main_office) -"sFF" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/item/stack/tile/carpet{ - amount = 20 +"sFu" = ( +/obj/structure/surface/table/almayer, +/obj/item/paper_bin/uscm{ + pixel_y = 7 }, +/obj/item/tool/pen, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"sFR" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_p) -"sFZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"sGe" = ( -/obj/structure/ladder{ - height = 2; - id = "ForePortMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = -17 + dir = 8; + icon_state = "red" }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/shipboard/brig/starboard_hallway) "sGh" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/command/lifeboat) +"sGw" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_f_s) +"sGK" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) "sGL" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -66987,6 +66258,12 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) +"sGQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) "sGU" = ( /obj/structure/mirror, /turf/closed/wall/almayer, @@ -66997,28 +66274,10 @@ icon_state = "silverfull" }, /area/almayer/command/airoom) -"sHg" = ( -/obj/structure/surface/rack, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/storage/backpack/marine/satchel{ - desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; - icon = 'icons/obj/janitor.dmi'; - icon_state = "trashbag3"; - name = "trash bag"; - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) +"sHe" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "sHm" = ( /obj/structure/disposalpipe/up/almayer{ id = "almayerlink_OT_req" @@ -67074,26 +66333,18 @@ /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) -"sIk" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "sIr" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) -"sIx" = ( -/obj/effect/landmark/yautja_teleport, +"sIu" = ( +/obj/structure/machinery/light/small, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/p_bow) "sIA" = ( /obj/structure/sign/poster{ desc = "This poster features Audrey Rainwater standing in a jacuzzi. She was the July 2182 centerfold in House Bunny Gentleman's Magazine. Don't ask how you know that."; @@ -67112,28 +66363,26 @@ icon_state = "silver" }, /area/almayer/engineering/port_atmos) -"sIT" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/hull/lower_hull/l_f_s) +"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{ icon_state = "plate" }, /area/almayer/hallways/hangar) -"sIV" = ( -/obj/structure/largecrate/random/barrel/yellow, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"sJa" = ( +/obj/structure/sign/safety/cryo{ + pixel_y = -26 }, -/area/almayer/hull/lower_hull/l_a_p) -"sJm" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "sJC" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -67199,10 +66448,15 @@ 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{ + height = 2; + id = "cicladder4" + }, +/turf/open/floor/plating/almayer, +/area/almayer/medical/medical_science) "sLo" = ( /obj/structure/stairs/perspective{ dir = 1; @@ -67213,6 +66467,15 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"sLx" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "sLA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67220,20 +66483,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 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"sMs" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ - dir = 1 - }, +"sLX" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "emeraldcorner" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/port_midship_hallway) "sMu" = ( /obj/item/trash/uscm_mre, /obj/structure/bed/chair/comfy/charlie{ @@ -67275,6 +66530,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" @@ -67285,6 +66550,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"sNP" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "sNR" = ( /turf/closed/wall/almayer/research/containment/wall/corner, /area/almayer/medical/containment/cell/cl) @@ -67298,15 +66569,22 @@ icon_state = "test_floor4" }, /area/almayer/command/cic) -"sOm" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 +"sOr" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + req_access = null; + req_one_access = null; + req_one_access_txt = "3;22;19" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_f_s) "sOt" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/status_display{ @@ -67350,6 +66628,22 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) +"sOD" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_p) +"sOL" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "sOZ" = ( /obj/structure/sign/safety/ammunition{ pixel_y = 32 @@ -67371,6 +66665,12 @@ icon_state = "plate" }, /area/almayer/living/offices) +"sPk" = ( +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "sPF" = ( /obj/structure/bed/chair{ can_buckle = 0; @@ -67388,6 +66688,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/fore_hallway) "sQF" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -67399,21 +66716,20 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"sQU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +"sRM" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"sRI" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/wirecutters/clippers, -/obj/item/handcuffs/zip, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/lower/l_a_s) +"sRP" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/maint/upper/u_a_p) "sSa" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ dir = 2; @@ -67435,24 +66751,6 @@ icon_state = "tcomms" }, /area/almayer/shipboard/weapon_room) -"sSe" = ( -/obj/structure/sign/poster/blacklight{ - pixel_y = 35 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/structure/reagent_dispensers/beerkeg/alt_dark{ - anchored = 1; - chemical = null; - density = 0; - pixel_x = -7; - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "sSl" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -67489,15 +66787,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; @@ -67523,12 +66812,13 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"sTB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" +"sTU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, -/area/almayer/hull/upper_hull/u_m_s) +/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; @@ -67546,6 +66836,12 @@ icon_state = "silverfull" }, /area/almayer/shipboard/brig/cic_hallway) +"sUi" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_a_p) "sUj" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -67556,6 +66852,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 @@ -67572,16 +66877,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 @@ -67605,22 +66900,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) -"sVi" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/upper/fore_hallway) "sVT" = ( /obj/structure/surface/table/almayer, /obj/item/storage/toolbox/mechanical, @@ -67641,12 +66929,23 @@ "sVV" = ( /turf/open/floor/almayer, /area/almayer/hallways/upper/starboard) -"sWs" = ( -/obj/structure/closet/emcloset, +"sWp" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -12; + pixel_y = 13 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_a_s) +"sWw" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "sWC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -67686,20 +66985,12 @@ icon_state = "dark_sterile" }, /area/almayer/medical/containment) -"sXs" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/flashlight/lamp{ - layer = 3.1; - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/paper_bin/uscm, -/obj/item/tool/pen, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" +"sXq" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/area/almayer/hull/upper_hull/u_f_p) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "sXt" = ( /obj/structure/machinery/cm_vending/clothing/tl/alpha{ density = 0; @@ -67728,6 +67019,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" @@ -67736,14 +67036,6 @@ icon_state = "test_floor4" }, /area/almayer/living/auxiliary_officer_office) -"sXK" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "sXQ" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/appleseed, @@ -67761,25 +67053,27 @@ 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" +"sYl" = ( +/obj/structure/machinery/body_scanconsole{ + dir = 8 }, -/obj/structure/sign/safety/ammunition{ - pixel_y = 32 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "sterile_green_side" }, -/obj/structure/sign/safety/restrictedarea{ - pixel_x = 15; - pixel_y = 32 +/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{ - dir = 1; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/hallways/lower/port_umbilical) "sYw" = ( /obj/structure/platform{ dir = 8 @@ -67794,17 +67088,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) -"sYC" = ( -/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" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) "sYD" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -67817,20 +67100,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{ @@ -67847,6 +67116,18 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/medical/upper_medical) +"sZc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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; @@ -67880,13 +67161,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"sZF" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "sZH" = ( /obj/structure/surface/table/almayer, /obj/item/ashtray/bronze{ @@ -67932,21 +67206,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 @@ -67979,15 +67238,9 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/perma) -"taA" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "red" - }, -/area/almayer/hallways/starboard_hallway) +"taw" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/hull/upper/u_a_s) "taH" = ( /obj/structure/machinery/door/airlock/almayer/research/glass/reinforced{ id = "Containment Cell 2"; @@ -68028,16 +67281,42 @@ }, /area/almayer/hallways/upper/starboard) "tbD" = ( -/obj/structure/ladder{ - height = 2; - id = "AftPortMaint" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/midship_hallway) +"tbF" = ( +/turf/open/floor/almayer{ + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"tcd" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/radio{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"tcm" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) +"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/almayer, -/area/almayer/hull/upper_hull/u_a_p) -"tbK" = ( -/obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/starboard_aft_hallway) "tcZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -68074,6 +67353,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{ @@ -68114,26 +67401,21 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) +"tdH" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/obj/item/bedsheet/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "tdI" = ( /turf/open/floor/almayer{ 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 @@ -68156,13 +67438,30 @@ 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{ - starting_attachment_types = list(/obj/item/attachable/stock/shotgun) + starting_attachment_types = list(/obj/item/attachable/stock/shotgun); + pixel_y = 9 + }, +/obj/item/stack/sheet/cardboard/small_stack{ + layer = 3.01 }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"tey" = ( +/obj/item/tool/wet_sign, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "tez" = ( /obj/effect/landmark/ert_spawns/distress_cryo, /obj/effect/landmark/late_join, @@ -68177,18 +67476,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"teH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/maint{ - pixel_y = 32 - }, -/obj/structure/sign/safety/storage{ - pixel_x = 15; - pixel_y = 32 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "teY" = ( /obj/structure/machinery/light{ dir = 1 @@ -68210,29 +67497,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{ @@ -68242,6 +67517,25 @@ dir = 1 }, /area/almayer/medical/containment/cell) +"tfQ" = ( +/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 @@ -68253,6 +67547,40 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"tgm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/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 @@ -68331,33 +67659,19 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"thR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/secure{ - pixel_x = -5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"thT" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "thV" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"tic" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/north2) "tig" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/tabasco{ @@ -68396,13 +67710,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, @@ -68435,12 +67742,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"tiM" = ( -/obj/structure/machinery/door/airlock/almayer/maint, +"tiO" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/lifeboat_pumps/south2) "tiR" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/almayer/maint/reinforced{ @@ -68460,6 +67767,32 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"tiX" = ( +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_x = -1; + pixel_y = 13 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) +"tiY" = ( +/obj/structure/closet, +/obj/item/reagent_container/food/drinks/bottle/sake, +/obj/item/newspaper, +/obj/item/clothing/gloves/yellow, +/obj/item/stack/tile/carpet{ + amount = 20 + }, +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + 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/midship_hallway) "tjj" = ( /turf/open/floor/almayer{ dir = 5; @@ -68484,13 +67817,40 @@ }, /turf/open/floor/almayer, /area/almayer/living/tankerbunks) -"tki" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 4 +"tjz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 4; + pixel_y = -3 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"tjH" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/radio/headset/almayer/mt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"tjO" = ( +/obj/structure/janitorialcart, +/obj/item/tool/mop, +/turf/open/floor/almayer{ + icon_state = "orange" + }, +/area/almayer/maint/hull/lower/l_m_s) +"tkg" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, +/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, @@ -68574,14 +67934,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) -"tly" = ( -/obj/structure/platform{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "tlA" = ( /obj/effect/decal/medical_decals{ icon_state = "docdecal2" @@ -68590,11 +67942,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"tlI" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/surface/table/almayer, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "tmg" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/hypospray, @@ -68606,12 +67953,22 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"tml" = ( +/obj/structure/largecrate/supply/supplies/mre, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tmB" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 }, /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{ @@ -68625,15 +67982,11 @@ }, /area/almayer/shipboard/brig/execution) "tmI" = ( -/obj/structure/machinery/light, /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; pixel_x = -1 }, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "red" - }, +/turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) "tmK" = ( /obj/structure/machinery/door/airlock/almayer/maint{ @@ -68645,40 +67998,38 @@ icon_state = "test_floor4" }, /area/almayer/command/airoom) +"tmQ" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) +"tmX" = ( +/obj/effect/landmark/start/professor, +/obj/effect/landmark/late_join/cmo, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/offices) "tnb" = ( /obj/structure/bed/chair/comfy/black, /turf/open/floor/almayer{ icon_state = "redfull" }, /area/almayer/shipboard/port_missiles) -"tng" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" +"tne" = ( +/obj/structure/machinery/door_control/cl/quarter/backdoor{ + pixel_x = -25; + pixel_y = 23 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_m_p) "tni" = ( /turf/open/floor/almayer{ dir = 1; 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 @@ -68690,6 +68041,9 @@ icon_state = "cargo" }, /area/almayer/squads/alpha) +"tob" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "tos" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68701,6 +68055,12 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) +"tot" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "tou" = ( /obj/structure/bed/chair{ dir = 4 @@ -68716,15 +68076,17 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"toE" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"toD" = ( +/obj/structure/largecrate/supply/generator, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + layer = 2.9; + pixel_x = -10; + pixel_y = 3 }, -/obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/u_a_p) "toO" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/engineering_construction, @@ -68745,6 +68107,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{ @@ -68761,27 +68137,37 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) -"tpg" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"tpj" = ( +/obj/structure/stairs{ + dir = 8; + icon_state = "ramptop" }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/obj/effect/projector{ + name = "Almayer_Down2"; + vector_x = 1; + vector_y = -100 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/plating/almayer{ + allow_construction = 0 + }, +/area/almayer/hallways/upper/fore_hallway) "tpn" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/brig/evidence_storage) -"tps" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"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/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/port_fore_hallway) "tpD" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -68792,80 +68178,29 @@ icon_state = "silver" }, /area/almayer/living/bridgebunks) -"tpK" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/effect/spawner/random/toolbox, -/obj/item/stack/sheet/metal{ - desc = "Semiotic Standard denoting the nearby presence of coffee: the lifeblood of any starship crew."; - icon = 'icons/obj/structures/props/semiotic_standard.dmi'; - icon_state = "coffee"; - name = "coffee semiotic"; - pixel_x = 20; - pixel_y = 12; - singular_name = "coffee semiotic" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"tqd" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/screwdriver, -/obj/item/prop/helmetgarb/gunoil{ - pixel_x = -7; - pixel_y = 12 - }, -/obj/item/weapon/gun/rifle/l42a{ - pixel_x = 17; - pixel_y = 6 +"tpG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_m_s) -"tqg" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" +/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 }, /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/repair_bay) -"tqk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 + icon_state = "N"; + pixel_y = 2 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "tqE" = ( /obj/structure/machinery/light{ dir = 8 @@ -68888,6 +68223,47 @@ 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{ + pixel_y = 9 + }, +/obj/item/storage/toolbox/mechanical/green, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) +"tra" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 2; + req_one_access = null; + req_one_access_txt = "19;34;30" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_p) "trb" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -68904,16 +68280,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"trD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "trF" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -68967,15 +68333,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) -"trW" = ( -/obj/item/stack/tile/carpet{ - amount = 20 - }, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "tsa" = ( /obj/structure/surface/table/almayer, /obj/item/clothing/suit/chef/classic, @@ -68983,6 +68340,9 @@ /obj/item/clothing/suit/chef/classic, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"tsr" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/upper/mess) "tst" = ( /obj/structure/machinery/cryopod/right, /obj/effect/decal/warning_stripes{ @@ -69023,6 +68383,10 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/upper_medical) +"tsE" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "tsM" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -69055,31 +68419,24 @@ }, /turf/open/floor/plating, /area/almayer/powered/agent) -"ttE" = ( +"tty" = ( /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 - }, +/obj/item/clipboard, +/obj/item/paper, +/obj/item/clothing/glasses/mgoggles, +/obj/item/clothing/glasses/mgoggles, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"ttB" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"ttD" = ( +/obj/structure/largecrate/random/barrel/green, /turf/open/floor/almayer{ - dir = 1; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/hull/lower/l_m_p) "ttS" = ( /obj/structure/stairs/perspective{ icon_state = "p_stair_sn_full_cap" @@ -69146,9 +68503,45 @@ 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; + pixel_y = 9 + }, +/obj/item/tool/shovel/spade{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "tuN" = ( /turf/open/floor/almayer{ icon_state = "orange" @@ -69161,6 +68554,26 @@ 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{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"tvt" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/almayer/maint/hull/upper/u_f_s) "tvw" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -69169,6 +68582,23 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) +"tvA" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/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 @@ -69200,6 +68630,21 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"tvS" = ( +/obj/docking_port/stationary/escape_pod/south, +/turf/open/floor/plating, +/area/almayer/maint/upper/u_m_s) +"twp" = ( +/obj/structure/ladder{ + height = 1; + id = "AftStarboardMaint" + }, +/obj/structure/sign/safety/ladder{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/almayer, +/area/almayer/maint/hull/lower/l_a_s) "twq" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/hand_labeler{ @@ -69213,6 +68658,8 @@ dir = 8; pixel_x = 17 }, +/obj/item/device/megaphone, +/obj/item/book/manual/medical_diagnostics_manual, /turf/open/floor/almayer{ icon_state = "sterile_green_side" }, @@ -69244,16 +68691,13 @@ icon_state = "cargo" }, /area/almayer/command/cic) -"twT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -26 +"twQ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, -/turf/open/floor/almayer, -/area/almayer/hallways/port_hallway) +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "twW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -69268,26 +68712,47 @@ }, /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 + dir = 5 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"txi" = ( -/obj/structure/machinery/light{ - dir = 8 +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" }, -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 +/area/almayer/hallways/upper/midship_hallway) +"txp" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"txy" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "txO" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 @@ -69302,6 +68767,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 @@ -69311,14 +68787,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"tyz" = ( -/obj/item/book/manual/medical_diagnostics_manual, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "red" - }, -/area/almayer/hull/upper_hull/u_a_p) "tyD" = ( /turf/open/floor/almayer/research/containment/corner_var1{ dir = 4 @@ -69341,39 +68809,28 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/processing) -"tzf" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"tzi" = ( -/obj/structure/flora/pottedplant{ - desc = "Life is underwhelming, especially when you're a potted plant."; - icon_state = "pottedplant_22"; - name = "Jerry"; - pixel_y = 8 - }, -/obj/item/clothing/glasses/sunglasses/prescription{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tzw" = ( +/obj/structure/machinery/light{ + dir = 1 }, -/area/almayer/hull/upper_hull/u_a_p) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "tzx" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light{ unacidable = 1; unslashable = 1 }, +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, /turf/open/floor/almayer{ 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/midship_hallway) "tzL" = ( /obj/structure/sign/safety/waterhazard{ pixel_x = 8; @@ -69390,15 +68847,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) -"tAi" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"tAb" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 32 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "tAq" = ( /obj/structure/surface/table/reinforced/black, /obj/item/clothing/mask/breath{ @@ -69434,13 +68890,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"tAR" = ( -/obj/effect/spawner/random/toolbox, -/obj/structure/largecrate/random/barrel/red, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "tAU" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -69449,10 +68898,13 @@ icon_state = "cargo" }, /area/almayer/medical/lower_medical_medbay) -"tAV" = ( -/obj/effect/decal/cleanable/dirt, +"tAW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/starboard_midship_hallway) "tBq" = ( /obj/item/tool/crowbar, /turf/open/floor/plating/plating_catwalk, @@ -69464,45 +68916,54 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"tBz" = ( +"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{ + icon_state = "plate" + }, +/area/almayer/shipboard/brig/execution_storage) +"tBU" = ( +/obj/structure/platform, +/obj/structure/largecrate/random/case/double{ + layer = 2.98 + }, +/obj/structure/sign/safety/life_support{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"tBY" = ( /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" + 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) -"tBP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +/area/almayer/maint/upper/mess) +"tCd" = ( +/obj/item/folder/red{ + desc = "A red folder. The previous contents are a mystery, though the number 28 has been written on the inside of each flap numerous times. Smells faintly of cough syrup."; + name = "folder: 28"; + pixel_x = -4; + pixel_y = 5 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"tCb" = ( -/obj/structure/surface/rack, -/obj/item/device/radio{ - pixel_x = 5; - pixel_y = 4 +/obj/structure/surface/table/almayer, +/obj/item/toy/crayon{ + pixel_x = 9; + pixel_y = -2 }, -/obj/item/device/radio, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_m_p) "tCx" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ @@ -69521,12 +68982,25 @@ icon_state = "test_floor4" }, /area/almayer/hallways/upper/port) -"tCN" = ( +"tCC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/almayer{ dir = 8; icon_state = "orange" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/upper/u_a_s) +"tCD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/upper/midship_hallway) "tCT" = ( /obj/structure/bed/chair/comfy/blue{ dir = 8 @@ -69535,13 +69009,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"tDx" = ( -/obj/item/tool/wet_sign, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "tDZ" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -69575,6 +69042,15 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) +"tEu" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "tEB" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -69650,12 +69126,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"tGf" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "tGh" = ( /obj/structure/sign/nosmoking_2{ pixel_x = -28 @@ -69678,14 +69148,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 @@ -69694,14 +69156,21 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"tGO" = ( -/obj/effect/projector{ - name = "Almayer_Up3"; - vector_x = -1; - vector_y = 102 +"tGH" = ( +/obj/structure/sign/safety/restrictedarea, +/obj/structure/sign/safety/security{ + pixel_x = 15 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/closed/wall/almayer, +/area/almayer/shipboard/panic) +"tGS" = ( +/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) "tGT" = ( /obj/structure/machinery/light{ dir = 1 @@ -69714,15 +69183,20 @@ }, /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/aft_hallway) +"tHk" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "tHr" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/status_display{ @@ -69749,6 +69223,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"; @@ -69763,8 +69243,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" = ( @@ -69776,6 +69256,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" @@ -69791,6 +69280,12 @@ icon_state = "test_floor4" }, /area/almayer/living/port_emb) +"tIF" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "tIK" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -69802,6 +69297,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"tIN" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) "tIQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -69817,22 +69320,17 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"tIU" = ( -/obj/structure/platform, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 +"tIX" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/adv{ + pixel_x = 6; + pixel_y = 6 }, +/obj/item/storage/firstaid/regular, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/upper/u_f_p) "tJi" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/paper_bin/uscm, @@ -69841,34 +69339,25 @@ icon_state = "plate" }, /area/almayer/living/bridgebunks) +"tJq" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_s) "tJz" = ( /obj/structure/machinery/firealarm{ pixel_y = -28 }, /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 - }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" - }, -/area/almayer/shipboard/brig/main_office) "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" = ( @@ -69888,15 +69377,6 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"tKf" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/command/lifeboat) "tKr" = ( /obj/structure/machinery/cryopod/right{ dir = 2 @@ -69959,40 +69439,33 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"tLM" = ( -/obj/structure/sign/safety/storage{ - pixel_x = -17 +"tLZ" = ( +/turf/open/floor/almayer{ + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/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 +"tMT" = ( +/obj/item/tool/weldingtool, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "red" }, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "courtyard_cells"; - name = "\improper Courtyard Lockdown Shutter" +/area/almayer/maint/upper/u_a_p) +"tMU" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/shipboard/brig/chief_mp_office) +/area/almayer/maint/hull/upper/u_m_p) "tMW" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -70002,6 +69475,19 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"tNw" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/pouch/tools/full, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) +"tNB" = ( +/obj/structure/bed/sofa/south/grey/left, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "tNP" = ( /obj/structure/sign/safety/debark_lounge{ pixel_x = 15; @@ -70020,14 +69506,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"tNT" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "tOr" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -70056,12 +69534,30 @@ 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; icon_state = "green" }, /area/almayer/living/grunt_rnr) +"tPc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "tPj" = ( /obj/structure/machinery/door/airlock/almayer/marine/requisitions{ access_modified = 1; @@ -70074,6 +69570,12 @@ }, /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -70091,6 +69593,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/fore_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/fore_hallway) "tPI" = ( /obj/structure/bed/chair{ dir = 4 @@ -70106,6 +69622,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{ @@ -70114,47 +69640,30 @@ }, /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" +"tQA" = ( +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + dir = 1 }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/upper/u_f_s) "tQL" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"tQV" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/lifeboat_pumps/south1) -"tRc" = ( -/obj/structure/bed/chair{ - dir = 8; - pixel_y = 3 +"tQO" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_y = -32 }, -/obj/item/bedsheet/yellow, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/upper/fore_hallway) +"tQV" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/lifeboat_pumps/south1) "tRs" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/spray/cleaner, @@ -70174,23 +69683,15 @@ icon_state = "bluecorner" }, /area/almayer/living/basketball) -"tRV" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"tRX" = ( -/obj/structure/machinery/door/airlock/almayer/maint/reinforced, -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"tSm" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldingtool{ + pixel_x = 6; + pixel_y = -16 }, -/area/almayer/hull/upper_hull/u_f_s) +/obj/item/clothing/head/welding, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tSp" = ( /obj/item/device/radio/intercom{ freerange = 1; @@ -70201,21 +69702,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"tSr" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) -"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; @@ -70250,6 +69736,9 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) +"tTC" = ( +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "tTD" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/storage/box/uscm_mre, @@ -70263,6 +69752,27 @@ icon_state = "kitchen" }, /area/almayer/living/captain_mess) +"tTE" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"tTG" = ( +/obj/structure/sign/safety/terminal{ + pixel_x = 8; + pixel_y = 32 + }, +/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; @@ -70279,10 +69789,17 @@ "tUx" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"tUI" = ( -/obj/item/tool/wet_sign, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +"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; @@ -70308,14 +69825,6 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"tVf" = ( -/obj/structure/sign/safety/restrictedarea{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "tVh" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -70327,6 +69836,12 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) +"tVn" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "tVq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -70336,18 +69851,84 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) -"tVB" = ( -/obj/structure/closet/emcloset, +"tVs" = ( +/obj/structure/closet, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/upper/u_f_s) +"tVx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/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/fore_hallway) "tWi" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"tWl" = ( +/obj/structure/machinery/door/airlock/almayer/engineering{ + name = "\improper Disposals" + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_a_p) +"tWp" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) +"tWF" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + req_one_access = null; + req_one_access_txt = "2;30;34" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/almayer{ + 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, +/area/almayer/maint/upper/u_f_s) "tWY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -70404,6 +69985,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 @@ -70447,10 +70033,6 @@ icon_state = "plate" }, /area/almayer/living/port_emb) -"tXW" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "tYi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -70462,6 +70044,15 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"tYr" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "tYw" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; @@ -70477,18 +70068,18 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"tYB" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "tYM" = ( /obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"tYV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "tYX" = ( /turf/open/floor/almayer{ icon_state = "test_floor4" @@ -70500,23 +70091,6 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"tZe" = ( -/obj/item/trash/USCMtray{ - pixel_x = -4; - pixel_y = 10 - }, -/obj/structure/surface/table/almayer, -/obj/item/tool/kitchen/utensil/pfork{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "tZg" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/sign/safety/maint{ @@ -70534,31 +70108,12 @@ icon_state = "test_floor4" }, /area/almayer/hallways/upper/port) -"tZm" = ( -/obj/structure/closet/crate/freezer{ - desc = "A freezer crate. There is a note attached, it reads: Do not open, property of Pvt. Mendoza." - }, -/obj/item/storage/beer_pack, -/obj/item/reagent_container/food/drinks/cans/beer, -/obj/item/reagent_container/food/drinks/cans/beer, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/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" +"tZM" = ( +/obj/structure/sink{ + pixel_y = 24 }, -/area/almayer/engineering/upper_engineering/port) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "tZZ" = ( /obj/structure/machinery/cryopod, /obj/effect/decal/warning_stripes{ @@ -70573,9 +70128,6 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) -"uaa" = ( -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_m_p) "uac" = ( /obj/structure/machinery/light{ dir = 1 @@ -70584,6 +70136,12 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"uag" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/mess) "uah" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -70617,6 +70175,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) +"uaA" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + 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{ @@ -70643,35 +70210,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/command/computerlab) -"uaX" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"uaZ" = ( -/obj/structure/surface/table/almayer, -/obj/item/weapon/gun/rifle/m41a, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) -"ubd" = ( -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) "ubA" = ( /obj/effect/decal/warning_stripes{ 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, @@ -70686,6 +70230,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/fore_hallway) "ucp" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -70696,6 +70261,14 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) +"ucy" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 + }, +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/l_a_p) "ucz" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/computer/overwatch/almayer{ @@ -70718,6 +70291,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" @@ -70741,15 +70331,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{ @@ -70804,20 +70385,6 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/port_point_defense) -"ueh" = ( -/obj/structure/surface/rack, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/ob_ammo/ob_fuel, -/obj/structure/sign/safety/fire_haz{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "uek" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -70829,6 +70396,12 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) +"uew" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "ueG" = ( /obj/item/bedsheet/orange, /obj/structure/bed{ @@ -70869,14 +70442,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"ufp" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/sign/safety/bulkhead_door{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "ufx" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 4; @@ -70901,10 +70466,27 @@ icon_state = "test_floor4" }, /area/almayer/command/cic) +"ugj" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/maint/hull/lower/l_m_s) "ugu" = ( /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{ @@ -70916,20 +70498,21 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"ugT" = ( +"ugZ" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - icon_state = "red" + icon_state = "plate" }, -/area/almayer/shipboard/brig/main_office) -"ugV" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/kitchen/tray, -/obj/item/reagent_container/food/drinks/bottle/whiskey, -/obj/item/toy/deck{ - pixel_x = -9 +/area/almayer/maint/hull/lower/l_a_s) +"uhh" = ( +/obj/structure/machinery/vending/cola{ + density = 0; + pixel_y = 18 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "uhl" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -70940,10 +70523,37 @@ 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, /area/almayer/shipboard/brig/armory) +"uhI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/fore_hallway) "uhM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -70958,41 +70568,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) -"uia" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) -"uif" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) -"uig" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"uim" = ( -/obj/structure/largecrate/random/secure, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "uiC" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -71008,6 +70583,12 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) +"uiK" = ( +/obj/item/ammo_box/magazine/misc/mre, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "uiR" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -71036,6 +70617,12 @@ icon_state = "test_floor4" }, /area/almayer/command/cichallway) +"ujf" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) "ujz" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -71048,50 +70635,31 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"ujA" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_m_p) "ujV" = ( /obj/structure/machinery/vending/dinnerware, /turf/open/floor/almayer{ 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" - }, -/area/almayer/hallways/aft_hallway) -"ukt" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"uky" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_umbilical) +"ukC" = ( +/obj/effect/decal/cleanable/blood/drip, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/upper/u_m_p) "ukP" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/engineering/lower/engine_core) -"ukU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "ukV" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep, /obj/structure/machinery/light{ @@ -71132,6 +70700,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{ @@ -71147,6 +70725,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) +"umk" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "umm" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light/small, @@ -71154,16 +70741,6 @@ icon_state = "rasputin15" }, /area/almayer/powered/agent) -"umv" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - access_modified = 1; - dir = 8; - req_one_access = list(2,34,30) - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_m_s) "umy" = ( /obj/structure/machinery/light{ dir = 1 @@ -71173,12 +70750,22 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"umC" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"umD" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = 32 + }, /turf/open/floor/almayer{ - icon_state = "mono" + dir = 1; + icon_state = "blue" }, -/area/almayer/medical/upper_medical) +/area/almayer/hallways/upper/fore_hallway) +"umI" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/fore_hallway) "umS" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -71188,14 +70775,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"umT" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass{ - name = "Brig" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_p) "umW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71239,12 +70818,13 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"unJ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"unQ" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/upper/u_a_p) "unT" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/item/tool/crowbar, @@ -71260,7 +70840,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/machinery/cm_vending/sorted/medical, +/obj/structure/machinery/cm_vending/sorted/medical/bolted, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" @@ -71287,6 +70867,12 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"uoj" = ( +/obj/item/tool/pen, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "uoA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -71302,21 +70888,13 @@ icon_state = "silver" }, /area/almayer/command/computerlab) -"uoS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light/small{ - dir = 4 +"uoO" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) -"upt" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/lower/p_bow) "upM" = ( /obj/structure/machinery/light{ dir = 4 @@ -71331,6 +70909,11 @@ icon_state = "cargo_arrow" }, /area/almayer/living/offices) +"upQ" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/lifeboat_pumps/north1) "upR" = ( /obj/structure/machinery/light{ dir = 1 @@ -71344,13 +70927,10 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"uqa" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) +"upS" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "uqd" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/warning_stripes{ @@ -71381,6 +70961,13 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) +"uqg" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "uqh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71393,17 +70980,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; @@ -71414,16 +70990,66 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"uqH" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "uqI" = ( /obj/structure/machinery/light{ pixel_x = 16 }, /turf/open/floor/almayer, /area/almayer/command/lifeboat) +"uqJ" = ( +/turf/open/floor/almayer{ + icon_state = "orangecorner" + }, +/area/almayer/maint/upper/u_a_s) +"urg" = ( +/obj/docking_port/stationary/escape_pod/east, +/turf/open/floor/plating, +/area/almayer/maint/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/midship_hallway) +"ury" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) +"urL" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) "urM" = ( /obj/structure/machinery/light{ dir = 8 @@ -71438,20 +71064,9 @@ /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) "usi" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) +/turf/open/floor/almayer, +/area/almayer/hallways/upper/aft_hallway) "usm" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ @@ -71462,13 +71077,19 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south1) -"uso" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light/small, +"usq" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "redfull" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/shipboard/panic) "usy" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -71481,13 +71102,8 @@ }, /area/almayer/medical/medical_science) "usL" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, /obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer, /area/almayer/hallways/upper/port) "usX" = ( /obj/structure/disposalpipe/segment{ @@ -71530,6 +71146,15 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering) +"utC" = ( +/obj/structure/machinery/portable_atmospherics/canister/air, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/upper/u_a_s) "utK" = ( /obj/structure/machinery/light{ dir = 4 @@ -71560,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 @@ -71604,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"; @@ -71627,16 +71266,46 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"uvs" = ( -/obj/structure/machinery/conveyor{ - id = "lower_garbage" +"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{ + pixel_y = 32 + }, +/turf/open/floor/almayer{ + 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 }, -/obj/structure/machinery/recycler, /turf/open/floor/almayer{ dir = 4; - icon_state = "plating_striped" + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/upper/midship_hallway) "uvt" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -71689,6 +71358,10 @@ icon_state = "red" }, /area/almayer/shipboard/brig/cells) +"uwf" = ( +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "uws" = ( /obj/structure/machinery/light{ dir = 4 @@ -71718,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"; @@ -71753,6 +71408,18 @@ /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) +"uxb" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) +"uxl" = ( +/obj/item/cell/high/empty, +/obj/item/cell/high/empty, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_stern) "uxp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -71769,6 +71436,12 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) +"uxs" = ( +/obj/structure/machinery/pipedispenser/orderable, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "uxC" = ( /obj/structure/machinery/light{ dir = 4 @@ -71798,22 +71471,16 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) +"uxW" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "uxX" = ( /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"uxZ" = ( -/obj/structure/machinery/door_control{ - id = "laddersouthwest"; - 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; @@ -71843,6 +71510,13 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) +"uzv" = ( +/obj/structure/bed/chair{ + dir = 8; + pixel_y = 3 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) "uzy" = ( /obj/item/reagent_container/glass/bucket, /obj/effect/decal/cleanable/blood/oil, @@ -71857,12 +71531,37 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/ce_room) +"uzH" = ( +/obj/structure/machinery/door/airlock/almayer/medical/glass{ + closeOtherId = "brigmed"; + name = "\improper Brig Medbay"; + req_access = null; + req_one_access = null; + req_one_access_txt = "20;3" + }, +/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/midship_hallway) "uAj" = ( /obj/structure/bed/chair, /obj/effect/decal/cleanable/dirt, @@ -71881,15 +71580,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"uAs" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "uAC" = ( /obj/item/bedsheet/purple{ layer = 3.2 @@ -71952,27 +71642,41 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) -"uBn" = ( -/turf/open/floor/almayer{ - icon_state = "cargo_arrow" +"uBj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 3 }, -/area/almayer/hallways/vehiclehangar) -"uBw" = ( -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "green" +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_midship_hallway) +"uBs" = ( +/obj/effect/landmark/start/pilot/dropship_pilot, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/pilotbunks) +"uBx" = ( +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/area/almayer/hallways/starboard_hallway) -"uBz" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = 32 +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 }, -/area/almayer/hallways/stern_hallway) +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -16; + pixel_y = 13 + }, +/obj/structure/sign/safety/water{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "uBM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -72012,6 +71716,27 @@ 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, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/item/reagent_container/food/snacks/tomatomeat, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "uCM" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -72030,6 +71755,12 @@ icon_state = "test_floor4" }, /area/almayer/squads/charlie) +"uCR" = ( +/obj/item/tool/warning_cone{ + pixel_y = 13 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "uCW" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -72037,6 +71768,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/cichallway) +"uDg" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/s_bow) "uDn" = ( /obj/structure/ladder{ height = 1; @@ -72054,15 +71788,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lockerroom) -"uDB" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "uDW" = ( /obj/structure/machinery/cm_vending/clothing/tl/delta{ density = 0; @@ -72072,12 +71797,36 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"uEv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"uEO" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 3 }, /turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/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"; @@ -72108,6 +71857,12 @@ icon_state = "sterile_green" }, /area/almayer/medical/lockerroom) +"uFp" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "uFq" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -72118,32 +71873,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/lobby) -"uFt" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "uFH" = ( /obj/structure/surface/table/almayer, /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{ @@ -72161,20 +71895,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) -"uGw" = ( -/obj/structure/surface/table/almayer, -/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ - pixel_x = 7; - pixel_y = 4 +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/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, @@ -72185,23 +71917,16 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"uHr" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" - }, -/area/almayer/lifeboat_pumps/south2) -"uId" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"uGU" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" }, -/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - dir = 9; - icon_state = "green" + icon_state = "plate" }, -/area/almayer/hallways/aft_hallway) -"uIp" = ( +/area/almayer/maint/hull/lower/l_f_p) +"uHk" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/light{ dir = 4 @@ -72212,7 +71937,23 @@ /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull) +/area/almayer/maint/lower/cryo_cells) +"uHr" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "red" + }, +/area/almayer/lifeboat_pumps/south2) +"uHT" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) +"uIa" = ( +/turf/open/floor/almayer{ + icon_state = "greencorner" + }, +/area/almayer/hallways/upper/fore_hallway) "uIv" = ( /turf/open/floor/almayer{ icon_state = "orange" @@ -72244,6 +71985,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" @@ -72252,43 +72006,13 @@ icon_state = "outerhull_dir" }, /area/space) -"uJl" = ( -/obj/structure/surface/table/almayer, -/obj/item/pizzabox/meat, -/obj/item/reagent_container/food/drinks/cans/souto/diet/peach{ - pixel_x = -4; - pixel_y = -3 - }, -/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{ +"uJM" = ( +/obj/structure/sign/safety/medical{ pixel_x = 8; - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"uJo" = ( -/obj/structure/largecrate/random/barrel/blue, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) -"uJs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 + pixel_y = -32 }, /turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) -"uJB" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, -/turf/open/floor/almayer{ - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/hallways/lower/starboard_fore_hallway) "uJU" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -72322,36 +72046,34 @@ icon_state = "plate" }, /area/almayer/living/gym) -"uKk" = ( -/obj/structure/surface/table/almayer, -/obj/item/circuitboard/airlock, -/obj/item/circuitboard/airlock{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/stack/cable_coil{ - pixel_x = -7; - pixel_y = 11 +"uKl" = ( +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/maint/hull/upper/u_a_s) "uKv" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/multitool{ desc = "A large handheld tool used to override various machine functions. Primarily used to pulse Airlock and APC wires on a shortwave frequency. It contains a small data buffer as well. This one is comically oversized. Made in Texas."; icon_state = "multitool_big"; name = "\improper Oversized Security Access Tuner"; - pixel_y = 8 + pixel_y = 11; + pixel_x = 4 + }, +/obj/item/stack/sheet/cardboard/medium_stack{ + pixel_y = -6; + pixel_x = -7; + layer = 3.01 }, /turf/open/floor/almayer, /area/almayer/squads/alpha_bravo_shared) -"uKA" = ( -/obj/effect/step_trigger/clone_cleaner, -/obj/structure/machinery/light{ +"uKH" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/maint/hull/lower/l_f_p) "uKV" = ( /obj/structure/sign/safety/storage{ pixel_x = 32; @@ -72367,36 +72089,33 @@ /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) -"uLW" = ( -/obj/item/tool/mop{ - pixel_x = -6; - pixel_y = 24 +/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." }, -/obj/item/reagent_container/glass/bucket, +/obj/item/reagent_container/food/snacks/mre_pack/xmas2, +/obj/item/reagent_container/food/snacks/mre_pack/xmas1, +/obj/item/reagent_container/food/snacks/mre_pack/xmas3, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/hull/upper/s_stern) "uMc" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/starboard) +"uMf" = ( +/obj/structure/machinery/light/small, +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) "uMj" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -72433,12 +72152,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{ @@ -72453,6 +72184,10 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"uNz" = ( +/obj/structure/largecrate/random/barrel/red, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "uNB" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -72460,15 +72195,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"uNF" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) -"uNL" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_s) "uNM" = ( /turf/open/floor/almayer{ dir = 8; @@ -72483,33 +72209,34 @@ 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) -"uNW" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"uOi" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/lifeboat_pumps/south2) +"uOE" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) -"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) +/area/almayer/maint/upper/u_a_p) "uOJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -72522,14 +72249,21 @@ icon_state = "blue" }, /area/almayer/living/basketball) -"uPI" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 +"uPB" = ( +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" }, +/area/almayer/hallways/upper/midship_hallway) +"uPE" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_aft_hallway) +"uPN" = ( +/obj/item/tool/wirecutters/clippers, /turf/open/floor/almayer{ - icon_state = "orangecorner" + icon_state = "plate" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/maint/upper/u_a_s) "uPP" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ dir = 2; @@ -72540,6 +72274,13 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower) +"uPQ" = ( +/obj/item/weapon/dart/green, +/obj/structure/dartboard{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "uPW" = ( /obj/structure/bed/chair{ dir = 4 @@ -72548,19 +72289,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/fore_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{ @@ -72573,22 +72318,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{ @@ -72621,6 +72350,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 @@ -72648,13 +72383,14 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) -"uRQ" = ( -/obj/item/storage/firstaid/fire, -/obj/structure/surface/rack, +"uRR" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Brig" + }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/s_bow) "uRY" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -72668,25 +72404,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) -"uSq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - layer = 2.5; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"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{ @@ -72704,6 +72421,10 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lockerroom) +"uSU" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "uSW" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -72718,12 +72439,31 @@ icon_state = "plating" }, /area/almayer/engineering/lower/engine_core) -"uTa" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"uSZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/stern) +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/upper/midship_hallway) +"uTk" = ( +/obj/structure/largecrate/random/secure, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"uTs" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" + }, +/obj/structure/machinery/door/airlock/almayer/maint/reinforced, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/p_bow) "uTv" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -72732,6 +72472,19 @@ }, /turf/open/floor/almayer, /area/almayer/squads/bravo) +"uTD" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/hallways/upper/fore_hallway) +"uTE" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "uTN" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, @@ -72739,6 +72492,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 @@ -72763,13 +72526,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{ @@ -72792,6 +72548,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 @@ -72844,13 +72622,6 @@ }, /turf/open/floor/plating, /area/almayer/engineering/upper_engineering/port) -"uVb" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/almayer{ - dir = 6; - icon_state = "orange" - }, -/area/almayer/hull/lower_hull/l_m_s) "uVc" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 1 @@ -72865,19 +72636,35 @@ 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/fore_hallway) "uVh" = ( /obj/structure/filingcabinet/seeds, /turf/open/floor/almayer{ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"uVp" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "uVv" = ( /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{ @@ -72910,21 +72697,29 @@ icon_state = "plate" }, /area/almayer/living/pilotbunks) +"uVZ" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_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 @@ -72974,15 +72769,32 @@ icon_state = "plate" }, /area/almayer/engineering/lower/engine_core) -"uXu" = ( +"uXm" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/pipes/standard/manifold/hidden/supply{ +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) +"uXu" = ( +/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, -/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" @@ -72992,6 +72804,13 @@ icon_state = "tcomms" }, /area/almayer/engineering/upper_engineering/starboard) +"uXU" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, +/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza, +/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "uYa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -73024,6 +72843,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{ @@ -73049,10 +72884,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/midship_hallway) "uZV" = ( /obj/structure/reagent_dispensers/fueltank/gas/methane{ anchored = 1 @@ -73076,13 +72913,52 @@ 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/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 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/lower/starboard_umbilical) +"vaQ" = ( +/obj/structure/machinery/door/airlock/almayer/medical{ + dir = 1; + name = "Medical Storage" + }, +/turf/open/floor/almayer{ + 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; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "vaZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out" @@ -73104,6 +72980,16 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"vbu" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/weldpack, +/obj/item/storage/toolbox/mechanical, +/obj/item/reagent_container/spray/cleaner, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/maint/upper/u_a_s) "vbB" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) @@ -73138,13 +73024,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"vbP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "vbR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer{ @@ -73173,10 +73052,18 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"vce" = ( -/obj/docking_port/stationary/escape_pod/south, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_m_p) +"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 @@ -73207,10 +73094,13 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/south2) -"vcK" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +"vcI" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "vdl" = ( /obj/structure/window/reinforced/ultra{ pixel_y = -12 @@ -73223,24 +73113,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; @@ -73276,21 +73148,26 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"vdW" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 +"vdT" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 }, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/area/almayer/maint/upper/u_f_s) "ven" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"veq" = ( +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "veu" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -73301,6 +73178,27 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"veO" = ( +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/l42a, +/obj/item/weapon/gun/rifle/l42a{ + pixel_y = -6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) +"veW" = ( +/obj/structure/machinery/door/airlock/almayer/generic/glass{ + name = "\improper Passenger Cryogenics Bay" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_m_p) "vfa" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -73323,15 +73221,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 @@ -73348,40 +73237,25 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"vfB" = ( -/turf/open/floor/almayer/no_build{ - dir = 4 - }, -/area/almayer/command/airoom) -"vfJ" = ( -/obj/structure/surface/rack, -/obj/item/frame/table, -/obj/item/frame/table, -/obj/item/frame/table, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "vfP" = ( /turf/open/floor/almayer/research/containment/corner{ dir = 1 }, /area/almayer/medical/containment/cell) +"vfS" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) "vgi" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/shipboard/brig/general_equipment) -"vgk" = ( -/obj/structure/closet/firecloset, -/obj/structure/machinery/camera/autoname/almayer{ - 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, @@ -73450,22 +73324,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 @@ -73475,45 +73333,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) -"vgQ" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) -"vgW" = ( -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "vhe" = ( /obj/structure/filingcabinet{ density = 0; @@ -73528,22 +73350,8 @@ /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) -"vhq" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"vht" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) "vhw" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -73551,10 +73359,10 @@ /obj/structure/machinery/disposal, /turf/open/floor/almayer, /area/almayer/living/offices/flight) -"vhI" = ( -/obj/structure/closet/firecloset, +"vhA" = ( +/obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/upper/p_bow) "vhR" = ( /obj/structure/flora/pottedplant{ desc = "It is made of Fiberbush(tm). It contains asbestos."; @@ -73641,19 +73449,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{ @@ -73686,14 +73483,11 @@ }, /area/almayer/lifeboat_pumps/south1) "vjd" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; pixel_y = 1 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, +/turf/open/floor/almayer, /area/almayer/command/lifeboat) "vjg" = ( /obj/structure/prop/almayer/missile_tube{ @@ -73705,6 +73499,26 @@ icon_state = "plating" }, /area/almayer/shipboard/port_missiles) +"vjk" = ( +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/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{ @@ -73712,12 +73526,12 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower/workshop/hangar) -"vjx" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/almayer{ - icon_state = "plate" +"vjB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 }, -/area/almayer/hull/lower_hull/l_a_s) +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/starboard_hallway) "vjC" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -73734,22 +73548,45 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) -"vjD" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +"vjG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/vents/pump{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/port_umbilical) "vjK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/shipboard/port_missiles) +"vjS" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + layer = 5.1; + name = "water pipe" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Hangar Lockdown"; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/open/floor/almayer{ + 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 @@ -73784,23 +73621,27 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"vkD" = ( -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 +"vky" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + id = "Brig Lockdown Shutters"; + name = "\improper Brig Lockdown Shutter" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -16; - pixel_y = 13 +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 +/area/almayer/maint/hull/upper/p_bow) +"vkI" = ( +/obj/item/coin/silver{ + desc = "A small coin, bearing the falling falcons insignia."; + name = "falling falcons challenge coin" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "vkM" = ( /obj/structure/machinery/door/airlock/almayer/security/glass{ dir = 1; @@ -73814,6 +73655,26 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/general_equipment) +"vkO" = ( +/obj/structure/closet, +/obj/item/stack/sheet/glass/large_stack, +/obj/item/device/lightreplacer, +/obj/item/reagent_container/spray/cleaner, +/obj/item/stack/rods{ + amount = 40 + }, +/obj/item/tool/weldingtool, +/obj/item/clothing/glasses/welding, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/lower/s_bow) +"vkQ" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "orange" + }, +/area/almayer/hallways/upper/midship_hallway) "vkR" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -73824,6 +73685,15 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"vkV" = ( +/obj/effect/landmark/start/liaison, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"vle" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) "vlk" = ( /obj/structure/closet/emcloset, /obj/item/clothing/mask/gas, @@ -73858,12 +73728,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; @@ -73898,6 +73762,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/midship_hallway) "vlX" = ( /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep, /turf/open/floor/almayer{ @@ -73920,6 +73791,15 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"vmq" = ( +/turf/open/floor/almayer, +/area/almayer/maint/hull/lower/l_m_s) +"vmu" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) "vmE" = ( /turf/open/floor/almayer{ icon_state = "orangecorner" @@ -73933,16 +73813,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) -"vmK" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) "vmN" = ( /obj/structure/machinery/light, /obj/structure/surface/table/almayer, @@ -73968,6 +73838,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; @@ -73977,54 +73853,35 @@ icon_state = "plate" }, /area/almayer/living/gym) -"vnV" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "vnY" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"vot" = ( +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) +"vnZ" = ( +/obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"vox" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/radio{ - pixel_x = -6; - pixel_y = 3 +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "orange" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"voA" = ( -/obj/structure/platform_decoration, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 +/area/almayer/hallways/upper/midship_hallway) +"vop" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) -"voQ" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 + dir = 8; + icon_state = "silvercorner" }, -/obj/structure/disposalpipe/segment, +/area/almayer/hallways/lower/repair_bay) +"vor" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/prop/broken_arcade, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/hull/upper/u_m_p) "vpe" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/engineering/reinforced/OT{ @@ -74035,6 +73892,17 @@ icon_state = "test_floor4" }, /area/almayer/engineering/lower/workshop/hangar) +"vpf" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) +"vpi" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "vpn" = ( /turf/open/floor/almayer{ dir = 9; @@ -74052,6 +73920,22 @@ /obj/item/clothing/mask/cigarette/weed, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"vpI" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) +"vpT" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/cameras/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "vpV" = ( /turf/open/floor/almayer{ dir = 10; @@ -74077,6 +73961,22 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/processing) +"vqh" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_s) +"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 @@ -74107,14 +74007,6 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) -"vqO" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "vqW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -74161,27 +74053,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"vrB" = ( -/obj/structure/closet/crate{ - desc = "One of those old special operations crates from back in the day. After a leaked report from a meeting of SOF leadership lambasted the crates as 'waste of operational funds' the crates were removed from service."; - name = "special operations crate" - }, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/clothing/mask/gas/swat, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/attachable/suppressor, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/obj/item/explosive/grenade/smokebomb, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "vrI" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -74231,6 +74102,19 @@ icon_state = "bluecorner" }, /area/almayer/living/briefing) +"vrZ" = ( +/obj/structure/largecrate/machine/bodyscanner, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) +"vsd" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_m_s) "vse" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -74240,10 +74124,32 @@ 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, /area/almayer/command/lifeboat) +"vsi" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/stern) "vsz" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -74261,33 +74167,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) -"vsV" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) "vta" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -74326,29 +74205,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 @@ -74357,6 +74213,12 @@ icon_state = "plate" }, /area/almayer/shipboard/brig/perma) +"vtJ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) "vub" = ( /turf/closed/wall/almayer, /area/almayer/shipboard/sea_office) @@ -74365,9 +74227,6 @@ /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha) -"vuv" = ( -/turf/closed/wall/almayer, -/area/almayer/hull/upper_hull/u_a_p) "vuA" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -74381,6 +74240,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/starboard) "vuF" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ access_modified = 1; @@ -74414,9 +74283,15 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"vuR" = ( +"vuV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/port_aft_hallway) "vuZ" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -74471,6 +74346,26 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) +"vvH" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"vvX" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 2; + id = "OuterShutter"; + name = "\improper Saferoom Shutters" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/shipboard/panic) "vvY" = ( /obj/structure/sink{ dir = 1; @@ -74524,44 +74419,17 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"vwN" = ( -/obj/item/clothing/gloves/botanic_leather{ - name = "leather gloves" - }, -/obj/item/clothing/gloves/botanic_leather{ - name = "leather gloves" - }, -/obj/item/clothing/gloves/botanic_leather{ - name = "leather gloves" - }, -/obj/structure/closet/crate, -/obj/item/clothing/suit/storage/hazardvest/black, +"vwJ" = ( +/obj/structure/largecrate/random/case/double, +/obj/structure/machinery/light/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_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) +/area/almayer/maint/upper/u_m_p) +"vwU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) "vwV" = ( /obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors{ dir = 4 @@ -74579,6 +74447,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{ + closeOtherId = "brigwarden"; + dir = 1; + name = "\improper Warden's Office" + }, +/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{ @@ -74624,6 +74508,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, @@ -74631,6 +74526,14 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"vyh" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_s) "vyi" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -74652,6 +74555,12 @@ icon_state = "cargo" }, /area/almayer/living/offices) +"vyr" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_p) "vyu" = ( /obj/structure/bed/sofa/south/white/right, /turf/open/floor/almayer{ @@ -74659,6 +74568,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 @@ -74668,6 +74580,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 @@ -74685,30 +74604,22 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"vzl" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "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; @@ -74718,9 +74629,24 @@ icon_state = "test_floor4" }, /area/almayer/shipboard/brig/cells) +"vzB" = ( +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "vzK" = ( /turf/open/floor/almayer, /area/almayer/engineering/ce_room) +"vzO" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + req_one_access = null; + req_one_access_txt = "2;30;34" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_f_s) "vzP" = ( /obj/structure/surface/table/almayer, /obj/item/storage/box/cups, @@ -74740,6 +74666,17 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"vAg" = ( +/obj/structure/largecrate/random/barrel/blue, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = -32 + }, +/obj/structure/sign/safety/security{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "vAq" = ( /obj/structure/bed/chair{ dir = 1 @@ -74749,6 +74686,20 @@ icon_state = "orange" }, /area/almayer/hallways/hangar) +"vAx" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) +"vAz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "vAE" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -74792,20 +74743,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{ +/turf/open/floor/almayer/aicore/no_build{ dir = 8; - icon_state = "silver" + icon_state = "ai_silver" }, /area/almayer/command/airoom) -"vBm" = ( -/turf/closed/wall/almayer/reinforced, -/area/almayer/shipboard/brig/main_office) "vBp" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -74818,6 +74763,10 @@ icon_state = "silver" }, /area/almayer/living/briefing) +"vBC" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "vBJ" = ( /obj/structure/surface/table/almayer, /obj/item/tool/pen, @@ -74878,6 +74827,10 @@ icon_state = "green" }, /area/almayer/shipboard/brig/cells) +"vCE" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "vCO" = ( /obj/effect/landmark/start/bridge, /turf/open/floor/plating/plating_catwalk, @@ -74890,6 +74843,53 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/hydroponics) +"vDh" = ( +/obj/structure/largecrate/random, +/turf/open/floor/almayer{ + 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, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_f_s) +"vDz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_s) +"vDN" = ( +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"vDR" = ( +/obj/structure/surface/rack, +/obj/item/tool/wet_sign, +/obj/item/tool/wet_sign, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_p) "vEf" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -74915,6 +74915,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 @@ -74938,6 +74948,10 @@ /obj/structure/machinery/vending/coffee, /turf/open/floor/almayer, /area/almayer/living/briefing) +"vEI" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "vEV" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -74948,17 +74962,6 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"vFb" = ( -/obj/structure/surface/table/almayer, -/obj/item/attachable/lasersight, -/obj/item/reagent_container/food/drinks/cans/souto/vanilla{ - pixel_x = 10; - pixel_y = 11 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "vFn" = ( /obj/structure/machinery/light/small, /turf/open/floor/almayer{ @@ -74966,6 +74969,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{ @@ -74981,27 +74993,44 @@ 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/fore_hallway) "vFH" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/lower) -"vGk" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) -"vGr" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, +"vFI" = ( +/obj/structure/largecrate/random/secure, +/obj/item/weapon/baseballbat/metal{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 5 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) -"vGy" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/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{ @@ -75046,6 +75075,33 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/living/port_emb) +"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{ @@ -75063,13 +75119,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{ @@ -75111,22 +75160,6 @@ icon_state = "plate" }, /area/almayer/command/cic) -"vHA" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/upper/starboard) "vHO" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -75159,47 +75192,32 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/upper_medical) -"vIm" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 +"vIg" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_a_s) +"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/fore_hallway) "vIu" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/command/cichallway) -"vIA" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, +"vJc" = ( /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) -"vIN" = ( -/obj/structure/sign/safety/distribution_pipes{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/intercom{ - pixel_y = 32 - }, -/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{ @@ -75217,30 +75235,10 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"vJy" = ( -/obj/structure/machinery/vending/cigarette{ - density = 0; - pixel_y = 18 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"vJM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) +"vJR" = ( +/obj/structure/barricade/handrail, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_stern) "vJV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -75283,16 +75281,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"vKf" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "InnerShutter"; - name = "\improper Saferoom Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "vKB" = ( /obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, /obj/structure/machinery/light/small{ @@ -75301,22 +75289,18 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/armory) "vKF" = ( -/obj/structure/stairs{ - dir = 8; - icon_state = "ramptop" +/obj/structure/machinery/cm_vending/sorted/medical, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" }, +/area/almayer/shipboard/brig/medical) +"vKI" = ( /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/aft_hallway) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "vLg" = ( /obj/item/trash/uscm_mre, /obj/structure/bed/chair/comfy/charlie, @@ -75324,14 +75308,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"vLh" = ( -/obj/item/roller, -/obj/structure/surface/rack, -/obj/item/roller, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_s) "vLj" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor{ name = "\improper Medical Bay"; @@ -75347,15 +75323,15 @@ icon_state = "test_floor4" }, /area/almayer/medical/upper_medical) -"vLv" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/light{ - dir = 4 +"vLp" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 8; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/lower/repair_bay) "vLA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -75370,15 +75346,21 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/charlie) -"vMn" = ( -/obj/structure/disposalpipe/segment{ +"vLM" = ( +/obj/structure/machinery/light/small{ dir = 4 }, -/obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/maint/upper/u_m_p) +"vMb" = ( +/obj/item/stool{ + pixel_x = -15; + pixel_y = 6 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "vMo" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_four) @@ -75386,13 +75368,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; @@ -75425,6 +75409,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, @@ -75432,6 +75430,20 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"vMQ" = ( +/obj/docking_port/stationary/escape_pod/north, +/turf/open/floor/plating, +/area/almayer/maint/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 @@ -75449,6 +75461,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 @@ -75458,9 +75480,41 @@ /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, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/toolbox, +/obj/effect/spawner/random/tool, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_m_s) "vOy" = ( /turf/closed/wall/almayer/white/reinforced, /area/almayer/medical/medical_science) +"vOG" = ( +/obj/structure/largecrate/supply/ammo/m41a/half, +/obj/structure/largecrate/supply/ammo/pistol/half{ + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/p_bow) +"vOM" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "vON" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -75479,6 +75533,38 @@ 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; + req_one_access = null; + req_one_access_txt = "2;7" + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + dir = 4; + id = "CIC Lockdown"; + name = "\improper Combat Information Center Blast Door" + }, +/turf/open/floor/almayer{ + 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{ @@ -75488,39 +75574,10 @@ }, /turf/open/floor/plating, /area/almayer/shipboard/brig/perma) -"vPj" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/device/flashlight/lamp{ - pixel_y = 8 - }, -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/obj/item/clothing/glasses/science{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/device/flash, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/medical/upper_medical) "vPm" = ( /obj/item/stack/cable_coil, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south1) -"vPr" = ( -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 - }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "vPv" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -75581,6 +75638,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"; @@ -75650,9 +75716,16 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"vRz" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_f_p) +"vRJ" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1; + name = "\improper Emergency Air Storage" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) "vRR" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -75679,15 +75752,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/upper_medical) -"vSg" = ( -/obj/structure/machinery/light/small, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "vSl" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -75710,6 +75774,21 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"vSr" = ( +/obj/structure/largecrate/random/case/double, +/obj/item/tool/wet_sign{ + pixel_y = 18 + }, +/obj/item/trash/cigbutt/ucigbutt{ + desc = "A handful of rounds to reload on the go."; + icon = 'icons/obj/items/weapons/guns/handful.dmi'; + icon_state = "bullet_2"; + name = "handful of pistol bullets (9mm)"; + pixel_x = -8; + pixel_y = 10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) "vSE" = ( /obj/structure/closet/secure_closet/personal, /turf/open/floor/almayer{ @@ -75723,15 +75802,6 @@ icon_state = "dark_sterile" }, /area/almayer/medical/chemistry) -"vSH" = ( -/obj/structure/platform{ - dir = 8 - }, -/obj/item/stack/sheet/metal, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "vSK" = ( /obj/structure/surface/table/almayer, /obj/item/trash/USCMtray{ @@ -75784,9 +75854,13 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering) -"vTK" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_a_p) +"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 @@ -75809,7 +75883,9 @@ /obj/structure/machinery/door_control{ id = "OTStore"; name = "Shutters"; - pixel_y = -24 + pixel_y = -24; + access_modified = 1; + req_one_access_txt = "35" }, /obj/structure/surface/rack, /obj/item/reagent_container/glass/bucket/janibucket, @@ -75817,6 +75893,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, @@ -75836,50 +75922,39 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/command/lifeboat) -"vUi" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"vUk" = ( -/obj/item/storage/toolbox/mechanical{ - pixel_y = 13 +"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 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) -"vUI" = ( -/obj/structure/largecrate/random/barrel/white, -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = 32 +/area/almayer/maint/hull/lower/l_a_p) +"vUO" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = 32 +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/upper/fore_hallway) "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 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "emerald" - }, -/area/almayer/hallways/port_hallway) "vVb" = ( /obj/structure/machinery/cm_vending/gear/tl{ density = 0; @@ -75898,13 +75973,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/briefing) -"vVh" = ( -/obj/item/weapon/dart/green, -/obj/structure/dartboard{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "vVs" = ( /turf/open/floor/almayer{ icon_state = "sterile_green" @@ -75922,6 +75990,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; @@ -75941,24 +76017,16 @@ 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 +"vVZ" = ( +/obj/structure/machinery/door/airlock/almayer/maint, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "test_floor4" }, -/area/almayer/engineering/lower/engine_core) +/area/almayer/hallways/lower/port_umbilical) "vWc" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, /obj/structure/surface/table/almayer, /obj/item/device/radio/intercom/normandy{ layer = 3.5 @@ -75967,6 +76035,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, @@ -75989,17 +76070,6 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"vWx" = ( -/obj/structure/largecrate/random/barrel/blue, -/obj/structure/sign/safety/restrictedarea{ - pixel_y = -32 - }, -/obj/structure/sign/safety/security{ - pixel_x = 15; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "vWA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -76099,9 +76169,7 @@ 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) "vXo" = ( /obj/structure/disposalpipe/segment{ @@ -76113,32 +76181,33 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/lower) -"vXX" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/powercell, -/obj/effect/spawner/random/powercell, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) -"vXY" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ +"vXv" = ( +/obj/structure/machinery/light{ dir = 1 }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_10"; + pixel_y = 14 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/medical/upper_medical) +"vXF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_s) -"vYi" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +/area/almayer/hallways/lower/port_umbilical) +"vYd" = ( +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/port_hallway) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/vehiclehangar) "vYm" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -76224,20 +76293,8 @@ "vZw" = ( /turf/open/floor/almayer/research/containment/floor2, /area/almayer/medical/containment/cell/cl) -"vZA" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/hvac_old{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) "vZU" = ( /obj/structure/surface/table/almayer, -/obj/structure/machinery/power/apc/almayer{ - dir = 4 - }, /obj/structure/machinery/cell_charger, /obj/structure/sign/safety/high_rad{ pixel_x = 32; @@ -76252,6 +76309,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"wac" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "wan" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/brown, @@ -76274,15 +76340,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/starboard) "wbu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname/almayer{ @@ -76293,13 +76361,18 @@ icon_state = "mono" }, /area/almayer/living/pilotbunks) -"wbx" = ( -/obj/structure/sign/safety/hazard{ - desc = "A sign that warns of a hazardous environment nearby"; - name = "\improper Warning: Hazardous Environment" +"wby" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Starboard Viewing Room" }, -/turf/closed/wall/almayer, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/upper/u_f_s) "wbC" = ( /obj/structure/machinery/atm{ pixel_y = 32 @@ -76353,6 +76426,15 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_four) +"wbV" = ( +/obj/structure/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/living/cryo_cells) "wbX" = ( /obj/structure/closet/secure_closet/cmdcabinet{ pixel_y = 24 @@ -76372,9 +76454,6 @@ icon_state = "redfull" }, /area/almayer/lifeboat_pumps/south2) -"wcn" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) "wct" = ( /obj/structure/closet/radiation, /turf/open/floor/almayer{ @@ -76382,6 +76461,20 @@ 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 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/s_bow) "wcN" = ( /obj/structure/machinery/status_display{ pixel_y = 30 @@ -76404,16 +76497,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 @@ -76434,9 +76517,9 @@ /area/almayer/shipboard/brig/cic_hallway) "wdo" = ( /obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_s"; dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_s" + name = "\improper Containment Airlock" }, /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -76476,10 +76559,14 @@ allow_construction = 0 }, /area/almayer/shipboard/brig/processing) -"wdH" = ( -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) +"wdG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_f_p) "wdI" = ( /turf/open/floor/almayer{ dir = 1; @@ -76494,6 +76581,18 @@ 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{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "wed" = ( /obj/structure/surface/table/almayer, /obj/item/storage/belt/utility/full, @@ -76520,6 +76619,24 @@ 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{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "wex" = ( /obj/structure/sign/safety/bathunisex{ pixel_x = 8; @@ -76552,14 +76669,6 @@ icon_state = "cargo" }, /area/almayer/living/offices) -"weU" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "wfn" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ @@ -76575,24 +76684,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) @@ -76618,14 +76709,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 @@ -76635,9 +76718,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; @@ -76651,14 +76731,13 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"wgo" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"wgO" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_p) +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_f_p) "wgR" = ( /obj/structure/surface/table/almayer, /obj/effect/spawner/random/technology_scanner, @@ -76669,20 +76748,14 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"wgU" = ( -/obj/structure/sign/safety/maint{ - pixel_x = 8; - pixel_y = -32 +"whm" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"whc" = ( -/obj/structure/closet, -/obj/item/clothing/glasses/welding, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/l_m_s) "whA" = ( /turf/open/floor/almayer/uscm/directional, /area/almayer/living/briefing) @@ -76701,6 +76774,18 @@ 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) "wiz" = ( /obj/structure/bed/chair{ dir = 4 @@ -76742,6 +76827,27 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) +"wiO" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldingtool, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + 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 @@ -76784,20 +76890,46 @@ }, /area/almayer/shipboard/port_point_defense) "wjE" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out" - }, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_y = 1 + icon_state = "W" }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 4; + icon_state = "red" }, /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; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_a_s) +"wjQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = -14; + pixel_y = 13 + }, +/obj/structure/prop/invuln/overhead_pipe{ + dir = 4; + pixel_x = 12; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/mess) "wjY" = ( /obj/structure/closet/secure_closet/warrant_officer, /turf/open/floor/wood/ship, @@ -76854,17 +76986,6 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"wkL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/guncabinet, -/obj/item/weapon/gun/rifle/l42a{ - pixel_y = 6 - }, -/obj/item/weapon/gun/rifle/l42a, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_s) "wkM" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "ARES StairsLower"; @@ -76876,7 +76997,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; @@ -76910,30 +77031,53 @@ 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) -"wlp" = ( +/area/almayer/shipboard/brig/interrogation) +"wlh" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/squads/req) +"wlB" = ( +/obj/structure/largecrate/random/case/small, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_m_p) +/area/almayer/maint/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 @@ -76960,12 +77104,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"wlL" = ( -/obj/structure/largecrate/random/barrel/white, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "wmg" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -76983,6 +77121,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/midship_hallway) "wmK" = ( /obj/structure/surface/table/almayer, /obj/item/clipboard, @@ -77017,7 +77161,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" = ( @@ -77077,16 +77221,9 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"woG" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_p) -"woM" = ( -/obj/structure/largecrate/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) +"woU" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/u_m_p) "wpg" = ( /obj/structure/machinery/blackbox_recorder, /turf/open/shuttle/dropship{ @@ -77101,8 +77238,27 @@ /obj/structure/machinery/status_display{ pixel_x = -32 }, +/obj/item/desk_bell{ + anchored = 1; + pixel_x = -8; + pixel_y = 8 + }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) +"wpu" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/device/flashlight/lamp{ + pixel_y = 8 + }, +/obj/item/clothing/glasses/science{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/device/flash, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/medical/upper_medical) "wpw" = ( /obj/structure/bed/chair/comfy/ares{ dir = 1 @@ -77122,6 +77278,7 @@ pixel_y = 28 }, /obj/structure/closet, +/obj/item/clothing/head/bearpelt, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -77142,6 +77299,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower) +"wpT" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) "wqc" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -77160,12 +77323,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; @@ -77176,19 +77333,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) -"wqE" = ( -/obj/structure/largecrate/random/case/small, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_aft_hallway) "wqW" = ( /obj/structure/closet/secure_closet/CMO, /obj/structure/machinery/light{ @@ -77199,19 +77352,62 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/upper_medical) +"wra" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + 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; pixel_y = -32 }, /turf/open/floor/almayer, -/area/almayer/living/starboard_garden) +/area/almayer/lifeboat_pumps/north1) "wrT" = ( /obj/structure/surface/table/almayer, /obj/item/device/radio/marine, @@ -77261,16 +77457,23 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"wst" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" +"wsw" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/effect/step_trigger/clone_cleaner, /turf/open/floor/almayer{ - dir = 10; - icon_state = "green" + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) +"wsz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/bed/chair{ + dir = 1 }, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) "wsD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -77283,16 +77486,36 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) -"wtd" = ( -/obj/structure/machinery/vending/coffee, -/obj/item/toy/bikehorn/rubberducky{ - desc = "You feel as though this rubber duck has been here for a long time. It's Mr. Quackers! He loves you!"; - name = "Quackers"; - pixel_x = 5; - pixel_y = 17 +"wsS" = ( +/turf/open/floor/almayer{ + icon_state = "test_floor4" }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) +"wtk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"wtn" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/item/storage/firstaid{ + pixel_x = -13; + pixel_y = 13 + }, +/obj/item/clipboard, +/obj/item/paper, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_s) "wty" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -77302,6 +77525,14 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/delta) +"wtD" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass{ + name = "Brig" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/p_bow) "wtM" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -77327,22 +77558,14 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) -"wuc" = ( -/obj/structure/machinery/door/airlock/almayer/medical/glass{ - name = "\improper Brig Medbay"; - req_access = null; - req_one_access = null; - req_one_access_txt = "20;3"; - closeOtherId = "brigmed" - }, -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/pipes/standard/simple/hidden/supply{ +"wub" = ( +/obj/structure/pipes/vents/pump{ dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "mono" }, -/area/almayer/shipboard/brig/surgery) +/area/almayer/medical/upper_medical) "wud" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -77352,12 +77575,26 @@ icon_state = "orangefull" }, /area/almayer/engineering/lower/workshop) -"wul" = ( -/obj/structure/machinery/light/small{ +"wuh" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/autoopenclose{ + pixel_y = 32 + }, +/obj/structure/sign/safety/water{ + pixel_x = 15; + pixel_y = 32 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/maint/hull/lower/l_f_p) "wup" = ( /obj/structure/supply_drop/echo, /turf/open/floor/almayer, @@ -77380,13 +77617,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop) -"wuH" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, -/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza, -/obj/item/reagent_container/food/snacks/sliceable/pizza/vegetablepizza, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_p) "wuT" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -77454,6 +77684,15 @@ icon_state = "cargo" }, /area/almayer/living/synthcloset) +"wwi" = ( +/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/fore_hallway) "wwr" = ( /obj/structure/machinery/cryopod{ layer = 3.1; @@ -77463,21 +77702,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) -"wwD" = ( -/obj/structure/bed/chair/comfy/orange, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/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, @@ -77517,6 +77753,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" @@ -77525,6 +77766,37 @@ icon_state = "plate" }, /area/almayer/medical/lower_medical_medbay) +"wxu" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) +"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; @@ -77549,18 +77821,9 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"wya" = ( -/obj/structure/platform, -/obj/structure/largecrate/random/case/double{ - layer = 2.98 - }, -/obj/structure/sign/safety/life_support{ - pixel_x = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) +"wyc" = ( +/turf/open/floor/plating, +/area/almayer/maint/upper/u_f_p) "wyt" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/microwave{ @@ -77571,17 +77834,32 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"wyO" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12 +"wyz" = ( +/obj/structure/bed/chair{ + dir = 4 }, -/obj/structure/prop/invuln/overhead_pipe{ - pixel_x = 12; - pixel_y = 12 +/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/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silvercorner" + }, +/area/almayer/hallways/upper/midship_hallway) +"wyG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/hull/lower/l_m_s) "wyQ" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/door_control{ @@ -77594,14 +77872,27 @@ icon_state = "plating" }, /area/almayer/command/airoom) -"wzg" = ( -/obj/structure/bed/chair{ +"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{ - icon_state = "plate" + dir = 8; + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_a_s) +/area/almayer/hallways/upper/fore_hallway) "wzZ" = ( /obj/structure/machinery/door/airlock/almayer/medical/glass{ dir = 1; @@ -77612,20 +77903,15 @@ req_one_access = null }, /turf/open/floor/almayer{ - icon_state = "sterile_green" + 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 @@ -77635,11 +77921,24 @@ dir = 1; name = "ship-grade camera" }, +/obj/item/desk_bell{ + anchored = 1 + }, /turf/open/floor/almayer{ dir = 6; 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{ @@ -77647,19 +77946,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/upper/starboard) -"wBY" = ( -/obj/structure/pipes/vents/pump, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_s) -"wCh" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "wCk" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv/ot{ @@ -77694,21 +77980,8 @@ /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) -"wCZ" = ( -/obj/structure/machinery/door/poddoor/almayer/open{ - dir = 4; - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, -/obj/structure/machinery/door/airlock/almayer/maint/reinforced, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "wDg" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -77719,31 +77992,18 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"wDm" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_y = 1 +"wDq" = ( +/obj/structure/largecrate/random/case/small, +/obj/structure/machinery/light/small{ + dir = 8 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_s) -"wDp" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/camera{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/device/camera_film{ - pixel_x = 4; - pixel_y = -2 - }, -/obj/item/device/camera_film, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) +/area/almayer/maint/hull/upper/u_a_p) +"wDr" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/lower/stairs) "wDs" = ( /obj/structure/machinery/seed_extractor, /obj/structure/sign/safety/terminal{ @@ -77781,6 +78041,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{ @@ -77808,15 +78077,14 @@ "wDM" = ( /turf/closed/wall/almayer/reinforced/temphull, /area/almayer/engineering/upper_engineering) -"wDR" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +"wDP" = ( +/obj/structure/sign/safety/storage{ + pixel_x = -17 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/maint/hull/lower/l_f_p) "wEd" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, @@ -77828,39 +78096,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha) -"wEe" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/liaison_suit/formal, -/obj/item/clothing/under/liaison_suit, -/obj/item/clothing/under/liaison_suit/outing, -/obj/item/clothing/under/liaison_suit/suspenders, -/obj/item/clothing/under/blackskirt{ - desc = "A stylish skirt, in a business-black and red colour scheme."; - name = "liaison's skirt" - }, -/obj/item/clothing/under/suit_jacket/charcoal{ - desc = "A professional black suit and blue tie. A combination popular among government agents and corporate Yes-Men alike."; - name = "liaison's black suit" - }, -/obj/item/clothing/under/suit_jacket/navy{ - desc = "A navy suit and red tie, intended for the Almayer's finest. And accountants."; - name = "liaison's navy suit" - }, -/obj/item/clothing/under/suit_jacket/trainee, -/obj/item/clothing/under/liaison_suit/charcoal, -/obj/item/clothing/under/liaison_suit/outing/red, -/obj/item/clothing/under/liaison_suit/blazer, -/obj/item/clothing/suit/storage/snow_suit/liaison, -/obj/item/clothing/gloves/black, -/obj/item/clothing/gloves/marine/dress, -/obj/item/clothing/glasses/sunglasses/big, -/obj/item/clothing/accessory/blue, -/obj/item/clothing/accessory/red, -/obj/structure/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliaison) "wEg" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ id = "agentshuttle"; @@ -77887,6 +78122,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 @@ -77902,12 +78143,6 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/lower_medical_medbay) -"wFm" = ( -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "wFn" = ( /obj/structure/surface/rack, /obj/item/clothing/suit/storage/marine/light/vest, @@ -77923,6 +78158,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."; @@ -77935,9 +78173,40 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"wFN" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + dir = 4; + id = "OfficeSafeRoom"; + name = "\improper Office Safe Room" + }, +/turf/open/floor/almayer{ + 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) +"wFX" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"wGa" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_s) "wGb" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -77953,35 +78222,18 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"wGi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"wGe" = ( +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_a_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) +/area/almayer/maint/hull/lower/l_f_p) "wGE" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/marine/leader/delta, /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"wGI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "wGX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -78008,6 +78260,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" @@ -78020,17 +78279,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(); @@ -78044,6 +78292,12 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"wIu" = ( +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "wIC" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/shipboard/brig/chief_mp_office) @@ -78074,9 +78328,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/midship_hallway) "wJh" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -78096,22 +78370,16 @@ 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" = ( +/obj/structure/largecrate/random/barrel/yellow, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "wJD" = ( /obj/structure/bed/chair{ dir = 8; @@ -78133,13 +78401,32 @@ "wJH" = ( /turf/closed/wall/almayer/research/containment/wall/east, /area/almayer/medical/containment/cell/cl) -"wKn" = ( -/obj/structure/surface/rack, -/obj/item/facepaint/sniper, +"wKb" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/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 = "plate" + 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/hull/upper_hull/u_m_s) +/area/almayer/hallways/lower/port_aft_hallway) "wKF" = ( /obj/structure/machinery/power/apc/almayer{ cell_type = /obj/item/cell/hyper; @@ -78158,6 +78445,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"; @@ -78182,18 +78478,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/notunnel) -"wLk" = ( -/obj/item/coin/silver{ - desc = "A small coin, bearing the falling falcons insignia."; - name = "falling falcons challenge coin" - }, -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_m_p) "wLm" = ( /turf/open/floor/almayer{ dir = 4; @@ -78270,15 +78554,47 @@ icon_state = "sterile_green" }, /area/almayer/medical/containment) -"wMm" = ( -/obj/structure/machinery/disposal, -/obj/structure/disposalpipe/trunk{ +"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) +"wLT" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, +/obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" + }, +/area/almayer/hallways/upper/aft_hallway) +"wMl" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/area/almayer/hull/upper_hull/u_a_s) +/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" @@ -78287,6 +78603,24 @@ 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) +"wMD" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_f_p) +"wMF" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/s_bow) "wMG" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -78295,6 +78629,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 @@ -78328,20 +78673,33 @@ icon_state = "orange" }, /area/almayer/living/port_emb) -"wNm" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull) "wNt" = ( /turf/open/floor/almayer{ dir = 1; 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" @@ -78354,19 +78712,18 @@ /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 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/starboard) +"wOv" = ( +/obj/structure/platform, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "wOK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -78376,6 +78733,18 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) +"wPa" = ( +/obj/structure/platform{ + dir = 4 + }, +/obj/item/reagent_container/glass/rag, +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "wPf" = ( /obj/structure/sign/safety/reception{ pixel_x = 32; @@ -78385,6 +78754,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/lifeboat_pumps/north2) "wPz" = ( /turf/open/floor/almayer{ icon_state = "mono" @@ -78411,21 +78801,26 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) -"wQg" = ( -/turf/open/floor/almayer{ - dir = 1; - icon_state = "greencorner" - }, -/area/almayer/hallways/aft_hallway) -"wQx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"wPR" = ( +/obj/structure/closet, +/obj/item/clothing/under/marine, +/obj/item/clothing/suit/storage/marine, +/obj/item/clothing/head/helmet/marine, +/obj/item/clothing/head/beret/cm, +/obj/item/clothing/head/beret/cm, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_s) +"wQu" = ( +/obj/effect/projector{ + name = "Almayer_Up3"; + vector_x = -1; + vector_y = 102 }, /turf/open/floor/almayer{ - dir = 8; - icon_state = "orange" + allow_construction = 0; + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_s) +/area/almayer/hallways/lower/port_fore_hallway) "wQA" = ( /obj/structure/pipes/standard/simple/visible{ dir = 5 @@ -78439,15 +78834,19 @@ icon_state = "orange" }, /area/almayer/engineering/lower/engine_core) -"wRa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/safety/bulkhead_door{ - pixel_y = -34 +"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 = "plate" + icon_state = "test_floor4" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hallways/lower/port_umbilical) "wRN" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/seeds/goldappleseed, @@ -78487,15 +78886,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 @@ -78520,13 +78910,21 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/lobby) -"wSK" = ( -/obj/structure/janitorialcart, -/obj/item/tool/mop, +"wSx" = ( +/obj/structure/platform_decoration, +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/shipboard/brig/execution) +/area/almayer/maint/hull/upper/u_a_p) +"wSQ" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "silver" + }, +/area/almayer/hallways/lower/repair_bay) "wSR" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -78583,6 +78981,23 @@ icon_state = "red" }, /area/almayer/living/briefing) +"wTn" = ( +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 20 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_s) +"wTu" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/extinguisher, +/obj/item/tool/extinguisher, +/obj/item/tool/crowbar, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "orange" + }, +/area/almayer/maint/upper/mess) "wTw" = ( /obj/structure/machinery/cm_vending/sorted/attachments/squad{ req_access = null; @@ -78594,20 +79009,20 @@ icon_state = "plate" }, /area/almayer/squads/charlie_delta_shared) -"wTy" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"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 }, -/area/almayer/lifeboat_pumps/south1) -"wTJ" = ( -/obj/structure/barricade/handrail, -/obj/structure/barricade/handrail{ - dir = 4 +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/obj/structure/largecrate/random, -/turf/open/floor/almayer, -/area/almayer/engineering/upper_engineering/port) +/area/almayer/engineering/lower/engine_core) "wTM" = ( /turf/closed/wall/almayer/research/containment/wall/south, /area/almayer/medical/containment/cell) @@ -78628,34 +79043,18 @@ /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 +"wUJ" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/area/almayer/maint/hull/upper/u_m_p) "wUK" = ( /turf/open/floor/almayer{ dir = 8; icon_state = "orangecorner" }, /area/almayer/engineering/lower/workshop/hangar) -"wUN" = ( -/obj/structure/machinery/optable, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"wUO" = ( -/obj/structure/machinery/door/poddoor/shutters/almayer/open{ - id = "InnerShutter"; - name = "\improper Saferoom Shutters" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/lower_hull/l_f_s) "wUP" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -78671,15 +79070,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"wUS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_p) "wUX" = ( /obj/structure/surface/rack, /obj/item/reagent_container/food/snacks/sliceable/cheesewheel/mature{ @@ -78694,9 +79084,20 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"wVb" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_a_s) +"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, @@ -78743,40 +79144,21 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"wVD" = ( +"wVN" = ( +/obj/item/roller, /obj/structure/surface/rack, -/obj/item/tool/wirecutters, -/obj/item/tool/shovel/snow, +/obj/item/roller, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) -"wVP" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/shipboard/panic) "wVW" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/cic) -"wWf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/yautja_teleport, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "wWg" = ( /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{ @@ -78798,6 +79180,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) @@ -78807,15 +79197,6 @@ icon_state = "blue" }, /area/almayer/living/pilotbunks) -"wWL" = ( -/obj/item/tool/screwdriver, -/obj/structure/platform_decoration{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "wWP" = ( /obj/structure/prop/cash_register/broken, /obj/structure/machinery/light/small, @@ -78823,12 +79204,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 @@ -78840,11 +79215,6 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"wWT" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_f_p) "wWX" = ( /obj/effect/landmark/start/marine/engineer/delta, /obj/effect/landmark/late_join/delta, @@ -78858,6 +79228,18 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north2) +"wXl" = ( +/obj/structure/platform, +/turf/open/floor/almayer{ + 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 @@ -78870,6 +79252,12 @@ icon_state = "greencorner" }, /area/almayer/living/grunt_rnr) +"wXJ" = ( +/obj/structure/largecrate/random/case/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "wXT" = ( /obj/structure/machinery/door/airlock/almayer/engineering{ name = "\improper Engineering Storage" @@ -78884,24 +79272,29 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north2) -"wYj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1 - }, -/obj/structure/bed/sofa/south/white/left{ - pixel_y = 16 +"wYd" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/lower/l_a_p) +"wYr" = ( +/obj/structure/machinery/gel_refiller, /turf/open/floor/almayer{ - dir = 9; - icon_state = "silver" + icon_state = "sterile_green_side" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/medical/lower_medical_medbay) "wYA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"wYG" = ( +/obj/structure/largecrate/random/barrel/white, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/lower/l_m_s) "wYK" = ( /obj/structure/barricade/handrail/medical, /turf/open/floor/almayer{ @@ -78931,6 +79324,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/fore_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/aft_hallway) "wZv" = ( /obj/structure/prop/invuln{ desc = "An inflated membrane. This one is puncture proof. Wow!"; @@ -78955,50 +79372,10 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) -"wZH" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_s) "wZL" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/brig/perma) -"wZM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/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) -"wZT" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/obj/item/clipboard, -/obj/item/paper, -/obj/item/tool/pen, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "wZX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -79016,13 +79393,12 @@ icon_state = "plate" }, /area/almayer/shipboard/port_point_defense) -"xae" = ( -/obj/structure/surface/table/almayer, -/obj/item/organ/lungs/prosthetic, +"xas" = ( +/obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/upper/p_bow) "xaC" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/tool/kitchen/utensil/pfork{ @@ -79088,11 +79464,24 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"xbg" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) "xbk" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/gym) +"xbI" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "xbN" = ( /obj/structure/surface/rack{ density = 0; @@ -79104,17 +79493,60 @@ /area/almayer/command/airoom) "xci" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SE-out" + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/starboard) -"xct" = ( -/obj/item/reagent_container/food/snacks/wrapped/barcardine, -/obj/structure/surface/rack, +"xcs" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) +"xcI" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/p_bow) +"xcV" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "OfficeSafeRoom"; + name = "\improper Office Safe Room" + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_a_p) +/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/fore_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) "xdx" = ( /obj/structure/surface/rack, /obj/item/storage/firstaid/regular/empty, @@ -79154,6 +79586,13 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"xee" = ( +/obj/structure/disposalpipe/junction{ + dir = 4; + icon_state = "pipe-j2" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "xef" = ( /obj/structure/surface/table/almayer, /obj/item/folder/yellow, @@ -79177,41 +79616,50 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"xeG" = ( -/obj/structure/machinery/door/airlock/almayer/maint, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hull/upper_hull/u_m_p) -"xfc" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/sign/safety/cryo{ - pixel_x = 36 +"xeq" = ( +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull) -"xfh" = ( -/obj/structure/largecrate/supply/floodlights, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_m_p) -"xfk" = ( +/area/almayer/hallways/upper/aft_hallway) +"xer" = ( +/obj/structure/machinery/power/apc/almayer, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"xew" = ( /obj/structure/surface/rack, -/obj/item/stack/cable_coil, -/obj/item/attachable/flashlight/grip, -/obj/item/ammo_box/magazine/l42a{ - pixel_y = 14 - }, +/obj/item/facepaint/sniper, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) +/area/almayer/maint/upper/u_m_s) "xfm" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/living/cafeteria_officer) +"xfo" = ( +/turf/open/floor/almayer{ + dir = 10; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) +"xfq" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/obj/item/clipboard, +/obj/item/paper, +/obj/item/tool/pen, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "xfK" = ( /obj/structure/machinery/light{ dir = 1 @@ -79255,6 +79703,17 @@ icon_state = "sterile_green_corner" }, /area/almayer/medical/operating_room_one) +"xfW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/guncabinet, +/obj/item/weapon/gun/rifle/m41a{ + pixel_y = 6 + }, +/obj/item/weapon/gun/rifle/m41a, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/upper/u_m_s) "xgh" = ( /obj/structure/pipes/vents/scrubber{ dir = 4 @@ -79263,65 +79722,50 @@ 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/oxygentank, +/obj/structure/reagent_dispensers/fueltank/oxygentank, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/starboard) -"xgn" = ( +"xgr" = ( /obj/structure/ladder{ height = 1; - id = "ForePortMaint" + id = "AftPortMaint" }, /obj/structure/sign/safety/ladder{ pixel_x = 8; pixel_y = -32 }, /turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_f_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 +/area/almayer/maint/hull/lower/l_a_p) +"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/midship_hallway) "xgJ" = ( -/obj/structure/machinery/cm_vending/sorted/medical/blood, /obj/structure/machinery/light{ dir = 1 }, +/obj/structure/machinery/cm_vending/sorted/medical/blood/bolted, /turf/open/floor/almayer{ dir = 1; icon_state = "sterile_green_side" }, /area/almayer/medical/lockerroom) -"xgL" = ( -/obj/item/clothing/head/welding{ - pixel_y = 6 - }, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) "xgN" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 1 @@ -79335,12 +79779,33 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"xgZ" = ( -/obj/structure/largecrate/random/case/small, +"xgP" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/medical/upper_medical) +"xgS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/obj/structure/sign/safety/distribution_pipes{ + pixel_x = 8; + pixel_y = 32 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/stern) +/area/almayer/maint/hull/lower/l_m_p) "xhn" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -79354,26 +79819,11 @@ }, /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) -"xhM" = ( -/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ - dir = 1; - name = "\improper Brig"; - closeOtherId = "brigmaint_n" - }, -/obj/structure/machinery/door/poddoor/almayer/open{ - id = "Brig Lockdown Shutters"; - name = "\improper Brig Lockdown Shutter" - }, +"xhO" = ( /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_s) +/area/almayer/maint/hull/lower/l_a_p) "xhQ" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -79381,11 +79831,16 @@ }, /area/almayer/squads/bravo) "xhU" = ( -/turf/open/floor/almayer{ - dir = 8; - icon_state = "red" +/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 }, -/area/almayer/hull/upper_hull/u_a_p) +/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 @@ -79400,13 +79855,18 @@ /obj/structure/window/reinforced, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) -"xiz" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = -16 +"xiH" = ( +/obj/structure/largecrate/random/barrel/blue, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_f_s) +"xiP" = ( +/obj/structure/closet/secure_closet/engineering_welding{ + req_one_access_txt = "7;23;27" }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/hull/lower/s_bow) "xiU" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/tool/minihoe{ @@ -79421,6 +79881,9 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"xiV" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/maint/hull/upper/p_bow) "xjb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ access_modified = 1; @@ -79473,23 +79936,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/aft_hallway) "xjK" = ( /obj/structure/sign/safety/hazard{ pixel_y = 32 @@ -79513,9 +79965,34 @@ /obj/structure/pipes/vents/pump, /turf/open/floor/almayer, /area/almayer/shipboard/starboard_point_defense) +"xkb" = ( +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12 + }, +/obj/structure/prop/invuln/overhead_pipe{ + pixel_x = 12; + pixel_y = 12 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"xkc" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "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/fore_hallway) "xkB" = ( /obj/structure/bed/chair/comfy/charlie{ dir = 1 @@ -79525,15 +80002,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, @@ -79547,14 +80029,6 @@ icon_state = "orangecorner" }, /area/almayer/engineering/ce_room) -"xlD" = ( -/obj/structure/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "xlO" = ( /obj/structure/filingcabinet, /obj/item/folder/yellow, @@ -79566,9 +80040,6 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"xlX" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "xmg" = ( /obj/structure/surface/table/almayer, /obj/structure/flora/pottedplant{ @@ -79581,15 +80052,21 @@ icon_state = "silverfull" }, /area/almayer/shipboard/brig/cic_hallway) -"xmv" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/cameras/almayer{ - dir = 1 +"xmn" = ( +/obj/structure/surface/rack, +/obj/item/tool/weldpack, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 1; + pixel_y = 7 + }, +/obj/item/storage/toolbox/mechanical/green{ + pixel_x = 1; + pixel_y = -1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_f_p) "xmJ" = ( /obj/structure/closet, /obj/structure/sign/safety/bathunisex{ @@ -79611,11 +80088,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"; @@ -79626,7 +80098,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{ @@ -79643,21 +80115,20 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/req) "xnR" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1; - name = "\improper Engineering Storage" - }, /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 1 }, +/obj/structure/machinery/door/airlock/almayer/maint{ + access_modified = 1; + dir = 1; + name = "\improper Engineering Storage"; + req_one_access = null; + req_one_access_txt = "2;7" + }, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering) -"xnY" = ( -/obj/structure/largecrate/random/barrel/yellow, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "xoe" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -79673,16 +80144,28 @@ icon_state = "bluecorner" }, /area/almayer/squads/delta) -"xoh" = ( -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" +"xog" = ( +/obj/effect/step_trigger/clone_cleaner, +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) +/turf/open/floor/almayer{ + dir = 8; + icon_state = "green" + }, +/area/almayer/hallways/upper/fore_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) "xoJ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ dir = 1 @@ -79697,23 +80180,15 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"xpd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) -"xpf" = ( -/obj/structure/bed/chair{ - dir = 4 +"xpc" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 1; + name = "ship-grade camera" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "xpi" = ( /obj/structure/sink{ dir = 8; @@ -79731,42 +80206,38 @@ 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) -"xpt" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) -"xpI" = ( -/obj/structure/stairs{ - dir = 4 +/area/almayer/hallways/lower/port_midship_hallway) +"xpw" = ( +/obj/structure/machinery/medical_pod/sleeper{ + dir = 8 }, -/obj/effect/projector{ - name = "Almayer_Up2"; - vector_x = -1; - vector_y = 100 +/turf/open/floor/almayer{ + icon_state = "dark_sterile" }, -/turf/open/floor/plating/almayer{ - allow_construction = 0 +/area/almayer/shipboard/brig/medical) +"xpL" = ( +/obj/structure/machinery/light/small{ + dir = 4 }, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_p) "xpT" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -79806,12 +80277,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{ @@ -79846,6 +80311,19 @@ icon_state = "plate" }, /area/almayer/command/corporateliaison) +"xrg" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/sign/safety/airlock{ + pixel_x = 32; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "xrq" = ( /obj/structure/closet/firecloset, /obj/item/clothing/mask/gas, @@ -79854,12 +80332,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 @@ -79886,6 +80358,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 @@ -79894,17 +80377,16 @@ icon_state = "plate" }, /area/almayer/engineering/lower/workshop) -"xrN" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" +"xrT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 }, -/area/almayer/hull/upper_hull/u_a_p) -"xsg" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/shipboard/brig/main_office) +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/lower/repair_bay) "xsl" = ( /obj/structure/machinery/alarm/almayer{ dir = 1 @@ -79914,6 +80396,22 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) +"xss" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/lower/cryo_cells) +"xsv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "xsw" = ( /turf/open/floor/almayer{ dir = 6; @@ -79929,22 +80427,27 @@ icon_state = "plating" }, /area/almayer/medical/upper_medical) -"xsW" = ( -/obj/structure/machinery/cm_vending/gear/vehicle_crew, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/hallways/vehiclehangar) -"xtD" = ( +"xsQ" = ( /obj/structure/surface/table/almayer, -/obj/item/tool/weldpack, -/obj/item/storage/toolbox/mechanical, -/obj/item/reagent_container/spray/cleaner, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = 3; + pixel_y = 3 }, -/area/almayer/hull/upper_hull/u_a_s) +/obj/item/weapon/dart, +/obj/item/weapon/dart, +/obj/item/weapon/dart, +/obj/item/weapon/dart/green, +/obj/item/weapon/dart/green, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) +"xsX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/light, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/aft_hallway) "xtM" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -79952,36 +80455,26 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) -"xtQ" = ( -/obj/structure/surface/rack, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = -6; - pixel_y = 7 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = -6; - pixel_y = -3 - }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = 5; - pixel_y = 9 +"xtO" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 }, -/obj/item/ammo_magazine/rifle/l42a/ap{ - current_rounds = 0; - pixel_x = 5; - pixel_y = -3 +/turf/open/floor/almayer{ + dir = 1; + icon_state = "green" }, -/obj/structure/noticeboard{ - desc = "The note is haphazardly attached to the cork board by what looks like a bent firing pin. 'The order has come in to perform end of life service checks on all L42A service rifles, any that are defective are to be dis-assembled and packed into a crate and sent to to the cargo hold. L42A service rifles that are in working order after servicing, are to be locked in secure cabinets ready to be off-loaded at Chinook. Scheduled end of life service for the L42A - Complete'"; - pixel_y = 29 +/area/almayer/hallways/upper/fore_hallway) +"xub" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/area/almayer/hull/upper_hull/u_m_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_midship_hallway) "xuc" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -79989,12 +80482,23 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) -"xuB" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"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 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) +/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; @@ -80020,13 +80524,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/containment/cell) -"xuI" = ( -/obj/structure/sign/safety/water{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "xuQ" = ( /obj/structure/bed/chair{ dir = 4 @@ -80048,13 +80545,9 @@ 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) +"xvB" = ( +/turf/closed/wall/almayer, +/area/almayer/maint/upper/u_f_p) "xvE" = ( /obj/structure/machinery/door/firedoor/border_only/almayer, /obj/structure/machinery/door/airlock/multi_tile/almayer/marine/charlie{ @@ -80073,11 +80566,21 @@ req_one_access_txt = "90;91;92" }, /obj/effect/step_trigger/clone_cleaner, -/turf/open/floor/almayer/no_build{ +/turf/open/floor/almayer/aicore/no_build{ dir = 4; - icon_state = "silver" + icon_state = "ai_silver" }, /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/midship_hallway) "xvQ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/sentencing{ @@ -80094,6 +80597,15 @@ icon_state = "plate" }, /area/almayer/squads/bravo) +"xwd" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "xwl" = ( /obj/structure/window/reinforced{ dir = 4; @@ -80107,6 +80619,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; @@ -80130,10 +80654,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"xwq" = ( -/obj/structure/largecrate/supply/supplies/mre, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) "xwE" = ( /obj/structure/bed/chair/comfy/alpha, /obj/effect/decal/cleanable/dirt, @@ -80141,6 +80661,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/fore_hallway) "xwX" = ( /turf/open/floor/almayer{ dir = 9; @@ -80158,15 +80687,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"xxe" = ( -/obj/structure/surface/rack, -/obj/item/tool/crowbar, -/obj/item/tool/weldingtool, -/obj/item/tool/wrench, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_m_s) "xxh" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -80194,14 +80714,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 @@ -80239,6 +80751,19 @@ }, /turf/open/floor/plating, /area/almayer/living/port_emb) +"xxG" = ( +/obj/structure/prop/holidays/string_lights{ + pixel_y = 27 + }, +/obj/structure/largecrate/random/barrel/red, +/obj/item/reagent_container/food/drinks/cans/cola{ + pixel_x = -2; + pixel_y = 16 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) "xxI" = ( /obj/structure/cargo_container/wy/mid, /obj/structure/sign/poster{ @@ -80279,20 +80804,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"xxJ" = ( -/obj/structure/platform, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"xxT" = ( -/obj/structure/surface/table/almayer, -/obj/item/frame/table, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_s) "xxZ" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ @@ -80304,9 +80815,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{ @@ -80342,12 +80850,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/upper/port) -"xyE" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "xyL" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -80357,6 +80859,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{ @@ -80368,6 +80879,11 @@ icon_state = "green" }, /area/almayer/squads/req) +"xyZ" = ( +/obj/structure/machinery/light/small, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/s_bow) "xzf" = ( /obj/structure/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -80378,37 +80894,24 @@ icon_state = "blue" }, /area/almayer/living/basketball) -"xzo" = ( -/obj/item/stack/catwalk, -/obj/structure/platform_decoration{ - dir = 4 - }, -/turf/open/floor/plating, -/area/almayer/hull/upper_hull/u_a_p) -"xzO" = ( -/obj/structure/closet/secure_closet{ - name = "\improper Execution Firearms" +"xzh" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_p) +"xzB" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_s) +"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 @@ -80417,6 +80920,13 @@ icon_state = "emeraldfull" }, /area/almayer/living/briefing) +"xAu" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/s_bow) "xAB" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin/uscm, @@ -80461,6 +80971,12 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) +"xBK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/maint/hull/upper/u_f_p) "xBQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -80468,6 +80984,14 @@ }, /turf/open/floor/almayer, /area/almayer/squads/charlie_delta_shared) +"xBS" = ( +/obj/structure/bed/chair/comfy/beige{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "xBV" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -80497,39 +81021,25 @@ }, /turf/open/floor/carpet, /area/almayer/command/corporateliaison) -"xCj" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) -"xCm" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"xCN" = ( -/obj/structure/prop/holidays/string_lights{ - pixel_y = 27 - }, -/obj/structure/largecrate/random/barrel/red, -/obj/item/reagent_container/food/drinks/cans/cola{ - pixel_x = -2; - pixel_y = 16 +"xCy" = ( +/obj/structure/sign/safety/maint{ + pixel_x = -19; + pixel_y = -6 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/sign/safety/bulkhead_door{ + pixel_x = -19; + pixel_y = 6 }, -/area/almayer/hull/lower_hull/l_m_s) -"xCR" = ( -/obj/structure/machinery/light/small, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_s) -"xCX" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - dir = 1 +/turf/open/floor/almayer, +/area/almayer/maint/hull/upper/u_f_p) +"xCS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "orangecorner" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/hallways/upper/aft_hallway) "xDe" = ( /obj/effect/projector{ name = "Almayer_Down4"; @@ -80540,36 +81050,15 @@ allow_construction = 0 }, /area/almayer/hallways/upper/port) -"xDj" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 2 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "xDn" = ( /turf/open/floor/almayer{ dir = 1; icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"xDp" = ( -/obj/structure/surface/rack, -/obj/item/paper{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/folder/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_s) "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, @@ -80578,6 +81067,15 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) +"xDG" = ( +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/maint/upper/u_a_s) "xDV" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -80588,6 +81086,14 @@ icon_state = "red" }, /area/almayer/hallways/upper/port) +"xEe" = ( +/obj/structure/prop/invuln/joey, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_m_s) +"xEs" = ( +/obj/effect/landmark/yautja_teleport, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_m_p) "xEz" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/book/manual/surgery, @@ -80599,9 +81105,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_two) -"xEF" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/upper_hull/u_f_p) "xEO" = ( /turf/open/floor/prison{ icon_state = "kitchen" @@ -80613,33 +81116,21 @@ icon_state = "plate" }, /area/almayer/living/offices) -"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) -"xFD" = ( -/obj/structure/ladder{ - height = 1; - id = "ForeStarboardMaint" - }, -/obj/structure/sign/safety/ladder{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/almayer, -/area/almayer/hull/lower_hull/l_f_s) +"xFt" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_f_p) "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/midship_hallway) "xFZ" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -80657,16 +81148,12 @@ 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" +"xGm" = ( +/obj/structure/platform_decoration{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/hallways/aft_hallway) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/u_a_p) "xGo" = ( /obj/structure/machinery/autolathe, /turf/open/floor/almayer{ @@ -80694,6 +81181,15 @@ icon_state = "test_floor4" }, /area/almayer/squads/bravo) +"xGF" = ( +/obj/structure/machinery/vending/snack{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_f_p) "xGJ" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22"; @@ -80704,19 +81200,59 @@ icon_state = "red" }, /area/almayer/living/briefing) +"xGK" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/storage/box/lights/tubes{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/ash{ + pixel_y = 19 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) +"xGT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) +"xHa" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/tool, +/obj/effect/spawner/random/powercell, +/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" }, /area/almayer/squads/alpha_bravo_shared) -"xHG" = ( -/obj/structure/surface/rack, +"xHD" = ( +/obj/structure/machinery/light, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 10; + icon_state = "silver" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/upper/u_m_p) "xHS" = ( -/obj/structure/reagent_dispensers/oxygentank{ +/obj/structure/reagent_dispensers/fueltank/oxygentank{ anchored = 1 }, /obj/effect/decal/warning_stripes{ @@ -80727,18 +81263,15 @@ icon_state = "cargo" }, /area/almayer/engineering/lower/workshop/hangar) -"xHW" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/almayer{ - icon_state = "cargo" +"xHX" = ( +/obj/structure/sign/safety/restrictedarea{ + pixel_x = 8; + pixel_y = 32 }, -/area/almayer/hull/upper_hull/u_f_p) -"xIb" = ( -/obj/structure/closet/emcloset, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_p) +/area/almayer/maint/hull/lower/p_bow) "xId" = ( /obj/structure/surface/rack, /obj/item/mortar_shell/he, @@ -80747,26 +81280,6 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"xIi" = ( -/obj/item/stool{ - pixel_x = 15; - pixel_y = 6 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"xIj" = ( -/obj/structure/largecrate/random/secure, -/obj/item/weapon/baseballbat/metal{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_y = 5 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_f_p) "xIk" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -80799,20 +81312,15 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"xIO" = ( -/obj/structure/machinery/power/fusion_engine{ - name = "\improper S-52 fusion reactor 11" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering/lower/engine_core) "xIQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/almayer, /area/almayer/living/offices) +"xIV" = ( +/turf/open/floor/almayer, +/area/almayer/maint/upper/mess) "xIW" = ( /obj/structure/machinery/light{ dir = 4 @@ -80847,12 +81355,12 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"xJi" = ( -/obj/structure/disposalpipe/segment, +"xJp" = ( +/obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/lower_hull/l_f_s) +/area/almayer/maint/hull/lower/l_m_s) "xJH" = ( /turf/open/floor/almayer{ icon_state = "cargo" @@ -80874,6 +81382,18 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"xKG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/machinery/door_control{ + id = "Under Construction Shutters"; + name = "shutter-control"; + pixel_x = -25 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "xKM" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -80893,24 +81413,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/synthcloset) -"xKW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = -14; - pixel_y = 13 - }, -/obj/structure/prop/invuln/overhead_pipe{ - dir = 4; - pixel_x = 12; - pixel_y = 13 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_p) "xLi" = ( /obj/structure/surface/table/almayer, /obj/effect/landmark/map_item, @@ -80938,24 +81440,40 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/general_equipment) -"xMf" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"xLm" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" }, -/turf/open/floor/almayer, -/area/almayer/shipboard/port_point_defense) -"xMh" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = -16; - pixel_y = 17 +/area/almayer/maint/upper/u_a_s) +"xLn" = ( +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" }, +/area/almayer/maint/hull/upper/s_stern) +"xLu" = ( /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/hull/lower_hull/l_m_p) +/area/almayer/hallways/lower/port_midship_hallway) +"xMf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/port_point_defense) "xMj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -80968,21 +81486,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; @@ -80993,6 +81496,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) +"xMm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/largecrate/random/barrel/green, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_a_p) "xMs" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/operating_room_two) @@ -81021,6 +81533,26 @@ dir = 6 }, /area/almayer/command/cic) +"xMG" = ( +/obj/structure/machinery/door_control{ + id = "OuterShutter"; + name = "Outer Shutter"; + pixel_x = 5; + pixel_y = -2; + req_one_access_txt = "1;3" + }, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door_control{ + id = "OfficeSafeRoom"; + name = "Office Safe Room"; + pixel_x = 5; + pixel_y = 5; + req_one_access_txt = "1;3" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/shipboard/panic) "xML" = ( /obj/structure/machinery/computer/cameras/wooden_tv/prop{ pixel_x = -4; @@ -81088,6 +81620,12 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"xNl" = ( +/turf/open/floor/almayer{ + dir = 4; + icon_state = "blue" + }, +/area/almayer/hallways/upper/midship_hallway) "xNu" = ( /obj/structure/toilet{ dir = 1 @@ -81121,25 +81659,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"; @@ -81181,6 +81706,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, @@ -81189,10 +81734,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower/workshop/hangar) -"xPE" = ( -/obj/structure/largecrate/random/barrel/white, +"xPu" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/maint/upper/u_a_p) "xPZ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -81208,6 +81755,24 @@ }, /turf/open/floor/almayer, /area/almayer/command/cic) +"xQd" = ( +/obj/structure/sign/safety/hvac_old{ + pixel_x = 8; + pixel_y = -32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_p) +"xQe" = ( +/obj/structure/machinery/vending/cigarette{ + density = 0; + pixel_y = 18 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_p) "xQg" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -81217,43 +81782,38 @@ icon_state = "bluecorner" }, /area/almayer/living/pilotbunks) +"xQj" = ( +/obj/item/pipe{ + dir = 4; + layer = 3.5 + }, +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "xQm" = ( /turf/open/floor/almayer/research/containment/floor2{ 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) -"xRc" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/machinery/door_control{ - id = "Under Construction Shutters"; - name = "shutter-control"; - pixel_x = -25 - }, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) -"xRh" = ( -/obj/structure/bed, -/obj/item/bedsheet/green, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/machinery/cm_vending/clothing/senior_officer{ - density = 0; - pixel_y = 30 +"xQW" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_x = -18 }, /turf/open/floor/almayer{ - icon_state = "mono" + icon_state = "plate" }, -/area/almayer/medical/upper_medical) +/area/almayer/maint/hull/upper/p_stern) "xRj" = ( /obj/structure/bed/chair{ dir = 8; @@ -81287,20 +81847,17 @@ icon_state = "silver" }, /area/almayer/command/computerlab) +"xRn" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "greencorner" + }, +/area/almayer/hallways/upper/fore_hallway) "xRw" = ( /turf/open/floor/almayer/uscm/directional{ dir = 1 }, /area/almayer/living/briefing) -"xRE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/largecrate/random/barrel/green, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "xRH" = ( /obj/structure/sign/safety/fibre_optics{ pixel_y = 32 @@ -81321,21 +81878,16 @@ icon_state = "orangefull" }, /area/almayer/living/briefing) -"xRU" = ( -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" +"xSl" = ( +/obj/structure/machinery/firealarm{ + dir = 4; + pixel_x = 24 }, -/area/almayer/hallways/aft_hallway) -"xSb" = ( -/obj/structure/largecrate/random/barrel/red, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "red" }, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/hallways/upper/aft_hallway) "xSw" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -81346,6 +81898,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{ @@ -81356,15 +81914,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 @@ -81395,24 +81944,23 @@ 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 }, /turf/open/floor/almayer, /area/almayer/engineering/lower/engine_core) +"xTx" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/upper/u_f_p) +"xTG" = ( +/obj/structure/closet/emcloset, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "xTH" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/recharger, @@ -81422,8 +81970,8 @@ /area/almayer/shipboard/brig/processing) "xTL" = ( /obj/structure/machinery/cm_vending/gear/executive_officer{ - pixel_y = 30; - density = 0 + density = 0; + pixel_y = 30 }, /obj/structure/machinery/power/apc/almayer{ dir = 4 @@ -81432,6 +81980,15 @@ icon_state = "plate" }, /area/almayer/living/numbertwobunks) +"xTO" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "blue" + }, +/area/almayer/hallways/upper/fore_hallway) "xTR" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -81477,6 +82034,13 @@ }, /turf/open/floor/wood/ship, /area/almayer/command/corporateliaison) +"xUy" = ( +/obj/item/reagent_container/food/snacks/wrapped/barcardine, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/p_stern) "xUA" = ( /obj/structure/surface/table/almayer, /obj/item/storage/pouch/tools/tank, @@ -81493,23 +82057,25 @@ icon_state = "silver" }, /area/almayer/command/cic) -"xUI" = ( -/obj/structure/largecrate/random/barrel/red, -/obj/structure/machinery/light/small{ - dir = 8 +"xUV" = ( +/obj/structure/bed/chair{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_m_s) -"xUV" = ( -/obj/structure/bed/chair{ +/area/almayer/command/combat_correspondent) +"xUY" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/machinery/light/small{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/command/combat_correspondent) +/area/almayer/maint/hull/lower/l_f_p) "xVc" = ( /obj/effect/step_trigger/clone_cleaner, /obj/structure/machinery/door_control{ @@ -81519,9 +82085,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{ @@ -81535,23 +82099,15 @@ icon_state = "red" }, /area/almayer/hallways/upper/starboard) -"xVj" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool{ - pixel_x = 6; - pixel_y = -16 +"xVg" = ( +/turf/open/floor/almayer{ + dir = 5; + icon_state = "red" }, -/obj/item/clothing/head/welding, -/turf/open/floor/plating, -/area/almayer/hull/lower_hull/l_f_p) +/area/almayer/lifeboat_pumps/north2) "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" @@ -81581,6 +82137,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{ @@ -81594,7 +82156,7 @@ req_one_access_txt = "19;21" }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, /area/almayer/squads/req) "xWp" = ( @@ -81606,12 +82168,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cic_hallway) -"xWF" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "xWO" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = -25 @@ -81690,11 +82246,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"xYe" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/weldingtool, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_s) "xYf" = ( /obj/structure/machinery/cm_vending/clothing/sea, /turf/open/floor/almayer{ @@ -81702,6 +82253,12 @@ icon_state = "plating" }, /area/almayer/shipboard/sea_office) +"xYr" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/upper/p_bow) "xYB" = ( /obj/structure/sign/safety/storage{ pixel_x = 8; @@ -81709,14 +82266,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/starboard_point_defense) -"xYN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"xYE" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 }, -/area/almayer/hull/lower_hull/l_f_s) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "xYP" = ( /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) @@ -81726,16 +82281,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 @@ -81745,6 +82290,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/midship_hallway) "xZk" = ( /obj/item/prop/helmetgarb/gunoil{ layer = 4.2; @@ -81772,6 +82323,10 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"xZz" = ( +/obj/item/paper/almayer_storage, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_a_p) "xZG" = ( /obj/structure/machinery/light{ dir = 4 @@ -81780,23 +82335,28 @@ /obj/structure/bed, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) -"xZI" = ( -/obj/structure/prop/invuln/lattice_prop{ - dir = 1; - icon_state = "lattice-simple"; - pixel_x = 16; - pixel_y = -16 +"xZH" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, -/turf/open/floor/almayer{ - icon_state = "plate" +/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 }, -/area/almayer/hull/lower_hull/l_m_s) -"xZK" = ( -/obj/structure/surface/rack, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 4; + icon_state = "orange" }, -/area/almayer/hull/lower_hull/l_a_p) +/area/almayer/hallways/lower/starboard_midship_hallway) "xZU" = ( /obj/structure/machinery/cryopod{ pixel_y = 6 @@ -81817,13 +82377,18 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"yal" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/effect/spawner/random/tool, +"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/hull/upper_hull/u_a_p) +/area/almayer/hallways/lower/starboard_fore_hallway) "yaz" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor{ name = "\improper Officer's Study" @@ -81850,45 +82415,52 @@ icon_state = "orange" }, /area/almayer/engineering/lower) -"yaG" = ( -/obj/structure/largecrate/random/case/double, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) "yaQ" = ( /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) +"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 = "cargo_arrow" + }, +/area/almayer/hallways/lower/vehiclehangar) "yaZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; layer = 3.3 }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, +/turf/open/floor/almayer/aicore/no_build, /area/almayer/command/airoom) -"ybf" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 +"ybk" = ( +/turf/closed/wall/almayer, +/area/almayer/hallways/upper/midship_hallway) +"ybm" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/head/hardhat{ + pixel_x = 10; + pixel_y = 1 }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "blue" +/obj/item/clothing/suit/storage/hazardvest{ + pixel_x = -8; + pixel_y = 6 }, -/area/almayer/hallways/aft_hallway) -"ybr" = ( -/obj/structure/sign/safety/water{ +/obj/item/clothing/suit/storage/hazardvest/yellow, +/obj/item/clothing/suit/storage/hazardvest{ pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + pixel_y = 7 }, -/area/almayer/hull/lower_hull/l_a_p) +/turf/open/floor/plating, +/area/almayer/maint/lower/constr) "ybz" = ( /obj/structure/machinery/brig_cell/cell_4{ pixel_x = 32; @@ -81896,33 +82468,14 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) -"ybO" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/stack/sheet/mineral/phoron/medium_stack, -/obj/item/stack/sheet/mineral/phoron/medium_stack{ - pixel_y = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_a_p) -"ybS" = ( -/obj/structure/prop/invuln/lattice_prop{ - icon_state = "lattice12"; - pixel_y = 16 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_a_s) -"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{ @@ -81951,6 +82504,9 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"ycl" = ( +/turf/open/floor/plating, +/area/almayer/maint/hull/lower/l_m_s) "ycm" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -81982,10 +82538,14 @@ icon_state = "green" }, /area/almayer/squads/req) -"ycV" = ( -/obj/structure/curtain/red, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) +"ycM" = ( +/obj/structure/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_m_p) "ycZ" = ( /obj/structure/sign/poster{ pixel_y = 32 @@ -81995,6 +82555,18 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"yde" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/upper/fore_hallway) +"ydf" = ( +/obj/structure/platform{ + dir = 1 + }, +/obj/structure/largecrate/random/case, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/upper/u_a_s) "ydh" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -82005,15 +82577,6 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) -"ydx" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/lower_hull/l_a_p) "ydz" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -82022,6 +82585,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"; @@ -82036,9 +82612,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{ @@ -82071,15 +82645,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, @@ -82108,13 +82673,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"yeP" = ( -/obj/structure/sign/safety/hvac_old{ - pixel_x = 8; - pixel_y = 32 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_a_s) "yeR" = ( /obj/structure/machinery/cm_vending/clothing/senior_officer{ req_access = null; @@ -82123,6 +82681,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; @@ -82135,6 +82699,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, @@ -82142,43 +82713,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" - }, -/area/almayer/hallways/starboard_hallway) "yfy" = ( -/obj/structure/surface/table/almayer, -/obj/item/trash/crushed_cup, -/obj/item/reagent_container/food/drinks/cup{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/item/spacecash/c10{ - pixel_x = 5; - pixel_y = 10 - }, -/obj/item/ashtray/plastic{ - pixel_x = 5; - pixel_y = -10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/barricade/handrail{ + dir = 1; + pixel_y = 2 }, -/area/almayer/hull/lower_hull/l_m_s) +/turf/open/floor/almayer, +/area/almayer/hallways/lower/port_fore_hallway) "yfG" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -82191,6 +82732,41 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"yfL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1 + }, +/obj/structure/bed/sofa/south/white/left{ + pixel_y = 16 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "silver" + }, +/area/almayer/maint/upper/u_m_p) +"yfO" = ( +/obj/structure/machinery/door/airlock/almayer/security/glass/reinforced{ + closeOtherId = "brigwarden"; + name = "\improper Warden's Office" + }, +/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{ @@ -82207,21 +82783,44 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"ygy" = ( -/obj/structure/machinery/light/small{ - dir = 1 +"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 + }, +/obj/structure/sign/safety/nonpress_ag{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/west{ + pixel_y = -32 }, -/obj/structure/surface/rack, -/obj/effect/spawner/random/tool, -/obj/effect/spawner/random/tool, /turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_f_p) -"ygK" = ( -/obj/structure/prop/almayer/computers/sensor_computer3, +/area/almayer/maint/hull/lower/l_f_p) +"ygB" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 6; + icon_state = "green" }, -/area/almayer/hull/lower_hull/l_m_s) +/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; @@ -82230,46 +82829,57 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"yht" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/open/floor/almayer{ + icon_state = "red" + }, +/area/almayer/living/cryo_cells) "yhI" = ( /turf/open/floor/almayer{ dir = 4; icon_state = "red" }, /area/almayer/lifeboat_pumps/south1) -"yhQ" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hull/lower_hull/l_m_p) -"yiq" = ( -/obj/structure/sign/safety/north{ - pixel_x = -17; - pixel_y = -8 +"yhR" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/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{ - dir = 8; - icon_state = "red" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) -"yit" = ( -/obj/structure/machinery/light{ +/area/almayer/shipboard/brig/mp_bunks) +"yhZ" = ( +/turf/closed/wall/almayer/reinforced, +/area/almayer/maint/hull/lower/p_bow) +"yia" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/hull/lower/l_a_s) +"yih" = ( +/obj/structure/machinery/light/small{ dir = 4 }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/l_m_s) +"yit" = ( /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) -"yiC" = ( -/obj/structure/surface/table/almayer, -/obj/structure/flora/pottedplant{ - icon_state = "pottedplant_21"; - pixel_y = 11 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hull/upper_hull/u_f_p) "yiW" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -82301,10 +82911,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) -"yji" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_m_p) "yjq" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ icon_state = "almayer_pdoor"; @@ -82314,6 +82920,15 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/notunnel) +"yjE" = ( +/obj/structure/sign/safety/water{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/maint/hull/lower/stern) "yjG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -82348,45 +82963,88 @@ icon_state = "test_floor4" }, /area/almayer/living/grunt_rnr) -"yky" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/toolbox, -/obj/effect/spawner/random/tool, +"yko" = ( +/obj/vehicle/powerloader, +/obj/structure/platform{ + dir = 4 + }, +/obj/structure/platform{ + dir = 8 + }, /turf/open/floor/almayer{ icon_state = "cargo" }, -/area/almayer/hull/lower_hull/l_m_s) -"ykF" = ( -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage, +/area/almayer/hallways/lower/repair_bay) +"ykv" = ( +/obj/structure/machinery/door/poddoor/shutters/almayer/open{ + id = "InnerShutter"; + name = "\improper Saferoom Shutters" + }, /turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" + icon_state = "test_floor4" }, -/area/almayer/hull/lower_hull/l_m_s) +/area/almayer/shipboard/panic) "ykI" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/lower) -"ykP" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 +"ykY" = ( +/obj/structure/machinery/light/small{ + dir = 1 }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 18 +/obj/structure/closet/crate, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 }, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 }, -/area/almayer/shipboard/brig/main_office) +/obj/item/ammo_magazine/rifle/l42a/ap{ + current_rounds = 0 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/maint/upper/u_m_s) "ylc" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -82397,9 +83055,9 @@ pixel_x = -1 }, /obj/structure/machinery/door/airlock/almayer/research/reinforced{ + closeOtherId = "containment_s"; dir = 8; - name = "\improper Containment Airlock"; - closeOtherId = "containment_s" + name = "\improper Containment Airlock" }, /obj/structure/machinery/door/poddoor/almayer/biohazard/white{ dir = 4 @@ -82421,43 +83079,23 @@ 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) -"ylY" = ( -/obj/structure/largecrate/random/case/double, -/obj/item/tool/wet_sign{ - pixel_y = 18 - }, -/obj/item/trash/cigbutt/ucigbutt{ - desc = "A handful of rounds to reload on the go."; - icon = 'icons/obj/items/weapons/guns/handful.dmi'; - icon_state = "bullet_2"; - name = "handful of pistol bullets (9mm)"; - pixel_x = -8; - pixel_y = 10 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/lower_hull/l_m_s) -"ymi" = ( -/obj/structure/machinery/door/airlock/almayer/maint{ - req_one_access = null; - req_one_access_txt = "2;30;34" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/turf/open/floor/almayer, +/area/almayer/hallways/lower/starboard_aft_hallway) +"ymg" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + layer = 2.5; + pixel_y = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/maint/hull/lower/l_f_p) (1,1,1) = {" aaa @@ -89819,13 +90457,13 @@ dhd oog jNT fag -jVP -feb -feb -feb -feb -feb +qCA feb +hRu +hRu +hRu +hRu +hRu ajZ aaa aaa @@ -90023,12 +90661,12 @@ nPb fZX dBS nSu -wld -mtl -jjm -wZN -kgQ -feb +rXE +xyN +ltO +tBP +tfE +hRu aag aaf ajY @@ -90213,8 +90851,8 @@ aaa aaa aaa aad -pCi -pCi +uDg +uDg hPI pQr rib @@ -90227,13 +90865,13 @@ qVF xdJ kzr jqY -kBh -jNT -jNT -wSK -feb -xEF -xEF +elV +dJJ +dJJ +glP +hRu +xiV +xiV ajZ aaa aaa @@ -90415,9 +91053,9 @@ aaf aaf aaf aaf -pCi -pCi -sBo +uDg +uDg +lHk naB wnw pHp @@ -90430,14 +91068,14 @@ mtl mtl mtl ewI -mtl -xzO -pNk -jIH -mtl -gbO -xEF -xEF +xyN +hdQ +hUU +cXD +xyN +igS +xiV +xiV aaf aaf aaf @@ -90611,16 +91249,16 @@ aaa aaa aaa aad -pCi -pCi -pCi -pCi -pCi -pCi -pCi -pCi -cpf -cHP +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +aPN +lSJ naB pQr jeR @@ -90633,21 +91271,21 @@ tul mNK gtU bjk -mtl -mtl -mtl -mtl -mtl -dgq -sGe -xEF -xEF -xEF -xEF -xEF -xEF -xEF -xEF +xyN +xyN +xyN +xyN +xyN +iuf +pnh +xiV +xiV +xiV +xiV +xiV +xiV +xiV +xiV ajZ aaa aaa @@ -90814,16 +91452,16 @@ aaa aaa aaa aad -pCi -mUQ -rPC -wcn -eEf -xhM -wcn -tng -hGD -qUE +uDg +cth +gkr +xkc +oGj +hSj +xkc +mph +nlh +rGr naB naB naB @@ -90839,18 +91477,18 @@ rdA alF sql alF -dTQ -kIV -iYi -gSs -eyd -kIV -kQz -jjX -kIV -kIV -flP -xEF +rwe +pdp +hZw +xYr +mjs +pdp +ohu +iUh +pdp +pdp +kSn +xiV ajZ bdH bdH @@ -91017,16 +91655,16 @@ bdH aac aaf aag -pCi -rPC -wcn -rPC -vWx -age -aNk -rTV -wcn -tYB +uDg +gkr +xkc +gkr +vAg +gxI +kqC +bBU +xkc +eeA naB pQr ggS @@ -91045,15 +91683,15 @@ xkd xkd xkd xkd -shw -ecP -nxc -qFl -vUI -mnm -mnm -kIV -xEF +lRt +tsE +iVG +hmA +hmZ +oDh +oDh +pdp +xiV aag aaf ajY @@ -91219,17 +91857,17 @@ bdH bdH aad aag -pCi -pCi -rPC -wcn -vBm -vBm -vBm -vBm -vBm -qmC -vBm +uDg +uDg +gkr +xkc +hvd +hvd +hvd +hvd +hvd +mze +eyD naB kry pHp @@ -91254,10 +91892,10 @@ xkd xkd xkd xkd -kIV -mnm -xEF -xEF +pdp +oDh +xiV +xiV aag ajZ bdH @@ -91422,17 +92060,17 @@ bdH bdH aad aag -pCi -ext -rPC -mUQ -vBm -rBV -oPk -mqo -vBm -eRL -puv +uDg +pOp +gkr +cth +hvd +ddj +wlg +fuY +hvd +cQG +jXc naB pQr bsp @@ -91457,10 +92095,10 @@ uns vCy eyV xkd -dAb -mnm -kIV -xEF +mkF +oDh +pdp +xiV aag ajZ bdH @@ -91625,17 +92263,17 @@ bdH bdH aad aag -pCi -oCL -wcn -fuB -vBm -ldu -wgi -wgi -ckS -eRL -sDV +uDg +lDT +xkc +xyZ +hvd +vGn +ehl +ehl +uXu +cQG +alp naB naB naB @@ -91660,10 +92298,10 @@ xGh jVa wDs xkd -ukt -mnm -kIV -xEF +oHf +oDh +pdp +xiV aag ajZ bdH @@ -91828,23 +92466,23 @@ bdH bdH aad aag -pCi -wcn -rPC -vBm -vBm -sFC -sFC -sFC -vBm -lOI -pJv -jLM -tak -cMb -rbi -wDp -xys +uDg +xkc +gkr +hvd +hvd +iRp +iRp +iRp +hvd +cyc +vzy +fqQ +kHo +sFu +hnE +tTO +wFs nkX iQB cmv @@ -91864,9 +92502,9 @@ tUx wRN xkd xkd -kIV -mnm -xEF +pdp +oDh +xiV aag ajZ bdH @@ -91934,10 +92572,10 @@ aaa bdH aad aag -nXP -nXP -nXP -nXP +nBJ +nBJ +nBJ +nBJ aag dqw uwv @@ -91959,10 +92597,10 @@ dqw aag aag aag -vRz -vRz -vRz -vRz +wid +wid +wid +wid aag ajZ bdH @@ -92031,23 +92669,23 @@ bdH bdH aad aag -ahE -wcn -rPC -vBm -ykP -xAj -xhE -xhE -vBm -hKq -lwK -hrO -xsg -xsg -grF -xVl -uqy +lrE +xkc +gkr +hvd +iUX +gii +gIO +gIO +hvd +gYx +oyC +bKI +xhU +xhU +jCX +sEz +iNh wdF wdF wdF @@ -92067,9 +92705,9 @@ tUx xJe qLt xkd -kIV -mnm -ils +pdp +oDh +cPj aag etE bdH @@ -92137,9 +92775,9 @@ aaa bdH aad aag -nXP -xFD -ntA +nBJ +kJc +jFt bAs bAs bAs @@ -92163,9 +92801,9 @@ bTT bTT bTT bAs -vIA -xgn -vRz +kOR +jYM +wid aag ajZ bdH @@ -92234,23 +92872,23 @@ bdH bdH aad aag -ahE -rPC -wcn -vBm -ykP -xjG -ssD -gcT -rmv -eRL -eRL -rhl -gcT -gcT -xVl -gcT -lxy +lrE +gkr +xkc +hvd +iUX +gJE +cKJ +hyV +keG +cQG +cQG +ugw +cwC +cwC +sEz +cwC +uun oRk oRk oRk @@ -92270,9 +92908,9 @@ ycm qCo pWr xkd -uqa -mnm -ils +aGa +oDh +cPj aag ajZ bdH @@ -92340,9 +92978,9 @@ aaa bdH aad aag -nXP -xYN -jup +nBJ +rUi +grv bBA bAK bCY @@ -92366,9 +93004,9 @@ acr bPG acN bBA -qXM -gUv -vRz +gTK +fWg +wid aag ajZ bdH @@ -92437,9 +93075,9 @@ bdH bdH aad aag -ahE -nBc -wcn +lrE +vDh +xkc lrq lrq lrq @@ -92447,8 +93085,8 @@ lrq lrq lrq lrq -cxA -uwS +uhA +aaP tpn tpn srT @@ -92473,9 +93111,9 @@ cyZ jVa fJT xkd -ipT -kIV -ils +rfB +pdp +cPj aag eSU bdH @@ -92543,9 +93181,9 @@ aaa bdH aad aag -nXP -ewT -sIT +nBJ +uRR +mFQ bBA hWJ bCY @@ -92569,9 +93207,9 @@ bHP bPG hpk bBA -fTu -umT -vRz +yhZ +wtD +wid aag ajZ bdH @@ -92640,9 +93278,9 @@ bdH bdH aad aag -pCi -mUQ -aou +uDg +cth +qsp lrq kEc chv @@ -92650,8 +93288,8 @@ cAy uhE vKB lrq -szR -cZj +vjB +gIz tpn eVR cak @@ -92676,9 +93314,9 @@ dfk vzz moB xkd -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -92746,9 +93384,9 @@ aaa bdH aad aag -nXP -thT -mGL +nBJ +ecS +eQR gol akb bCY @@ -92772,9 +93410,9 @@ bPn bPG ald gol -nqU -pch -vRz +sGK +hLu +wid aag ajZ bdH @@ -92843,9 +93481,9 @@ bdH bdH aad aag -pCi -hKi -rPC +uDg +cUl +gkr lrq heo nqe @@ -92853,8 +93491,8 @@ nqe nqe nqe tLa -eRL -igt +cQG +gfd tpn rqS cak @@ -92879,9 +93517,9 @@ eZH tUx cXi xkd -irr -kIV -xEF +ttB +pdp +xiV aag twB bdH @@ -92949,9 +93587,9 @@ aaa bdH aad aag -nXP -mGL -fEV +nBJ +eQR +xAu bBA bAN bCY @@ -92975,9 +93613,9 @@ bPo bPG acs bBA -lZB -nqU -vRz +xHX +sGK +wid aag ajZ bdH @@ -93046,9 +93684,9 @@ bdH bdH aad aag -ahE -nnF -rPC +lrE +vOM +gkr lrq kui uqo @@ -93056,8 +93694,8 @@ pId qMD uqo lrq -sYi -sYE +nVm +dRA tpn gIU xIq @@ -93082,9 +93720,9 @@ nYd thL jVa fgR -hPT -mnm -ils +nEc +oDh +cPj aag ajZ bdH @@ -93152,9 +93790,9 @@ aaa bdH aad aag -nXP -tRV -hJp +nBJ +ldF +eox bBA bAO bCZ @@ -93178,9 +93816,9 @@ bDW bPJ iuz bBA -vhq -orv -vRz +mVh +uMf +wid aag ajZ bdH @@ -93249,9 +93887,9 @@ bdH bdH aad aag -ahE -hUg -wcn +lrE +etN +xkc lrq sEZ nqe @@ -93259,8 +93897,8 @@ nqe nqe nqe mza -eRL -wfB +cQG +qvE tpn tpn tpn @@ -93285,9 +93923,9 @@ liZ rUk jVa fgR -evl -uNF -ils +azg +gKv +cPj aag rEr bdH @@ -93355,9 +93993,9 @@ aaa bdH aad aag -nXP -hJp -mGL +nBJ +ldF +eQR bBA bAP aqu @@ -93381,9 +94019,9 @@ aqu aqu bQz bBA -nqU -cEY -vRz +sGK +vOG +wid aag ajZ bdH @@ -93452,9 +94090,9 @@ bdH bdH aad aag -ahE -rPC -wcn +lrE +gkr +xkc lrq dEX fxJ @@ -93462,13 +94100,13 @@ fxJ fAr qmU lrq -hZU -cWs -fAE -kHa -frX -mHA -kHa +dmr +wLS +aVm +cmM +miy +iUG +cmM snX oIh oIh @@ -93488,9 +94126,9 @@ uaU rUk xaM fgR -fQk -kIV -ils +hIG +pdp +cPj aag ajZ bdH @@ -93558,9 +94196,9 @@ aaa bdH aad aag -nXP -fNg -hJp +nBJ +vCE +ldF bBA bBu amg @@ -93584,9 +94222,9 @@ amg amg rAD bBA -nqU -vhq -vRz +sGK +mVh +wid aag ajZ bdH @@ -93655,9 +94293,9 @@ bdH bdH aad aag -pCi -wcn -wcn +uDg +xkc +xkc lrq iwV iwV @@ -93665,13 +94303,13 @@ iwV iwV lrq lrq -gob -cWs -irF -kHa -rEQ -xmX -eGr +kXt +wLS +eBx +cmM +hAf +cNI +bbi wdF wdF wdF @@ -93691,9 +94329,9 @@ uxa iZU nhG xkd -mnm -hgH -xEF +oDh +uqg +xiV aag uJk bdH @@ -93761,9 +94399,9 @@ aaa bdH aad aag -nXP -gjv -mGL +nBJ +amu +eQR bBA bBu amg @@ -93787,9 +94425,9 @@ amg amg rAD bBA -rpW -kAs -vRz +ozH +flr +wid aag ajZ bdH @@ -93858,9 +94496,9 @@ bdH bdH aad aag -pCi -rPC -rwS +uDg +gkr +old cQv oVf rmx @@ -93868,13 +94506,13 @@ bvH evR cQv cQv -vtD -rAX -kHa -kHa -lRe -mvR -kHa +rmk +nuZ +cmM +cmM +pdT +otp +cmM tzd tzd sgi @@ -93894,9 +94532,9 @@ tov thL sUs xkd -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -93964,9 +94602,9 @@ aaa bdH aad aag -nXP -oZd -mGL +nBJ +kMW +eQR bBA bBv aqu @@ -93990,9 +94628,9 @@ tkq aqu bQG bBA -vht -vhq -vRz +uoO +mVh +wid aag ajZ bdH @@ -94061,9 +94699,9 @@ bdH bdH aad aag -ahE -rPC -nfI +lrE +gkr +wJC cQv cBw kde @@ -94071,13 +94709,13 @@ kde ajj mZQ cQv -vgW -igt -swn -rpF -tQm -ond -swn +dFl +tUK +kTp +sYl +fgt +kCY +kTp gHt oIh eNR @@ -94097,9 +94735,9 @@ tov thL xhx fgR -mnm -kIV -ils +oDh +pdp +cPj aag scz bdH @@ -94167,9 +94805,9 @@ aaa bdH aad aag -nXP -lAP -mGL +nBJ +iWJ +eQR bBA bBx amg @@ -94193,9 +94831,9 @@ bPq amg rAD bBA -nqU -rSK -vRz +sGK +nhV +wid aag ajZ bdH @@ -94264,9 +94902,9 @@ bdH bdH aad aag -ahE -rPC -heV +lrE +gkr +wMF cQv eaf bEv @@ -94274,13 +94912,13 @@ quj vgi rXd cqJ -ldu -igt -swn -dfO -dQv -doj -swn +oJm +tUK +kTp +hUh +nWS +xpw +kTp neC mjt vqc @@ -94300,9 +94938,9 @@ iFc thL tUx fgR -kIV -fQk -ils +pdp +hIG +cPj aag ajZ bdH @@ -94370,9 +95008,9 @@ aaa aac aag aag -nXP -tpg -vmK +nBJ +dKS +ffN bBA bBy amg @@ -94396,9 +95034,9 @@ aoa amg bQE bBA -bVL -nqU -vRz +bME +sGK +wid aag aag ajY @@ -94467,9 +95105,9 @@ bdH bdH aad aag -ahE -wcn -nBc +lrE +xkc +vDh cQv eaf bEv @@ -94477,13 +95115,13 @@ lEe pGT pGT vkM -sjc -xYS -kHa -qPO -wuc -qPO -qPO +ksm +bxE +cmM +oeZ +uzH +oeZ +oeZ ptq oRk eNR @@ -94503,9 +95141,9 @@ thL thL tUx fgR -kIV -mKf -ils +pdp +aCA +cPj aag okD bdH @@ -94572,10 +95210,10 @@ aaa aaa aad aag -nXP -nXP -mGL -mGL +nBJ +nBJ +eQR +bTW bBA bBz aqu @@ -94599,10 +95237,10 @@ bEx aqu bQI bBA -ueh -nqU -vRz -vRz +gsy +sGK +wid +wid aag ajZ aaa @@ -94670,9 +95308,9 @@ bdH bdH aad aag -pCi -wcn -wcn +uDg +xkc +xkc cQv eaf bEv @@ -94680,13 +95318,13 @@ vyH ajj rXd cqJ -ldu -igt -swn -plI -dQv -lNN -qPO +oJm +tUK +kTp +uLE +nWS +cTy +oeZ emp emp emp @@ -94706,9 +95344,9 @@ thL thL tUx xkd -kIV -hFW -xEF +pdp +vhA +xiV aag ajZ bdH @@ -94775,10 +95413,10 @@ aaa aaa aad aag -nXP -tRV -hJp -mmC +nBJ +ldF +ldF +xiP bBA lsV amg @@ -94802,10 +95440,10 @@ bPC amg pyL bBA -jNq -nqU -rSK -vRz +cDb +sGK +nhV +wid aag ajZ bdH @@ -94873,9 +95511,9 @@ bdH bdH aad aag -pCi -oCL -wcn +uDg +lDT +xkc cQv eaf bEv @@ -94883,13 +95521,13 @@ sBg uGN rXd cQv -gax -igt -swn -vsM -dQv -ebv -qPO +mAY +tUK +kTp +hoW +nWS +aIY +oeZ cFC oIh lUm @@ -94909,9 +95547,9 @@ thL thL tUx xkd -kIV -mnm -xEF +pdp +oDh +xiV aag ajZ bdH @@ -94977,11 +95615,11 @@ aaf aaf aaf aag -nXP -nXP -hJp -mGL -fmS +nBJ +nBJ +ldF +eQR +uFp bBA bBA tiR @@ -94998,18 +95636,18 @@ cmJ alU alU alU -jAi -jAi -jAi -jAi -aib -jAi -jAi -nrz -vhq -nqU -vRz -vRz +pzW +pzW +pzW +pzW +hNB +pzW +pzW +ipB +mVh +sGK +wid +wid aag aaf aaf @@ -95076,9 +95714,9 @@ bdH bdH aad aag -pCi -rPC -aou +uDg +gkr +qsp cQv xLl bEv @@ -95086,13 +95724,13 @@ kde ajj tuk cQv -rzY -igt -swn -skq -dQv -hhW -qPO +kYU +tUK +kTp +vKF +nWS +glG +oeZ ehX mTN hZJ @@ -95112,9 +95750,9 @@ tUx vsz oEE xkd -lmk -kIV -xEF +gNZ +pdp +xiV aag ajZ bdH @@ -95177,18 +95815,18 @@ aaa aaa aad aag -nXP -nXP -nXP -nXP -hJp -hJp -uNL -uNL -uNL -tVf -mGL -oxp +nBJ +nBJ +nBJ +nBJ +ldF +ldF +bos +bos +bos +haR +uHT +jHn kcp bWJ nar @@ -95201,21 +95839,21 @@ aoi grG bXY alU -xsW -uBn -wJw -bEz -bzA -dRw -bzy -bzy -bzy -vhq -nqU -vRz -vRz -vRz -vRz +xNM +ikl +eLp +dFM +lEV +mZP +sDx +sDx +sDx +mVh +sGK +wid +wid +wid +wid aag ajZ aaa @@ -95278,10 +95916,10 @@ aaa bdH bdH aad -pCi -pCi -wcn -tYB +uDg +uDg +xkc +eeA cQv dzG kde @@ -95289,13 +95927,13 @@ ioV cQv tlk cQv -cxA -suc -qPO -qPO -wuc -qPO -qPO +uhA +bKN +oeZ +oeZ +uzH +oeZ +oeZ mFc eKa emp @@ -95309,16 +95947,16 @@ bQc pgP uVV iBl -wIC -smZ -smZ -wIC -tMH -wIC -xCj -kIV -xEF -xEF +cHk +rkV +rkV +cHk +yfO +cHk +pRs +pdp +xiV +xiV ajZ bdH bdH @@ -95380,18 +96018,18 @@ aaa aaa aad aag -nXP -jpN -hJp -mGL -hJp -iBE -uNL -hJp -mGL -poR -mGL -pNp +nBJ +fUz +ldF +eQR +ldF +ikA +bos +gpO +uHT +bKP +uHT +sGQ kcp wMv nCR @@ -95404,21 +96042,21 @@ aoi bNk ecZ alU -bNW -uBn -fut -pqQ -pqQ -pqQ -bzA -rEu -bzy -vhq -nEz -vhq -ioj -mjR -vRz +odt +ikl +qAy +mua +mua +mua +lEV +eQz +sDx +mVh +fJu +mVh +roj +qzA +wid aag ajZ aaa @@ -95481,20 +96119,20 @@ aaa bdH bdH aad -pCi -msV -rPC -naf +uDg +hzN +gkr +krG cQv rdM gUg cov cqJ -hNl -tak -uhW -uJs -tsX +may +hoK +mcp +hzG +eyD ngr cDN peO @@ -95512,16 +96150,16 @@ emp lFJ emp emp -wIC -puE -crp -dco -dqZ -wIC -lTK -mnm -kIV -xEF +cHk +hlI +ekZ +kvL +oix +cHk +uxb +oDh +pdp +xiV ajZ bdH bdH @@ -95583,14 +96221,14 @@ aaa aaa aad aag -nXP -bwF -hJp -mGL -hJp -oPI -uNL -hJp +nBJ +lJM +ldF +eQR +ldF +lyP +bos +gpO kcp kcp iqp @@ -95607,21 +96245,21 @@ cmJ alU alU alU -bOe -nrt -qyF -ecR -uOc -uOc -uOc -bPj -bzy -piO -vhq -nqU -nqU -rSK -vRz +wrr +kjw +hBr +tqQ +hgp +hgp +hgp +nef +sDx +mXm +mVh +sGK +sGK +nhV +wid aag ajZ aaa @@ -95684,20 +96322,20 @@ aaa bdH bdH aad -pCi -dSA -rPC +uDg +fHb +gkr vxM vxM vxM vxM vxM vxM -qlS -eRL -eRL -uJs -tsX +tfZ +cQG +cQG +hzG +eyD tdy cDN oFY @@ -95715,16 +96353,16 @@ qUz ksg oIh iTl -wIC -cBZ -hMc -vAG -jIo -wIC -wIC -mnm -kIV -xEF +cHk +frt +vUI +tgJ +wVh +cHk +cHk +oDh +pdp +xiV ajZ bdH bdH @@ -95786,14 +96424,14 @@ aaa aaa aad aag -nXP -mGL -mGL -hJp -mGL -dqd -uNL -hJp +nBJ +eQR +eQR +ldF +eQR +sxS +bos +gpO kcp bBD bTS @@ -95801,30 +96439,30 @@ 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 bSv bSv -nqU -vRz +sGK +wid aag ajZ aaa @@ -95887,20 +96525,20 @@ aaa bdH bdH aad -pCi -wcn -rPC +uDg +xkc +gkr vxM rfY kGu iqR fyp wJh -ldu -eRL -eRL -uJs -diP +oJm +cQG +cQG +hzG +asC tff cDN oFY @@ -95918,16 +96556,16 @@ oDy wsq vxK gwj -rCU -jPS -jPS -sJm -dqZ -rDY -wIC -kIV -lre -xEF +vxh +csy +csy +bWQ +deH +szG +cHk +pdp +kIf +xiV ajZ bdH bdH @@ -95989,14 +96627,14 @@ aaa aaa aad aag -nXP -hJp -hJp -mGL -pzZ -ijp -uNL -mGL +nBJ +ldF +ldF +wcJ +jCr +nQn +bos +uHT kcp bTR iEg @@ -96004,30 +96642,30 @@ 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 cDZ bSv -pch -vRz +hLu +wid aag ajZ aaa @@ -96090,20 +96728,20 @@ aaa bdH aac aag -pCi -mNR -wcn +uDg +kac +xkc vxM tQi wee wee fRS wJh -yeu -sjc -rVm -mMZ -aDM +iFK +ksm +haY +kaQ +vNT oSC uFq wsl @@ -96121,16 +96759,16 @@ mBx utZ pyj jPP -wIC -xpo -xqs -rWF -uSB -lzY -wIC -kIV -rQU -xEF +cHk +wxF +vJc +kUg +ifz +fyI +cHk +pdp +ome +xiV aag ajY bdH @@ -96192,14 +96830,14 @@ aaa aaa aad aag -nXP -thT -hJp -uNL -uNL -uNL -uNL -mGL +nBJ +ecS +ldF +bos +bos +bos +bos +uHT kcp lxW hPh @@ -96207,30 +96845,30 @@ 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 bTV bSv -nqU -vRz +sGK +wid aag ajZ aaa @@ -96293,20 +96931,20 @@ bdH bdH aad aag -pCi -tCb -aou +uDg +fco +qsp vxM jvP rDQ rDQ rDQ ctT -mLJ -bua -ybU -vBm -tsX +wXz +aNW +tvJ +eyD +eyD tsX tsX epu @@ -96327,13 +96965,13 @@ lnh wIC rWn rWn -wIC -wIC -wHM -wIC -inC -mKf -xEF +cHk +cHk +gxt +cHk +dJy +aCA +xiV aag ajZ bdH @@ -96395,14 +97033,14 @@ aaa aaa aad aag -nXP -mGL -hJp -uNL -qDv -aLk -uNL -xCR +nBJ +eQR +ldF +bos +vkO +ibf +bos +rIw kcp wTN kZN @@ -96410,30 +97048,30 @@ 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 bSv xVT -kAs -vRz +flr +wid aag ajZ aaa @@ -96496,19 +97134,19 @@ bdH bdH aad aag -pCi -oCL -wcn +uDg +lDT +xkc vxM sbP sbP sbP sbP wJh -ekF -uif -vBm -vBm +oWK +jwr +eyD +eyD tHr mqg udR @@ -96531,12 +97169,12 @@ dgx fKi vxG wIC -xgI -dBQ -wIC -bIi -fQk -xEF +whQ +bHu +cHk +oLf +hIG +xiV aag ajZ bdH @@ -96598,14 +97236,14 @@ aaa aaa aad aag -nXP -tRV -mGL -uNL -kmM -eqk -uNL -hJp +nBJ +ldF +eQR +bos +lBl +nEO +bos +gpO kcp oMi bAZ @@ -96613,30 +97251,30 @@ 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 bSv -oES -eXo -vRz +xcI +sIu +wid aag ajZ aaa @@ -96699,18 +97337,18 @@ bdH bdH aad aag -pCi -wcn -rPC +uDg +xkc +gkr vxM pas ncf kjk qxr wJh -ekF -ugT -qqC +oWK +rPF +pfd ceZ jnD hUW @@ -96734,12 +97372,12 @@ jPS jPS xrt wIC -qqV -nNg -wIC -mnm -sIk -xEF +aDt +jTU +cHk +oDh +xas +xiV aag ajZ bdH @@ -96801,14 +97439,14 @@ aaa aaa aad aag -nXP -hJp -mGL -hKe -hJp -hJp -uNL -hJp +nBJ +ldF +eQR +rqv +gpO +gpO +bos +gpO kcp kcp kcp @@ -96816,30 +97454,30 @@ 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 bSv -vhq -nqU -vRz +kxe +sGK +wid aag ajZ aaa @@ -96902,18 +97540,18 @@ bdH bdH aad aag -pCi -wcn -rPC +uDg +xkc +gkr vxM vxM vxM vxM vxM gaJ -hmG -xys -vBm +vMJ +qFX +cAR vGA hUW dHd @@ -96937,12 +97575,12 @@ qFi vAG hsj wIC -wIC -wIC -wIC -mnm -hPT -xEF +cHk +cHk +cHk +oDh +nEc +xiV aag ajZ bdH @@ -97004,45 +97642,45 @@ aaa aaa aad aag -nXP -hJp -mGL -uNL -aSY -hJp -uNL -hJp -dqd +nBJ +ldF +eQR +bos +iWH +gpO +bos +gpO +nEZ kcp bTU 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 bSv -vhq -vhq -vRz +mVh +mVh +wid aag ajZ aaa @@ -97105,18 +97743,18 @@ aaf aaf aag aag -pCi -hKi -wcn -kEU -wcn -cXZ -vBm -tJM -viH -lCp -ttE -vBm +uDg +cUl +xkc +ode +xkc +gNg +cAR +dRj +yhV +jvc +jEV +cAR iuE uwN vka @@ -97140,12 +97778,12 @@ jhI jfY bra wIC -kIV -hUc -pre -mnm -kIV -xEF +eQm +rXQ +vky +oDh +pdp +xiV aag aag aaf @@ -97203,53 +97841,53 @@ aaa aaa aaa aaa -nXP -nXP -nXP -nXP -nXP -lgY -uNL -uNL -uNL -lgY -uNL -mGL -hJp +nBJ +nBJ +nBJ +nBJ +nBJ +eQR +ldF +bos +bos +olW +bos +uHT +gUi kcp onY 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 bSv -mzo -qOU -vRz -vRz -vRz -vRz -vRz +sGK +mVh +wid +wid +wid +wid +wid aaa aaa aaa @@ -97309,17 +97947,17 @@ adG adG adG adG -gqq -iCz -kEU -rPC -rPC -vBm -vBm -vBm -vfw -occ -vBm +rvI +cYo +ode +gkr +gkr +cAR +cAR +cAR +pKU +vOu +cAR udK mwA lnt @@ -97343,11 +97981,11 @@ jES vBJ qTQ wIC -mnm -kIV -pre -kIV -mrB +oDh +pdp +vky +pdp +paJ tuA tuA tuA @@ -97406,53 +98044,53 @@ aaa aaa aaa aaa -nXP -hJp -dPU -hJp -mGL -mGL -khS -hJp -crc -hJp -qee -mGL -hzM +nBJ +ldF +jsE +rdN +eQR +eQR +eQR +ldF +sXq +rdN +rMO +uHT +hfv kcp xNz utK rKA kcp kcp -bzy -bXs -bBB -bLt -bzA -bKh -bBB -bXZ -bzy -bAg -bBB -qJN -jjZ -bzH -bBB -bzA -cBl -bRU -vhq -eJh -nqU -rcH -vhq -vhq -nqU -jTu -nqU -vRz +sDx +hIF +vyB +pHF +lEV +ghF +vyB +kEW +sDx +xHl +vyB +mQd +akn +vTM +vyB +lEV +meE +gGw +mVh +iBu +sGK +mVh +mVh +mVh +sGK +gDX +sGK +wid aaa aaa aaa @@ -97515,14 +98153,14 @@ akC akC akC akC -rDI -rPC -vBm -mvE -tak -lCp -iLo -vBm +uvp +gkr +cAR +pbm +qjK +jvc +dGT +cAR bmz wSR mMV @@ -97546,8 +98184,8 @@ vAG opF pDW wIC -mnm -wRa +oDh +lhj kCi kCi kCi @@ -97609,16 +98247,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 @@ -97628,34 +98266,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 @@ -97718,14 +98356,14 @@ sFf bbV bzz akC -cRc -rPC -vBm -qkn -eRL -lwK -vlN -vBm +pzc +gkr +cAR +pQI +gym +gSz +cNJ +cAR pZS pEB jUY @@ -97749,8 +98387,8 @@ vzj wIC wIC wIC -mnm -dGc +oDh +nYi kCi sDD kOv @@ -97812,16 +98450,16 @@ aaa aaa aaa aaa -aPy -dhZ -aQv -bbn -bmu -bot -bpU -rFB -bmu -aQv +fwK +elY +uaG +vjk +lxd +dPk +nBV +dyq +eKm +uaG lYN byr aXh @@ -97849,16 +98487,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 @@ -97921,14 +98559,14 @@ nIt adu aHZ akC -oCL -rPC -vBm -rJN -nJz -wgi -rEO -vBm +lDT +gkr +cAR +jgR +iAg +vaS +bsF +cAR vkR wsD jUY @@ -97952,8 +98590,8 @@ aTg rFg kkv wIC -kIV -kIV +pdp +pdp kCi uAj qfa @@ -98015,16 +98653,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 @@ -98052,16 +98690,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 @@ -98124,14 +98762,14 @@ nkx bbZ btv akC -dDC -rPC -vBm -vBm -knO -wgi -ugT -vBm +lCm +gkr +cAR +cAR +eLX +vaS +nCD +cAR kfE wsD jUY @@ -98155,8 +98793,8 @@ aTg wIC wIC wIC -kIV -bbR +pdp +iEa kCi eqI ssZ @@ -98218,16 +98856,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 @@ -98255,16 +98893,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 @@ -98327,14 +98965,14 @@ pvP adu aHZ akC -eKM -ake -kif -vBm -rRr -dFU -fnC -vBm +jdn +lgk +hMM +cAR +jlE +cXV +kqd +cAR xDn pEB jUY @@ -98357,9 +98995,9 @@ wtY aTg jIT wIC -mKf -kIV -kIV +aCA +pdp +pdp kCi nwW btD @@ -98421,16 +99059,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 @@ -98458,16 +99096,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 @@ -98530,14 +99168,14 @@ adu adu aHZ akC -lUz -tRX -lUz -vBm -hqU -gcT -oPp -vBm +pek +rir +pek +cAR +gdG +kxP +mea +cAR nNv pEB jUY @@ -98560,9 +99198,9 @@ yeR aTg nNg wIC -pUJ -wCZ -pUJ +pjz +uTs +pjz kCi nRR btD @@ -98624,16 +99262,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 @@ -98661,16 +99299,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 @@ -98733,14 +99371,14 @@ nIt adu hxG akC -bVT -wcn -avl -vBm -vBm -vBm -vBm -vBm +ibP +loE +cmr +cAR +cAR +cAR +cAR +cAR xSz pEB jUY @@ -98763,9 +99401,9 @@ wIC wIC wIC wIC -gpe -mnm -dXO +hrI +ioM +xCy kCi nNt vqC @@ -98827,16 +99465,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 @@ -98864,16 +99502,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 @@ -98936,10 +99574,10 @@ wmg adu cqQ afT -agU -dIl -xpd -mlp +txy +rbp +cri +euL hiM hiM qRj @@ -98965,10 +99603,10 @@ xuZ pcj hXm fZq -dVm -qkb -vnY -vnY +iFA +sLx +twQ +twQ bpd bqT vZv @@ -99030,16 +99668,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 @@ -99068,15 +99706,15 @@ xyw bHB xyw bcm -mzo -mzo -mzo -mzo -mzo -mzo -mzo -cjK -bSg +hOV +hOV +hOV +hOV +hOV +hOV +hOV +vVZ +hAh aaa aaa aaa @@ -99139,10 +99777,10 @@ pvP adu frF akC -fRN -avl -lFb -ail +oUt +cmr +iPq +aMf vka vka mPj @@ -99168,10 +99806,10 @@ inh ewr lPC mgy -wWT -xuB -vcK -czJ +qoN +tVx +feG +pPy kCi nRR btM @@ -99233,16 +99871,16 @@ aaa aaa aaa aaa -nXP -ndx -uNL -nDd -soS -sgy -nsu -iyQ -rod -psy +sGw +nmp +eWs +usq +rQw +pOH +sbt +smU +nZR +lpl xyw bHB gjm @@ -99271,15 +99909,15 @@ bcb bHB btO bcm -tlI -jEs -kCT -lsb -fcG -ufp -mzo -qQP -vRz +sCW +nvX +tTC +jdu +tWd +aPe +hOV +ygv +kyP aaa aaa aaa @@ -99343,10 +99981,10 @@ tyK iKI akC akC -ail -lGG -age -age +aMf +hSv +xoB +xoB kzy wIQ jHh @@ -99370,11 +100008,11 @@ vka jHh lnt ckP -qFl -qFl -lIV -gsH -qFl +xTx +xTx +cyv +eKZ +xTx kCi cfk uws @@ -99436,16 +100074,16 @@ aaa aaa aaa aaa -nXP -hJp -uNL -gka -bwQ -oNf -uNL -aNw -kXJ -kVX +sGw +klT +eWs +njO +riC +eqd +goY +fqJ +nOX +xcV xyw bHB wqh @@ -99474,15 +100112,15 @@ bcc bHB aYt bcm -dqH -kCT -kCT -kCT -kCT -kCT -bLb -dQH -vRz +xsQ +tTC +tTC +tTC +tTC +tTC +iho +uKH +kyP aaa aaa aaa @@ -99545,12 +100183,12 @@ akC akC akC akC -fcF -avl -lFb -fvu -age -age +ehM +cmr +iPq +oQJ +xoB +xoB vSN jHh lnt @@ -99572,12 +100210,12 @@ sTo wIQ jHh jUY -qFl -qFl -gpe -xuB -vcK -mBA +xTx +xTx +hrI +tVx +feG +bxY kCi kCi kCi @@ -99639,16 +100277,16 @@ aaa aaa aaa aaa -nXP -hJp -sIT -sIT -sIT -sIT -sIT -aNj -xmv -kVX +sGw +xzB +bfs +bYW +bYW +bYW +bYW +kNf +vpT +xcV xyw bHB sXB @@ -99677,15 +100315,15 @@ fVz bHB bBN bcm -vVh -kCT -kCT -kCT -kCT -wgU -mzo -kWY -vRz +uPQ +tTC +tTC +tTC +tTC +gzN +hOV +uXm +kyP aaa aaa aaa @@ -99745,15 +100383,15 @@ adG adG adG adG -puK -avl -dUI -avl -avl -lFb -fvu -xDp -age +ltw +cmr +oRm +cmr +cmr +iPq +oQJ +pcc +xoB xDn uwN wiN @@ -99775,15 +100413,15 @@ awz oWg uwN jUY -qFl -rnM -gpe -sDy -ukU -bfP -fvv -vcK -wGI +xTx +lym +hrI +lIQ +noy +rcG +lwY +feG +kfB tuA tuA tuA @@ -99842,16 +100480,16 @@ aaa aaa aaa aaa -nXP -tRV -sIT -jNt -iNZ -lQj -sIT -obG -kdt -kVX +sGw +xzB +bfs +qfQ +cJm +jwi +bYW +phw +xMG +xcV xyw bHB aZO @@ -99880,15 +100518,15 @@ bGF bHB aYt bcm -iQx -kCT -iuu -fHc -kpY -hTu -mzo -bRF -vRz +vKI +tTC +hhd +ybm +ffq +rsV +hOV +mLN +kyP aaa aaa aaa @@ -99947,16 +100585,16 @@ aag aag aag aag -pCi -avl -nMc -ayP -iJf -iJf -sFZ -avl -tCb -age +cZe +cmr +lSX +uaA +snx +snx +fLt +cmr +fYr +xoB pNa iCu awz @@ -99978,16 +100616,16 @@ awz ceE eMP faX -qFl -rEn -mnm -mYs -mnm -sDy -cUv -cNe -pLZ -xEF +xTx +tIX +ioM +abn +ioM +lIQ +qOY +xZH +mSr +nLp aag aag aag @@ -100045,16 +100683,16 @@ aaa aaa aaa aaa -nXP -hJp -sIT -vLh -mGL -qHb -sIT -hdR -hdR -hJz +sGw +xzB +bfs +wVN +qxI +qmM +bYW +wFN +wFN +tGH hmy bHB aZP @@ -100083,15 +100721,15 @@ bGG bHB btO bcm -lyi -kCT -kCT -kCT -kCT -kCT -mzo -dQH -vRz +kQr +tTC +tTC +tTC +tTC +tTC +hOV +uKH +kyP aaa aaa aaa @@ -100150,9 +100788,9 @@ aag aag aag aag -pCi -dRV -bZg +cZe +cCL +vDz kcH kcH kcH @@ -100188,9 +100826,9 @@ aES aES aES aES -sDy -cNe -xEF +lIQ +xZH +nLp aag aag aag @@ -100248,16 +100886,16 @@ aaa aaa aaa aaa -nXP -mfe -sIT -eNx -mGL -mGL -vKf -mGL -mGL -rII +sGw +onv +bfs +pjh +qxI +qxI +iXm +qxI +qxI +vvX xyw bHB aZQ @@ -100286,15 +100924,15 @@ bGH bHB btO bcm -ksP -gdi -piX -kCT -kCT -kCT -mzo -dQH -vRz +qhG +krJ +jOt +tTC +tTC +tTC +hOV +uKH +kyP aaa aaa aaa @@ -100350,12 +100988,12 @@ aaa aad aag aag -pCi -pCi -pCi -pCi -lFb -avl +cZe +cZe +cZe +cZe +iPq +cmr kcH kcH kcH @@ -100391,12 +101029,12 @@ tKr uNg cLN aES -gpe -xuB -xEF -xEF -xEF -xEF +hrI +tVx +nLp +nLp +nLp +nLp aag aag ajZ @@ -100451,16 +101089,16 @@ aaa aaa aaa aaa -nXP -hJp -sIT -mIB -mGL -fGY -wUO -gYB -pXQ -kYa +sGw +xzB +bfs +wes +qxI +dKO +ykv +jPu +qKl +pPd xyw bHB aZR @@ -100489,15 +101127,15 @@ bGI bHB xyw bcm -fAt -kCT -kCT -kCT -kCT -iRS -mzo -oFG -vRz +gOk +tTC +tTC +tTC +tTC +bjg +hOV +siT +kyP aaa aaa aaa @@ -100553,12 +101191,12 @@ aaa aad aag aag -pCi -fqu -kTM -puK -lFb -avl +cZe +ivu +gSy +ltw +iPq +cmr kcH rlf soq @@ -100594,12 +101232,12 @@ iTD vCO vCO jxB -gpe -xuB -gpe -gpe -gpe -xEF +hrI +tVx +hrI +hrI +hrI +nLp aag aag ajZ @@ -100654,16 +101292,16 @@ aaa aaa aaa aaa -nXP -mGL -sIT -sIT -rUU -sIT -sIT -uNL -uNL -uNL +sGw +dvD +bfs +bfs +sir +bfs +bfs +eWs +eWs +eWs xyw bHB aZO @@ -100691,16 +101329,16 @@ baI bGF bHB eEc -mzo -mzo -kCT -xVj -vox -kCT -hTu -mzo -oFG -vRz +hOV +hOV +tTC +tSm +tcd +tTC +rsV +hOV +siT +kyP aaa aaa aaa @@ -100756,12 +101394,12 @@ aaa aad aag aag -pCi -huX -unJ -iJf -mBk -nUy +cZe +nHu +sit +snx +oVY +cGA kcH rBa nPs @@ -100797,12 +101435,12 @@ vCO vCO vCO jxB -xDj -boc -eXS -bGr -hnV -xEF +gUu +dWc +lVW +kcs +rDH +nLp aag aag ajZ @@ -100857,16 +101495,16 @@ aaa aaa aaa aaa -nXP -rxk -uNL -aqc -hJp -qbd -cQF -hqs -jFh -uNL +sGw +fea +eWs +rsS +xzB +mKs +sCT +rXU +rEt +eWs wlb bHB aZP @@ -100894,16 +101532,16 @@ baI bGG bHB bGK -meN -xRc -qPg -oas -mni -kCT -fIf -mzo -oFG -vRz +rrh +xKG +gyH +rSx +dCz +tTC +lDA +hOV +siT +kyP aaa aaa aaa @@ -100959,12 +101597,12 @@ aaa aad aag aag -pCi -nMc -tGf -avl -avl -qtS +cZe +lSX +nRE +cmr +cmr +sWw kcH rIW oGx @@ -101000,12 +101638,12 @@ wmT jhW mWD jxB -gvW -sWs -imJ -xuB -gpe -xEF +xBK +moc +pYQ +tVx +hrI +nLp aag aag ajZ @@ -101060,16 +101698,16 @@ aaa aaa aaa aaa -nXP -mGL -qee -hJp -mGL -qaZ -mGL -hJp -mGL -mBb +sGw +dvD +kWI +xzB +dvD +ipk +dvD +xzB +dvD +meT wqh bHB aZQ @@ -101097,16 +101735,16 @@ baI bGH bHB cuy -meN -dNe -pzO -kCT -kCT -kCT -eKg -pcD -lZO -vRz +rrh +iNR +uCR +tTC +tTC +tTC +fca +vjS +xee +kyP aaa aaa aaa @@ -101160,12 +101798,12 @@ aaa aaa aaa aad -aai -aai -pCi -pmI -avl -avl +cZe +cZe +cZe +vfS +cmr +cmr agj agj agj @@ -101205,12 +101843,12 @@ aES aES aES aES -vbP -uEv -gpe -xEF -xEF -xEF +nVn +cZO +hrI +nLp +nLp +nLp ajZ aaa aaa @@ -101263,16 +101901,16 @@ aaa aac aaf aaf -nXP -hJp -uNL -afd -hJp -slP -rsx -jFh -cQF -uNL +sGw +xzB +eWs +omx +xzB +rAw +qNK +rEt +sCT +eWs pyC bHB aZR @@ -101300,16 +101938,16 @@ baI bGI bHB kwQ -meN -dNe -pzO -wtd -kCT -nLa -wgU -mzo -dQH -vRz +rrh +iNR +uCR +rDR +tTC +wyz +gzN +hOV +uKH +kyP aaf aaf ajY @@ -101363,11 +102001,11 @@ aaa aaa aaa aad -ahE -qKt -dKa -hdb -avl +tvt +fRg +peM +jUV +cmr agj agj jbN @@ -101409,11 +102047,11 @@ bhJ bHG aES aES -mtE -gpe -cEg -hgm -ils +fMU +hrI +dPd +rLH +rwZ ajZ aaa aaa @@ -101465,17 +102103,17 @@ aaa aaa aad aag -nXP -nXP -tRV -uNL -uNL -agi -uNL -uNL -uNL -uNL -uNL +sGw +sGw +xzB +eWs +eWs +sOr +eWs +eWs +eWs +eWs +eWs cCE bHB aZO @@ -101503,17 +102141,17 @@ baI bGF bHB iAw -mzo -mzo -kCT -kCT -kCT -dlp -hTu -mzo -vot -vRz -aKQ +hOV +hOV +tTC +tTC +tTC +jRp +rsV +hOV +kzs +kyP +kyP aag ajZ aaa @@ -101566,11 +102204,11 @@ aaa aaa aaa aad -ahE -ooo -uaX -kfR -avl +tvt +jhR +fix +pfL +cmr agj kyR agc @@ -101612,11 +102250,11 @@ bpe brS rOs aES -kwz -gpe -gpe -gAd -ils +dWA +hrI +hrI +dPO +rwZ ajZ aaa aaa @@ -101668,17 +102306,17 @@ aaa aaa aad aag -nXP -mGL -hJp -uNL -aas -alI -agw -anB -ajp -vdJ -bJo +sGw +dvD +xzB +eWs +kRU +dON +oJj +vLp +oYA +gWt +jHt amo bHB aZP @@ -101707,16 +102345,16 @@ bGG bHB btO xjW -gks -kCT -kCT -kCT -mQW -kCT -mzo -gJd -mjR -aKQ +uTk +tTC +tTC +tTC +cyR +tTC +hOV +qpV +hSb +kyP aag ajZ aaa @@ -101769,11 +102407,11 @@ aaa aaa aaa aad -ahE -aiV -wBY -hJJ -qCi +tvt +oyX +vBC +rhm +she agj ogK qgr @@ -101815,11 +102453,11 @@ aES aES aES aES -gxk -hiQ -wVP -sed -ils +tPc +jwq +vwU +uew +rwZ ajZ aaa aaa @@ -101871,17 +102509,17 @@ aaa aaa aad aag -nXP -mGL -hJp -uNL -aga -alQ -amR -adg -cdF -sgw -bJo +sGw +dvD +xzB +eWs +irJ +bKk +kil +vnY +fCG +gYg +jHt gRP bHB aZQ @@ -101910,16 +102548,16 @@ bGH bHB btO bcm -hit -kCT -kCT -fjO -kCT -vGy -mzo -dQH -nnc -vRz +gBU +tTC +tTC +efJ +tTC +sHe +hOV +uKH +vyr +kyP aag ajZ aaa @@ -101972,11 +102610,11 @@ aaa aaa aaa aad -pCi -kwS -avl -avl -mRp +cZe +kwg +cmr +cmr +jkq agj nCx tYM @@ -102018,11 +102656,11 @@ bhJ bHG nis aES -nSU -xuB -lrb -hnV -xEF +xGF +tVx +jne +rDH +nLp ajZ aaa aaa @@ -102074,21 +102712,21 @@ aaa aaa aad aag -nXP -nun -mzb -uNL -aav -amj -agG -anD -adg -ajB -bJo +sGw +fzx +dWJ +eWs +yko +qlL +oxz +gnB +vnY +mRH +jHt xjK -rgy -bvf -anS +bHB +btO +bdU aog bdU bfV @@ -102113,16 +102751,16 @@ bcb bHB aYt bcm -uKk -kCT -kCT -kCT -kCT -xwq -mzo -dQH -gMx -vRz +ohI +tTC +tTC +tTC +tTC +tml +hOV +uKH +hZZ +kyP aag ajZ aaa @@ -102175,11 +102813,11 @@ bdH aaa aaa aad -ahE -avr -avl -hCo -lIh +tvt +gJf +cmr +hYE +vAz agj nXO hvH @@ -102221,11 +102859,11 @@ bpe brS cpj aES -fxO -xuB -cKt -mnm -ils +hro +tVx +tNB +ioM +rwZ ajZ aaa aaa @@ -102277,22 +102915,22 @@ aaa aaa aad aag -nXP -mGL -pGP -uNL -aay -adg -amU -anK -ccJ -ajL -bJo +sGw +dvD +nsd +eWs +kqm +vnY +wjL +oGF +gKK +dBR +jHt bwl bHB xyw puI -aol +aYt aYt aYt puI @@ -102316,16 +102954,16 @@ bcc bHB xyw bcm -oqD -kCT -kCT -ePk -kCT -hTu -mzo -oFG -vhq -vRz +grT +tTC +tTC +ove +tTC +rsV +hOV +siT +bUQ +kyP aag ajZ aaa @@ -102378,11 +103016,11 @@ bdH aaa aaa aad -ahE -aOg -avl -hMI -lFb +tvt +hsu +cmr +pFq +iPq agj dyj fnv @@ -102424,11 +103062,11 @@ aES aES aES aES -gKJ -uEv -ofZ -mnm -ils +uhh +cZO +ppG +ioM +rwZ ajZ aaa aaa @@ -102480,22 +103118,22 @@ aaa aaa aad aag -nXP -mGL -lqI -uNL -aaD -ahB -ahB -anL -ajz -aBC -cfM +sGw +dvD +kFU +eWs +oUz +mqZ +mqZ +lVZ +ctQ +wer +pKW wqh bHB vpW eXq -rri +aho aho aho eXq @@ -102519,16 +103157,16 @@ fVz bHB vpW bcm -hEt -kCT -xIi -kCT -kCT -eNL -mzo -oFG -nqU -vRz +cKm +tTC +cOh +tTC +tTC +dPq +hOV +siT +xFt +kyP aag ajZ aaa @@ -102581,11 +103219,11 @@ bdH aaa aaa aad -ahE -bEo -avl -iDT -tDx +tvt +hJD +cmr +fFQ +pMH agj mXj mXj @@ -102627,11 +103265,11 @@ bhJ bHG brS aES -rlz -xuB -iVo -mnm -ils +jrI +tVx +raO +ioM +rwZ ajZ aaa aaa @@ -102683,17 +103321,17 @@ aaa aaa aad aag -nXP -hJp -hJp -uNL -aaK -cfN -afe -adg -ajz -aBC -cfM +sGw +xzB +xer +eWs +uES +xrT +gYj +vnY +ctQ +wer +pKW wqh bHB xyw @@ -102722,16 +103360,16 @@ jSo bHB xyw bcm -rdr -kCT -poq -kCT -kCT -gks -mzo -oFG -nqU -vRz +qKb +tTC +xQj +tTC +tTC +uTk +hOV +siT +xFt +kyP aag ajZ aaa @@ -102784,11 +103422,11 @@ aaa aaa aaa aad -pCi -bVF -dTt -jgM -lFb +cZe +bLc +fOK +pWd +iPq agj mXj pjR @@ -102830,11 +103468,11 @@ tJi ivf bpe aES -lGu -xuB -yiC -sXs -xEF +pok +tVx +kzc +gen +nLp ajZ aaa aaa @@ -102886,17 +103524,17 @@ aaa aaa aad aag -nXP -fpd -mGL -uNL -ceQ -ceU -aff -adg -ajz -aBC -cfM +sGw +nkj +dvD +eWs +rVt +tVZ +bkS +vnY +ctQ +wer +pKW wqh bHB ezQ @@ -102925,16 +103563,16 @@ xyw bHB aYt bcm -sti -kCT -iTN -kCT -kOk -fIf -mzo -oFG -pch -vRz +jNG +tTC +vMb +xYE +iuI +lDA +hOV +siT +fFU +kyP aag ajZ aaa @@ -102987,11 +103625,11 @@ aaa bdH aaa aad -ahE -fHO -avl -jpJ -lzH +tvt +nCM +cmr +wKb +pri agj qlI cdB @@ -103033,11 +103671,11 @@ aES aES aES aES -xpt -xuB -xHW -qJF -ils +gBd +tVx +fjz +hPu +rwZ ajZ aaa aaa @@ -103089,22 +103727,22 @@ aac aaf aag aag -nXP -dUF -mGL -uNL -ceR -ceU -aff -agy -ajx -tqg -bJo +sGw +vEI +dvD +eWs +nCe +tVZ +bkS +bfO +tWL +aLx +jHt mVE -bHB -xyw +rgy +baN anU -aeJ +gEg imy gEg dRD @@ -103132,12 +103770,12 @@ bcm bcm bcm bcm -mzo -sYC -mzo -gJd -eXo -vRz +hOV +pIC +hOV +qpV +nGk +kyP aag aag aaf @@ -103190,11 +103828,11 @@ bdH bdH aaa aad -ahE -cjh -avl -llM -lGL +tvt +mPw +cmr +wGa +bAy agj eBE hvH @@ -103236,11 +103874,11 @@ bhJ bHG gCP aES -izx -mQV -hRi -gpe -ils +imt +noE +dcT +hrI +rwZ ajZ aaa aaa @@ -103292,17 +103930,17 @@ aad aag aag aag -nXP -fQF -mGL -uNL -abd -adk -afu -anT -eLz -uFL -ssa +sGw +oGf +dvD +eWs +jkY +ktI +xPn +xyQ +ixT +hBG +ngK sqa hBF hCt @@ -103335,12 +103973,12 @@ lRX rux sEt bcm -wbx -vhq -vhq -oFG -vhq -vRz +qyG +bUQ +bUQ +siT +bUQ +kyP aag aag aag @@ -103393,11 +104031,11 @@ bdH bdH bdH aad -ahE -cJB -avl -avl -mrc +tvt +qwY +cmr +cmr +mVA agj kSH hvH @@ -103439,11 +104077,11 @@ mhm brS bpe aES -mnm -uEv -nLK -nLK -ils +ioM +cZO +pfD +pfD +rwZ ajZ aaa aaa @@ -103495,17 +104133,17 @@ aad aag aag aag -nXP -wVD -mGL -uNL -uZQ -uZQ -bJo -aoH -aoF -aBC -cfM +sGw +fzT +dvD +eWs +qmh +qmh +jHt +wSQ +rOv +wer +pKW wqh bHB xyw @@ -103538,12 +104176,12 @@ myo dtH eyR bcm -wgo -nqU -vhq -dQH -xpf -vRz +rQs +xFt +bUQ +uKH +gsp +kyP aag aag aag @@ -103596,11 +104234,11 @@ bdH bdH bdH aad -pCi -pCi -pCi -jTi -nRq +cZe +cZe +cZe +tiX +vcI agj ikQ hvH @@ -103642,11 +104280,11 @@ aES aES aES aES -dYh -uEv -xEF -xEF -xEF +ied +cZO +nLp +nLp +nLp ajZ aaa aaa @@ -103698,22 +104336,22 @@ aad aag aag aag -nXP -mNf -hJp -uNL -cdE -xSI -uZQ -aoH -aoF -aBC -cfM +sGw +iPf +klT +eWs +vHp +gJp +qmh +wSQ +rOv +wer +pKW wqh bHB vpW eXq -rri +aho aho aho eXq @@ -103741,12 +104379,12 @@ mhd aYt tuN fPn -nqU -nqU -vhq -dQH -hYc -vRz +xFt +xFt +bUQ +uKH +eLC +kyP aag aag aag @@ -103801,9 +104439,9 @@ aaa aad aag aag -pCi -avl -myn +cZe +cmr +iNk agj muV hvH @@ -103845,9 +104483,9 @@ bhJ bHG cWy aES -gpe -xuB -xEF +hrI +tVx +nLp aag aag ajZ @@ -103901,22 +104539,22 @@ aad aag aag aag -nXP -bvO -hJp -ahd -adg -amp -uZQ -aoH -gds -aky -bJo +sGw +cqp +xzB +smH +vnY +asE +qmh +wSQ +vop +tgy +jHt vPM bHB xyw anW -aol +aYt aYt aYt anW @@ -103944,12 +104582,12 @@ omP aYt bOC bcm -vhq -nqU -vhq -dQH -jhA -vRz +bUQ +xFt +bUQ +uKH +rVc +kyP aag aag aag @@ -104004,9 +104642,9 @@ aaa aad aag aag -pCi -cnX -lIh +cZe +huD +vAz agj mXj fnv @@ -104048,9 +104686,9 @@ eBd brS cpj aES -fgx -dEV -xEF +luE +wgO +nLp aag aag ajZ @@ -104104,21 +104742,21 @@ aad aag aag aag -nXP -dNB -hJp -uNL -hSL -agn -afx -agX -ajy -vwP -bJo +sGw +jOq +xzB +eWs +nso +jdZ +pqM +bZS +rlD +uUf +jHt kCm -rgy -bvf -aof +bHB +btO +bea aoN bea bfZ @@ -104147,12 +104785,12 @@ ivg llO kSv bcm -mzo -puR -aKI -dQH -nqU -vRz +emC +dZZ +xmn +uKH +xFt +kyP aag aag aag @@ -104207,9 +104845,9 @@ aaa aad aag aag -pCi -anI -lIh +cZe +pcf +vAz agj agj agj @@ -104251,9 +104889,9 @@ aES aES aES aES -gaO -vnV -xEF +hXD +tYV +nLp aag aag ajZ @@ -104307,10 +104945,10 @@ aad aag aag aag -nXP -mGL -iBE -uNL +sGw +dvD +qig +eWs eXq adR eXq @@ -104351,11 +104989,11 @@ wXT cdA bcm bcm -mzo -mzo -wWf -nqU -vRz +emC +emC +mTL +xFt +kyP aag aag aag @@ -104410,9 +105048,9 @@ aaa aad aag aag -pCi -ifR -jMt +cZe +uTE +fZy gpY uBi wYA @@ -104454,9 +105092,9 @@ baw oaK nUn pgD -xuB -gpe -xEF +tVx +hrI +nLp aag aag ajZ @@ -104510,10 +105148,10 @@ aad aag aag aag -nXP -mGL -mGL -uNL +sGw +dvD +dvD +eWs abG aeh afy @@ -104555,10 +105193,10 @@ aYt aYt lrX bcm -kGt -oFG -pch -vRz +jGQ +siT +fFU +kyP aag aag aag @@ -104613,9 +105251,9 @@ bdH aad aag aag -pCi -avl -lIh +cZe +cmr +vAz gpY uac vFw @@ -104657,9 +105295,9 @@ aZz wUP lrF pgD -uEv -gpe -xEF +cZO +hrI +nLp aag aag ajZ @@ -104713,10 +105351,10 @@ aad aag aag aag -nXP -rbv -hJp -uNL +sGw +dvD +klT +eWs abH aer agf @@ -104758,10 +105396,10 @@ btO btO uII fPn -cQN -oFG -eXo -vRz +htq +siT +nGk +kyP aag aag aag @@ -104816,9 +105454,9 @@ abs abs abs abs -pCi -ail -gwY +cZe +aMf +wby gpY mto acW @@ -104860,9 +105498,9 @@ baw sgU baw pgD -lIV -gsH -xEF +cyv +eKZ +nLp tQV tQV tQV @@ -104916,10 +105554,10 @@ aag aag aag aag -nXP -mGL -pwK -pJW +sGw +dvD +sZc +dGP acq aeJ azl @@ -104961,10 +105599,10 @@ aYt puI iWx bcm -uSq -dQH -vhq -vRz +ymg +uKH +bUQ +kyP aag aag aag @@ -105119,10 +105757,10 @@ aag aag aag aag -nXP -mGL -fJX -uNL +sGw +dvD +iQJ +eWs acu aeh afF @@ -105164,10 +105802,10 @@ cdA bcm bcm bcm -mzo -mxL -kAs -vRz +emC +wuh +fgU +kyP aag aag aag @@ -105322,10 +105960,10 @@ aag aag aag aag -nXP -tpg -vJM -uNL +sGw +nHX +cEA +eWs acM aer agf @@ -105365,12 +106003,12 @@ apE icp fER bcm -mzo -xSb -vhq -dQH -mjR -vRz +emC +hVL +bUQ +uKH +hSb +kyP aag aag aag @@ -105443,13 +106081,13 @@ wbO avU avU awY -awY +uBs kOB awZ aiX -jnw -aBq -pRL +opN +bDi +vIr awF aEM aGV @@ -105525,10 +106163,10 @@ aag aag aag aag -nXP -hJp -dpy -uNL +sGw +xzB +hRA +eWs acZ aeN azl @@ -105568,12 +106206,12 @@ uiT aYt jyR bcm -ioj -nqU -vhq -dQH -fIH -vRz +fUZ +xFt +bUQ +uKH +eyM +kyP aag aag aag @@ -105650,9 +106288,9 @@ pXx jrm evg aiX -asj -aAW -aCl +dCb +dDc +rdo awF aFg aGY @@ -105728,10 +106366,10 @@ aag aag aag aag -nXP -hJp -fkW -uNL +sGw +xzB +ghA +eWs vhw khD azw @@ -105771,12 +106409,12 @@ apL aYt iKb bcm -ygy -nqU -vhq -oFG -qUj -vRz +umk +xFt +bUQ +siT +qBl +kyP aag aag aag @@ -105853,9 +106491,9 @@ wWC auZ aiX aiX -asl -amO -aGO +mJp +jZl +cbK awF hRk aGY @@ -105931,10 +106569,10 @@ aag aag aag aag -nXP -fpd -nVS -uNL +sGw +nkj +rjF +eWs eXq eXq eXq @@ -105974,12 +106612,12 @@ uiT aYt xNj bcm -mjR -nqU -vhq -dQH -gWR -vRz +hSb +xFt +bUQ +uKH +pTX +kyP aag aag aag @@ -106056,9 +106694,9 @@ pQV apq ana aiX -asp -amO -avj +cKp +jZl +dgI awF xTL lmA @@ -106134,10 +106772,10 @@ aag aag aag aag -nXP -hJp -dnX -uNL +sGw +xzB +oes +eWs aRu aRu aRu @@ -106177,12 +106815,12 @@ fpW llO vml bcm -mzo -jhA -jhA -dQH -wlL -vRz +emC +rVc +rVc +uKH +nBF +kyP aag aag aag @@ -106259,9 +106897,9 @@ xQg wWC szO aiX -atU -amO -qLj +xTO +jZl +iPU awF awF aEW @@ -106337,10 +106975,10 @@ aag aag aag aag -nXP -mGL -dnX -uNL +sGw +dvD +oes +eWs aRu aRu aRu @@ -106376,16 +107014,16 @@ bGO bHB uAb bcm -mzo -sYC -mzo -mzo -mzo -mzo -mzo -gJd -vhq -vRz +emC +hvx +emC +emC +emC +emC +emC +qpV +bUQ +kyP aag aag aag @@ -106462,10 +107100,10 @@ yjM qbO aqw hnI -bYe -amO -wZM -aPm +ash +jZl +gFN +kED awF nvG vGI @@ -106540,10 +107178,10 @@ aag aag aag aag -nXP -mGL -fJX -uNL +sGw +dvD +iQJ +eWs aRu aRu aRu @@ -106579,16 +107217,16 @@ bcp bHB xAY aYz -mzo -vhq -eJh -eFp -qUH -mzo -qUj -dQH -vhq -vRz +emC +bUQ +wDP +mHF +hhg +emC +qBl +uKH +bUQ +kyP aag aag aag @@ -106665,10 +107303,10 @@ aqy nBE pOD bZa -ahM -aEf -wZM -ejp +evG +duR +gFN +oeN awF aHn szU @@ -106743,10 +107381,10 @@ aag aag aag aag -nXP -tRV -dnX -uNL +sGw +xzB +oes +eWs aRu aRu aRu @@ -106782,16 +107420,16 @@ bcc bHB xAY aYz -mzo -xIj -nqU -nqU -vhq -gsL -nqU -oFG -eXo -vRz +emC +vFI +xFt +xFt +bUQ +wdG +xFt +siT +nGk +kyP aag aag aag @@ -106868,15 +107506,15 @@ aiX aiX aiX aiX -atV -amO -oXd -qFl -qFl -qFl -qFl -qFl -qFl +rPB +jZl +sQu +tsr +tsr +tsr +tsr +tsr +tsr aRE qVC qVC @@ -106946,10 +107584,10 @@ aag aag aag aag -nXP -nun -vJM -uNL +sGw +fzx +cEA +eWs aRu aRu aRu @@ -106985,16 +107623,16 @@ fVz bHB uII ruz -mzo -gwm -pEy -nqU -sRI -mzo -fdA -oFG -nqU -vRz +emC +jev +aML +xFt +oFn +emC +jaI +siT +xFt +kyP aag aag aag @@ -107071,15 +107709,15 @@ aiX aKG amb aiX -ayT -amO -avj -qFl -aFp -aHo -bZH -aQs -qFl +juM +jZl +dgI +tsr +sOL +jIC +lFr +wTu +tsr aSq aTE aTE @@ -107149,10 +107787,10 @@ aag aag aag aag -nXP -hJp -qNG -uNL +sGw +xzB +rsP +eWs aRu aRu aRu @@ -107188,16 +107826,16 @@ xyw bHB uII wrT -mzo -pVu -eOr -dFV -iVO -mzo -nqU -oFG -pch -vRz +emC +fqb +ury +dFW +mvi +emC +daF +siT +fFU +kyP aag aag aag @@ -107274,15 +107912,15 @@ aqz aKH and aiX -lzj -amO -bYe -aTR -gpe -gpe -aIa -ayh -qFl +umD +jZl +ash +fyT +xIV +xIV +edV +reM +tsr aSt aTE aTE @@ -107346,16 +107984,16 @@ aaa bdH aaY aad -nXP -nXP -nXP -nXP -nXP -nXP -nXP -mGL -kKG -uNL +sGw +sGw +sGw +sGw +sGw +sGw +sGw +dvD +iOX +eWs aRu aRu aRu @@ -107397,16 +108035,16 @@ lFp lFp lFp lFp -vwN -oFG -nqU -vRz -vRz -vRz -vRz -vRz -vRz -vRz +ljm +siT +xFt +kyP +kyP +kyP +kyP +kyP +kyP +kyP ajZ aaY bdH @@ -107477,15 +108115,15 @@ aiX aiX aiX aiX -ukh -amO -nxK -qFl -aFq -aHB -aIb -aRr -qFl +cwi +jZl +fBA +tsr +iPN +dbX +rGL +cyL +tsr aSx aTE aTG @@ -107549,16 +108187,16 @@ aaa bdH aaY aad -nXP -sAm -mGL -aLl -hJp -hJp -mGL -mGL -eKO -uNL +sGw +lrH +dvD +xzB +xzB +xzB +dvD +dvD +wsz +eWs aRu aRu aRu @@ -107600,16 +108238,16 @@ kjD gHl qoL lFp -mjR -oFG -nqU -vhq -vhq -rcH -vhq -wqE -kwq -vRz +hSb +siT +xFt +bUQ +bUQ +gQQ +bUQ +cOt +uSU +kyP ajZ aaY bdH @@ -107680,22 +108318,22 @@ aqz mBe atT aiX -ayU -amO -avm -qFl -qFl -aeD -qFl -qFl -qFl -pUJ -mSP -pUJ -pUJ -pUJ -pUJ -pUJ +fXf +jZl +sPk +tsr +tsr +vOY +tsr +tsr +tsr +lIj +mVF +lIj +lIj +lIj +lIj +lIj pgD nUv aJU @@ -107752,16 +108390,16 @@ aaa bdH aaY aad -nXP -hJp -hJp -mGL -mGL -pwK -cmk -xJi -cIi -uNL +sGw +xzB +xzB +dvD +dvD +sZc +abj +mUE +coo +eWs aRu aRu aRu @@ -107803,16 +108441,16 @@ aId aId poA lFp -mjR -bVR -oeo -oeo -gdd -oeo -oeo -bgc -qUj -vRz +hSb +uGU +kGi +kGi +khI +kGi +kGi +kow +qBl +kyP ajZ aaY bdH @@ -107883,22 +108521,22 @@ aiX asf atT aiX -mQH -amT -ioX -pUJ -inC -anX -aht -gvC -pTc -bsO -bsO -aal -xKW -aht -aht -gcc +juM +qNe +dgI +lIj +tBY +gkE +cTM +rqD +pcY +srO +srO +lWO +wjQ +uag +uag +jnh pgD lza gZw @@ -107955,15 +108593,15 @@ aaa bdH aaa aad -nXP -xYN -xYN -uNL -bdi -kKG -hJp -pda -lpS +sGw +dvD +dvD +eWs +jri +iOX +kIl +jmz +hsK wfE wfE wfE @@ -107972,9 +108610,9 @@ wfE wfE wfE wfE -bsk -sxu -cBI +yap +bqg +eIO bkA eFG bej @@ -107996,9 +108634,9 @@ bnS fdZ tzx gfW -bLT -cbQ -ccq +rZt +qyP +tuC lFp lGg aId @@ -108013,9 +108651,9 @@ nmY nmY nmY nmY -clO -gUv -vRz +siT +bUQ +kyP ajZ aaa bdH @@ -108086,22 +108724,22 @@ aiX aiX aiX aiX -nVe -akV -bRs -pUJ -pUJ -abA -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -pUJ -ymi +dRo +ewL +enz +lIj +lIj +dvZ +lIj +lIj +lIj +lIj +lIj +lIj +lIj +lIj +lIj +tWF pgD nUv aJU @@ -108158,9 +108796,9 @@ aaa bdH aaa aad -nXP -aMr -aMr +sGw +dvD +dvD wfE wfE rXv @@ -108175,9 +108813,9 @@ bqm bsD btr wfE -owH -stY -owH +kLE +lIu +kLE bkA bcC bej @@ -108199,9 +108837,9 @@ ixj fdZ bET gfW -bGT -bHH -bGT +kSA +tpB +kSA lFp xDF eRS @@ -108216,9 +108854,9 @@ xHS tEd vjW nmY -caE -pdk -vRz +siT +bUQ +kyP ajZ aaa bdH @@ -108264,12 +108902,12 @@ adq aei aka aWn -aar -aar -aar -aar -aar -aar +lfc +lfc +lfc +lfc +lfc +lfc oGC awW acW @@ -108278,31 +108916,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 +ash +ash +sVA +fCP +vUO +fCP +fCP +wzL +fCP +fCP +vUO +pwd +sVA +fCP +fCP +fCP +fCP +stk +fCP +uVg pEY jsP baw @@ -108311,15 +108949,15 @@ baw sgU baw baw -qVM -qVM -qVM -qVM -qVM -qVM -hXV +xvB +xvB +xvB +xvB +xvB +xvB +gnv yhI -rRz +tTu pgD tQV aaa @@ -108361,9 +108999,9 @@ aaa bdH aaa aad -aKW -bdn -bdn +sGw +dvD +dvD wfE mcL jOo @@ -108378,9 +109016,9 @@ wFR wFR xbk aWw -bys -bxd -vgC +cJK +oGL +hOu bkA eUn bcD @@ -108402,9 +109040,9 @@ nTo bqN bwR gfW -bUe -cbR -ccr +oJL +jMa +cVt sHm ddM hZe @@ -108419,9 +109057,9 @@ dKK dKK xry nmY -clP -ovF -yhQ +siT +bUQ +kyP ajZ aaa bdH @@ -108464,15 +109102,15 @@ aaa aaa abs adq -apr -apr -aoV -aar -aIZ -aIZ -aIZ -bWK -aar +afr +akc +apg +lfc +mjR +mjR +mjR +tWM +lfc aea oGC xjD @@ -108481,31 +109119,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 +dsS +dsS +dsS +rsN +dsS +dsS +dFd +uhI +uhI +dsS +saT +dsS +rsN +rsN +bxt +tPz +tPz +rpP +tPz +tPz +tPz +jRm +rHn tFW dGC aZz @@ -108514,15 +109152,15 @@ aZz nsc baw cxk -qVM -iBt -iBt -iBt -vce -qVM -wTy -wTy -wTy +xvB +wyc +wyc +wyc +nTc +xvB +crh +csI +qhb pgD tQV aaa @@ -108564,9 +109202,9 @@ aaa bdH aaa aad -aKW -uJo -aLf +sGw +xiH +xzB wfE dgl jOo @@ -108581,9 +109219,9 @@ esM uUi xbk aWw -aNO -sLE -qLo +gtD +uRD +wru bkA nvM bgG @@ -108605,10 +109243,10 @@ gfW uFo omo gfW -iRx -iEb -bHa -apm +eWx +lLO +juo +otq gJO pwG aId @@ -108622,9 +109260,9 @@ vXf qGw uZV nmY -scI -oed -yhQ +uKH +bUQ +kyP ajZ aaa bdH @@ -108668,14 +109306,14 @@ aaa abs adq aub -akc -euO -aar -aIZ -aIZ -aIZ -aIZ -aar +akt +awW +lfc +mjR +mjR +mjR +mjR +lfc oGC sHp oGC @@ -108684,31 +109322,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 +mKG +uIa +qxK +rYG +qxK +qxK +iRi +qxK +qxK +qxK +qxK +xcY +qxK +iRi +qxK +qxK +qxK +qxK +qxK +rYG +qxK +bTD +mKG +uQi dCD aXe baw @@ -108717,14 +109355,14 @@ baw mnA baw baw -qVM -iBt -iBt -iBt -iBt -qVM -crh -csI +xvB +wyc +wyc +wyc +wyc +xvB +baw +sMM nqG pgD tQV @@ -108767,9 +109405,9 @@ aaa bdH aaa aad -aKW -ebD -aLf +sGw +jOq +xzB wfE krp jOo @@ -108784,9 +109422,9 @@ wFR soA xbk wfE -kEb -sLE -aLG +xos +uRD +qPk bCd iey baf @@ -108808,10 +109446,10 @@ bPk bsj byb bCd -buH -iEb -buH -app +knm +lLO +knm +yfy ruL qUZ aId @@ -108825,9 +109463,9 @@ kyh dKK xry nmY -suT -ftl -yhQ +qpV +hNh +kyP ajZ aaa bdH @@ -108874,22 +109512,22 @@ avd akt awW qHq -aIZ -aIZ -aIZ -aIZ -aar -rKs -aar -aar -aar -aar -aar -aar -aar -dtM -aii -ajC +mjR +mjR +mjR +mjR +lfc +vzO +lfc +lfc +lfc +lfc +lfc +lfc +lfc +dgP +mKG +uQi aoe aoe aoe @@ -108909,22 +109547,22 @@ aoe aoe aoe aoe -aEI -aii -aik -qVM -qVM -qVM -qVM -qVM -qVM -xeG -qVM -qVM -iBt -iBt -iBt -iBt +maF +mKG +mOw +xvB +xvB +xvB +xvB +xvB +xvB +abz +xvB +xvB +wyc +wyc +wyc +wyc eOM baw sMM @@ -108970,9 +109608,9 @@ aaa bdH aaa aad -aKW -bPW -aLf +sGw +eoE +xzB wfE eiP qOp @@ -108987,9 +109625,9 @@ qtv xFZ btx naV -bxk -aYI -aLG +pij +kJh +qPk bCd tmg qjN @@ -109011,10 +109649,10 @@ qjN tzP wYK bCd -buH -iEb -buH -app +knm +lLO +knm +yfy ruL gsd aId @@ -109028,9 +109666,9 @@ hgD pSQ dOe nmY -tqk -iBG -yhQ +rEK +bba +kyP ajZ aaa bdH @@ -109076,23 +109714,23 @@ adq aGP aka aWu -aar -aIZ -aIZ -aIZ -aIZ -aar -uLW -tZe -oQo -dCh -adt -xUI -aOD -aar -mOL -aii -ajC +lfc +mjR +mjR +mjR +mjR +lfc +gur +osn +vDt +puJ +deA +olC +ujf +lfc +xky +mKG +uQi aoe aoh jHQ @@ -109112,23 +109750,23 @@ cnV isN cnZ aoe -dtM -aii -ajC -qVM -gKS -gKS -csz -xCX -csz -vGk -vGk -qVM -iBt -iBt -iBt -iBt -qVM +dgP +mKG +uQi +xvB +cHn +cHn +ftw +nZK +ftw +wMD +dcZ +xvB +wyc +wyc +wyc +wyc +xvB hWB yhI qSX @@ -109173,9 +109811,9 @@ aaa bdH aaa aad -aKW -bPT -aLf +sGw +jIJ +xzB wfE fHz opD @@ -109190,9 +109828,9 @@ esM jpt xbk aWw -aLG -aZi -cOM +qPk +hKe +uJM baZ bep qjN @@ -109214,10 +109852,10 @@ qjN qjN imo baZ -oLv -iEb -buH -app +sbE +lLO +knm +yfy ruL xPq aId @@ -109231,9 +109869,9 @@ smW prP xXl nmY -iTz -vfJ -yhQ +idL +gnM +kyP ajZ aaa bdH @@ -109279,23 +109917,23 @@ adq aGQ akc apg -aar -aIZ -aIZ -aIZ -aIZ -aar -aao -aap -ijU -vkD -ijU -aap -aao -sMs -bYe -akU -ajC +lfc +mjR +mjR +mjR +mjR +lfc +aHo +vqh +tey +urL +tey +vqh +aHo +tQA +ash +wwi +uQi aoe vbS arb @@ -109315,23 +109953,23 @@ cnW aEi coa aoe -ahr -akU -bYe -xCX -csz -vGk -vGk -qVM -bDe -csz -csz -qVM -iBt -iBt -iBt -iBt -qVM +tWf +wwi +ash +nZK +ftw +wMD +wMD +xvB +gJY +ftw +ftw +xvB +wyc +wyc +wyc +wyc +xvB wvj csI iPH @@ -109376,9 +110014,9 @@ aaa bdH aaa aad -aKW -aLf -aSm +sGw +xzB +dvD wfE iYx opD @@ -109393,9 +110031,9 @@ nEF tXi pcE aWw -aLG -aZi -aLG +qPk +hKe +qPk hqW qjN qjN @@ -109417,10 +110055,10 @@ hDX qjN qjN jpp -buH -iEb -buH -eDG +knm +lLO +knm +hnP lFp xlO aId @@ -109434,9 +110072,9 @@ oqt oEy qmY tUN -wlp -vXX -yhQ +siT +lZb +kyP ajZ aaa bdH @@ -109482,23 +110120,23 @@ aee avd akt qWI -aar -aar -aar -aar -aar -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -ahr -akU -ajC +lfc +lfc +lfc +lfc +lfc +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +tWf +wwi +uQi aoe qQc fXg @@ -109518,23 +110156,23 @@ jBy aEi fFh aoe -dtM -akU -ajC -czu -czu -czu -czu -czu -czu -czu -czu -czu -qVM -qVM -qVM -qVM -qVM +dgP +wwi +uQi +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +xvB +xvB +xvB +xvB +xvB ehj irS ilJ @@ -109579,9 +110217,9 @@ aaa bdH aaa aad -aKW -aLf -aSm +sGw +xzB +dvD wfE gww opD @@ -109596,9 +110234,9 @@ ljf maL uKe aWw -aLG -avX -tzf +qPk +ckh +gyn vcq qPS qPS @@ -109620,10 +110258,10 @@ iaF bqL bqL ocf -bFu -mKY -hvp -mWw +wwE +sAD +cIO +tAb vpe dxT olN @@ -109637,9 +110275,9 @@ uxX oZy orN nmY -luu -gNx -yhQ +lQf +tHk +kyP ajZ aaa bdH @@ -109682,26 +110320,26 @@ aaa aaa abs adq -aWm -aka -kyY -aar -cit -ina -nuY -nuY -lYA -aax -aax -aax +lpJ +akt +awW +lfc +mfR +sqP +tVs +tVs +gxm +tPB +tPB +tPB dkO aps aps aps -lYA -vIm -aii -ajC +gxm +xtO +mKG +uQi aoe vbS koB @@ -109721,25 +110359,25 @@ aoe hFF aoe aoe -dtM -aii -ajC -czu +dgP +mKG +uQi +gxm aiJ aiJ aiJ qYr -atj -atj -atj -czu -foR -usi -vGk -foR -qVM -rQW -yhI +cJV +cJV +cJV +gxm +ear +pqR +wMD +ear +xvB +baw +sMM tmI pgD tQV @@ -109782,26 +110420,26 @@ aaa bdH aaa aad -aKW -rJb -aSm +sGw +nkj +dvD wfE rYi opD wFR wFR -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aLG -aZi -cOM +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +qPk +hKe +uJM baZ eyQ qjN @@ -109823,26 +110461,26 @@ qjN qjN xtM baZ -oLv -hop -vMx -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +sbE +jZe +cbL +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr iZE oqt oZy qhD nmY -wlp -oDf -yhQ +siT +xFt +kyP ajZ aaa bdH @@ -109885,26 +110523,26 @@ aaa aaa abs adq -apr -apr -apr -aar -aJL -aYr -aao -aao -lYA -aax -aax -aax +aWm +aka +kyY +lfc +hzl +vdT +aHo +aHo +gxm +tPB +tPB +tPB vQe aps aps aps -lYA -ahq -akU -ajC +gxm +hGo +wwi +uQi aoe aop koB @@ -109924,26 +110562,26 @@ uRt aQz aRJ ajl -dtM -akU -ajC -czu +dgP +wwi +uQi +gxm aiJ aiJ aiJ str -atj -atj -atj -czu -usi -vGk -vGk -vLv -qVM -wTy -wTy -wTy +cJV +cJV +cJV +gxm +pqR +wMD +wMD +moq +xvB +rQW +yhI +rRz pgD tQV aaa @@ -109985,26 +110623,26 @@ aaa bdH aaa aad -aKW -aLf -aSm +sGw +xzB +dvD wfE cVK opD oRO ren -aKW +wDr aeL aeL aeL -aqM -arO -arO -arO -aKW -beB -byI -beB +oLj +wNG +wNG +wNG +wDr +qZT +pSF +eZC bCd mlH bqR @@ -110026,26 +110664,26 @@ cle bCe sdO bCd -bJz -rrV -bJz -yhQ -aue -aue -aue -txi +hBW +dxJ +rdT +wDr +mQx +mQx +mQx +jsa azy azy azy -yhQ +wDr kJH oqt qlm kRD nmY -scI -oDf -yhQ +uKH +xFt +kyP ajZ aaa bdH @@ -110086,28 +110724,28 @@ bdH bdH bdH bdH -acf -aet -afB -akW -apu -aar -aar -aao -aap -pDm -lYA -acV -acV -acV +abs +adq +afr +akc +apg +lfc +lfc +lBB +vqh +mOR +gxm +gHX +gHX +gHX vQe aps aps aps -lYA -dtM -nmx -cpw +gxm +dgP +hBy +dlT hSI pMp gzK @@ -110127,26 +110765,26 @@ akw aQz aRK ajl -aDk -akU -ajC -czu +kUs +wwi +uQi +gxm aiJ aiJ aiJ str -atl -atl -atl -czu -dQE -vGk -csz -qVM -qVM -crh +oAY +oAY +oAY +gxm +rTe +wMD +ftw +xvB +xvB +vpn csI -qhb +goL pgD tQV bdH @@ -110188,26 +110826,26 @@ aaa bdH aaa aad -aKW -aLf -aMs +sGw +xzB +esm wfE wfE viJ wfE wfE -aKW +wDr aeL aeL aeL -kHj -arO -arO -arO -aKW -aLG -aZi -aLG +uZm +wNG +wNG +wNG +wDr +qPk +hKe +qPk bCd bmn knH @@ -110229,26 +110867,26 @@ kan iXW iLs bCd -buH -hop -buH -yhQ -aue -aue -aue -tGO +knm +jZe +knm +wDr +mQx +mQx +mQx +guK azy azy azy -yhQ +wDr euW rOI aId hQP nmY -suT -oed -yhQ +qpV +bUQ +kyP ajZ aaa bdH @@ -110289,28 +110927,28 @@ aaf aaf aaf aaf -acv -aez -boL -akY -boL -aiH -aiv -aap -uoS -pDm -lYA -adb -adb -adb -lYA +abw +eCC +awW +akt +awW +upQ +fFs +vqh +fwP +mOR +gxm +tpj +tpj +tpj +gxm asm asm asm -lYA -dtM -ajt -pvt +gxm +dgP +qNe +mnV aoe pjF wUd @@ -110330,22 +110968,22 @@ akw fOL aRS ajl -ahq -aii -ajC -czu +hGo +mKG +uQi +gxm alW alW alW -czu -atI -atI -atI -czu -usi -foR -csz -xCX +gxm +nVA +nVA +nVA +gxm +pqR +ear +ftw +nZK aJU baw sMM @@ -110392,25 +111030,25 @@ aKR aKR aKR aKR -aSm -aLf -vXY -aLf -aLf -jiX -cmq -aKW +dvD +xzB +pIo +xzB +xzB +fQy +nAm +wDr aeL aeL aeL -kHj -nLg -nLg -nLg -aKW -aLG -aZi -bad +uZm +kaq +kaq +kaq +wDr +qPk +hKe +qqf kan kan kan @@ -110432,25 +111070,25 @@ kan kan kan kan -bGe -bHL -buH -yhQ -auk -auk -auk -tGO +tzw +sPY +knm +wDr +wQu +wQu +wQu +guK azy azy azy -yhQ +wDr sJI aId aId hQP nmY -scI -oed +uKH +bUQ bVU bVU bVU @@ -110492,28 +111130,28 @@ aag aag aag aag -acv -aez -boL -akY +abw +eCC +awW +akt wrQ -aar -aar -aar -aar -aar -lYA -adb -adb -adb -lYA +lfc +lfc +lfc +lfc +lfc +gxm +tpj +tpj +tpj +gxm asm asm asm -lYA -dtM -akU -wgd +gxm +dgP +wwi +tQO sqf sqf sqf @@ -110533,23 +111171,23 @@ upM akw alD vEx -bYe -akU -ajC -czu +ash +wwi +uQi +gxm alW alW alW -czu -atI -atI -atI -czu -qVM -qVM -qVM -qVM -qVM +gxm +nVA +nVA +nVA +gxm +xvB +xvB +xvB +xvB +xvB nTH sMM baw @@ -110595,30 +111233,30 @@ aKS aKU aKS aLL -iIY -bCQ -hhw -gxr -bPW -bbx -bPU -aKW +vtJ +stP +eWs +hKO +eoE +lrH +kdo +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG -kan -bFb -bFb +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk kan -aYm +qWS +oDJ +vaQ +iIH rlZ buu rlZ @@ -110635,25 +111273,25 @@ kan psO gjK kan -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr ePN aId aId hQP nmY -nyz -tVB +xUY +wGe bSf bWe bWn @@ -110695,28 +111333,28 @@ aag aag aag aag -acf -aet -agS -aiP -aYq -aar -aIZ -aIZ -aIZ -bWK -lYA -adb -adb -adb -lYA +abs +adq +aeZ +aka +aoI +lfc +mjR +mjR +mjR +tWM +gxm +tpj +tpj +tpj +gxm asm asm asm -lYA -dtM -akU -ajC +gxm +dgP +wwi +uQi sqf anp wjz @@ -110724,8 +111362,8 @@ fnA jZY jZY sqf -vPj -aot +wpu +okO ajl ajl ajl @@ -110736,23 +111374,23 @@ ajl onQ alD ajl -hon -akU -ajC -czu +bNI +wwi +uQi +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -vce -qVM +gxm +nVA +nVA +nVA +gxm +wyc +wyc +wyc +nTc +xvB gnv yhI tTu @@ -110805,23 +111443,23 @@ aLL aLL aLL aLL -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk kan -bFb -bFb +kAp +dYU kan -aZM +cWm soK gDW rlZ @@ -110838,18 +111476,18 @@ wzZ tdI vbV kan -buH -hop -buH -yhQ -aul -aul -aul -yhQ +knm +jZe +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr bSf bSf auW @@ -110898,28 +111536,28 @@ aag aag aag aag -acf -aet -agB -akW -aYs -aar -aIZ -aIZ -aIZ -aIZ -lYA -vKF -adb -adb -lYA +abs +adq +afr +akc +apg +lfc +mjR +mjR +mjR +mjR +gxm +lbc +tpj +tpj +gxm asm asm asm -lYA -dtM -aii -ajC +gxm +dgP +mKG +uQi sqf sOZ oNJ @@ -110927,8 +111565,8 @@ eDo eDo eDo sqf -jUG -awM +vXv +wub gXl ajl wqW @@ -110939,23 +111577,23 @@ ajl aCp alD ajl -wqA -aii -ajC -czu +kiq +mKG +uQi +gxm alW alW alW -czu -atI -atI -xMk -czu -iBt -iBt -iBt -iBt -qVM +gxm +nVA +nVA +wZk +gxm +wyc +wyc +wyc +wyc +xvB vpn csI goL @@ -111008,18 +111646,18 @@ coT fgh rZP gmj -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -bxD -byI -beB +wDr +hwH +hwH +hwH +wDr +iGi +pSF +eZC bst bst bst @@ -111041,18 +111679,18 @@ biA biA biA biA -bJz -bHT -koc -yhQ -aul -aul -aul -yhQ +hBW +ltv +uYM +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr wcN nGi bVd @@ -111101,28 +111739,28 @@ aag aag aag aag -acv -aez -boL -akY -boL +abw +eCC +awW +akt +awW avJ -aIZ -aIZ -aIZ -aIZ -lYA -adb -adb -adb -lYA +mjR +mjR +mjR +mjR +gxm +tpj +tpj +tpj +gxm asm asm asm -lYA -dtM -ajt -aik +gxm +dgP +qNe +mOw sqf anq awn @@ -111130,8 +111768,8 @@ xsz jTj jTj sqf -xRh -umC +lmi +xgP dwA wJo cyU @@ -111142,22 +111780,22 @@ fQu akx alD gWG -dtM -aii -ajC -czu +dgP +mKG +uQi +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -iBt +gxm +nVA +nVA +nVA +gxm +wyc +wyc +wyc +wyc qxz baw sMM @@ -111211,18 +111849,18 @@ uUt aLW aLW guS -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -vgF -aKW -jgU -aZi -aLG +wDr +hwH +hwH +srR +wDr +cvg +hKe +qPk bst bui bvz @@ -111233,8 +111871,8 @@ bJw rlZ hBc hzs +bHg hzs -kDj aZK rlZ hYn @@ -111244,18 +111882,18 @@ bsQ bmj caS biA -buH -bHL -wWQ -yhQ -aun -aul -aul -yhQ +knm +sPY +jxu +wDr +oVk +ydA +ydA +wDr azD azD azD -yhQ +wDr wgR bTO bTO @@ -111304,28 +111942,28 @@ aag aag aag aag -acv -aez -boL -akY +abw +eCC +awW +akt aqk -aar -aIZ -aIZ -aIZ -aIZ -lYA -adb -adb -adb -lYA +lfc +mjR +mjR +mjR +mjR +gxm +tpj +tpj +tpj +gxm asm asm asm -lYA -dtM -aii -ajC +gxm +dgP +mKG +uQi sqf anr awn @@ -111345,23 +111983,23 @@ fQu akx alD gWG -dtM -aii -ajC -czu +dgP +mKG +uQi +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -iBt -qVM +gxm +nVA +nVA +nVA +gxm +wyc +wyc +wyc +wyc +xvB xuY sMM baw @@ -111414,18 +112052,18 @@ bbS xka uLn uoA -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk bst bcR bev @@ -111447,18 +112085,18 @@ bCl bsz caT biA -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr hkB bTO qSm @@ -111507,28 +112145,28 @@ aag aag aag aag -acf -aet -agS -aiP -aYq -aar -aIZ -aIZ -aIZ -aIZ -lYA -adb -adb -adb -lYA +abs +adq +aeZ +aka +aoI +lfc +mjR +mjR +mjR +mjR +gxm +tpj +tpj +tpj +gxm asm asm asm -lYA -aEI -aii -ajC +gxm +maF +mKG +uQi sqf sqf awp @@ -111548,23 +112186,23 @@ ajl hVz alD ajl -ahr -aii -ajC -czu +tWf +mKG +uQi +gxm alW alW alW -czu -atI -atI -atI -czu -iBt -iBt -iBt -iBt -qVM +gxm +nVA +nVA +nVA +gxm +wyc +wyc +wyc +wyc +xvB gnv yhI tTu @@ -111617,18 +112255,18 @@ rlh aLW aLW gxh -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -mzR +wDr +hwH +hwH +hwH +wDr +qPk +hKe +tON bst bcS bag @@ -111650,18 +112288,18 @@ bCm bsP hgZ biA -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr wjC bTO xMf @@ -111710,28 +112348,28 @@ aag aag aag aag -acf -aet +abs +adq afB -akW +akc biT -aar -aar -aar -aar -aar -lYA -adc -adc -adc -lYA -lYA -lYA -lYA -lYA -kYU -akU -rxG +lfc +lfc +lfc +lfc +lfc +gxm +hWV +hWV +hWV +gxm +gxm +gxm +gxm +gxm +mYd +wwi +xwU ajl qhx akw @@ -111751,23 +112389,23 @@ ajl nMV vIf ajl -aEI -akU -gMa -czu -czu -czu -czu -czu -adc -adc -adc -czu -qVM -qVM -qVM -qVM -qVM +maF +wwi +nwu +gxm +gxm +gxm +gxm +gxm +hWV +hWV +hWV +gxm +xvB +xvB +xvB +xvB +xvB crh csI qhb @@ -111820,18 +112458,18 @@ djQ nFs aLW gFa -aKW +wDr aiR aiR aiR -aKW -xpI -xpI -xpI -aKW -aLG -aZi -aLG +wDr +hwH +hwH +hwH +wDr +qPk +hKe +qPk bst buj bev @@ -111853,18 +112491,18 @@ bCn bsz hMN biA -buH -bHL -buH -yhQ -aul -aul -aul -yhQ +knm +sPY +knm +wDr +ydA +ydA +ydA +wDr azD azD azD -yhQ +wDr xad roG mZr @@ -111913,28 +112551,28 @@ aag aag aag aag -acv -aez -boL -boL -boL -ahl -cWv -cWv -cWv -cWv -kaj -uId -adH -adH -fMA -atC -bbL -aWl -bbL -wQg -akU -bYe +abw +eCC +awW +awW +awW +pEA +fCP +fCP +fCP +fCP +omp +ocX +xog +xog +vFy +fCP +fCP +vUO +fCP +xRn +wwi +ash bVE aos akw @@ -111954,23 +112592,23 @@ ans aos alE bVE -bYe -akU -aGd -aWl -hJu -bbL -atC -aAa -aww -aww -wst -axs -bbL -bbL -bYe -bbL -bit +ash +wwi +mnC +fCP +qRx +fCP +fCP +cuI +ocX +ocX +ocX +pVI +fCP +fCP +fCP +fCP +pEA baw baw qYC @@ -112023,18 +112661,18 @@ aLL aLL aLL hrF -aKW -aKW -aKW -aKW -aKW -kaF -jWU -jWU -aKW -pGM -aZi -aLG +wDr +wDr +wDr +wDr +wDr +jXR +enK +enK +wDr +kgt +hKe +qPk bst aYQ bbd @@ -112056,18 +112694,18 @@ bnT btX byc biA -buH -bHL -bIR -yhQ -cyG -cyG -sos -yhQ -yhQ -yhQ -yhQ -yhQ +knm +sPY +qPU +wDr +sai +sai +wrN +wDr +wDr +wDr +wDr +wDr bSf bSf auX @@ -112116,28 +112754,28 @@ aag aag aag aag -acv -aez -boL -asS -boL -ceu -boL -boL -boL -boL -kGL -uTY -azY -azY -azY -atC -abx -abx -abx -abx -tal -ait +abw +eCC +awW +aTm +awW +pEA +orV +orV +orV +orV +fGD +fGD +qEc +qEc +qEc +orV +yde +yde +yde +yde +gkV +uTD aEe akA akA @@ -112157,23 +112795,23 @@ akA oap aSb aEe -ait -bjJ -abx -abx -abx -abx -atC -azY -azY -azY -fad -kGL -abg -abg -abg -abg -ajC +uTD +lzF +yde +yde +yde +yde +orV +qEc +qEc +qEc +fGD +fGD +orV +orV +orV +orV +pEA baw vbB ley @@ -112219,25 +112857,25 @@ aKS aKV aKS aLL -iIY -bCQ -hhw -bPU -bPS -cDe -ipD -rmN -buq -lGh -aQt -lDg -lpD -wGA -lpD -hmc -tBF -jWt -aLG +qVE +iGc +bwG +hCk +nRN +mzI +olQ +oCK +eob +gMk +qRb +axY +xrC +oWF +xrC +toQ +exl +qyX +qPk bst bst bst @@ -112259,25 +112897,25 @@ biA biA biA biA -ghD -vdW -hvp -ayE -azE -ajd -azS -chE -azI -ciT -cjw -cjS -ckl -ckI -cla -cly -voQ -bVi -tVB +wHn +rDO +cIO +rEd +fml +fqU +bIO +rSA +cIm +emw +bvD +gZW +lUA +bwv +hDU +iNH +cDx +ndl +iDk bSf bWe bWp @@ -112319,28 +112957,28 @@ aah aah aah aah -acf -acf -boL +abs +abs +awW ale -bDD -nub -dux -iYr -dux -ado -atC -kHT -avn -avn -mTb -atC -avn -avn -avn -nFr -ajt -ajC +ajE +pEA +ash +rYG +ash +xcY +qxK +qxK +qxK +qxK +rYG +qxK +qxK +qxK +qxK +bTD +qNe +uQi vOy vOy vOy @@ -112360,23 +112998,23 @@ vOy wMO wky sqf -hon -ajt -mce -avn -avn -avn -atC -mTb -avn -avn -aim -atC -avn -bYe -cre -avn -aim +bNI +qNe +uIa +qxK +rYG +qxK +qxK +qxK +qxK +qxK +qxK +rYG +qxK +ash +ftZ +qxK +pEA baw dBp gVA @@ -112422,25 +113060,25 @@ aKR aKR aKR aKR -aSm -aLf -tps -aLf -aLf -xlD -nMz -aSm -hhw -aNn -aNO -asO -apC -apC -apC -aqx -aLG -aYO -aLG +deq +lfx +jgK +lfx +lfx +yih +kgD +deq +bwG +vVy +gtD +vEv +cvI +cvI +cvI +aza +qPk +wKN +qPk kan ihw beW @@ -112462,25 +113100,25 @@ tAU xmT tAU kan -buH -bHL -buH -azB -azT -azT -azT -azG -bHa -ccU -kzP -cjT -ckm -bHa -clb -clz -fiq -gqK -oed +knm +sPY +knm +qEM +wzy +wzy +wzy +qEM +juo +seL +siC +jNw +xuy +juo +vqz +vMU +mJO +vDN +xbg bVU bVU bVU @@ -112523,11 +113161,11 @@ aaa aaa aaa aaa -lYA -aet -aet +acf biV +aet biV +aet ekY aet ekY @@ -112541,9 +113179,9 @@ abE abE abE abE -jKK -pjM -aim +bff +rnd +fdf vOy nos fcy @@ -112563,27 +113201,27 @@ ayX kXw pxo sqf -kHT -pjM -aim -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -gMA -qVM -qVM -qVM -qVM -qVM -qVM -czu +uVZ +rnd +fdf +pBG +pBG +pBG +pBG +pBG +pBG +pBG +pBG +pBG +pBG +oiq +mRU +mRU +mRU +mRU +mRU +mRU +woU aaa aaa aaa @@ -112624,26 +113262,26 @@ aaa aaa bdH aad -aKW -aSm -aLf -hhw +kyw +deq +lfx +bwG aQF aQF 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 @@ -112665,26 +113303,26 @@ wJb wJb bPu kan -buH -bHL -buH -azB -qKM -rYj -ssE -azG -uxZ -vgk -fiq -fiq -fiq +knm +sPY +knm +qEM +hEg +ewc +lLl +qEM +jvD +cBV +mJO +mJO +mJO bTq -fiq -fiq -fiq -oDf -oed -yhQ +mJO +mJO +mJO +mgb +xbg +lyW ajZ bdH aaa @@ -112726,7 +113364,7 @@ aaa aaa aaa aaa -ahx +acv aiH alf arp @@ -112744,9 +113382,9 @@ gwo aed aeG abE -atL -akV -atL +umI +dzV +umI vOy oNp aSn @@ -112766,27 +113404,27 @@ niL kXw pxo sqf -atL -bkQ -atL -qVM -iBt -iBt -iBt -iBt -iUZ +umI +uch +umI +pBG +idM +idM +idM +idM +fHM pBG rLp ttX -qVM -csz -qVM -nLb -pUi -wLk -bIN -lbb -czu +pBG +vpf +mRU +vor +qnA +vkI +gNN +lyz +woU aaa aaa aaa @@ -112827,10 +113465,10 @@ aaa aaa bdH aad -aKW -uDB -aLf -hhw +kyw +xwd +lfx +bwG weR aPE weR @@ -112844,9 +113482,9 @@ aQF aQF aQF aQF -esi -byI -beB +mNG +pSF +eZC kan avW bZn @@ -112856,7 +113494,7 @@ vhX gDW rlZ rlZ -pnC +wYr dBH bky ryt @@ -112868,9 +113506,9 @@ xIk cLA xIk kan -bJz -bHT -quI +hBW +ltv +qEz bJt bJt bJt @@ -112878,16 +113516,16 @@ bJt bJt bJt bJt -fiq -uaa -uaa -uaa -uaa -cmX -fiq -oDf -oDf -yhQ +mJO +plv +plv +plv +plv +mvg +mJO +mgb +mgb +lyW ajZ bdH aaa @@ -112929,7 +113567,7 @@ aaa aaa aaa aaa -ahx +acv aiH alg bBC @@ -112947,9 +113585,9 @@ adF aef dWw agA -ago -snm -cwJ +okx +hgA +xfo vOy anz vgx @@ -112969,27 +113607,27 @@ aCC kXw pxo asn -ago -asW -cwJ -qVM -iBt -iBt -iBt -iBt -iBt +okx +cFH +xfo +pBG +idM +idM +idM +idM +idM pBG jZU jAe -qVM -vGk -qVM -fdj -qYW -oTz -vGk -xae -czu +pBG +jtU +mRU +tNw +ebI +ukC +jtU +fCi +woU aaa aaa aaa @@ -113030,14 +113668,14 @@ aaa aaa bdH aad -aKW -aSm -aVt -hhw -aNr -aOi -pbb -pbb +kyw +deq +cGY +bwG +rUq +rUq +sab +sab izk aWD cWr @@ -113047,9 +113685,9 @@ eKT wan cTC aQF -pno -aYO -bad +syj +wKN +qqf xMs xMs xMs @@ -113071,9 +113709,9 @@ vMo vMo vMo vMo -bGe -bHL -smn +tzw +sPY +hkC bJt xOL gGI @@ -113081,16 +113719,16 @@ eeu gfq eFP gAz -fiq -uaa -uaa -uaa -uaa -uaa -fiq -oed -bxX -yhQ +mJO +plv +plv +plv +plv +plv +mJO +xbg +pgJ +lyW ajZ bdH aaa @@ -113132,7 +113770,7 @@ aaa aaa aaa aaa -lYA +acf aet avx ahN @@ -113150,9 +113788,9 @@ adF aef aef uZZ -bYe -amO -avj +kGS +bNT +rmB vOy awQ oLU @@ -113172,27 +113810,27 @@ edv kXw pxo asn -ayT -akU -avj -qVM -iBt -iBt -iBt -iBt -iBt +eWN +lOn +rmB +pBG +idM +idM +idM +idM +idM pBG cVq nOb -qVM -oLw -qVM -qVM -qVM -xeG -qVM -qVM -czu +pBG +vpI +mRU +mRU +mRU +gBs +mRU +mRU +woU aaa aaa aaa @@ -113233,12 +113871,12 @@ aaa aaa bdH aad -aKW -bhC -bPT -hhw -jKh -pbb +kyw +deq +veq +bwG +pKh +sab rDv bmW jWu @@ -113250,9 +113888,9 @@ aRy aRy nIj aQF -aWM -aZi -aLG +rWv +hKe +qPk xMs aSO feY @@ -113274,9 +113912,9 @@ wZE iGn byd vMo -buH -bHL -buH +knm +sPY +knm lhB pOY bDs @@ -113284,16 +113922,16 @@ jge bDs bDs hLC -fiq -uaa -uaa -uaa -uaa -uaa -fiq -oed -oDf -yhQ +mJO +plv +plv +plv +plv +plv +mJO +xbg +mgb +lyW ajZ bdH aaa @@ -113335,7 +113973,7 @@ aaa aaa aaa aaa -lYA +acf aet avV uli @@ -113353,9 +113991,9 @@ adF bls aeH agq -ahM -kSJ -avj +nIF +ijn +rmB vOy hng dnC @@ -113375,27 +114013,27 @@ aCt kXw pxo asn -ayT -aii -avm -qVM -iBt -iBt -iBt -iBt -iBt +eWN +jao +hCF +pBG +idM +idM +idM +idM +idM pBG dzp ngV -qVM -vGk -vGk -gYS -weU -csz -eGz -csz -czu +pBG +jtU +jtU +uBx +fLi +vpf +prf +vpf +woU aaa aac aaf @@ -113436,10 +114074,10 @@ aaa aaa bdH aad -aKW -aSm -xCm -hhw +kyw +deq +deF +bwG mTi lJK kYV @@ -113453,9 +114091,9 @@ bQU bQU bjD dqE -aem -mUa -uLv +htl +vaq +vTX xMs lOH dUS @@ -113477,9 +114115,9 @@ bof vit dxu vMo -buH -bHL -buH +knm +sPY +knm lhB xCb bDs @@ -113487,16 +114125,16 @@ bIJ bDs bDs qJS -fiq -uaa -uaa -uaa -uaa -uaa -fiq -oed -oed -yhQ +mJO +plv +plv +plv +plv +plv +mJO +xbg +xbg +lyW ajZ aaa avo @@ -113538,7 +114176,7 @@ aaa aaa aaa aaa -ahx +acv aez uli aIx @@ -113556,9 +114194,9 @@ adF aef kqN agA -ayT -ajt -avm +eWN +mxg +hCF vOy xyt wiW @@ -113578,10 +114216,10 @@ vOy mFq vqW sqf -ybf -aii -avj -qVM +jMP +jao +rmB +pBG pBG pBG pBG @@ -113590,15 +114228,15 @@ pBG pBG saL pBG -qVM -qVM -qVM -qVM -qVM -qVM -vGk -csz -czu +pBG +mRU +mRU +mRU +mRU +mRU +jtU +vpf +woU aaa aad aag @@ -113639,15 +114277,15 @@ aaa aaa bdH aad -aKW -aSm -xnY -hhw +kyw +deq +oWq +bwG aQF aQF aPH xIQ -hvQ +tmX aWD rrK aRy @@ -113656,9 +114294,9 @@ brb cpp buv aWF -aLG -aZi -aLG +qPk +hKe +qPk xMs akE qGF @@ -113680,9 +114318,9 @@ ggz dka bye vMo -buH -bHL -buH +knm +sPY +knm lhB aQW bDs @@ -113697,9 +114335,9 @@ bJt bJt bJt bJt -oed -eHf -yhQ +xbg +otW +lyW ajZ avo avo @@ -113741,7 +114379,7 @@ aaa aaa aaa aaa -ahx +acv aez uli uli @@ -113759,9 +114397,9 @@ aef aef tRD abE -aTL -ajt -avj +ciI +mxg +rmB vOy iYf bIM @@ -113781,10 +114419,10 @@ hPe sdu btC vLj -ahM -kSJ -avj -cGr +nIF +ijn +rmB +dyJ pBG gqQ cHG @@ -113798,10 +114436,10 @@ gel gel gel fkX -qVM -vGk -ofs -czu +mRU +jtU +tMU +woU aaf aag aag @@ -113842,10 +114480,10 @@ bdH bdH bdH aad -aKW -uDB -aLf -hhw +kyw +xwd +lfx +bwG weR aPE izk @@ -113859,9 +114497,9 @@ aTY iCF gJP aQF -qcl -aZi -aLG +uNf +hKe +qPk xMs aYR dUS @@ -113883,9 +114521,9 @@ jZd vit bzo vMo -buH -bHL -buH +knm +sPY +knm lhB pxD bDs @@ -113900,9 +114538,9 @@ iIl bDs ujV bJt -oed -oed -yhQ +xbg +xbg +lyW ajZ avo avs @@ -113944,7 +114582,7 @@ aaa aaa aaa aaa -lYA +acf ahy avZ ipK @@ -113962,9 +114600,9 @@ adF aef afs agA -ayT -akU -avj +eWN +lOn +rmB vOy mTp wiW @@ -113984,10 +114622,10 @@ lON dVu oDR vOP -bYe -bnD -aWH -aYn +kGS +fAW +vlR +qPv qvL wmP wmP @@ -114001,10 +114639,10 @@ cXF rLU dKp cHu -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aag aag aag @@ -114045,12 +114683,12 @@ bdH bdH bdH aad -aKW -aSm -gfS -hhw -lHc -pbb +kyw +deq +sJa +bwG +pGG +sab izk hds aQF @@ -114062,9 +114700,9 @@ qZH bsN buB aWD -aLG -aZi -aLG +qPk +hKe +qPk xMs bXw eiw @@ -114086,9 +114724,9 @@ boh qDP wbP vMo -buH -bHL -vMx +knm +sPY +cbL bJt qom bDs @@ -114103,8 +114741,8 @@ idx hAz gHj bJt -vhI -oed +oqI +xbg avo avo avo @@ -114147,7 +114785,7 @@ aaa aaa aaa aaa -lYA +acf aet aIx ipK @@ -114165,9 +114803,9 @@ adD sOw afs agA -ayT -akU -avj +eWN +lOn +rmB vOy axn dRh @@ -114187,10 +114825,10 @@ vOy aRd aIo vOy -qLK -akU -avj -eAT +gyb +lOn +rmB +aRl pBG lvb eAN @@ -114204,10 +114842,10 @@ bHk vZw bHk cHu -qVM -csz -qVM -czu +mRU +vpf +mRU +woU aag aag aag @@ -114248,10 +114886,10 @@ bdH bdH bdH aad -aKW -aLf -aSm -tps +kyw +lfx +deq +jgK aNs aNs hyw @@ -114265,9 +114903,9 @@ fHF bml buB aWD -beB -byI -beB +eZC +pSF +eZC xMs xMs xMs @@ -114289,9 +114927,9 @@ vMo vMo vMo vMo -bJz -bHT -uFP +hBW +ltv +kGw bJt bJt nFI @@ -114306,8 +114944,8 @@ gSk bDs bpI bJt -kTq -oed +jLH +xbg lpy avC avC @@ -114350,7 +114988,7 @@ aaa aaa aaa aaa -lYA +acf aet uli ipK @@ -114368,9 +115006,9 @@ adF aef afs agA -ayT -akU -avj +eWN +lOn +rmB vOy aAr pGK @@ -114390,9 +115028,9 @@ aCD hFC qmy vOy -ayT -akU -avj +eWN +lOn +rmB pBG pBG hEl @@ -114407,10 +115045,10 @@ vzp vZw erd cHu -qVM -hoX -qVM -czu +mRU +vzB +mRU +woU aag aag aag @@ -114451,10 +115089,10 @@ bdH bdH bdH aad -aKW -eWY -aSm -hhw +kyw +txp +iGc +bwG vMr vMr izk @@ -114468,9 +115106,9 @@ htL aUL buB aWD -aLG -aZi -aLG +qPk +hKe +qPk nyw iXU hDw @@ -114492,9 +115130,9 @@ vEH uFH tQd nyw -buH -bHL -buH +knm +sPY +knm yfS sEi dck @@ -114509,8 +115147,8 @@ gSk reL wiI bJt -nnr -eep +tqV +dSm avo avo avo @@ -114553,7 +115191,7 @@ aaa aaa aaa aaa -lYA +acf aet avx ipK @@ -114571,9 +115209,9 @@ aef aef pHG abE -aTL -aii -avj +ciI +jao +rmB vOy aID gLc @@ -114593,9 +115231,9 @@ aoM aoM vgB kgs -ayT -aii -avj +eWN +jao +rmB bvX ojQ eAN @@ -114610,10 +115248,10 @@ bHk vZw bHk cHu -qVM -csz -qVM -czu +mRU +vpf +mRU +woU aah aag aag @@ -114654,10 +115292,10 @@ bdH bdH bdH aad -aKW -wyO -lpX -hhw +kyw +cme +whm +bwG mTi lJK izk @@ -114671,9 +115309,9 @@ aTZ aUM gJP aQF -lRU -aYO -aLG +rmz +wKN +qPk nyw beH dcd @@ -114695,9 +115333,9 @@ beH beH beH nyw -buH -bHL -buH +knm +sPY +knm yfS hgL swt @@ -114712,9 +115350,9 @@ gSk bDs vwI bJt -koz -oDf -yhQ +lAa +mgb +lyW ajZ avo avs @@ -114756,7 +115394,7 @@ aaa bdH aaa aaa -ahx +acv aez uli uli @@ -114774,9 +115412,9 @@ adF aef aGS agA -ayT -aii -avj +eWN +jao +rmB vOy aMd pGK @@ -114796,9 +115434,9 @@ prx fpT eVT kgs -ayT -aii -avj +eWN +jao +rmB bvX kVV vQR @@ -114813,10 +115451,10 @@ pRy wwW mRW cHu -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aaa aad aag @@ -114857,15 +115495,15 @@ bdH bdH bdH aad -aKW -aVt -eZz -hhw +kyw +cGY +ipn +bwG aQF aQF sPc xIQ -pbb +sab aWD olM aRy @@ -114874,9 +115512,9 @@ eXr iFH buv aWE -aLG -avX -aem +qPk +ckh +htl aum emr emr @@ -114898,9 +115536,9 @@ rCO rCO rCO eVv -bFu -lAO -buH +wwE +mDZ +knm ykj rlQ ven @@ -114915,9 +115553,9 @@ gSk bDs fUB bJt -oDf -uqH -yhQ +mgb +nhw +lyW ajZ avo avo @@ -114959,7 +115597,7 @@ aaa bdH bdH aaa -ahx +acv aez aIB aKg @@ -114977,9 +115615,9 @@ adF aef nIS uZZ -bYe -aii -avj +kGS +jao +rmB vOy aMg aSo @@ -114999,9 +115637,9 @@ ger aoM aFf mmN -ayT -aii -avj +eWN +jao +rmB bvX maO lPm @@ -115016,10 +115654,10 @@ wJH wJH wJH sNR -qVM -vGk -csz -czu +mRU +jtU +vpf +woU aaa aae aah @@ -115060,10 +115698,10 @@ bdH bdH bdH aad -aKW -cmq -aSm -hhw +kyw +oif +deq +bwG weR aPE izk @@ -115077,9 +115715,9 @@ pOi pOi nVF aWF -aLG -aYO -aLG +qPk +wKN +qPk nyw eGZ ieX @@ -115101,9 +115739,9 @@ bhq dcd eTd nyw -buH -vdW -qLp +knm +rDO +hqp kKk rDt gpI @@ -115118,9 +115756,9 @@ gSk bDs nqO bJt -sIx -bxX -yhQ +nQo +pgJ +lyW ajZ aaa avo @@ -115162,7 +115800,7 @@ aaa bdH aaa aaa -lYA +acf aet aJJ aIB @@ -115180,9 +115818,9 @@ adF aef nIS eWF -bYe -aii -avj +kGS +jao +rmB vOy aQZ bkT @@ -115202,9 +115840,9 @@ qMP kBP aSl vOy -aTL -aii -avm +ciI +jao +hCF pBG pBG pBG @@ -115215,14 +115853,14 @@ pBG pBG pBG pBG -qVM -qVM -qVM -qVM -qVM -vGk -ofs -czu +mRU +mRU +mRU +mRU +mRU +jtU +tMU +woU bdH bdH bdH @@ -115263,12 +115901,12 @@ bdH bdH bdH aad -aKW -xxe -aLf -hhw -aQI -aQI +kyw +byt +lfx +bwG +iWQ +iWQ uFd mUq qwt @@ -115280,9 +115918,9 @@ tou tou jhy aQF -beB -aYT -jfD +eZC +hMk +mkw bdd bdd bdd @@ -115304,9 +115942,9 @@ bdd bdd bdd bdd -fZx -bHT -bJz +xwm +ltv +hBW yfS ape ven @@ -115321,9 +115959,9 @@ cnu bDs knK bJt -oed -vgQ -yhQ +xbg +oUZ +lyW ajZ bdH bdH @@ -115365,7 +116003,7 @@ aaa bdH aaa aaa -lYA +acf aet avx ahN @@ -115383,9 +116021,9 @@ adF aef kqN agA -ayT -akU -avj +eWN +lOn +rmB vOy dVd lea @@ -115405,9 +116043,9 @@ vti vti aEZ vOy -ayT -akU -avj +eWN +lOn +rmB fKh gQk trU @@ -115418,14 +116056,14 @@ pVF ppF fiE pBG -vGk -vGk -gYS -vzl -csz -vGk -csz -czu +jtU +jtU +uBx +ycM +vpf +jtU +vpf +woU bdH bdH bdH @@ -115466,14 +116104,14 @@ bdH bdH bdH aad -aKW -dgN -aLf -hhw -aQI -aQI -aQI -hcZ +kyw +jNo +lfx +bwG +iWQ +iWQ +sab +aNr pQY aWD bll @@ -115483,9 +116121,9 @@ dVO bsR aQr aQF -aLG -aYO -aLG +qPk +wKN +qPk tda ngI dkq @@ -115507,9 +116145,9 @@ qby btY bAJ huU -buH -bHL -buH +knm +sPY +knm yfS ape ven @@ -115524,9 +116162,9 @@ gSk ljG tSp bJt -oed -sHg -yhQ +xbg +ssk +lyW ajZ bdH bdH @@ -115568,7 +116206,7 @@ aaa bdH aaa aaa -ahx +acv aiH uli bLO @@ -115586,9 +116224,9 @@ fcE aef uNN abE -giB -akU -avj +ftb +lOn +rmB vOy vOy vOy @@ -115608,9 +116246,9 @@ nPE oqZ uaI vOy -atV -akU -avj +eFI +lOn +rmB fKh iuG sOv @@ -115621,14 +116259,14 @@ dzp rMT dzp pBG -vGk -qVM -qVM -qVM -qVM -csz -qVM -czu +jtU +mRU +mRU +mRU +mRU +vpf +mRU +woU bdH bdH bdH @@ -115669,10 +116307,10 @@ bdH bdH bdH aad -aKW -bhC -aLf -hhw +kyw +deq +lfx +bwG mTi lJK mTi @@ -115686,9 +116324,9 @@ aQF aQF aQF aQF -ePA -akO -bwd +ldb +rYI +fzc bdg vyg bni @@ -115710,9 +116348,9 @@ snb xbd bAU bdg -bCi -bCo -ivB +jlD +pYN +raE bJt wbC lHu @@ -115727,9 +116365,9 @@ gSk oDE bJt bJt -oed -oDf -yhQ +xbg +mgb +lyW ajZ bdH bdH @@ -115771,7 +116409,7 @@ aaa aaa aaa aaa -ahx +acv aiH aiH bWd @@ -115789,11 +116427,11 @@ aeI eva xzf abE -aTL -aii -ali -amD -cwJ +ciI +jao +uZI +cSM +xfo vOy vOy vOy @@ -115811,9 +116449,9 @@ vOy vOy vOy vOy -vIN -aii -avj +czJ +jao +rmB fKh ubI nQA @@ -115824,14 +116462,14 @@ nTR gDp rwq pBG -vGk -qVM -riM -rGl -qVM -hoX -qVM -czu +jtU +mRU +oyO +nve +mRU +vzB +mRU +woU bdH bdH bdH @@ -115872,10 +116510,10 @@ bdH bdH bdH aad -aKW -efU -aLf -hhw +kyw +xbI +lfx +bwG aQF aQF aQF @@ -115885,13 +116523,13 @@ aQF aQF aQF aQF -ktB -gCd -eJg -hhw -aeb -alx -aeb +wYG +yhR +gHi +bwG +pzj +uhq +pzj bdg apz dyd @@ -115913,9 +116551,9 @@ vPw bvr bBQ bdg -bCj -bDx -bCj +sgL +aRL +sgL rde vjC iMm @@ -115929,10 +116567,10 @@ bDs gSk luS bJt -iGg -oed -oDf -yhQ +uCw +xbg +mgb +lyW ajZ bdH bdH @@ -115974,11 +116612,11 @@ aaa aaa aaa aaa -lYA -aar -tiM -aar -aar +vHn +cGd +moK +cGd +cGd aNi aNi bWr @@ -115992,11 +116630,11 @@ aNi aNi aNi aNi -atV -aii -abx -abx -avj +eFI +jao +gfv +gfv +rmB vOy elR xXh @@ -116014,9 +116652,9 @@ dMK vOy vOy vOy -ayT -aii -avj +eWN +jao +rmB pBG mGT nQA @@ -116027,14 +116665,14 @@ pBG pBG pBG pBG -vGk -xCX -vGk -hoX -qVM -sCC -qVM -czu +jtU +rXF +jtU +vzB +mRU +kuK +mRU +woU aaa aaa aaa @@ -116075,26 +116713,26 @@ bdH aaa bdH aad -aKW -aSm -aSm -hhw -beG -dIR -yky -bfb -baY -hhw -aLF -bPV -yaG -bPU -aSm -bPS -hhw -bwd -auv -bwd +kyw +deq +deq +bwG +tEu +mUY +vOw +ouU +dro +bwG +gSH +xJp +qxJ +hCk +deq +nRN +bwG +wsS +vxY +wsS bdg auj bbf @@ -116116,9 +116754,9 @@ bpv tMW bBY bCh -bCi -bCo -bCi +mPM +esd +mPM ejw xML iMm @@ -116132,10 +116770,10 @@ bDs gSk vSp lHG -qgH -oDf -oDf -yhQ +kOJ +mgb +mgb +lyW ajZ bdH bdH @@ -116177,11 +116815,11 @@ aaf aaf aaf aaf -lYA -aiS -aao -aao -acD +vHn +ejV +hoT +hoT +vyh aNi cYT aNm @@ -116195,11 +116833,11 @@ bhx vif aOR bsw -ayT -xGk -all -amK -avj +eWN +uSZ +rDm +ldq +rmB vOy wWz vHO @@ -116215,11 +116853,11 @@ ruc xOY wTM vOy -nzA -amD -ajr -aii -avm +qqb +cSM +fvE +jao +hCF pBG tGT nQA @@ -116228,16 +116866,16 @@ jDO pBG aYH cHG -wEe +cOY pBG -ieH -qVM -tUI -mcV -qVM -vGk -csz -czu +mSM +mRU +gRc +oOp +mRU +jtU +vpf +woU aaf aaf aaf @@ -116271,33 +116909,33 @@ bdH bdH bdH aac -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aSm -aLf -hhw -beI -bTQ -tBP -jfm -lYu -maw -fAS -jfm -lzn -eDz -jfm -jfm -bUP -aLG -aYO -aLG +kyw +kyw +kyw +kyw +kyw +kyw +kyw +kyw +deq +caq +bwG +igb +cpz +ooA +kpj +sBY +wyG +qjL +kpj +rAo +lka +kpj +kpj +mQY +ygp +tdi +fZE tda mng wTm @@ -116319,9 +116957,9 @@ mng wTm wCI tda -buH -bHL -buH +oSM +ter +oSM bJt swE wpI @@ -116335,17 +116973,17 @@ qxE rui vSp bJt -wuH -oed -uqH -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +uXU +xbg +nhw +lyW +lyW +lyW +lyW +lyW +lyW +lyW +lyW ajY aaa aaa @@ -116380,11 +117018,11 @@ aag aag aag aag -lYA -aiT -aap -aao -aap +vHn +dGg +tob +hoT +tob aNi aZe aNm @@ -116398,11 +117036,11 @@ aco aco dYu bsw -mQH -hee -aEX -aii -avm +kON +xNl +dpS +jao +hCF vOy wWz anw @@ -116418,11 +117056,11 @@ wLy eiE wTM vOy -ayT -akT -amC -bKe -avj +eWN +gFL +gDQ +xgE +rmB fKh eYn nQA @@ -116433,14 +117071,14 @@ eAN eAN eAN pBG -csz -qVM -qVM -qVM -qVM -oLw -csz -czu +vpf +mRU +mRU +mRU +mRU +vpI +vpf +woU aag aag aag @@ -116473,22 +117111,22 @@ bdH bdH bdH bdH -aKW -aKW -bPU -lLV -aLf -aLf -aLf -jiX -aSm -aSm -aLf -ahU -aLf -fza -kat -uJB +kyw +kyw +hCk +maK +lfx +lfx +lfx +deq +deq +deq +lfx +eYp +lfx +vmq +cqH +tjO bdd bdd bdd @@ -116498,9 +117136,9 @@ bdd bdd bdd bdd -teH -mUa -xNB +nhE +naa +nVQ bdd vuA vuA @@ -116522,9 +117160,9 @@ vuA vuA vuA bdd -bSj -bHL -bIR +fvV +ter +gvK bdd bdd bdd @@ -116539,17 +117177,17 @@ cDC vuF bJt bJt -oed -oDf -oDf -oDf -qNy -cLV -oDf -oDf -oDf -yhQ -yhQ +xbg +mgb +mgb +mgb +gLm +ttD +mgb +mgb +mgb +lyW +lyW aaa aaa aaa @@ -116583,11 +117221,11 @@ aag aag aag aag -lYA -aiU -aap -aap -aap +vHn +oSG +tob +tob +tob aNi aZr aNm @@ -116603,9 +117241,9 @@ cCa aNi aNi aNi -ybf -ajt -avj +jMP +mxg +rmB vOy wWz ovG @@ -116621,11 +117259,11 @@ gxP aOe wTM vOy -atU -akU -abg -abg -avj +nLM +lOn +acQ +acQ +rmB fKh wvo nQA @@ -116636,14 +117274,14 @@ skR oxc nBi pBG -hoX -qVM -oks -wdH -qVM -vGk -ofs -czu +vzB +mRU +pGh +xEs +mRU +jtU +tMU +woU aag aag aag @@ -116676,22 +117314,22 @@ bdH bdH bdH bdH -aKW -bPV -aLf -xlD -aSm -aSm -aSm -aLf -aLf -aLf -aMs -hhw -pgt -ykF -bgH -uVb +kyw +xJp +lfx +deq +yih +deq +deq +lfx +lfx +lfx +rHq +bwG +nPO +cGB +ugj +fbC bdd uvU xZk @@ -116701,9 +117339,9 @@ eYj aSp mho bdg -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -116725,9 +117363,9 @@ bqZ bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdg lCE oZD @@ -116742,17 +117380,17 @@ feq loY aDU bJt -oed -oDf -oed -oDf -mOU -oDf -oDf -oed -oed -oDf -yhQ +vAx +mgb +xbg +mgb +xpL +mgb +mgb +xbg +xbg +mgb +lyW aaa aaa aaa @@ -116786,11 +117424,11 @@ aag aag aag aag -lYA -aiZ -aap -aao -aap +vHn +oeH +tob +hoT +tob aNi aZs aNm @@ -116806,9 +117444,9 @@ qiy ahR ahR egt -ait -ani -avj +tzF +gIN +rmB vOy woh vgO @@ -116824,11 +117462,11 @@ qxm vgO xAe vOy -aOP -aii -aow -hee -ioX +oxg +jao +iUV +xNl +xZf fKh lDa eAN @@ -116839,14 +117477,14 @@ pBG pBG pBG pBG -csz -iid -csz -hoX -qVM -noV -csz -czu +vpf +tra +vpf +vzB +mRU +iJT +vpf +woU aag aag aag @@ -116879,9 +117517,9 @@ bdH bdH bdH bdH -aKW -aSm -aLf +kyw +deq +lfx nsY nsY pRT @@ -116891,10 +117529,10 @@ nsY nsY nsY nsY -hhw -hhw -umv -hhw +bwG +bwG +msC +bwG bdd xwE dAQ @@ -116904,9 +117542,9 @@ tGG bpA mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -116928,9 +117566,9 @@ beH beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg lCE uek @@ -116953,9 +117591,9 @@ nsY nsY nsY nsY -upt -oDf -yhQ +kqb +mgb +lyW aaa aaa aaa @@ -116989,11 +117627,11 @@ aag aag aag aag -lYA -adf -aao -aao -aao +vHn +mId +hoT +hoT +hoT aNi jWr aNm @@ -117009,9 +117647,9 @@ hpY aOR aOR bgK -bYe -ajt -avj +kGS +mxg +rmB vOy vOy vOy @@ -117027,11 +117665,11 @@ aoK vOy vOy vOy -asp -aii -avj -qVM -qVM +glc +jao +rmB +mRU +mRU pBG aGs eAN @@ -117042,14 +117680,14 @@ xOs kOH hIs pBG -ieH -qVM -dYK -csz -iid -csz -qVM -czu +mSM +mRU +tCd +vpf +tra +vpf +mRU +woU aag aag aag @@ -117082,9 +117720,9 @@ aaa aaa aaa aaa -aKW -aLf -aSm +kyw +lfx +deq nsY xWT kxd @@ -117094,10 +117732,10 @@ rSG rur oqS nsY -lhu -btk -aSm -eoM +hsh +cPP +deq +eLH bdd eUZ lCr @@ -117107,9 +117745,9 @@ tGG lJD mho bdg -aLG -aYO -aLG +fZE +naa +fZE bdg bqZ beH @@ -117131,9 +117769,9 @@ gBo beH bqZ bdg -buH -bHL -buH +oSM +ter +oSM bdg lCE fMe @@ -117156,9 +117794,9 @@ rSG qkP oqS nsY -oDf -oDf -yhQ +mgb +mgb +lyW aaa aaa aaa @@ -117192,11 +117830,11 @@ aag aag aag aag -lYA -fZF -aWs -aar -tiM +vHn +eDq +jFI +cGd +moK aNi aNi aNi @@ -117212,9 +117850,9 @@ aOR aOR agr aNi -ayT -amO -avj +eWN +bNT +rmB vOy vOy vOy @@ -117230,11 +117868,11 @@ vOy vOy vOy vOy -meJ -amO -avj -qVM -csz +kbT +bNT +rmB +mRU +vpf pBG xiU xUa @@ -117245,14 +117883,14 @@ pZH nnL lgt pBG -oLw -qVM -jmR -vGk -qVM -hoX -qVM -czu +vpI +mRU +bhV +jtU +mRU +vzB +mRU +woU aag aag aag @@ -117285,9 +117923,9 @@ aaa aaa aaa aaa -aKW -aLf -aSm +kyw +lfx +deq nsY xWT kxd @@ -117297,10 +117935,10 @@ iIP kxd dDt nsY -xiz -aSm -aSm -kOf +exb +deq +deq +qLY bdd ljW bDP @@ -117310,9 +117948,9 @@ lCr mpn pZR bdd -beB -aYT -beB +atH +iEM +atH bCx bqZ beH @@ -117334,9 +117972,9 @@ bgO beH bqZ bCx -buH -bHL -buH +oSM +ter +oSM bdd tSF lsn @@ -117359,9 +117997,9 @@ dmR kxd dDt nsY -oDf -oed -yhQ +mgb +xbg +lyW aaa aaa aaa @@ -117395,15 +118033,15 @@ aag aag aag aag -lYA -aar -aar -aar -awJ -bzE -fZF -fZF -fZF +vHn +cGd +cGd +cGd +iTQ +lWt +eDq +eDq +eDq aNi aNi aNi @@ -117415,9 +118053,9 @@ aNi aNi aNi aNi -asp -amO -avj +glc +bNT +rmB bPF aqG ata @@ -117430,14 +118068,14 @@ vYz awR uoi vOy -aMh -biB -alH -aTL -akU -avj -qVM -csz +jyJ +niF +bPF +ciI +lOn +rmB +mRU +vpf pBG pBG pBG @@ -117448,14 +118086,14 @@ pBG pBG pBG pBG -vGk -qVM -qVM -qVM -qVM -csz -qVM -czu +jtU +mRU +mRU +mRU +mRU +vpf +mRU +woU aag aag aag @@ -117488,9 +118126,9 @@ aaa aaa aaa aaa -aKW -aLa -aSm +kyw +lfx +deq nsY gsg vHq @@ -117500,10 +118138,10 @@ rNb bxC jiU nsY -glr -mhl -aSm -ylY +jvt +hiu +deq +vSr bdd asr asr @@ -117513,9 +118151,9 @@ nYp fZG phd pmv -tBF -fSK -aLG +mzv +yfg +fZE nyw bqZ beH @@ -117537,9 +118175,9 @@ tmB eBg vKe eVv -bFu -omW -bFu +cVZ +xdf +cVZ hLS vKe vKe @@ -117562,9 +118200,9 @@ iSm bxC jiU nsY -oDf -oed -yhQ +mgb +xbg +lyW aaa aaa aaa @@ -117588,39 +118226,39 @@ aaa aaa aaa aaa -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -aao -aap -aap -aao -aap -aap -ahg -aao -aap -aap -aap -aap -aao -acD -aao -aap -aap -rfg -bYe -amO -bYe +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +hoT +tob +tob +hoT +tob +tob +hqm +hoT +tob +tob +tob +tob +hoT +vyh +hoT +tob +tob +fkK +kGS +bNT +kGS cbg aqG atb @@ -117633,42 +118271,42 @@ paa sXd gVq vOy -aMi -biB -apI -bYe -akU -bYe -xCX -vGk -vGk -csz -vzl -ljt -vGk -vGk -csz -vzl -csz -vGk -vGk -vGk -gYS -weU -vGk -csz -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu +sLk +niF +cbg +kGS +lOn +kGS +rXF +jtU +jtU +vpf +ycM +tne +jtU +jtU +vpf +ycM +vpf +jtU +jtU +jtU +uBx +fLi +jtU +vpf +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm aaa aaa aaa @@ -117691,9 +118329,9 @@ aaa aac aaf aaf -aKW -aLf -aSm +kyw +lfx +deq nsY nsY qxC @@ -117703,10 +118341,10 @@ nsY ntx nsY nsY -jFe -sxe -xZI -mNZ +qWL +kIk +eXD +kMr bdd bdd bdd @@ -117716,9 +118354,9 @@ bdd bdd bdd bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ beH @@ -117740,9 +118378,9 @@ bgO beH bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd bdd bdd @@ -117765,9 +118403,9 @@ nsY gLZ nsY nsY -oDf -uqH -yhQ +mgb +nhw +lyW aaf aaf ajY @@ -117791,7 +118429,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -117802,28 +118440,28 @@ aam aam aam aam -lYA -qsd -aap -aar -aar -aar -aar -aar -aar -aar -aar -aar -aar -aar -aar +gxm +hgk +tob +njn +njn +njn +njn +njn +njn +njn +njn +njn +njn +njn aej aej aej aej -iiC -amO -tHh +aej +jZW +bNT +rZC vOy vOy vOy @@ -117839,28 +118477,28 @@ vOy vOy vOy vOy -apv -akU -jHG -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -qVM -vGk -csz -czu +bxV +lOn +uAi +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +nIN +jtU +vpf +gxm aeT aeT aeT @@ -117871,7 +118509,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -117892,11 +118530,11 @@ aaa aaa aaa aad -aKW -aKW -aKW -aSm -aLf +kyw +kyw +kyw +deq +caq nsY tUS bNh @@ -117906,10 +118544,10 @@ fPp lqN vlO nsY -xCN -pOB -hfk -aLf +xxG +smA +ktR +lfx bdd dJI jaf @@ -117919,9 +118557,9 @@ mPR osU vKe dYX -tBF -lBz -aLG +mzv +xhW +fZE bdg bqZ beH @@ -117943,9 +118581,9 @@ bgO beH bqZ bdg -buH -uXu -bFu +oSM +iOo +cVZ iUk cIx fUC @@ -117968,11 +118606,11 @@ iQt uZo xmJ nsY -oed -oDf -yhQ -yhQ -yhQ +xbg +mgb +lyW +lyW +lyW ajZ aaa aaa @@ -117994,7 +118632,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -118005,28 +118643,28 @@ aam aam aam aam -lYA -abe -aap -aar -aIZ -aIZ -aIZ -aIZ -ajQ -aIZ -aIZ -aIZ -aIZ -ajQ +gxm +bLf +tob +njn +rWz +rWz +rWz +rWz +kLB +rWz +rWz +rWz +rWz +kLB aej aeO afG ags aej -ayT -amO -avj +eWN +bNT +rmB vOy elR xXh @@ -118042,28 +118680,28 @@ xXh xXh dMK vOy -ayT -akU -avj -qVM -nNA -ekO -nNA -qVM -iBt -iBt -iBt -iBt -aJM -iBt -iBt -iBt -iBt -aJM -qVM -vGk -xIb -czu +eWN +lOn +rmB +nIN +bnF +lBw +bnF +nIN +rgL +rgL +rgL +rgL +urg +rgL +rgL +rgL +rgL +urg +nIN +jtU +nVE +gxm aeT aeT aeT @@ -118074,7 +118712,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -118094,12 +118732,12 @@ aaa aaa aaa aaa -aKW -aKW -bPT -jiX -aSm -aLf +kyw +kyw +veq +deq +deq +lfx nsY kio sJY @@ -118109,10 +118747,10 @@ xTW oGP cnM nsY -nEA -lQu -lQu -aSm +kqB +txH +txH +deq bdd fva lkL @@ -118122,9 +118760,9 @@ cHB hDV vmP bdd -aLG -awb -aLG +fZE +iLm +fZE bdg bqZ bqZ @@ -118146,9 +118784,9 @@ bgO bqZ bqZ bdg -buH -hOR -buH +oSM +xub +oSM bdd oNP tge @@ -118171,12 +118809,12 @@ pyc uMn ivz nsY -oed -oDf -oed -oed -yhQ -yhQ +xbg +mgb +xbg +xbg +lyW +lyW aaa aaa aaa @@ -118197,7 +118835,7 @@ aaa aaa aaa aaa -lYA +gxm dxF dxF aaH @@ -118208,28 +118846,28 @@ aam aam aam aam -lYA -ahk -aap -aar -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ +gxm +rGz +tob +njn +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz aej aeP agI aia yaz -bYe -ajt -avj +kGS +mxg +rmB vOy wWz vHO @@ -118245,28 +118883,28 @@ uXj rdt wTM vOy -ayT -aii -avj -ltK -vGk -hDv -ghW -qVM -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -qVM -vGk -lSD -czu +eWN +jao +rmB +eyI +xzh +jaW +vkV +nIN +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +nIN +jtU +bWg +gxm aeT aeT aeT @@ -118277,7 +118915,7 @@ aeT nnD aZF aZF -czu +gxm aaa aaa aaa @@ -118297,12 +118935,12 @@ aaa aaa aaa aaa -aKW -ygK -aLf -aLf -aLf -aLf +kyw +lHB +lfx +lfx +lfx +lfx heK kam axc @@ -118312,10 +118950,10 @@ vHh pvh sZs nsY -hhw -yfy -ugV -vUi +bwG +erL +scX +caq bdd cDH cHB @@ -118325,9 +118963,9 @@ wmz rhy rec bdg -aLG -aYO -bad +fZE +naa +onn bdd bdd bDQ @@ -118349,9 +118987,9 @@ bgO cab bdd bdd -bGe -bHL -buH +tmE +ter +oSM bdg jLS xdP @@ -118374,12 +119012,12 @@ xuQ uPW kYv oDx -tbK -tbK -tbK -lNy -oed -yhQ +sAS +sAS +sAS +rCh +xbg +lyW aaa aaa aaa @@ -118400,39 +119038,39 @@ aaa aaa aaa aaa -lYA +gxm adj apk apk -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -abp -ach -aar -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +hqb +vsd +njn +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz aej aeQ agK agu eup -bYe -ajt -avj +kGS +mxg +rmB vOy wWz uwZ @@ -118448,39 +119086,39 @@ coZ sNz wTM vOy -ayT -aii -avj -ltK -wYj -jhY -fqx -qVM -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -qVM -azH -fQK -czu -czu -czu -czu -czu -czu -czu -czu +eWN +jao +rmB +eyI +yfL +sjw +xHD +nIN +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +nIN +jZo +hQK +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm asM asM mwR -czu +gxm aaa aaa aaa @@ -118500,12 +119138,12 @@ aaa aaa aaa aaa -aKW -jwD -aLf -uig -hhw -hhw +kyw +eqm +lfx +vvH +bwG +bwG nsY wpz oEX @@ -118515,10 +119153,10 @@ xxm qSK ieu nsY -sSe -aLf -qce -aSm +mZc +lfx +neH +deq bdd xXW gVu @@ -118528,10 +119166,10 @@ wmz vbI rec bdg -beB -aYT -beB -beB +atH +iEM +atH +ppV bdd bqZ bgO @@ -118551,10 +119189,10 @@ gAj bgO bqZ bdd -bJz -bJz -bHT -bJz +eoy +brq +jnc +brq bdg jLS frb @@ -118577,12 +119215,12 @@ mzV pML ivz nsY -jZO -oDf -oed -wlp -ndQ -yhQ +iZd +mgb +xbg +jPx +xQd +lyW aaa aaa aaa @@ -118603,7 +119241,7 @@ aaa aaa aaa aaa -lYA +gxm ojH ojH taV @@ -118617,25 +119255,25 @@ ouf aLc wBI hGG -aar -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ -aIZ +njn +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz +rWz aej aeR agK agu aej -pSL -amT -mIW +ftb +mxg +hCF vOy wWz pEJ @@ -118651,25 +119289,25 @@ xQm tfH wTM vOy -aEK -aSv -ioX -ltK -nXF -vGk -bqG -qVM -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -iBt -qVM +nLM +jao +rmB +eyI +byH +xzh +nvd +nIN +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +rgL +nIN vmJ elv vRR @@ -118683,7 +119321,7 @@ qXS hXX xDe xDe -czu +gxm aaa aaa aaa @@ -118703,12 +119341,12 @@ aaa aaa aaa aaa -aKW -cSK -aSm -aSm -bUc -nSN +kyw +htg +deq +deq +qCH +cXm nsY hUz dbn @@ -118718,10 +119356,10 @@ uRM ipe ehR nsY -aLf -aLf -tRc -qEW +xEe +lfx +tdH +igw bdd sgm kEg @@ -118731,10 +119369,10 @@ xgN vgn xgN bdg -aLG -aYO -aLG -aLG +fZE +naa +fZE +fZE bdg bqZ qMR @@ -118754,10 +119392,10 @@ tXb fOk bqZ bdg -buH -buH -bHL -buH +oSM +oSM +ter +oSM bdg vLg loy @@ -118780,12 +119418,12 @@ sZH rjV ivz nsY -fuY -sZF -vjD -lFF -ndM -yhQ +qZy +jfS +bUH +ciB +soT +lyW aaa aaa aaa @@ -118806,7 +119444,7 @@ aaa aaa aaa aaa -lYA +gxm ojH ojH taV @@ -118820,25 +119458,25 @@ ouf sdf cRL hGG -aar -aar -aar +njn +njn +njn ahi -aar -aar -aar -aar +njn +njn +njn +njn uux -aar -aar +njn +njn aej aej agO aid aej -atL -akV -atL +kON +fsu +xZf vOy wWz uwZ @@ -118854,26 +119492,26 @@ vfP sNz wTM vOy -atL -akV -atL -qVM -qVM -nWc -qVM -qVM -qVM -qVM +kON +fsu +xZf +nIN +nIN +veW +nIN +nIN +nIN +nIN nNX -qVM -qVM -qVM -qVM +nIN +nIN +nIN +nIN ayo -qVM -qVM -qVM -cna +nIN +nIN +nIN +vmJ nzD xDV qXS @@ -118886,7 +119524,7 @@ qXS hXX xDe xDe -czu +gxm aaa aaa aaa @@ -118906,12 +119544,12 @@ aaa aaa aaa aaa -aKW -aLf -aLf -xlD -bUc -vrB +kyw +lfx +lfx +yih +qCH +spT nsY nsY nsY @@ -118921,10 +119559,10 @@ nsY nsY nsY nsY -hhw -hhw -hhw -hhw +bwG +bwG +bwG +bwG bdd bdd bdd @@ -118934,10 +119572,10 @@ bdd bdd bdd bdd -hDL -aYO -aNO -aLG +tvl +naa +meQ +fZE bdg bqZ beH @@ -118957,10 +119595,10 @@ gAj beH bqZ bdg -buH -bHa -bHL -bIR +oSM +awE +ter +gvK bdd bdd bdd @@ -118983,12 +119621,12 @@ nsY nsY nsY nsY -gZG -xMh -ril -kRu -hXS -yhQ +ecj +bZf +lZI +faR +wxu +lyW aaa aaa aaa @@ -119009,7 +119647,7 @@ aaa aaa aaa aaa -lYA +gxm ojH ojH taV @@ -119024,7 +119662,7 @@ fTj jOD oOw cPK -oXt +wjE loz sAz jZC @@ -119034,14 +119672,14 @@ cuN cQW lQa wjE -aeU -bUE -bYe -bYe -aaO -alp -aio -baB +vuE +ilq +aLh +aLh +ltt +bgh +spW +pjQ vOy wWz qxP @@ -119057,14 +119695,14 @@ gxP nMe wTM vOy -alp -aio -baB -aEV -bUE -bYe -nBW -bWP +bgh +spW +pjQ +ltt +bkb +bWx +rRf +pOC qtj fpA qUx @@ -119074,7 +119712,7 @@ kMp jkB hlT qNI -hRc +wrX tqO kdn nyS @@ -119089,7 +119727,7 @@ qXS hXX xDe xDe -czu +gxm aaa aaa aaa @@ -119109,38 +119747,38 @@ aaa aaa aaa aaa -aKW -aLf -aSm -hhw -hhw -hhw -hhw -hhw -aLB -acF -heb -cqa -bBh -aMV -dRG -aMV -yiq -kLp -aMV -bBh -tCN -lDJ -tCN -tCN -yfw -tCN -bBh -aLG -aLG -aYO -aNO -aLG +kyw +lfx +deq +bwG +bwG +bwG +bwG +bwG +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 @@ -119160,38 +119798,38 @@ 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 -fiq -fiq -fiq -fiq -fiq -fiq -wlp -oDf -yhQ +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 +mJO +mJO +mJO +jPx +mgb +lyW aaa aaa aaa @@ -119212,22 +119850,22 @@ aaa aaa aaa aaa -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA -lYA +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm dho wVt wVt jlc -ngE +sVV kbv dTn kbv @@ -119236,15 +119874,15 @@ kbv jlc kbv dTn -ngE -abg -abg -abg -abg -acC -iWN -amO -dLE +sVV +sVV +sVV +sVV +sVV +ltt +klr +bNT +dOW vOy woh vgO @@ -119260,15 +119898,15 @@ vgO vgO xAe vOy -aIS -alq -wWk -chu -aZE -aZE -aZE -aZE -usL +gTV +mGk +xFW +lrd +cMz +cMz +cMz +cMz +cMz gsC cMz qLg @@ -119282,17 +119920,17 @@ qLg iup ryY cnn -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu -czu +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm +gxm aaa aaa aaa @@ -119312,38 +119950,38 @@ aaa aaa aaa aaa -aKW -aLa -aSm -hhw -nHF -nHF -nHF -cmE -aLB -nyG -iDN -tit -nFV -tBL -tBL -tBL -tBL -tBL -tBL -mRS -tBL -tBL -tBL -tBL -tBL -tBL -luz -tzf -tBL -fau -aNO -aLG +kyw +lfx +deq +bwG +ycl +ycl +ycl +jCg +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 @@ -119363,38 +120001,38 @@ 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 -uaa -uaa -uaa -oFM -fiq -fYc -uqH -yhQ +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 +mbR +mJO +eBG +nhw +lyW aaa aaa aaa @@ -119422,15 +120060,15 @@ aag aag aag aag -lYA -bRK -aao -aiv +vHn +fbe +hoT +rpG bGa dVn vwC fbR -gcq +xMz xci eON gxn @@ -119439,15 +120077,15 @@ xMz sdv xMO wDg -vHA -aaL -aJs -bYe -bYe -aaE -afD -kaA -anh +xMz +waV +gxn +aLh +aLh +ltt +gqv +hKJ +nww vOy vOy vOy @@ -119463,14 +120101,14 @@ vOy vOy vOy vOy -xFw -iTK -anh -aFF -cjo -bYe -kSN -aTQ +xvO +peu +nww +ltt +ssF +bWx +bij +hux kfo rCl ePM @@ -119480,15 +120118,15 @@ nNx pMA ncT gHh -kfo +oWx dbc cNM ofU njk -xCX -vGk -hoX -czu +rXF +jtU +vzB +woU aag aag aag @@ -119515,38 +120153,38 @@ aaa aaa aaa aaa -aKW -aLf -aSm -hhw -nHF -nHF -nHF -nHF -aLB -csl -gjn -jJs -bBh -aMM -aMM -aNG -bga -taA -aSr -bBh -gyC -wbh -bsX -bAa -bKE -eBj -bBh -aLG -aNO -aYT -aNO -bad +kyw +lfx +deq +bwG +ycl +ycl +ycl +ycl +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 @@ -119566,38 +120204,38 @@ 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 -uaa -uaa -uaa -uaa -fiq -wlp -vfJ -yhQ +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 +plv +mJO +jPx +enQ +lyW aaa aaa aaa @@ -119625,73 +120263,73 @@ aag aag aag aag -lYA -bTI -aap -aar -aar -aar -aar -aar -aar -aar +vHn +ggD +tob +cGd +njn +njn +njn +njn +njn +njn hZE sVV oON -aar -aar -lIl -aar -aar +njn +njn +cva +njn +njn ael 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 -qVM -qVM -xeG -qVM -qVM -qVM -xeG -qVM -qVM -qVM +htF +bNT +jvz +uPB +uPB +uPB +ecz +uPB +uPB +uPB +uPB +uPB +llt +uPB +ecz +uPB +uPB +uPB +riK +bNT +hmB +nIN +nIN +rBD +nIN +nIN +nIN +rBD +nIN +nIN +nIN mKi sfT hGV -qVM -qVM -qVM -qVM -qVM -qVM -qVM -csz -ofs -czu +nIN +nIN +nIN +nIN +nIN +nIN +mRU +vpf +tMU +woU aag aag aag @@ -119718,18 +120356,18 @@ aaa aaa aaa aaa -aKW -aLf -aSm -hhw -nHF -nHF -nHF -nHF +kyw +lfx +deq +bwG +ycl +ycl +ycl +ycl jUx -aLG -qmL -rZz +fZE +bBR +tup jeb jeb jeb @@ -119745,11 +120383,11 @@ mWy jeb jeb jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bdg bqZ udi @@ -119769,11 +120407,11 @@ veu mDW bqZ bdg -buH -bHa -bHT -bHa -buH +oSM +awE +jnc +awE +oSM vra vra vra @@ -119789,18 +120427,18 @@ rJx vra vra vra -jJe -bHY -buH +uGf +mkx +oSM vfo -uaa -uaa -uaa -uaa -fiq -scI -gFG -yhQ +plv +plv +plv +plv +mJO +nEl +bhy +lyW aaa aaa aaa @@ -119828,73 +120466,73 @@ aag aag aag aag -lYA -qsd -aao -aao -aar -aIZ -aIZ -aIZ -aLC -aar +vHn +hgk +hoT +hoT +njn +rWz +rWz +rWz +tvS +njn xVe sVV mbx -aar -vUk -sTB -lUA -tqd +njn +orq +rRb +qjT +kRk ael 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 -qVM -usi -csz -usi -qVM -xfh -vGk -vGk -adI -qVM -aDS +qHu +lOn +acQ +acQ +acQ +gfv +gfv +gfv +acQ +gfv +gfv +gfv +acQ +gfv +gfv +gfv +jRg +acQ +acQ +bNT +oNa +nIN +aGm +gNo +aGm +nIN +jwM +xzh +xzh +jHX +nIN +kSL sfT hGV -qVM -iBt -iBt -iBt -fgo -qVM -aPX -vGk -vGk -czu +nIN +rgL +rgL +rgL +vMQ +nIN +upS +jtU +jtU +woU aag aag aag @@ -119921,18 +120559,18 @@ aac aaf aaf aaf -aKW -aSm -aLf -hhw -nHF -nHF -nHF -nHF -aLB -dEC -aNO -qHl +kyw +deq +lfx +bwG +ycl +ycl +ycl +ycl +bwG +hiP +meQ +czN jeb vlX aNx @@ -119948,11 +120586,11 @@ xHp hmF vlX jeb -aNn -aNO -aYT -aNO -aLG +bMf +meQ +iEM +meQ +fZE bdg bqZ udi @@ -119972,11 +120610,11 @@ fIZ mDW bqZ bdg -buH -bHa -bHT -bHa -deH +oSM +awE +jnc +awE +eOx vra asX chf @@ -119992,18 +120630,18 @@ lpt mgF asX vra -tfw -bHY -sVf -bGb -uaa -uaa -uaa -uaa -fiq -scI -scg -yhQ +pHh +mkx +hNv +mJO +plv +plv +plv +plv +mJO +nEl +rxe +lyW aaf aaf aaf @@ -120031,73 +120669,73 @@ aag aag aag aag -lYA -lYA -aap -aap -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +vHn +tob +tob +njn +rWz +rWz +rWz +rWz +njn hHe gxn ioH -aar -fQY -aap -elM -vFb +njn +mNS +cGR +hvq +pCQ ael 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 -qVM -qVM -vGk -har -qVM -xHG -csz -vGk -xHG -qVM +bMV +jao +tbF +imM +imM +tbF +imM +eQh +mTo +tCD +tCD +tCD +mTo +wyE +imM +dKD +imM +imM +dKD +bNT +enF +nIN +nIN +xzh +wlB +nIN +bBc +gNo +xzh +bBc +nIN uRY pMA waJ -qVM -iBt -iBt -iBt -iBt -qVM -pzQ -csz -czu -czu +nIN +rgL +rgL +rgL +rgL +nIN +oNM +vpf +woU +woU aag aag aag @@ -120124,18 +120762,18 @@ aad aag aag aag -aKW -vPr -iiP -hhw -nHF -nHF -nHF -nHF -aLB -udF -aNO -nLZ +kyw +xkb +dAA +bwG +ycl +ycl +ycl +ycl +bwG +cVf +meQ +jTt jeb obE tdE @@ -120151,11 +120789,11 @@ xHp xwl rHf jeb -jgU -aNO -aYT -aNO -aLG +rrU +meQ +iEM +meQ +fZE bdg bqZ ngI @@ -120175,11 +120813,11 @@ xAt nNH bqZ bdg -buH -bHa -bHT -bHa -bKc +oSM +awE +jnc +awE +uNp vra bMq qUq @@ -120195,18 +120833,18 @@ lpt qYQ ptj vra -mEb -bHY -haT -bGb -uaa -uaa -uaa -uaa -fiq -wlp -oDf -yhQ +opV +mkx +xVY +mJO +plv +plv +plv +plv +mJO +jPx +mgb +lyW aag aag aag @@ -120235,31 +120873,31 @@ aag aag aag aag -lYA -aao -aao -aar -aIZ -aIZ -aIZ -aIZ +vHn +hoT +hoT +njn +rWz +rWz +rWz +rWz aba aGA kbv fZo -aar -thR -aao -aao -gDP +njn +nnH +jsA +jsA +eJj ael afI agY oxi xfm -als -ani -anc +tiZ +gIN +jvz mOi mOi mOi @@ -120275,31 +120913,31 @@ aHq aHq aHq aHq -iWN -ajt -kGI -aPm -qVM -vGk -csz -xCX -vGk -vGk -vGk -csz -qVM +klr +mxg +qGZ +bMi +nIN +xzh +gNo +aZv +xzh +xzh +xzh +gNo +nIN mzs aPT xyB ceD -iBt -iBt -iBt -iBt -qVM -buD -csz -czu +rgL +rgL +rgL +rgL +nIN +isq +vpf +woU aag aag aag @@ -120327,18 +120965,18 @@ aad aag aag aag -aKW -aSm -eIA -hhw -hhw -hhw -hhw -hhw -aLB -dzF -dzF -dac +kyw +deq +qZK +bwG +bwG +bwG +bwG +bwG +bwG +dTd +dTd +div jeb vlX thA @@ -120354,11 +120992,11 @@ gAA fFD vlX jeb -kEb -aNO -aYT -aNO -aLG +wEK +meQ +iEM +meQ +fZE bdg bqZ beH @@ -120378,11 +121016,11 @@ beH beH bqZ bdg -buH -bHa -bHT -bHa -rKy +oSM +awE +jnc +awE +dNW vra asX drj @@ -120398,18 +121036,18 @@ cgo hQc asX vra -cwQ -vtB -tQo -bGb -fiq -fiq -fiq -fiq -fiq -wlp -bxX -yhQ +crc +goo +hAA +mJO +mJO +mJO +mJO +mJO +mJO +jPx +pgJ +lyW aag aag aag @@ -120438,31 +121076,31 @@ aag aag aag aag -lYA -aao -aap -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +hoT +tob +njn +rWz +rWz +rWz +rWz +njn mAF ilq pjj -aar -xtQ -aap -aao -sxT +njn +dkt +cGR +jsA +xfW ael afJ agY aiq ajJ -aEX -ajt -aow +acQ +mxg +acQ mOi rCw rCw @@ -120471,38 +121109,38 @@ oJR tFe asD xQV -avK +qQS aqU aCZ dgg xRk bti aHq -sDC -ajt -kGI -ejp -qVM -vGk -hoX -qVM -xHG -csz -vGk -csz -qVM +rwf +mxg +qGZ +mqd +nIN +xzh +pHj +nIN +bBc +gNo +xzh +icn +nIN gfN efj sxE -qVM -iBt -iBt -iBt -iBt -qVM -oLw -vGk -czu +nIN +rgL +rgL +rgL +rgL +nIN +vpI +jtU +woU aag aag aag @@ -120530,18 +121168,18 @@ aad aag aag aag -aKW -uDB -aLf -hhw -nHF -nHF -nHF -cmE -aLB -enx -aQt -oQj +kyw +xwd +lfx +bwG +ycl +ycl +ycl +jCg +bwG +wBw +bZo +vsf jeb vlX tdE @@ -120557,11 +121195,11 @@ xHp xwl vlX jeb -pGM -aNO -aYT -aNO -bad +dQV +meQ +iEM +meQ +onn bdd bDQ lnm @@ -120581,11 +121219,11 @@ sCA bVw cab bdd -bGe -bHa -bHT -bHa -bIR +tmE +awE +jnc +awE +gvK vra asX qUq @@ -120601,18 +121239,18 @@ lpt qYQ asX vra -ojR -tki -lQQ -bGb -uaa -uaa -uaa -oFM -fiq -wlp -oDf -yhQ +lDk +dEK +oWN +mJO +plv +plv +plv +mbR +mJO +jPx +mgb +lyW aag aag aag @@ -120641,31 +121279,31 @@ aag aag aag aag -lYA -aap -cWA -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +tob +xLu +njn +rWz +rWz +rWz +rWz +njn hZE kbv mbx -aar -com -aap -aao -sxT +njn +gMJ +cGR +jsA +xfW ael afK ahc air ael -isW -ajt -ali +gar +mxg +acQ mOi wCT sIf @@ -120681,31 +121319,31 @@ oqv iqd rUy cnS -iWN -ajt -nYv -qVM -qVM -vGk -pzQ -qVM -usi -vzl -vGk -csz -qVM +klr +mxg +pSN +nIN +nIN +xzh +iuh +nIN +aGm +vLM +xzh +gNo +nIN aDS aPT hGV -qVM -iBt -iBt -iBt -iBt -qVM -vGk -csz -czu +nIN +rgL +rgL +rgL +rgL +nIN +jtU +vpf +woU aag aag aag @@ -120733,18 +121371,18 @@ aad aag aag aag -aKW -aSm -aLf -hhw -nHF -nHF -nHF -nHF -aLB -ewo -aNO -jLv +kyw +deq +lfx +bwG +ycl +ycl +ycl +ycl +bwG +tQe +meQ +ktl jeb obE thA @@ -120760,11 +121398,11 @@ xHp diJ rHf jeb -aLG -aNO -aYT -aNO -aLG +fZE +meQ +iEM +meQ +fZE bCx bqZ cNf @@ -120784,11 +121422,11 @@ nuK dVe bqZ bCx -buH -bHa -rrV -bHa -buH +oSM +awE +vOZ +awE +oSM vra bMq drj @@ -120804,18 +121442,18 @@ lpt eBV ptj vra -fsH -bHY -pBn -bGb -uaa -uaa -uaa -uaa -fiq -scI -oed -yhQ +xzI +mkx +hdV +mJO +plv +plv +plv +plv +mJO +nEl +xbg +lyW aag aag aag @@ -120844,31 +121482,31 @@ aag aag aag aag -lYA -aap -amN -aar -aar -aar -aar -aar -aar +vHn +tob +hUb +njn +njn +njn +njn +njn +njn laM kbv nkH -aar -tAV -sTB -xfk -wKn +njn +eJZ +rRb +cXd +xew ael afL ahe aij ael -abg -akU -abg +acQ +lOn +acQ mOi kbH kbH @@ -120884,31 +121522,31 @@ wDy aGN dxv cnS -cnv -ajt -bYe -xCX -csz -csz -dWm -qVM -qVM -qVM -xeG -qVM -qVM +riK +mxg +kGS +aZv +gNo +gNo +aBQ +nIN +nIN +nIN +rBD +nIN +nIN oIa aPT bqY -qVM -qVM -qVM -qVM -qVM -qVM -csz -csz -czu +nIN +nIN +nIN +nIN +nIN +nIN +vpf +vpf +woU aag aag aag @@ -120931,23 +121569,23 @@ aKQ aaa aaa aab -aKW -aKW -aKW -aKW -aKW -aKW -aSm -aSm -hhw -nHF -nHF -nHF -nHF +kyw +kyw +kyw +kyw +kyw +kyw +deq +iGc +bwG +ycl +ycl +ycl +ycl cmC -aLG -aNO -uBw +fZE +meQ +hvz jeb vlX tdE @@ -120963,11 +121601,11 @@ xHp xwl vlX jeb -aLG -aNO -aYV -bai -bbg +fZE +meQ +cmL +czR +jzT bCy bDS cNf @@ -120987,11 +121625,11 @@ qnC dVe cac bCy -bzK -bHb -bHV -bHa -rbX +hQf +sTU +xLX +awE +hCf vra asX qUq @@ -121007,23 +121645,23 @@ lpt qYQ asX vra -pJJ -bHY -buH +wcD +mkx +oSM cnd -uaa -uaa -uaa -uaa -fiq -suT -oed -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +plv +plv +plv +plv +mJO +kLm +xbg +lyW +lyW +lyW +lyW +lyW +lyW aaa aab aaa @@ -121047,31 +121685,31 @@ aag aag aag aag -lYA -wFm -abe -aar -aIZ -aIZ -aIZ -aLC -aar +vHn +tJq +bLf +njn +rWz +rWz +rWz +tvS +njn hZE kbv mbx -aar -lIl -aar -aar -aar +njn +cva +njn +njn +njn adO adO adO adO adO -lwm -akU -nQx +frI +lOn +oNa mOi mOi mOi @@ -121087,31 +121725,31 @@ nTs pje pje cnT -xvh -fNC -cKY -qVM -qVM -qVM -qVM -qVM -xfh -xWF -vGk -yji -qVM +meS +gUk +naj +nIN +nIN +nIN +nIN +nIN +jwM +oZn +xzh +lPW +nIN aDS aPT hGV -qVM -iBt -iBt -iBt -fgo -qVM -lJg -csz -czu +nIN +rgL +rgL +rgL +vMQ +nIN +wUJ +vpf +woU aag aag aag @@ -121134,23 +121772,23 @@ aKQ aaa aaa aab -aKW -qxA -aSm -aSm -aSm -jiX -aSm -bPV -hhw -nHF -nHF -nHF -nHF -aLB -fTU -bbO -cmg +kyw +ety +deq +deq +deq +deq +deq +xJp +bwG +ycl +ycl +ycl +ycl +bwG +lFL +sNL +ygB jeb jeb hfa @@ -121166,11 +121804,11 @@ xWd oSL jeb jeb -aLG -aNO -aYW -sLE -bbh +fZE +meQ +dAm +fEF +otC bdd bDT tHv @@ -121190,11 +121828,11 @@ iXb pzV cad bdd -oLT -iEb -bHW -bHa -buH +vMA +oYi +sIR +awE +oSM vra vra eUh @@ -121210,23 +121848,23 @@ mSU wVy vra vra -cmd -cmh -wAR -bGb -uaa -uaa -uaa -uaa -fiq -scI -oed -sow -oDf -leh -vhI -tVB -yhQ +siy +wIX +aCu +mJO +plv +plv +plv +plv +mJO +nEl +xbg +jPU +mgb +cgU +oqI +iDk +lyW aaa aab aaa @@ -121250,38 +121888,38 @@ aag aag aag aag -lYA -aao -ahk -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +hoT +rGz +njn +rWz +rWz +rWz +rWz +njn hHe gxn gKd -aar -aao -aao -wkL -mts +njn +jsA +jsA +svV +rIE adO afM fpR ahf adO -wUz -aii -abg +dni +jao +acQ aqU sdl mLE bUx mLE tmK -avK +qQS aug avL aqU @@ -121290,31 +121928,31 @@ rsO aGN rbB cnS -cbr -ajt -anc +dKD +mxg +jvz aUH aXx jKI aXx -qVM -usi -csz -vGk -csz -qVM +nIN +aGm +gNo +xzh +gNo +nIN lCL pMA gcm -qVM -iBt -iBt -iBt -iBt -qVM -hkx -vGk -czu +nIN +rgL +rgL +rgL +rgL +nIN +uNz +jtU +woU aag aag aag @@ -121337,23 +121975,23 @@ aKQ aaa aaa aab -aKW -xxe -aLf -aLf -aLf -aLf -xPE -bPT -hhw -nHF -nHF -nHF -nHF -aLB -ahj -ahj -ahj +kyw +byt +lfx +lfx +lfx +lfx +txp +veq +bwG +ycl +ycl +ycl +ycl +bwG +bwP +bwP +bwP jeb tkN qHg @@ -121369,11 +122007,11 @@ gAA cGV tkN jeb -aWM -aNO -aYX -gjn -bbi +hjQ +meQ +fNd +oUi +qdV bdd bDU bqZ @@ -121393,11 +122031,11 @@ bqZ bqZ cae bdd -bGg -bHd -bHX -bHa -buH +huP +nbu +kcg +awE +oSM vra gNq hXb @@ -121413,23 +122051,23 @@ cgo skF gNq vra -ajX -ajX -ajX -bGb -uaa -uaa -uaa -uaa -fiq -wUS -tbK -sVi -tbK -tbK -bfc -oed -yhQ +fqA +fqA +fqA +mJO +plv +plv +plv +plv +mJO +rxq +sAS +cXX +sAS +sAS +nHG +xbg +lyW aaa aab aaa @@ -121453,31 +122091,31 @@ aag aag aag aag -lYA -aap -eGF -aar -aIZ -aIZ -aIZ -aIZ +vHn +tob +alh +njn +rWz +rWz +rWz +rWz bWh hmj kbv fZo -aar -hLB -aao -aao -laY +njn +ykY +jsA +jsA +tjz adO afN ahh aiw ahG -bYe -ajt -abg +kGS +mxg +acQ aqU xbN gfE @@ -121493,31 +122131,31 @@ liJ pTj cnq cnS -iWN -aii -abg +klr +jao +acQ aUH oyE mMP mMP -qVM -vGk -csz -vGk -csz -qVM +nIN +xzh +gNo +xzh +gNo +nIN mzs aPT xyB cix -iBt -iBt -iBt -iBt -qVM -lSD -vGk -czu +rgL +rgL +rgL +rgL +nIN +bWg +jtU +woU aag aag aag @@ -121540,23 +122178,23 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -wdb -ahj -ahj +kyw +deq +lfx +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +txE +bwP +bwP jeb aMx qHg @@ -121572,11 +122210,11 @@ xHp cGV nBa jeb -beB -beB -aYW -bzV -cBA +atH +atH +dAm +aCX +suH bdd beQ beQ @@ -121596,11 +122234,11 @@ beQ beQ beQ bdd -bRQ -cbS -bHW -bJz -bJz +oCb +wwv +sIR +brq +brq vra bMu hXb @@ -121616,23 +122254,23 @@ lpt skF pQF vra -ajX -ajX -hBC -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -scI -oDf -yhQ +fqA +fqA +gzM +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +nEl +mgb +lyW aaa aab aaa @@ -121656,31 +122294,31 @@ aag aag aag aag -lYA -cIU -aao -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +btV +hoT +njn +rWz +rWz +rWz +rWz +njn mAF ilq pjj -aar -xYe -kZH -aao -frY +njn +boU +nNI +jsA +veO adO afO ahh aiw adO -aEp -xTt -aEp +acQ +mxg +acQ lmK lmK lmK @@ -121696,31 +122334,31 @@ cnH kzk cnR aHq -aEp -xTt -aEp +acQ +mxg +acQ aUH sIA gSj aXA -qVM -vGk -csz -vGk -xHG -qVM +nIN +xzh +gNo +xzh +bBc +nIN gfN efj sxE -qVM -iBt -iBt -iBt -iBt -qVM -toE -ofs -czu +nIN +rgL +rgL +rgL +rgL +nIN +kUL +tMU +woU aag aag aag @@ -121743,23 +122381,23 @@ aKQ aaa aaa aab -aKW -bhC -aSm -aKW -bbB -bbB -arn -ajO -ajO -ajO -clC -ajO -ajO -cno -ahj -ahj -ahj +kyw +deq +iGc +wDr +mFL +mFL +iFp +wNz +wNz +wNz +oWE +wNz +wNz +suU +bwP +bwP +bwP jeb iow aMO @@ -121775,11 +122413,11 @@ xHp aUi iow jeb -aLG -aNO -aYY -bal -bbj +fZE +meQ +rTA +tAW +stR bCz bDV bGw @@ -121799,11 +122437,11 @@ bGw bGw bGw bCz -buH -iEb -bHW -bHa -vMx +oSM +oYi +sIR +awE +dnP vra wTw bNE @@ -121819,23 +122457,23 @@ bUi bUT wTw vra -ajX -ajX -ajX -amS -aoc -aoc -uQU -aoc -aoc -aoc -aAv -eZi -eZi -yhQ -wlp -ftl -yhQ +fqA +fqA +fqA +dBg +aqL +aqL +buY +aqL +aqL +aqL +uWm +nRA +nRA +wDr +jPx +wdW +lyW aaa aab aaa @@ -121859,31 +122497,31 @@ aag aag aag aag -lYA -aap -aap -aar -aIZ -aIZ -aIZ -aIZ -aar +vHn +tob +tob +njn +rWz +rWz +rWz +rWz +njn xXT sVV tkR -aar -mko -uaZ -aap -svC +njn +ipr +pUL +cGR +eQd adO jkj ahh aiw adO -uLu -anC -aiC +ebV +bNT +acQ ioU pvK qPE @@ -121899,31 +122537,31 @@ liJ hgB cbn aHq -uLu -aQo -aTS +ebV +qGP +tzF aUd ckK iKM aHM -qVM -vGk -csz -yji -uso -qVM +nIN +xzh +gNo +lPW +vwJ +nIN nme sfT vAH -qVM -iBt -iBt -iBt -iBt -qVM -gKS -csz -czu +nIN +rgL +rgL +rgL +rgL +nIN +edG +vpf +woU aag aag aag @@ -121946,23 +122584,23 @@ aKQ aaa aaa aab -aKW -aLf -aLF -aKW -bbB -bbB -arn -ajO -ajO -ajO -ajO -ajO -ajO -cno -ahj -ahj -ahj +kyw +lfx +gSH +wDr +mFL +mFL +iFp +wNz +wNz +wNz +wNz +wNz +wNz +suU +bwP +bwP +bwP aLT aLT aLT @@ -121978,11 +122616,11 @@ aQL aQL aQL aQL -pGM -aNO -aYW -sLE -aLG +dQV +meQ +dAm +fEF +fZE bCA bCA bdj @@ -122002,11 +122640,11 @@ bCA bdj bCA bCA -buH -iEb -bHW -bHa -bIR +oSM +oYi +sIR +awE +gvK bJC bJC bJC @@ -122022,23 +122660,23 @@ bSJ bSJ bSJ bSJ -ajX -ajX -ajX -amS -aoc -aoc -aoc -aoc -aoc -aoc -aAv -eZi -eZi -yhQ -scI -oDf -yhQ +fqA +fqA +fqA +dBg +aqL +aqL +aqL +aqL +aqL +aqL +uWm +nRA +nRA +wDr +nEl +mgb +lyW aaa aab aaa @@ -122062,31 +122700,31 @@ aag aag aag aag -lYA -aao -aao -aar -aar -aar -aar -aar -aar +vHn +hoT +hoT +njn +njn +njn +njn +njn +njn ehL kyr chb -aar -aar -aar -tiM -aar -aar +njn +njn +njn +htS +njn +njn lFt ahh aiw adO -aSz -anG -aiC +qHu +lOn +acQ ioU qyZ wTd @@ -122102,31 +122740,31 @@ liJ qmP uoH aHq -aiC -anC -aiC +acQ +bNT +acQ aUH dbv lII aWc -qVM -xeG -qVM -qVM -qVM -qVM +nIN +rBD +nIN +nIN +nIN +nIN tCx ncG tZg -qVM -qVM -qVM -qVM -qVM -qVM -vGk -vGk -czu +nIN +nIN +nIN +nIN +nIN +nIN +jtU +jtU +woU aag aag aag @@ -122149,23 +122787,23 @@ aKQ aaa aaa aab -aKW -cmq -bPS -aKW -bbB -bbB -arn -ajO -ajO -ajO -ajO -ajO -ajO -cno -ahj -ahj -ahj +kyw +oif +nRN +wDr +mFL +mFL +iFp +wNz +wNz +wNz +wNz +wNz +wNz +suU +bwP +bwP +bwP aLT kaB vVb @@ -122181,11 +122819,11 @@ aQL mJP bSn aQL -vHs -ehH -aYZ -sLE -bAV +hEm +kti +eFa +fEF +exQ bCB bCB bCB @@ -122205,11 +122843,11 @@ bCB bCB bCB bCB -cbv -iEb -bHY -mru -syP +uuI +oYi +mkx +bIW +eMZ bJC jSp lAQ @@ -122225,23 +122863,23 @@ bSJ hII iJS bSJ -ajX -ajX -ajX -amS -aoc -aoc -aoc -aoc -aoc -aoc -aAv -eZi -eZi -yhQ -oYb -fxz -yhQ +fqA +fqA +fqA +dBg +aqL +aqL +aqL +aqL +aqL +aqL +uWm +nRA +nRA +wDr +xgS +svF +lyW aaa aab aaa @@ -122265,31 +122903,31 @@ aag aag aag aag -lYA -aao -aap -gXh -aao -aap -aap -ahg -aiv +vHn +hoT +tob +lso +hoT +tob +tob +hqm +rpG cSa aeA sjz -aiv -ahg -aap -aap -aao -rfg +hbl +isB +cGR +cGR +jsA +eoD aiw ahh aiw nph -aiC -ajF -aiC +acQ +jao +acQ ioU mSz nIG @@ -122305,31 +122943,31 @@ iKf aGN qrv aHq -cgJ -ajG -aiC +hBa +mxg +acQ aGz ckd mQC aHM -xCX -vGk -vGk -aip -vzl -xCX +aZv +xzh +xzh +egQ +vLM +aZv wcm lJY guo -xCX -weU -csz -gYS -vGk -vGk -csz -csz -czu +rXF +fLi +vpf +uBx +jtU +jtU +vpf +vpf +woU aag aag aag @@ -122352,23 +122990,23 @@ aKQ aaa aaa aab -aKW -rJb -yaG -aKW -bbC -aan -aan -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -hhw -hhw +kyw +vaV +qxJ +wDr +lFw +wWt +wWt +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +aLT +aLT aLT sXt aMQ @@ -122384,11 +123022,11 @@ aTw aUj kLk aQL -mTn -aiy -aYZ -sLE -bbk +npw +vzi +eFa +fEF +rbd bdk bdk bgR @@ -122408,11 +123046,11 @@ myJ eKI bdk bdk -bGh -iEb -bHY -njy -hkE +cxF +oYi +mkx +fic +kjW bJC ojF bNG @@ -122429,22 +123067,22 @@ bUU uDW bSJ bSJ -fiq -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -tGq -tGq -jjT -yhQ -trD -oDf -yhQ +ljv +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +fCg +fCg +geu +wDr +wtk +mgb +lyW aaa aab aaa @@ -122469,30 +123107,30 @@ aag aag aag abh -aar -aar -tiM -aar -aar -aar -aar -aar +cGd +cGd +moK +cGd +cGd +cGd +cGd +cGd wYa nBK mzS -aar -aar -aar -aar -aap -aar +njn +njn +njn +njn +cGR +njn afP ahh aiw nph -aiC -anG -aiC +acQ +lOn +acQ ioU ioU ioU @@ -122508,30 +123146,30 @@ aGN aGN pSU aHq -czM -ajG -aiC +qcL +mxg +acQ aGz drk mQC mkG -qVM -oLw -qVM -qVM -qVM -qVM +nIN +tTE +nIN +nIN +nIN +nIN nuM uHr xwX -qVM -qVM -qVM -qVM -qVM -xeG -qVM -qVM +mRU +mRU +mRU +mRU +mRU +gBs +mRU +mRU uOi aag aag @@ -122555,10 +123193,10 @@ aKQ aaa aaa aab -aKW -aLf -aaz -aKW +kyw +lfx +gUn +wDr bdY bdY bdY @@ -122569,8 +123207,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT aLT aLT @@ -122588,10 +123226,10 @@ aQL aQL aQL aQL -uQn -aYZ -sLE -bbl +uBj +eFa +fEF +wMB bdl bdl bdl @@ -122611,10 +123249,10 @@ bdl bdl bdl bdl -bGi -iEb -bHY -oyy +opd +oYi +mkx +jwP bJC bJC bJC @@ -122632,8 +123270,8 @@ bSJ bSJ bSJ bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -122644,10 +123282,10 @@ anm pfp pfp pfp -yhQ -scI -oed -yhQ +wDr +nEl +xbg +lyW aaa aab aaa @@ -122686,16 +123324,16 @@ aeA bbe aeA aeA -aar -aap -aar +njn +cGR +njn afQ aiw aiw nph -aiC -anG -aiC +acQ +lOn +acQ ioU lPO vJg @@ -122711,16 +123349,16 @@ eEo aGN rub aHq -cES -ajG -aiC +gar +mxg +acQ aGz eqB obC hcf -qVM -lau -qVM +nIN +cpQ +nIN lJY lJY lFK @@ -122758,10 +123396,10 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aKW +kyw +oxn +oxn +wDr bdY bdY bdY @@ -122772,8 +123410,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT bbY bdr @@ -122791,10 +123429,10 @@ brn aRT buM aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bEr bEs @@ -122814,10 +123452,10 @@ bYu nmK caf bdl -bGj -iEb -bHY -buH +oDU +oYi +mkx +oSM bJC cdT cfo @@ -122835,8 +123473,8 @@ clI clg clW bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -122847,10 +123485,10 @@ anm pfp pfp pfp -yhQ -wlp -oed -yhQ +wDr +cZI +xGT +lyW aaa aab aaa @@ -122889,16 +123527,16 @@ asA amF kmE aeA -aar -awJ -aar +njn +mtq +njn ahJ ahJ ahJ adO -aiC -ajF -aiC +acQ +jao +acQ ioU dnS viN @@ -122914,16 +123552,16 @@ aRi aGN qrv aHq -aOS -ajG -aiC +oUO +mxg +acQ aUH aGz aGz aGz -qVM -hoX -qVM +nIN +pHj +nIN lJY qbx dcp @@ -122961,10 +123599,10 @@ aKQ aaa aaa aab -aKW -bhC -aSm -aKW +emA +vIg +vIg +wDr bdY bdY bdY @@ -122975,8 +123613,8 @@ aaF aaF aaF aaF -aKW -hhw +wDr +aLT aLT bca aMC @@ -122994,10 +123632,10 @@ aQL aUY buN aQL -aLG -aYZ -sLE -bbl +fZE +eFa +fEF +wMB bdl bDX bCA @@ -123017,10 +123655,10 @@ rIH tUh cag bdl -bGk -iEb -bHY -buH +jDz +oYi +mkx +oSM bJC cdU bMy @@ -123038,8 +123676,8 @@ bSJ bVo clX bSJ -fiq -yhQ +ljv +wDr anm anm anm @@ -123050,10 +123688,10 @@ anm pfp pfp pfp -yhQ -scI -uqH -yhQ +wDr +cOo +rJf +tcO aaa aab aaa @@ -123092,16 +123730,16 @@ aeC vOh gUX ily -aar -tiM -aar -aWd -aWd -aWd -pji -aiC -ajF -aiC +njn +htS +njn +aeC +aeC +aeC +ybk +acQ +jao +acQ ioU pPM qKz @@ -123117,16 +123755,16 @@ xNv iLO bUa aHq -aSz -anC -aiC -pji -aWd -aWd -aWd -qVM -xeG -qVM +qHu +bNT +acQ +ybk +vcE +vcE +vcE +nIN +rBD +nIN cBb xVS lJY @@ -123164,22 +123802,22 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -hhw +emA +gPS +gPS +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +aLT aLT aLT aLT @@ -123197,10 +123835,10 @@ aQL aQL aQL aQL -pGM -aYZ -sLE -bbm +dQV +eFa +fEF +fNH bdl bDY bCA @@ -123220,10 +123858,10 @@ jac bCA cah bdl -bGl -iEb -bHY -bIR +wPi +oYi +mkx +gvK bJC bJC bJC @@ -123241,22 +123879,22 @@ bSJ bSJ bSJ bSJ -fiq -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -wlp -oDf -yhQ +ljv +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +wDr +nGM +hIp +tcO aaa aab aaa @@ -123295,16 +123933,16 @@ aeC aeC ajs aeC -aGD -aWd -eTO -anR -anR -lNl -aFW -aSy -anH -aoB +mzS +aeC +rGc +izu +izu +dRQ +pBg +gmZ +dpN +txd alL alL alL @@ -123320,16 +123958,16 @@ jvY alL alL alL -aSy -aoS -dZd -aFW -aIe -anR -anR -uWC -aHQ -apj +gmZ +onh +wJd +pBg +pfe +tiO +tiO +roY +uHr +nuM vcE kUV vcE @@ -123367,22 +124005,22 @@ aKQ aaa aaa aab -aKW -aSm -aLf -aLf -ycV -aLf -aSm -bbx -izU -gFs -yaG -bPV -aaz -bPT -eko -bPV +emA +jEM +ikT +owU +iTq +ikT +jEM +kjY +riB +fGi +qan +jkN +jUh +tIF +bCk +jkN aLT bco aMB @@ -123400,10 +124038,10 @@ brr aUZ buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl bDZ bdj @@ -123423,10 +124061,10 @@ jac xxa cai bdl -bII -iEb -bHY -buH +tkg +oYi +mkx +oSM bJC cdV bMx @@ -123444,22 +124082,22 @@ clJ bVn clY bSJ -fiq -iFm -anb -anb -anb -kKX -uvs -ixP -fiq -kUt -hGZ -tbK -tbK -sQU -ebY -yhQ +ljv +dnZ +eHy +eHy +eHy +cyp +oaO +lWY +ljv +jiM +ere +lYg +lYg +sEu +lia +tcO aaa aab aaa @@ -123498,16 +124136,16 @@ wXh aeC ydz ayb -aGC -tSw -agJ -aXE -aXE -agJ -aFV -hPK -aXE -akH +tic +gBZ +btu +asA +asA +btu +oOi +szb +tiZ +vnZ jvY jvY jvY @@ -123523,16 +124161,16 @@ jvY jvY jvY jvY -aSB -iWd -elA -aFV -aGC -aXE -aXE -aGC -rph -agJ +urs +eEF +wmH +oOi +rao +yeH +yeH +rao +sBK +mZv sSl kkx vcE @@ -123570,22 +124208,22 @@ aKQ aaa aaa aab -aKW -aLF -bbx -bPS -ktP -aSm -aLf -aSm -ecM -enf -ecM -aSm -aLf -bbx -eko -lLV +emA +kJZ +kjY +fGB +snN +jEM +ikT +jEM +lty +eTD +lty +jEM +ikT +kjY +bCk +heO aLT bco bdr @@ -123603,10 +124241,10 @@ brr aRT buO aQL -aLG -aYZ -sLE -bkY +fZE +eFa +fEF +xpc bdl lOr lOr @@ -123626,10 +124264,10 @@ bYv tiE tiE bdl -rqw -iEb -bHY -buH +fJt +oYi +mkx +oSM bJC cdV cfo @@ -123647,22 +124285,22 @@ clJ clg clY bSJ -fiq -wUS -tbK -tbK -bfc -ant -glM -mUn -fiq -suT -oed -oed -oed -uim -qNy -yhQ +ljv +eaz +lYg +lYg +aqH +oxl +wac +mjy +ljv +ien +xhO +xhO +xhO +cmN +srl +tcO aaa aab aaa @@ -123701,16 +124339,16 @@ ngl aeA ajk aeA -aIe -aWd -kYP -aHQ -aHQ -apj -aFW -rFY -aVY -akI +xVg +aeC +dwJ +nBK +nBK +wYa +pBg +vkQ +brm +aOw jvY arg atf @@ -123726,16 +124364,16 @@ jvY aMm aOq jvY -aDx -dsk -mLU -aFW -aGD -aHQ -aHQ -lKk -kKb -lNl +biB +uvq +cVT +pBg +xwX +uHr +uHr +siS +aRr +mJX lJY xVS lJY @@ -123773,22 +124411,22 @@ aKQ aaa aaa aab -aKW -aKW -aKW -aKW -aKW -uDB -aLf -aSm -uGw -uJl -ihn -aSm -aLf -aSm -aSm -eko +emA +emA +emA +emA +emA +sEg +ikT +jEM +ahL +bFl +nZW +jEM +ikT +jEM +jEM +bCk aLT bcZ bdr @@ -123806,10 +124444,10 @@ brs aRT bew aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH mCo iwZ jFy @@ -123829,10 +124467,10 @@ eHa cmo xAB mCo -bJz -cbS -bHW -bJz +brq +wwv +sIR +brq bJC bKX cfo @@ -123850,22 +124488,22 @@ clK clg bVy bSJ -fiq -fiq -fiq -fiq -lra -ujA -fiq -fiq -fiq -jbb -uNW -yhQ -yhQ -yhQ -yhQ -yhQ +ljv +ljv +ljv +ljv +tWl +jer +ljv +ljv +ljv +jEA +hCq +tcO +tcO +tcO +tcO +tcO aaa aab aaa @@ -123904,16 +124542,16 @@ nqV aeA ajk ily -psm -jFX -psm -blb -aWd -aXT -pji -aEp -aEp -akJ +qHA +qzQ +qHA +qnf +aeC +wPm +ybk +jkL +acQ +nbW jvY arh atm @@ -123929,16 +124567,16 @@ jvY nSG aOs jvY -aEp -ixC -aEp -pji -jFg -aWd -pCD -vuv -orm -vuv +jkL +jao +mQF +ybk +dJF +vcE +dAr +acB +cWo +acB cBb xVS lJY @@ -123980,18 +124618,18 @@ aaa aaa aaa aaa -aKW -uAs -aLf -aSm -kOf -oIn -kOf -aSm -aLf -bzF -aSm -aLf +emA +tcm +ikT +jEM +uzv +tYr +uzv +jEM +ikT +hYf +jEM +ikT aLT bco bdr @@ -124009,10 +124647,10 @@ brr aRT buO aQL -aXS -aYZ -kfP -tBF +jpW +eFa +svw +mzv bmv bEg bGU @@ -124032,10 +124670,10 @@ bYw nDM bWL sSa -qLp -lYi -bIb -mHm +bRo +dOG +gKw +tgz bJC cdV cfo @@ -124053,18 +124691,18 @@ clJ clg clY bSJ -iGK -tbK -tbK -tbK -sQU -wUS -hGZ -tbK -tbK -sQU -oDf -yhQ +bXh +lYg +lYg +lYg +sEu +eaz +ere +lYg +lYg +sEu +gEh +tcO aaa aaa aaa @@ -124107,16 +124745,16 @@ wXh aeC ajs qon -psm -tNT +qHA +obJ aep ggQ ggQ aME aep -aiB -ajN -akK +jkL +jnx +iPK jvY ari aoP @@ -124132,16 +124770,16 @@ axo atm aOr jvY -aiB -aWf -aiB +jkL +jao +mQF aep aME ggQ aME aep -vSg -vuv +hog +acB dHe kUV vcE @@ -124183,18 +124821,18 @@ aaa aaa aaa aaa -aKW -bPU -bPS -bbx -moh -iIY -bPW -xlD -aLf -aSm -aSm -aLf +emA +hyb +fGB +kjY +yia +ugZ +kcG +fBo +ikT +jEM +jEM +ikT aLT bco aMC @@ -124212,10 +124850,10 @@ brr aUY buO aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ mCo bEh bNQ @@ -124235,10 +124873,10 @@ bKA cXR cal mCo -pJJ -iEb -bHY -buH +wcD +oYi +mkx +oSM bJC cdV bMy @@ -124256,18 +124894,18 @@ clJ bVo clY bSJ -pNG -oed -oed -oed -oed -oDf -mOU -oDf -oed -oed -uFt -yhQ +tgm +xhO +xhO +xhO +xhO +gEh +sOD +gEh +xhO +xhO +tWp +tcO aaa aaa aaa @@ -124310,16 +124948,16 @@ aeC aeC ajs aeC -psm -xlX +qHA +qii aep afj afk agM aep -alG -aYj -aoD +jkL +tbD +fDk jvY arj atm @@ -124335,16 +124973,16 @@ bzD atm aOs jvY -alG -anG -apd +jkL +lOn +mQF aep aHS afk sHo aep -sFR -vuv +vmu +acB vcE kUV vcE @@ -124386,18 +125024,18 @@ aaa aaa aaa aaa -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -aKW -ycV -ktP +emA +emA +emA +emA +emA +emA +emA +emA +emA +emA +iTq +snN aLT aLT aLT @@ -124415,10 +125053,10 @@ aQL aQL aQL aQL -aLG -aYZ -sLE -qFb +fZE +eFa +fEF +bNr bdl bEi bZr @@ -124438,10 +125076,10 @@ bKA cir bdl bdl -lgX -iEb -bHY -buH +sXC +oYi +mkx +oSM bJC bJC bJC @@ -124459,18 +125097,18 @@ bSJ bSJ bSJ bSJ -scI -oed -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ -yhQ +cZp +xhO +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -124513,16 +125151,16 @@ aeC aeA ajk aeA -psm -xlX +qHA +qii aep afk afk afk aep -alG -aYj -aoD +jkL +tbD +fDk jvY ark atm @@ -124538,16 +125176,16 @@ axo atm thv jvY -alG -anG -apd +jkL +lOn +mQF aep afk aHl afk aep -kMq -vuv +hLt +acB lJY itR kKR @@ -124598,9 +125236,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aLT bcE aMB @@ -124618,10 +125256,10 @@ brt aUZ buS aQL -aLG -aYZ -sLE -jJs +fZE +eFa +fEF +tLZ bdl brp bZr @@ -124640,11 +125278,11 @@ bNQ bNQ bNQ bGz -hMs -cbw -iEb -bHY -buH +egD +oQn +oYi +mkx +oSM bJC cdX bMx @@ -124662,9 +125300,9 @@ clL bVn clZ bSJ -dGz -cAH -vTK +tgm +xhO +tcO aaa aaa aaa @@ -124716,16 +125354,16 @@ asA amF ohL aeA -psm -dmQ +qHA +vle aep aep aep aep aep -alJ -aYj -aoD +nbY +wLT +oAp jvY alL atk @@ -124741,16 +125379,16 @@ jvY aAy alL jvY -alG -anG -apd +nbY +hqx +nbY aep aep aep aep aep -cBi -vuv +ddF +acB lJY ucw dcp @@ -124790,6 +125428,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -124799,11 +125439,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -iDm -hlz +emA +qGC +jEM aLT bcE bdr @@ -124821,10 +125459,10 @@ brt bpC buS aQL -aNn -aYZ -sLE -jJs +bMf +eFa +fEF +tLZ bdl bEl wup @@ -124843,11 +125481,11 @@ krN krN krN oqY -can -buH -iEb -bHY -buH +lde +oSM +oYi +mkx +oSM bJC cdX cfo @@ -124865,19 +125503,19 @@ clL clg clZ bSJ -xRE -ebO -vTK -aaa -aaa -aaa -aaa -aaa +xMm +pFr +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -124919,16 +125557,16 @@ ntI aeA aeC puO -psm -xlX -egS +qHA +qii +eRG aep aep aep aep -alG -aYj -aoD +fes +vpi +xCS jvY arl atm @@ -124944,16 +125582,16 @@ alL aMo aOt jvY -alG -anG -apf +fes +qKU +jhm oIB jgr -gGp -dMf +qUG +rtc oIB -sFR -vuv +vmu +acB lJY uxC lJY @@ -124993,6 +125631,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -125002,11 +125642,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -eFH -hlz +emA +ikT +jEM aLT abS bdr @@ -125024,10 +125662,10 @@ brs bpC abT aQL -beB -aYW -bzV -beB +atH +dAm +aCX +atH bdl buz bZr @@ -125046,11 +125684,11 @@ ibc uly bNN vbR -pky -cbv -cbS -bHW -bJz +eGq +uuI +wwv +sIR +brq bJC ack cfo @@ -125068,19 +125706,19 @@ clK clg acp bSJ -vMn -vuR -vTK -aaa -aaa -aaa -aaa -aaa +qKK +gEh +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125116,22 +125754,22 @@ atr aeC atr aeC -psm -psm -psm -psm -jFX -psm -psm -xlX -aeq -psm -psm -psm -psm -alG -aYj -aoD +qHA +qHA +qHA +qHA +mRI +qHA +qHA +qii +hja +qHA +qHA +qHA +qHA +fes +vpi +xCS jvY abF atm @@ -125147,22 +125785,22 @@ aIT atm aVF jvY -alG -aYD -uPI +fes +wZp +amc oIB fXE kaS aiQ oIB -sFR -vuv -vuv -vuv -vuv -sdw -vuv -vuv +vmu +acB +acB +kNq +kNq +qDB +kNq +kNq vcE bXe vcE @@ -125196,6 +125834,8 @@ aaa aab aaa aaa +bdH +bdH aaa aaa aaa @@ -125205,11 +125845,9 @@ aaa aaa aaa aaa -aaa -aaa -wVb -hlz -eFH +emA +jEM +ikT aLT bcE aMC @@ -125227,10 +125865,10 @@ brt aUY buS aQL -aLG -aYZ -sLE -uBw +fZE +eFa +fEF +hvz bdl bEm bZr @@ -125250,10 +125888,10 @@ uys uys uys uys -iRr -iEb -bHY -buH +bfd +oYi +mkx +oSM bJC cdX bMy @@ -125271,19 +125909,19 @@ clL bVo clZ bSJ -bob -emG -vTK -aaa -aaa -aaa -aaa -aaa +hTU +lNk +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125319,22 +125957,22 @@ atr aeC atr aeC -psm -cnU -nGc -psm -cWI -psm -whc -xlX -dmQ -psm -dmQ -dmQ -psm -alK -ajP -aoD +qHA +hEj +cvi +qHA +wFX +qHA +ncV +qii +vle +qHA +vle +vle +qHA +pqv +gqf +xCS jvY jvY jvY @@ -125350,22 +125988,22 @@ jvY jvY jvY jvY -sUF -anG -apd +xeq +qKU +iZz oIB wqr bZw xUV oIB -sFR -hPo -vuv -dnk -rCp -fbx -cEO -vuv +vmu +vDR +acB +toD +wDq +aPO +sNP +kNq vcE bXe vcE @@ -125410,9 +126048,9 @@ aaa aaa aaa aaa -wVb -qnP -jPf +emA +rIV +dYc aLT aLT aLT @@ -125430,10 +126068,10 @@ aQL aQL aQL aQL -bxx -byF -bzW -bxx +edn +qRd +gtH +edn bdl bpT bNN @@ -125453,10 +126091,10 @@ dyx eYr bUo uys -cbz -cbU -ccu -cbz +kKB +rsL +jts +kKB bJC bJC bJC @@ -125474,19 +126112,19 @@ bSJ bSJ bSJ bSJ -cJP -vuR -vTK -aaa -aaa -aaa -aaa -aaa +xsv +gEh +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125522,22 +126160,22 @@ atu azU aeC ldl -psm -xlX -nYh -psm -xuI -psm -miK -tXW -gfk -fBf -tXW -tXW -fBf -aTS -ajP -aoD +qHA +qii +stA +qHA +tvA +qHA +oTc +nwT +ocI +mfH +nwT +nwT +mfH +kjX +gqf +xCS alL urM dBG @@ -125553,22 +126191,22 @@ jvY wjv fDG alL -alG -aYD -aTS +fes +wZp +kjX qgK tEB uBM dXo oIB -lBR -nVu -vuv -jvI -cxo -fbx -jnk -vuv +xPu +uOE +acB +swG +jei +aPO +hIX +kNq vcE pxJ swM @@ -125613,9 +126251,9 @@ aaa aaa aaa aaa -wVb -hlz -moE +emA +jEM +kDd aLT bdJ bds @@ -125633,14 +126271,14 @@ aQL bsS mqK aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl bEp bCA -bCA +wlh cvb bmC nwG @@ -125656,10 +126294,10 @@ dyx hGN pVx uys -ttM -iEb -ccv -bIS +wKm +ekM +aVM +wVm bJC cfp cgu @@ -125677,19 +126315,19 @@ bSJ clM clS bSJ -nOG -vuR -vTK -aaa -aaa -aaa -aaa -aaa +cZp +gEh +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125719,28 +126357,28 @@ aaa aad aag aag -pVZ -psm -psm -psm -jFX -psm -psm -sAA -nYh -psm -ano -psm -qhB -xlX -wCh -psm -dmQ -dmQ -psm -uBz -aYj -aoE +fTl +taw +taw +taw +mRI +taw +qHA +wpT +stA +qHA +wTn +qHA +nQw +qii +wjP +qHA +vle +vle +qHA +gbR +vpi +chC aqe amw anO @@ -125756,28 +126394,28 @@ arq anO qaV kwd -aSB -anG -mPX +usi +qKU +iZz oIB wKF hzb ltU oIB -fbx -cFA -vuv -joT -cxo -fbx -hlI -vuv -vuv -vuv -vuv -sdw -vuv -qMu +juG +eDk +acB +bCR +jei +aPO +fJp +kNq +kNq +kNq +kNq +qDB +kNq +fVe aag aag afm @@ -125816,9 +126454,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT beT bdr @@ -125836,15 +126474,15 @@ ihY bpC dnE aQL -kgr -aYW -bzV -beB +qfI +dpA +ggo +lhs bdl ycp ycp tPj -mnf +ycp ycp bdl bdl @@ -125859,10 +126497,10 @@ uys uys uys uys -bJz -cbS -bJz -bHW +gyw +bFX +gyw +hza bJC bMA cfo @@ -125880,19 +126518,19 @@ clG clg bVq bSJ -njT -ydx -vTK -aaa -aaa -aaa -aaa -aaa +ien +dFL +tcO aaa aaa aaa aaa aaa +bdH +bdH +bdH +bdH +bdH aaa aaa aaa @@ -125922,28 +126560,28 @@ aaa aaa aad aag -pVZ -amJ -jXY -psm -ano -bjI -psm -cnY -nYh -psm -cWI -psm -adp -xlX -aeq -psm -dmQ -aeq -psm -jMK -ajR -aoG +fTl +vrZ +qlu +taw +wTn +kCu +qHA +uPN +stA +qHA +wFX +qHA +lsh +qii +hja +qHA +vle +hja +qHA +bwN +gxR +lCc aqg arr atn @@ -125959,28 +126597,28 @@ atn atn aOB aRj -aSC -aZH -iAB +dZR +kWc +cwL oIB phj vEf cNK oIB -fbx -cxo -iEs -fbx -fbx -fbx -cxo -cxo -iwh -cxo -cxo -fbx -cxo -qMu +hFt +lxJ +oFU +aPO +aPO +aPO +jei +jei +lYt +jei +jei +aPO +jei +fVe aag ajZ aaa @@ -126019,9 +126657,9 @@ aaa aaa aaa aaa -wVb -tAi -eFH +emA +sEg +ikT aLT aLT aLT @@ -126039,17 +126677,17 @@ aQL aQL aQL aQL -pGM -aYZ -sLE -jJs +oxe +tcS +mww +sZe bdl fKT bGy -bKA +kOW snM iqo -moY +bdl clV crD kLP @@ -126062,10 +126700,10 @@ sgc xCa bUy bdl -qYt -iEb -bHa -bIT +eTx +ekM +cJs +pOW bJC bJC bJC @@ -126083,9 +126721,9 @@ bSJ bSJ bSJ bSJ -nOG -cAH -vTK +cZp +xhO +tcO aaa aaa aaa @@ -126125,28 +126763,28 @@ aaa aaa aad aag -pVZ -amL -atz -psm -ouo -bjI -psm -jFX -psm -psm -xuI -psm -dmQ -xlX -dmQ -psm -cBB -irn -psm -rFY -ctC -aoQ +fTl +hjT +rWb +taw +oAK +kCu +qHA +qzQ +qHA +qHA +tvA +qHA +vle +qii +vle +qHA +cap +fiN +qHA +fes +kzR +ngF kwd amA atq @@ -126162,28 +126800,28 @@ atq atq aoT kwd -rFY -ctC -gPF +usi +kzR +jhm oIB -opI +cHC dha pxj oIB -fbx -gHg -vuv -iTf -cxo -suk -chC -pTT -oLd -oLd -oLd -oyw -cxo -qMu +juG +fmX +acB +fPF +jei +nNT +jwJ +mgX +nZG +nZG +nZG +xGm +jei +fVe aag ajZ aaa @@ -126222,9 +126860,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT beT bdr @@ -126242,10 +126880,10 @@ mUx bpC dnE aQL -aLG -aYZ -sLE -jJs +bqc +tcS +mww +sZe bdl fgm bdj @@ -126265,10 +126903,10 @@ fYZ vYC noj hpS -pJJ -iEb -bHa -bIT +gyE +ekM +cJs +pOW bJC bMA cfo @@ -126286,9 +126924,9 @@ clH oFV bVq bSJ -fTx -lGr -vTK +vUJ +hCq +tcO aaa aaa aaa @@ -126328,28 +126966,28 @@ aaa aaa aad aag -pVZ -jXY -coG -hSu -xlX -dmQ -aDg -dmQ -tLM -xlX -xlX -hSu -xlX -xlX -dmQ -psm -psm -psm -psm -aEp -lIw -aoR +fTl +qlu +uKl +kiR +oxy +oQL +jsu +oQL +gqt +oxy +oxy +pFJ +qii +qii +vle +qHA +qHA +qHA +qHA +fes +kzR +lCf alO ars amx @@ -126365,9 +127003,9 @@ amx amx aOC alO -aEp -lIw -aEp +fes +kzR +iZz loP loP loP @@ -126376,17 +127014,17 @@ loP qej loP loP -vuv -hlI -fbx -xxJ -ybO -yal -tpK -qKF -kaN -gHg -qMu +kNq +fJp +aPO +wXl +dJe +unQ +nxe +tjH +tVn +oUx +fVe aag ajZ aaa @@ -126425,9 +127063,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aLT beU bdv @@ -126445,10 +127083,10 @@ aQL bsW xvX aQL -aLG -txe -baq -jJs +bqc +noI +dJG +sZe bdl ntd hgO @@ -126468,10 +127106,10 @@ scH nzO kxL hpS -pJJ -vzu -vYi -bIT +gyE +nzt +jhs +pOW bJC cfq cgv @@ -126489,9 +127127,9 @@ bSJ clN clT bSJ -cJP -vuR -vTK +xsv +gEh +tcO aaa aaa aaa @@ -126531,28 +127169,28 @@ aaa aaa aad aag -pVZ -amP -atD -psm -xlX -aDz -aRV -cyE -xlX -dmQ -uRQ -psm -dmQ -xlX -dmQ -psm -ahn -aiz -psm -ndJ -anJ -aoS +fTl +wIu +wXJ +taw +ldz +kMa +qIa +iSB +oxy +oQL +hdy +qHA +vle +qii +vle +qHA +liF +wPR +qHA +cui +kzR +lCf inw amA amx @@ -126568,9 +127206,9 @@ atq amx aoT inw -aiB -anJ -mnG +fes +kzR +hPr loP iwB tOC @@ -126579,17 +127217,17 @@ vqL xBY qwo loP -xgL -nho -fbx -xxJ -hlI -eRe -eRe -eRe -kaN -cxo -qMu +ang +hqu +aPO +wXl +fJp +iCD +iCD +iCD +tVn +jei +fVe aag ajZ aaa @@ -126628,9 +127266,9 @@ aaa aaa aaa aaa -wVb -iDm -hlz +emA +qGC +jEM aLT aLT aLT @@ -126648,10 +127286,10 @@ aQL aQL aQL aQL -aLG -aYO -kBK -hyt +bqc +ubQ +fpM +bEk bdl tFS bdj @@ -126671,10 +127309,10 @@ jaR mJa wWP rsK -aGc -kkE -iEb -bIT +cBC +feo +ekM +pOW bJC bJC bJC @@ -126692,9 +127330,9 @@ bSJ bSJ bSJ bSJ -wGi -woG -vTK +goM +tfQ +tcO aaa aaa aaa @@ -126734,28 +127372,28 @@ aaf aaf aag aag -pVZ -psm -psm -psm -ano -aDF -bYg -cNc -xlX -dmQ -gyt -psm -rsY -xlX -dmQ -psm -dmQ -dmQ -psm -alG -aDZ -aoU +fTl +taw +taw +taw +wTn +wOv +tuJ +iKV +oxy +oQL +oFr +qHA +mUL +qii +vle +qHA +vle +vle +qHA +fes +kzR +bLg aqj arw anP @@ -126771,9 +127409,9 @@ atq atq wwJ inw -alG -aYj -apd +fes +vpi +iZz loP joG sDu @@ -126782,17 +127420,17 @@ wSn xBY lKa loP -ejK -cxo -fbx -xxJ -vuv -oeL -cxo -hkm -hlw -pmk -qMu +fvo +jei +aPO +wXl +kNq +jcE +jei +lVR +pHD +dhp +fVe aag aag aaf @@ -126827,13 +127465,13 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -eFH -eFH +emA +emA +emA +emA +emA +ikT +ikT aLT vZb tnY @@ -126851,10 +127489,10 @@ aUZ uqA bES kcl -aLG -aYO -sou -bAX +bqc +ubQ +uPX +rHr bdl wIr aQy @@ -126874,10 +127512,10 @@ nPT bdl bdl bdl -dhU -vzq -iEb -bIT +jLg +uEO +ekM +pOW hNw wos bMC @@ -126895,13 +127533,13 @@ hcI hcI vPK bSJ -nOG -vuR -vTK -vTK -vTK -vTK -vTK +cZp +gEh +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -126937,28 +127575,28 @@ aag aag aag aag -pVZ -amQ -dmQ -hSu -xlX -aDF -jXY -dxC -xlX -aDz -mNW -psm -adp -xlX -wCh -psm -dmQ -dmQ -psm -ylJ -aDZ -aoD +fTl +hEr +oQL +kiR +oxy +wOv +qlu +qAG +oxy +kMa +gQu +qHA +lsh +qii +wjP +qHA +vle +vle +qHA +gbR +kzR +xCS inw qHM emn @@ -126974,9 +127612,9 @@ amx amx aBs inw -alG -aYj -apd +fes +vpi +iZz loP kxo wSn @@ -126985,17 +127623,17 @@ kdi xBY kxo loP -sFF -cxo -fbx -xxJ -vuv -gUy -nho -oRj -hHU -cxo -qMu +nSk +jei +aPO +wXl +kNq +cke +hqu +oSR +fZI +jei +fVe aag aag aag @@ -127030,13 +127668,13 @@ aaa aaa aaa aaa -wVb -fTR -qaD -jeU -dHk -hlz -eFH +emA +hyb +kjY +kcG +tIF +jEM +ikT aWT aMH beV @@ -127054,9 +127692,9 @@ aSE aVf bES kcl -aLG -aZg -bar +bqc +sUk +slo bdl bdl bdl @@ -127071,16 +127709,16 @@ bdl bdl bdl bdl -cbo -gRn -cbo -cbo -gRn +reN +dEp +reN +htk +dEp bdl bdl -cbV -fpO -bIT +udf +iyC +pOW hNw sZq jZv @@ -127098,13 +127736,13 @@ aMI wGE erG ewO -bWb -cAH -luk -rQj -ngs -gai -vTK +sEu +xhO +ffx +jhK +srl +lWY +tcO aaa aaa aaa @@ -127140,28 +127778,28 @@ aag aag aag aag -pVZ -amQ -atG -psm -seO -aDF -amP -egB -xlX -aDF -igf -psm -atD -xlX -xlX -hSu -xlX -xlX -hSu -aWd -aDZ -nfp +fTl +hEr +xBS +taw +tTG +wOv +wIu +ydf +oxy +wOv +ixu +qHA +uxW +qii +qii +pFJ +qii +qii +pFJ +bKU +kzR +xsX alO alO alO @@ -127177,9 +127815,9 @@ atq atq aBs alO -alG -aDZ -aWd +fes +kzR +bKU fTF xBY xBY @@ -127188,17 +127826,17 @@ xBY xBY jGI loP -vuv -hlI -cHq -xxJ -vuv -vuv -vuv -vuv -kmK -cxo -qMu +kNq +fJp +nOx +wXl +kNq +kNq +kNq +kNq +pAV +jei +fVe aag aag aag @@ -127233,13 +127871,13 @@ aaa aaa aaa aaa -wVb -vjx -eFH -eFH -eFH -eFH -eFH +emA +jkN +ikT +ikT +ikT +ikT +ikT aLT aZf duV @@ -127257,33 +127895,33 @@ iIR aVf bES kcl -aLG -aYO -bZK -qic -xfc -bCH -vZA -bCH -bCH -uIp -bHm -bHm -bHm -wNm -bCH -bCH -bHm -bLS -bCH -lXF -bHm -bCH -bCH -qic -cbW -iEb -bIT +bqc +ubQ +kwi +lZM +rSR +xss +rLK +xss +xss +uHk +dXb +dXb +dXb +cTX +xss +xss +dXb +ndm +xss +iFY +dXb +xss +xss +lZM +kYl +ekM +pOW hNw sZq jZv @@ -127301,13 +127939,13 @@ jGR jGR oqu bSJ -vuR -vuR -vuR -vuR -vuR -cAH -vTK +gEh +gEh +gEh +gEh +gEh +xhO +tcO aaa aaa aaa @@ -127343,28 +127981,28 @@ aag aag aag aag -pVZ -amW -auo -psm -xlX -bkR -bYi -eJd -xlX -aDF -jXY -psm -jXY -xlX -dmQ -psm -dmQ -dmQ -akd -alG -aDZ -xrr +fTl +oqc +smw +taw +oxy +rgk +nUT +cnP +oxy +wOv +qlu +qHA +xLm +qii +vle +qHA +vle +vle +lnD +fes +kzR +iea alO gKZ vTv @@ -127380,9 +128018,9 @@ atq atq aBs alO -alJ -aYj -apd +pvE +vpi +iZz gdS wSn kXN @@ -127391,17 +128029,17 @@ odD xBY mOg oHx -fbx -oVP -fbx -gAt -tly -flE -flE -flE -xzo -cxo -qMu +aPO +iXB +aPO +gof +bVr +ivL +ivL +ivL +fVa +jei +fVe aag aag aag @@ -127436,9 +128074,9 @@ aaa aaa aaa aaa -wVb -ilZ -eFH +emA +fGi +ikT aLT aLT aLT @@ -127460,16 +128098,16 @@ chp aVf aQL aQL -beB -aYT -bzY -aLd -aLd -bvS -aLd -aLd -aLd -aLd +lhs +bww +tHF +cvx +cvx +bKJ +cvx +cvx +cvx +cvx vub vub vub @@ -127477,16 +128115,16 @@ owW vub vub vub -aLd -aLd -aLd -bvS -aLd -aLd -aLd -cbX -cbS -ccO +cvx +cvx +cvx +bKJ +cvx +cvx +cvx +xQz +bFX +pmd bJC bJC bMD @@ -127508,9 +128146,9 @@ bSJ bSJ bSJ bSJ -vuR -ydx -vTK +gEh +dFL +tcO aaa aaa aaa @@ -127546,28 +128184,28 @@ aag aag aag aag -pVZ -psm -psm -psm -ano -dmQ -dmQ -adE -xlX -wya -aiE -psm -jXY -xlX -aeq -psm -gIN -aiA -akd -alG -aDZ -xrr +fTl +taw +taw +taw +wTn +oQL +oQL +lUQ +oxy +tBU +iDs +qHA +xLm +qii +hja +qHA +kLZ +tty +lnD +fes +kzR +iea alO arz atq @@ -127583,9 +128221,9 @@ auB atc aOF alO -alG -aYj -apd +fes +vpi +iZz gdS lBg dXd @@ -127594,17 +128232,17 @@ loP eMh loP loP -vuv -kJG -fbx -okd -eYH -rav -eYH -eYH -wWL -cxo -qMu +kNq +hnt +aPO +wSx +gYI +wPa +gYI +gYI +rzk +jei +fVe aag aag aag @@ -127639,9 +128277,9 @@ aaa aaa aaa aaa -wVb -hlz -eFH +emA +jEM +ikT aLT bBg vPv @@ -127663,9 +128301,9 @@ brA aVf lQz aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs cbh xYP @@ -127687,9 +128325,9 @@ tez gsm bCM bbr -buH -iEb -bIT +uPE +ekM +pOW bJC jht jZv @@ -127711,9 +128349,9 @@ qNd hzu hcI bSJ -cAH -cAH -vTK +xhO +xhO +tcO aaa aaa aaa @@ -127749,28 +128387,28 @@ aag aag aag aag -pVZ -dmQ -meS -aAe -xlX -dmQ -psm -psm -jFX -psm -psm -psm -igf -xlX -dmQ -psm -psm -psm -psm -alG -aDZ -xrr +fTl +oQL +mOE +gUG +oxy +oQL +qHA +qHA +qzQ +qHA +qHA +qHA +gDF +qii +vle +qHA +qHA +qHA +qHA +fes +kzR +iea alO arz atq @@ -127786,9 +128424,9 @@ aIU aMq aOG alO -alG -aDZ -apd +fes +kzR +iZz loP loP loP @@ -127798,16 +128436,16 @@ vyI lPB oHl jWh -vuv -sdw -vuv -vuv -vuv -vuv -vuv -ldN -gHg -qMu +acB +hJe +acB +acB +kNq +kNq +kNq +gGb +oUx +fVe aag aag aag @@ -127842,9 +128480,9 @@ aaa aaa aaa aaa -wVb -hlz -hlz +emA +jEM +jEM aLT nuN nuN @@ -127866,9 +128504,9 @@ bOG aVf iaq aQL -aLG -aZi -aLG +bqc +qIf +bqc bbs bKD vTS @@ -127890,9 +128528,9 @@ tez ccQ bCN bbr -buH -iEb -bIT +uPE +ekM +pOW bJC cjC jZv @@ -127914,9 +128552,9 @@ rYp oEo oEo bSJ -cAH -cea -vTK +xhO +lMO +tcO aaa aaa aaa @@ -127952,28 +128590,28 @@ aag aag aag aag -pVZ -xlX -xlX -aBa -xlX -dmQ -psm -eKD -nZF -wMm -psm -adp -dmQ -xlX -dmQ -qWT -lWh -aiE -psm -alG -aDZ -xrr +fTl +oxy +oxy +bCv +oxy +oQL +qHA +gCQ +rEs +tvr +qHA +lsh +vle +qii +vle +aYU +uxs +iQG +qHA +fes +kzR +iea alO arz atq @@ -127989,9 +128627,9 @@ xBe xBe xBe xBe -alG -aDZ -apd +fes +kzR +iZz jWh eFK wGd @@ -128001,16 +128639,16 @@ hSk hSk uIv jWh -dCt -xhU -dsu -vuv -ozr -hWa -dCP -ldN -cxo -qMu +jZj +sRP +oko +acB +tiY +qAK +xGK +gGb +jei +fVe aag aag aag @@ -128045,9 +128683,9 @@ aaa aaa aaa aaa -wVb -rVo -hlz +emA +oPF +jEM aLT vug vug @@ -128069,9 +128707,9 @@ bRg aVf aQL aQL -fvK -aZi -aLG +ylN +qIf +bqc bbs ydM xYP @@ -128093,9 +128731,9 @@ tez ccQ cdn bbr -buH -iEb -bIT +uPE +ekM +pOW bJC bJC kGF @@ -128117,9 +128755,9 @@ yle wWX wWX bSJ -cAH -bpJ -vTK +xhO +xHa +tcO aaa aaa aaa @@ -128155,28 +128793,28 @@ aag aag aag aag -pVZ -ano -dmQ -aBg -dmQ -boZ -psm -eKD -oyo -wQx -psm -lhL -dmQ -xlX -dmQ -dmQ -dmQ -soQ -psm -alJ -aDZ -xrr +fTl +wTn +oQL +qmq +oQL +nXo +qHA +gCQ +bNc +tCC +qHA +ftG +vle +qii +vle +vle +vle +keE +qHA +pvE +kzR +iea xnR arm ats @@ -128192,9 +128830,9 @@ aIV qqr arH xBe -alG -aDZ -apd +fes +kzR +iZz vXd duF hSk @@ -128204,16 +128842,16 @@ hSk hSk uIv jWh -xrN -fbx -ije -vuv -cxo -wwD -oda -ldN -cOi -qMu +eHz +juG +tMT +acB +jei +ltm +oAT +gGb +cmV +fVe aag aag aag @@ -128248,9 +128886,9 @@ aaa aaa aaa aaa -wVb -qnP -uia +emA +rIV +nvI aLT iPS vAE @@ -128272,9 +128910,9 @@ jOi aVf bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bbs dvs xYP @@ -128296,9 +128934,9 @@ tez ccQ bCM bbr -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lef @@ -128320,9 +128958,9 @@ vSW scy kPJ bSJ -cAH -ubd -vTK +xhO +eeR +tcO aaa aaa aaa @@ -128358,28 +128996,28 @@ aag aag aag aag -pVZ -xlX -psm -psm -rzP -psm -psm -fnZ -xlX -xoh -ckB -afl -jUL -afl -afl -afl -afl -afl -wDR -alP -ajW -apc +fTl +oxy +qHA +qHA +xcs +qHA +qHA +utC +qii +ikC +vRJ +gNQ +laP +gNQ +gNQ +gNQ +gNQ +gNQ +xDG +jlO +qpH +iSu alO arA att @@ -128395,9 +129033,9 @@ azo aJg abR xBe -alG -aDZ -apf +fes +kzR +jhm jWh oih khE @@ -128407,16 +129045,16 @@ vyI kpQ vSE jWh -ppc -iYp -iZX -vuv -cxo -wwD -rku -ldN -cxo -qMu +nwA +xZz +kRN +acB +jei +ltm +ejj +gGb +jei +fVe aag aag aag @@ -128451,9 +129089,9 @@ aaa aaa aaa aaa -wVb -tAi -moE +emA +sEg +kDd aLT aLT aLT @@ -128475,9 +129113,9 @@ vfx aVf bES kcl -beB -byI -beB +lhs +uvh +lhs kFY jmK bDL @@ -128499,9 +129137,9 @@ tez ccQ bCN jhb -jiw -cbS -bHW +kAj +bFX +hza hNw sZq ltI @@ -128523,9 +129161,9 @@ bSJ bSJ bSJ bSJ -pUY -emG -vTK +qid +lNk +tcO aaa aaa aaa @@ -128561,28 +129199,28 @@ aag aag aag aag -pVZ -xlX -psm -nQg -szX -xyE -psm -eKD -pBW -xtD -psm -psm -psm -jFX -psm -psm -psm -psm -psm -ylJ -aDZ -apd +fTl +oxy +qHA +tZM +qEZ +frV +qHA +gCQ +uqJ +vbu +qHA +qHA +qHA +qzQ +qHA +qHA +qHA +qHA +qHA +gbR +kzR +iZz wDM wDM wDM @@ -128598,9 +129236,9 @@ atv auV amE xBe -alG -aDZ -apd +fes +kzR +iZz jWh jWh uUz @@ -128610,16 +129248,16 @@ qbZ jWh jWh jWh -cDW -fbx -cXq -vuv -vJy -cxo -hkm -hlw -pmk -qMu +fQl +juG +nGZ +acB +xQe +jei +lVR +pHD +dhp +fVe aag aag aag @@ -128654,9 +129292,9 @@ aaa aaa aaa aaa -wVb -wzg -eFH +emA +eTD +ikT aLT bBg vPv @@ -128678,9 +129316,9 @@ bRV bSe bES kcl -aLG -aZi -aLG +bqc +qIf +bqc bBd aPr bfl @@ -128702,9 +129340,9 @@ bSb bEa bFp bBd -buH -iEb -bIT +uPE +ekM +pOW hNw sZq lwJ @@ -128726,9 +129364,9 @@ mAV hzu hcI bSJ -jea -cAH -vTK +rqz +xhO +tcO aaa aaa aaa @@ -128764,17 +129402,17 @@ aag aag aag aag -pVZ -yeP -psm -jdQ -bMY -hfy -psm -eKD -nZF -xxT -psm +fTl +lmq +qHA +mDz +pIf +uwf +qHA +gCQ +rEs +bhZ +qHA uiG rTZ tfb @@ -128783,9 +129421,9 @@ tfb tfb tfb ptK -alG -aYj -apd +fes +vpi +iZz wDM aOM aoW @@ -128801,9 +129439,9 @@ atv auV amE xBe -alG -aYj -apd +fes +vpi +iZz jWh xXa xXa @@ -128813,16 +129451,16 @@ cKL jbH rJh jWh -tyz -eZQ -fTi -vuv -tzi -cxo -oRj -cVs -cxo -qMu +rJY +dPl +qQG +acB +cfm +jei +oSR +grd +jei +fVe aag aag aag @@ -128857,9 +129495,9 @@ aaa aaa aaa aaa -wVb -jMi -eFH +emA +efP +ikT aLT cjc cjc @@ -128881,9 +129519,9 @@ csZ odB aQL aQL -aLG -aZg -tBF +bqc +sUk +ade bBe bFq bfm @@ -128905,9 +129543,9 @@ bCD bEb bFq bBe -bFu -fpO -bIT +hWD +iyC +pOW bJC bJC rbH @@ -128929,9 +129567,9 @@ yfm fXN fXN bSJ -vuR -cAH -vTK +gEh +xhO +tcO aaa aaa aaa @@ -128967,17 +129605,17 @@ aag aag aag aag -pVZ -xlX -psm -psm -psm -psm -psm -psm -jFX -psm -psm +fTl +oxy +qHA +qHA +qHA +qHA +qHA +qHA +qzQ +qHA +qHA bNM wkX jhx @@ -128986,9 +129624,9 @@ jhx jhx dnH gpc -aWd -aYj -apd +kjX +gqf +iZz wDM uto aoX @@ -129004,9 +129642,9 @@ nNY qKi abR xBe -alJ -ajR -aTS +pvE +gxR +kjX dEt soP pDr @@ -129016,16 +129654,16 @@ soP eoG uIv jWh -vuv -sdw -vuv -vuv -vuv -hlI -qiI -ldN -gHg -qMu +acB +hJe +acB +acB +kNq +fJp +ekz +gGb +oUx +fVe aag aag aag @@ -129060,9 +129698,9 @@ aaa aaa aaa aaa -wVb -pQG -eFH +emA +uzv +ikT aLT cjc cjc @@ -129084,9 +129722,9 @@ vil bpC qZX aQL -kEb -aZi -bad +pjP +qIf +lfz bbs cdp cdp @@ -129108,9 +129746,9 @@ fJO fJO fJO bbs -nmD -iEb -twT +wMI +ekM +oHt bJC lbf cft @@ -129132,9 +129770,9 @@ yfm fXN fXN bSJ -cAH -ydx -vTK +xhO +dFL +tcO aaa aaa aaa @@ -129170,13 +129808,13 @@ aag aag aag aag -pVZ -ano -meS -cbA -aRG -bsF -psm +fTl +wTn +mOE +sWp +nUm +moL +taw mDJ owg xUA @@ -129189,9 +129827,9 @@ nwU owg owg ptK -wOh -ajP -apd +fes +vpi +iZz wDM aOQ fxI @@ -129207,9 +129845,9 @@ azp qJf anV xBe -alG -aYj -apd +fes +vpi +iZz jWh iqH khE @@ -129219,16 +129857,16 @@ ovi iat eim jWh -vuv -qFW -vuv -vuv -kDi -vSH -tly -hlw -cxo -qMu +kNq +spd +kNq +kNq +dVH +cAz +bVr +pHD +jei +fVe aag aag aag @@ -129263,9 +129901,9 @@ aaa aaa aaa aaa -wVb -fhA -eFH +emA +hfO +ikT aLT iPS vAE @@ -129287,9 +129925,9 @@ vil bpC qDq kbc -aLG -aYO -aLG +bqc +ubQ +bqc bbs bdw bfo @@ -129311,9 +129949,9 @@ lJu bEd bFs bbs -buH -iEb -bIT +uPE +ekM +pOW fzq oXb cft @@ -129335,9 +129973,9 @@ gEo scy kPJ bSJ -vuR -ebO -vTK +gEh +pFr +tcO aaa aaa aaa @@ -129373,13 +130011,13 @@ aag aag aag aag -pVZ -xlX -xlX -ePs -xlX -xlX -hSu +fTl +oxy +oxy +tIN +oxy +oxy +kiR owg owg uKV @@ -129392,9 +130030,9 @@ eNi eNi eNi eNi -alG -aDZ -apf +fes +kzR +jhm wDM aOH aJf @@ -129410,9 +130048,9 @@ xBe xBe xBe xBe -alG -aYj -wSk +fes +vpi +rXV jWh jWh jlQ @@ -129422,16 +130060,16 @@ thV uWV uIv oSx -vuv -gHg -vuv -vuv -hlI -qiI -nho -cxo -trW -qMu +kNq +oUx +kNq +kNq +fJp +ekz +hqu +jei +qDS +fVe aag aag aag @@ -129466,9 +130104,9 @@ aaa aaa aaa aaa -wVb -vjx -eFH +emA +jkN +ikT aLT aLT aLT @@ -129490,9 +130128,9 @@ ngA koC koC xGE -aem -mUa -aLG +jno +fqw +bqc lgy ccb xYP @@ -129514,9 +130152,9 @@ rXk xYP jew laU -buH -jGN -bJb +uPE +dEL +rzy uCM lNw eFj @@ -129538,9 +130176,9 @@ bSJ bSJ bSJ bSJ -vuR -tAR -vTK +gEh +kMR +tcO aaa aaa aaa @@ -129576,13 +130214,13 @@ aah aag aag aag -pVZ -alT -iHF -voA -aRV -aRV -psm +fTl +pWw +hbE +cbc +qIa +qIa +taw ptK afX ptK @@ -129595,9 +130233,9 @@ olO wiG nWN eNi -alG -aYj -apd +fes +vpi +iZz wDM wDM wDM @@ -129613,9 +130251,9 @@ aJh arq ufx alR -alG -aYj -apf +fes +vpi +jhm jWh hSk hSk @@ -129625,16 +130263,16 @@ upR fCL uIv vVw -lwi -cxo -iEs -cxo -fbx -fbx -fbx -kfX -qVU -qMu +iSV +jei +oYr +jei +aPO +aPO +aPO +gtQ +wiO +fVe aag aag aag @@ -129669,14 +130307,14 @@ aaa aaa aaa aaa -wVb -fTR -hlz -hlz -hlz -hlz -fTR -hlz +emA +hyb +jEM +jEM +jEM +jEM +hyb +jEM aLT cjc cjc @@ -129693,9 +130331,9 @@ jOx bpC qDq aQL -jKA -aYT -beB +nYR +bww +lhs lgy bsG xYP @@ -129717,9 +130355,9 @@ lJu xYP hLI laU -drt -rZF -bJz +gyw +uNQ +gyw bJC oXb cfo @@ -129736,14 +130374,14 @@ kPJ fXN fXN bSJ -rHs -ngs -vuR -cAH -cAH -cAH -fKl -vTK +enY +srl +gEh +xhO +xhO +xhO +jay +tcO aaa aaa aaa @@ -129779,13 +130417,13 @@ aaa aad aag aag -pVZ -anu -auD -tIU -nEG -jXY -psm +fTl +prX +oYs +odG +biC +qlu +taw bKm hsr mDJ @@ -129798,9 +130436,9 @@ ueG rPt jyE eNi -alG -aYj -apd +fes +vpi +iZz hwC rcS amx @@ -129816,9 +130454,9 @@ aJi azs atq alR -alG -aYj -apd +fes +vpi +iZz jlQ tst uUe @@ -129828,16 +130466,16 @@ pZK fCL uIv lFA -vuv -cxo -vuv -vuv -cxo -cxo -vqO -sXK -tbD -qMu +kNq +jei +kNq +kNq +jei +jei +gYU +oGi +dVR +fVe aag aag ajZ @@ -129872,14 +130510,14 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -hlz -eFH -hlz +emA +emA +emA +emA +emA +jEM +ikT +jEM aLT iPS vAE @@ -129896,9 +130534,9 @@ jOx bpC ksp aQL -aLG -bSY -aWR +bqc +wqO +wxD cau bCG cgE @@ -129918,11 +130556,11 @@ xYP jmK hcw cgE -hLI +yht blq -bIT -jHe -bIS +ddL +eZR +uPE bJC kIP cfo @@ -129939,14 +130577,14 @@ oer vSW scy bSJ -tSr -pUY -lGr -vTK -vTK -vTK -vTK -vTK +mCE +qid +hCq +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -129982,13 +130620,13 @@ aaa aad aag aag -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ +fTl +fTl +fTl +fTl +fTl +fTl +fTl qJx hsr mDJ @@ -130001,9 +130639,9 @@ iKD rPt rPt eNi -alG -aYj -apd +fes +vpi +iZz alR amA atq @@ -130019,9 +130657,9 @@ aJj aMD atq alR -alG -aYj -apd +fes +vpi +iZz jlQ tZZ gLz @@ -130031,16 +130669,16 @@ ovi fCL lYk bYn -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu +fVe +fVe +fVe +fVe +fVe +fVe +fVe +fVe +fVe +fVe aag aag ajZ @@ -130079,10 +130717,10 @@ aaa aaa aaa aaa -wVb -rVo -eFH -hlz +emA +oPF +ikT +jEM aLT meY meY @@ -130099,9 +130737,9 @@ pyl pDt aQL aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccN xYP @@ -130121,11 +130759,11 @@ wLm wLm lJu xYP -hLI +wbV laU -eUz -iEb -bIT +uPE +vuV +uPE bJC bJC vLA @@ -130142,10 +130780,10 @@ oer oer oer oer -ybr -vuR -ebO -vTK +uVp +gEh +pFr +tcO aaa aaa aaa @@ -130204,9 +130842,9 @@ eNi eNi gIh eNi -geH -aDZ -apd +iIQ +kzR +iZz alR amA atq @@ -130222,9 +130860,9 @@ amA ayl amx alR -alG -aYj -apd +fes +vpi +iZz jWh jmQ vcu @@ -130282,18 +130920,18 @@ aaa aaa aaa aaa -wVb -cbZ -eFH -eFH -eFH -eFH -eFH -eFH -eFH -hlz -eFH -hlz +emA +wtn +ikT +ikT +ikT +ikT +ikT +ikT +ikT +jEM +ikT +jEM aQL qZX qZX @@ -130302,9 +130940,9 @@ jOx bpC qZX aQL -aLG -aYO -aLG +bqc +ubQ +bqc lgy ccb xYP @@ -130326,9 +130964,9 @@ rXk xYP jew laU -buH -iEb -bIT +uPE +vuV +uPE bJC lbf cfo @@ -130337,18 +130975,18 @@ lbf lbf lbf bJC -vuR -oyG -vuR -cAH -rDi -pXn -cAH -vuR -vuR -vuR -vuR -vTK +gEh +cmN +gEh +xhO +dzX +foS +xhO +gEh +gEh +gEh +gEh +tcO aaa aaa aaa @@ -130407,9 +131045,9 @@ aWb dyK vzK wYY -alG -aDZ -apd +fes +kzR +iZz alR amA atq @@ -130425,9 +131063,9 @@ aJl amx atq alR -alG -aYj -apd +fes +vpi +iZz jlQ snE sGL @@ -130485,18 +131123,18 @@ aaa aaa aaa aaa -wVb -bbv -hJb -hlz -hlz -hlz -hlz -wZH -hlz -hlz -hlz -hlz +emA +pGj +uoj +jEM +jEM +jEM +jEM +fBo +jEM +jEM +jEM +jEM aQL qDq qDq @@ -130505,9 +131143,9 @@ jOx bpC qDq bTb -aLG -aYO -aLG +bqc +ubQ +bqc bbs ccd ccN @@ -130529,9 +131167,9 @@ lJu huK jeQ bbs -buH -iEb -bIT +uPE +vuV +uPE xSw oXb cfo @@ -130540,18 +131178,18 @@ oXb oXb oXb bJC -vuR -cAH -vuR -cAH -vuR -dcS -cAH -vuR -cAH -cAH -xZK -vTK +gEh +xhO +gEh +xhO +gEh +hWH +xhO +gEh +xhO +xhO +rhD +tcO aaa aaa aaa @@ -130610,9 +131248,9 @@ tii eJX sAC wYY -alG -aDZ -apd +fes +kzR +iZz alR amA amx @@ -130628,9 +131266,9 @@ aJk amx atq alR -alG -aYj -apd +fes +vpi +iZz jlQ tZZ cBj @@ -130688,18 +131326,18 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -wVb -eFH -rdK +emA +emA +emA +emA +emA +emA +emA +emA +emA +emA +ikT +oBr aQL qDq qDq @@ -130708,9 +131346,9 @@ osA cHl cHl bTb -beB -aYT -beB +lhs +bww +lhs bbs cdp cdp @@ -130732,9 +131370,9 @@ fJO fJO fJO bbs -bJz -cbS -bHW +gyw +uNQ +gyw xSw ejo ejo @@ -130743,18 +131381,18 @@ oXb oXb oXb bJC -cAH -vuR -vuR -vTK -vTK -hTk -vTK -vTK -vTK -vTK -vTK -vTK +xhO +gEh +gEh +tcO +tcO +ucy +tcO +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -130813,9 +131451,9 @@ sjj fzP sAC wYY -alG -aYj -apd +fes +vpi +iZz alR amA atq @@ -130831,9 +131469,9 @@ xEO xEO lnP alR -alG -aYj -apf +fes +vpi +jhm jWh qLs qLs @@ -130900,9 +131538,9 @@ aaa aaa aaa aaa -wVb -iDm -fTR +emA +qGC +hyb aQL ksp ksp @@ -130911,33 +131549,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 -iEb -bIT +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 @@ -130946,10 +131584,10 @@ kIP qer kIP bJC -cAH -pFP -ebO -vTK +xhO +wYd +pFr +tcO aaa aaa aaa @@ -131016,9 +131654,9 @@ fcM uzE qsL nim -qhc -ajP -apd +prV +gqf +iZz alR amA atq @@ -131034,9 +131672,9 @@ iWR iWR kbx alR -alG -aYj -apd +fes +vpi +iZz jWh jWh jlQ @@ -131103,9 +131741,9 @@ aaa aaa aaa aaa -wVb -eFH -hlz +emA +ikT +jEM aQL aQL aQL @@ -131114,33 +131752,33 @@ ksp rou ksp aQL -aLG -aZl -tBF -sOm -tBF -aQt -bhn -aQt -aQt -aQt -crW -aQt -aQt -mji -buI -buI -bUz -buI -buI -buI -bCE -buI -bFu -cbE -bFu -bIl -bIX +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 @@ -131149,10 +131787,10 @@ bJC bJC bJC bJC -vuR -vuR -vuR -vTK +gEh +gEh +gEh +tcO aaa aaa aaa @@ -131219,9 +131857,9 @@ xlC gyO kTN eNi -alJ -aYj -apd +pvE +vpi +iZz alR amA atq @@ -131237,14 +131875,14 @@ xEO xEO aOV alR -alG -aYj -apd +fes +vpi +iZz jWh -kUw -dod -eNv -rxV +wFQ +bop +vyI +jnp thV fCL uIv @@ -131306,56 +131944,56 @@ aaa aaa aaa aaa -wVb -eFH -hlz -hlz -gjN -hlz -rdK -rdK -rdK -rdK -rdK -tfl -aZm -aWR -buU -aWR -bjb -bal -bjb -bjb -aWR -bNX -aWR -aWR -bsV -buJ -buJ -bUG -buJ -bzK -bzK -bCF -bzK -buJ -cdZ -buJ -buJ -jMb +emA +ikT +jEM +jEM +hYf +jEM +oBr +oBr +oBr +oBr +oBr +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 bJC bJC -cAH -cAH -cAH -vuR -cAH -wZT -vTK +xhO +xhO +xhO +gEh +xhO +xfq +tcO aaa aaa aaa @@ -131422,9 +132060,9 @@ oNb iFC qAA eNi -alG -aDZ -apd +fes +kzR +iZz alR arK atc @@ -131440,15 +132078,15 @@ aJq aMG aOW alR -alG -aYj -apd +fes +vpi +iZz jWh -tZP -hSk -hSk +bXy +bop +vyI +vyI vyI -thV fCL uIv hSk @@ -131509,56 +132147,56 @@ aaa aaa aaa aaa -wVb -jmg -hlz -eFH -eFH -hlz -hlz -gwF -eFH -eFH -rdK -rdK -aZn -rdK -rdK -bCW -bEH -bHt -bJi -bKE -bKE +emA +kAv +jEM +ikT +ikT +jEM +jEM +gCu +ikT +ikT +oBr +oBr +qPn +oBr +oBr +jxX +knl +pum +jAj +kKY +kKY oJk lNR lNR -lNR +oJk lNR lNR oJk -bWV -jkd -bYE -bZz -cav -bBa -haq -haq -lAA -haq -haq -cAH -cAH -cAH -cAH -cAH -cAH -cAH -cAH -cAH -ngs -vTK +cNm +oGh +far +vDo +nnr +lQl +ljv +ljv +sUi +ljv +ljv +xhO +xhO +xhO +xhO +xhO +xhO +xhO +xhO +xhO +srl +tcO aaa aaa aaa @@ -131625,9 +132263,9 @@ eNi eNi eNi eNi -aEp -lIw -aEp +fes +kzR +iZz alO alO alO @@ -131643,14 +132281,14 @@ alO alO alO alO -aEp -lIw -aEp +fes +vpi +iZz jWh -nDL -vyI +wFQ +bop vyI -wTJ +wKc thV uWV uIv @@ -131712,22 +132350,22 @@ aaa aaa aaa aaa -wVb -epA -wDm -hlz -hlz -hlz -hlz -gwF -hlz -hlz -rdK -aYc -hlz -hlz -rdK -rdK +emA +qFS +pPG +jEM +jEM +jEM +jEM +gCu +jEM +jEM +oBr +sRM +jEM +jEM +oBr +oBr sqg rPQ sqg @@ -131745,23 +132383,23 @@ oJk sqg mgu sqg -haq -haq -cAH -vuR -cAH -cAH -vuR -vuR -vuR -cAH -cAH -cAH -cAH -vuR -sIV -hBU -vTK +ljv +ljv +xhO +gEh +xhO +xhO +gEh +gEh +gEh +xhO +xhO +xhO +xhO +gEh +aEr +keO +tcO aaa aaa aaa @@ -131828,9 +132466,9 @@ dWX owg owg ptK -aGD -aPb -apj +bZq +hfc +jgS aqq aPa eky @@ -131846,9 +132484,9 @@ eky eky aPa aqq -aGD -aPb -kff +bZq +hfc +lBf jWh xXa xXa @@ -131915,22 +132553,22 @@ aaa aaa aaa aaa -wVb -pIk -bNT -wul -eFH -eFH -eFH -ybS -wul -hlz -hlz -hlz -hlz -eFH -eFH -rdK +emA +twp +iyE +ecb +ikT +ikT +ikT +ctp +ecb +jEM +jEM +jEM +jEM +ikT +ikT +oBr fcS gdJ oyR @@ -131948,23 +132586,23 @@ oJk ppn nAY cjt -haq -pFM -hzV -vuR -vuR -vuR -cAH -fXd -cAH -vuR -cAH -vuR -vuR -rgA -brX -mfI -vTK +ljv +ceY +gIm +gEh +gEh +gEh +xhO +wra +xhO +gEh +xhO +gEh +gEh +sOD +eMx +xgr +tcO aaa aaa aaa @@ -132031,9 +132669,9 @@ keR jhx keR dwI -aTS -wqq -agJ +kjX +jae +tGW hal uYg nau @@ -132049,9 +132687,9 @@ uYg nau uYg hal -aGC -wqq -aTS +rrG +jae +kjX mPh soP tWi @@ -132118,22 +132756,22 @@ aaa aaa aaa aaa -wVb -wVb -wVb -wVb -wVb -wVb -wVb +emA +emA +emA +emA +emA +emA +emA vgw sqg sqg sqg mpP sqg -rdK -iDm -rdK +oBr +qGC +oBr fcS gdJ oyR @@ -132151,23 +132789,23 @@ oJk pkA nAY cjt -haq -vuR -haq +ljv +gEh +ljv sqg mpP aep aep aep dKL -vTK -vTK -vTK -vTK -vTK -vTK -vTK -vTK +tcO +tcO +tcO +tcO +tcO +tcO +tcO +tcO aaa aaa aaa @@ -132234,9 +132872,9 @@ kPG kPG cVw ptK -aIe -anR -lNl +iOP +xjI +fzm aqq eky aNl @@ -132252,9 +132890,9 @@ eky aNl eky aqq -aIe -iYj -lNl +iOP +xSl +fzm jWh tim uWV @@ -132335,9 +132973,9 @@ sqg rwB lKM sqg -vsV -rdK -fcS +nSq +oBr +eSc gdJ cjt pRZ @@ -132354,8 +132992,8 @@ pRZ fcS nAY jOE -haq -mHR +ljv +mPc sqg qEL vmE @@ -132437,9 +133075,9 @@ ucp cIW ptK ptK -psm -dKm -psm +qDX +sDe +qDX aHe jlT exi @@ -132455,9 +133093,9 @@ eky ins wRP aHe -vuv -vuv -vuv +eZm +eZm +eZm jWh jWh sWC @@ -132538,8 +133176,8 @@ sqg eKy wQA sqg -hlz -rdK +jEM +oBr uYn jaM oXM @@ -132557,8 +133195,8 @@ mkP muQ ojh nxx -haq -cAH +ljv +xhO sqg gEC skC @@ -132640,9 +133278,9 @@ gPc trB exy ptK -psm -psm -psm +fLl +fLl +fLl eky eky aNl @@ -132658,9 +133296,9 @@ eky aNl eky rqj -vuv -nfS -emx +eZm +jYm +aZI jWh duz hXG @@ -132843,9 +133481,9 @@ eet fcP pDh ptK -xlX -xlX -hSu +aqZ +aqZ +ptQ aMT aMT dPm @@ -132861,9 +133499,9 @@ okg dPm aMT aMT -iEs -cxo -cxo +hbp +mwP +mwP jWh axR mIP @@ -133046,9 +133684,9 @@ wxj lht rYv ptK -dmQ -jBB -psm +haO +pKB +fLl svf arV wZX @@ -133064,9 +133702,9 @@ eky wZX arV vUh -vuv -xct -cxo +eZm +xUy +mwP jWh vpv pgw @@ -133249,9 +133887,9 @@ ptK afX ptK ptK -dmQ -psm -psm +haO +fLl +fLl lDn arV wZX @@ -133267,9 +133905,9 @@ eky wZX arV wkA -vuv -vuv -cxo +eZm +eZm +mwP jWh jWh kLc @@ -133444,16 +134082,16 @@ bdH uMc bNM ofK -psm -kSd -dmQ -tZm -dmQ -xlX -hWU -dmQ -aeq -psm +fLl +uxl +haO +ebf +haO +aqZ +tot +haO +qqS +fLl xrq vVu arV @@ -133471,16 +134109,16 @@ wZX arV oIt xrq -vuv -ahb -cxo -nJy -boC -cxo -iwh -kfv -vGr -vuv +eZm +qHG +mwP +xQW +vJR +mwP +hkz +ckj +oaw +eZm lbB uIv pql @@ -133647,16 +134285,16 @@ bdH uMc bNM ofK -psm -kSd -dmQ -nwu -dmQ -xlX -rwb -dmQ -jXY -psm +fLl +uxl +haO +uLG +haO +aqZ +pbo +haO +xLn +fLl vlk mKy aMT @@ -133674,16 +134312,16 @@ sQO aMT wNS vlk -vuv -woM -nqD -cxo -boC -cxo -qMf -wUN -jgC -vuv +eZm +oHg +uiK +mwP +vJR +mwP +jrB +eoK +xTG +eZm lbB uIv pql @@ -133756,8 +134394,8 @@ aWZ qAB gEC sqg -rEb -qXR +aIh +eTb kkW iwf uFg @@ -133775,8 +134413,8 @@ vXo gWu xMl lft -qXR -rEb +eTb +aIh sqg siN cjt @@ -133850,21 +134488,21 @@ bdH uMc bNM rtd -hSu -xlX -xlX -xlX -xlX -xlX -aiE -dmQ -atD -psm -psm +ptQ +aqZ +aqZ +aqZ +aqZ +aqZ +leM +haO +iYm +fLl +fLl vjd -aRp -jBX -akS +eky +wZX +vUh aHe oxU bsy @@ -133872,21 +134510,21 @@ oir gzw shh aHe -tKf -jBX -aRp +svf +wZX +eky quy -vuv -vuv -myC -crP -cxo -fbx -fbx -fbx -fbx -fbx -iEs +eZm +eZm +bjt +eIN +mwP +ksw +ksw +ksw +ksw +ksw +hbp uWV uIv pql @@ -133959,8 +134597,8 @@ ggQ pYS ivS sqg -jqT -qXR +ppM +eTb hbs vZU elx @@ -133978,8 +134616,8 @@ nYn elx mDL fSF -qXR -jqT +eTb +ppM sqg lvh iks @@ -134053,17 +134691,17 @@ bdH cuC htb pfc -psm -psm -psm -psm -pPz -xlX -xlX -xlX -xlX -xlX -hSu +fLl +fLl +fLl +fLl +rht +aqZ +aqZ +aqZ +aqZ +aqZ +ptQ qYG atM bGc @@ -134079,17 +134717,17 @@ atM bGc atK qYG -iEs -fbx -fbx -jaj -fbx -boC -hPg -vuv -vuv -vuv -vuv +hbp +ksw +ksw +rHB +ksw +vJR +rPq +eZm +eZm +eZm +eZm jAJ lAu bYn @@ -134162,8 +134800,8 @@ aep mkL gEC sqg -jqT -qXR +ppM +eTb hsy hsy baJ @@ -134181,8 +134819,8 @@ foC kph hsy hsy -qXR -oGF +eTb +eUe sqg wWl trh @@ -134259,14 +134897,14 @@ tgK tfb wuT lMx -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ -pVZ +gJF +gJF +gJF +gJF +gJF +gJF +gJF +gJF aPw avu mhG @@ -134282,14 +134920,14 @@ dxK dPC aMU aPw -qMu -qMu -qMu -qMu -qMu -qMu -qMu -qMu +wxy +wxy +wxy +wxy +wxy +wxy +wxy +wxy jFY qKY jHL @@ -134365,27 +135003,27 @@ wpS fZA fEe sqg -jqT -jqT +ppM +ppM hsy shL uXk mlF hsy -hgV -osM -ghX +ckZ +hmv +hmv dTS -okQ -xIO -nxZ +hmv +hmv +ckZ hsy tos uXk tkn hsy -rEb -jqT +aIh +ppM sqg fEe nqW @@ -134568,8 +135206,8 @@ vgw vgw vgw vgw -rEb -rEb +aIh +aIh hsy wed uXk @@ -134587,8 +135225,8 @@ tos uXk wed hsy -pJt -hAY +qBS +lib vgw vgw vgw @@ -134770,11 +135408,11 @@ aah aag aag aag -gXZ -gBM -jqT +nic +tmQ +ppM hsy -npn +txS bVN oGJ xpZ @@ -134788,11 +135426,11 @@ coH oTO uqh iAE -gNG +sct hsy -nNC -iuA -gXZ +iWa +fZR +nic aag aag aag @@ -134973,29 +135611,29 @@ bdH aad aag aag -gXZ -rEb -rEb +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 -rEb -rEb -gXZ +aIh +aIh +nic aag aag ajZ @@ -135176,29 +135814,29 @@ bdH aad aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy -ebt +igs nCn oGJ uSW kzO vaZ kYL -dLi +hmv sCV rjO suY pdK uqh pJr -fbH +slv hsy -rEb -rEb -gXZ +aIh +aIh +nic aag aag ajZ @@ -135379,29 +136017,29 @@ bdH aad aag aag -gXZ -rEb -jqT +nic +aIh +ppM hsy hsy -vVX +wTB mlF uXk hmw gSa mtZ -nbv +hmv fQn wSV ulp uXk tos -fbH +slv hsy hsy -jqT -oGF -gXZ +ppM +eUe +nic aag aag ajZ @@ -135582,29 +136220,29 @@ bdH aad aag aag -gXZ -rEb -rEb -rEb +nic +aIh +aIh +aIh hsy -hwd +ygP mlF hsy -kag +hcX fQn mtZ -xxl +hmv fQn mtZ -dKc +hmv hsy beL -hwd +ygP hsy -cGI -rEb -rEb -gXZ +cWb +aIh +aIh +nic aag aag ajZ @@ -135785,29 +136423,29 @@ bdH aad aag aag -gXZ -jqT -jqT -jqT +nic +ppM +ppM +ppM hsy ylh opH hsy -kJn +pvI fQn qoR aPU rjO mtZ -rDB +njS hsy iEw ylh hsy -xgZ -jqT -xgZ -gXZ +dDT +ppM +dDT +nic aag aag ajZ @@ -135988,29 +136626,29 @@ bdH aad aag aag -gXZ -gXZ -nTi -rEb +nic +nic +wsw +aIh hsy ylh mlF hsy -nFM +hmv eZp kzO pzM hip ptZ -urW +hmv hsy tos ylh hsy -pJt -uTa -gXZ -gXZ +qBS +piJ +nic +nic aag aag ajZ @@ -136192,9 +136830,9 @@ aad aag aag aag -gXZ -pJt -hAY +nic +qBS +lib hsy hsy suJ @@ -136210,9 +136848,9 @@ hsy wdv hsy hsy -fiI -jqT -gXZ +yjE +ppM +nic aag aag aag @@ -136395,9 +137033,9 @@ aad aag aag aag -gXZ -rEb -pRY +nic +aIh +vsi hsy uiC sIr @@ -136413,9 +137051,9 @@ rlc hfb hUk hsy -jqT -iuA -gXZ +ppM +fZR +nic aag aag aag @@ -136598,9 +137236,9 @@ aad aag aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy thc sIr @@ -136616,9 +137254,9 @@ pAm sIr fZl hsy -nYC -rEb -gXZ +mxV +aIh +nic aag aag aag @@ -136801,9 +137439,9 @@ aad aag aag aag -gXZ -rEb -rEb +nic +aIh +aIh hsy tIe uAK @@ -136819,9 +137457,9 @@ bVv nJa jPd hsy -jqT -htP -gXZ +ppM +eeC +nic aag aag aag @@ -137004,9 +137642,9 @@ aad aag aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy dPH sov @@ -137022,9 +137660,9 @@ pAm fZl oex hsy -rEb -rEb -gXZ +aIh +aIh +nic aag aag aag @@ -137207,9 +137845,9 @@ aad aag aag aag -gXZ -rEb -rEb +nic +aIh +aIh hsy rBv sov @@ -137225,9 +137863,9 @@ pAm fZl snt hsy -jqT -jqT -gXZ +ppM +ppM +nic aag aag aag @@ -137410,9 +138048,9 @@ aad aag aag aag -gXZ -jqT -jqT +nic +ppM +ppM hsy fqW qYq @@ -137428,9 +138066,9 @@ mQn wQD fqW hsy -rEb -rEb -gXZ +aIh +aIh +nic aag aag aag @@ -137613,9 +138251,9 @@ aad aag aag aag -gXZ -rEb -jqT +nic +aIh +ppM hsy hsy hsy @@ -137631,9 +138269,9 @@ hsy hsy hsy hsy -jqT -jqT -gXZ +ppM +ppM +nic aag aag aag @@ -137816,11 +138454,11 @@ aad aag aag aag -gXZ -rEb -jqT -lhW -lAU +nic +aIh +ppM +csd +dDJ hsy haz fQn @@ -137832,11 +138470,11 @@ pzM mtZ haz hsy -lAU -qqW -rEb -rEb -gXZ +dDJ +rXH +aIh +aIh +nic aag aag aag @@ -138019,11 +138657,11 @@ aad aag aag aag -gXZ -rEb -rEb -rEb -rEb +nic +aIh +aIh +aIh +aIh hsy haz pLt @@ -138035,11 +138673,11 @@ mZL lOX haz hsy -gfs -rEb -rEb -rEb -gXZ +fpi +aIh +aIh +aIh +nic aag aag aag @@ -138222,11 +138860,11 @@ aad aag aag aag -gXZ -gXZ -fBd -uTa -uTa +nic +nic +mem +piJ +piJ hsy mkI aPS @@ -138238,11 +138876,11 @@ nop aPS ddf hsy -juF -jqT -iuA -gXZ -gXZ +atS +ppM +fZR +nic +nic aag aag aag @@ -138426,10 +139064,10 @@ aag aag aag aag -gXZ -rEb -jqT -fYN +nic +aIh +ppM +sER hsy hsy hsy @@ -138441,10 +139079,10 @@ hsy hsy hsy hsy -rEb -rEb -rEb -gXZ +aIh +aIh +aIh +nic aag aag aag @@ -138629,25 +139267,25 @@ aag aag aag aag -gXZ -rEb -jqT -rEb -jqT -hWS -rEb -hJN -jqT -jqT -jqT -hJN -rEb -cyy -jqT -jqT -jqT -rEb -gXZ +nic +aIh +ppM +aIh +ppM +puT +aIh +xrg +ppM +ppM +ppM +xrg +aIh +erE +ppM +ppM +ppM +aIh +nic aag aag aag @@ -139202,7 +139840,7 @@ fEN cqm gTH qit -rna +ebN qQS gwn pfT @@ -139400,11 +140038,11 @@ sbJ sbJ sbJ daz -jtj -avK -avK +rna +clw +qQS sKY -avK +qQS bIp fKe dDp @@ -139806,12 +140444,12 @@ daz daz kfU daz -rna -rna +ebN +ebN lnS uVv yit -rna +ebN cxc kBy kBy @@ -140001,7 +140639,7 @@ lmz lmz daz daz -scS +eKJ yaZ ffE hZj @@ -140010,13 +140648,13 @@ daz daz daz sGZ -rna -rna -roH ebN ebN +roH ebN daz +daz +daz wnh wnh daz @@ -140415,14 +141053,14 @@ ffE ffE jqP cLo -vfB +clw viB dIi qLS -vfB +erN wkM jvB -jvB +jtj ieF ieF pJR @@ -140817,18 +141455,18 @@ eKJ yaZ ffE hZj -mUC +clw daz daz daz tHu -rna -rna -gXs ebN ebN +gXs ebN daz +daz +daz wnh wnh daz @@ -141024,12 +141662,12 @@ daz daz sTV daz -rna -rna +ebN +ebN gbg uVv -erN -rna +lFq +ebN qQS kBy kBy @@ -141430,11 +142068,11 @@ sbJ sbJ sbJ daz -jtj -avK -avK +rna +clw +qQS aCd -avK +qQS mFN igr sEK @@ -141638,7 +142276,7 @@ rCi gba mUz our -rna +ebN cxc kBy kBy diff --git a/maps/map_files/USS_Runtime/USS_Runtime.dmm b/maps/map_files/USS_Runtime/USS_Runtime.dmm index aec89c5882dd..3ffdaf8a1814 100644 --- a/maps/map_files/USS_Runtime/USS_Runtime.dmm +++ b/maps/map_files/USS_Runtime/USS_Runtime.dmm @@ -92,7 +92,7 @@ }, /area/event) "z" = ( -/obj/effect/landmark/start/pilot, +/obj/effect/landmark/start/pilot/dropship_pilot, /turf/open/floor/almayer{ icon_state = "plating" }, @@ -145,6 +145,12 @@ icon_state = "plating" }, /area/event) +"M" = ( +/obj/effect/landmark/start/pilot/cas_pilot, +/turf/open/floor/almayer{ + icon_state = "plating" + }, +/area/event) "N" = ( /obj/effect/landmark/start/nurse, /turf/open/floor/almayer{ @@ -289,7 +295,7 @@ a A l L -b +M b b b 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 917759783a2a..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,73 +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 - }, -/turf/open/floor{ - dir = 5; - icon_state = "whitegreen" - }, -/area/whiskey_outpost/inside/hospital) "fl" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/sentry, @@ -1926,16 +1866,6 @@ icon_state = "floor_plate" }, /area/whiskey_outpost/inside/cic) -"gX" = ( -/obj/structure/surface/table/reinforced/prison, -/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 = 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 1e78347c1721..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{ - 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{ - 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" = ( -/obj/effect/attach_point/crew_weapon/dropship1{ - attach_id = 9 +"PA" = ( +/obj/effect/attach_point/crew_weapon/dropship1/floor{ + 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 5a733f6a9e9b..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{ - 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{ - 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{ - 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..3095517f4bac 100644 --- a/maps/shuttles/escape_shuttle_n.dmm +++ b/maps/shuttles/escape_shuttle_n.dmm @@ -1,48 +1,64 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( +"g" = ( +/turf/closed/shuttle/escapepod, +/area/shuttle/escape_pod) +"i" = ( /turf/closed/shuttle/escapepod{ - icon_state = "wall6" + icon_state = "wall1" }, /area/shuttle/escape_pod) -"c" = ( -/obj/docking_port/mobile/crashable/escape_shuttle/n, +"k" = ( +/obj/structure/machinery/door/airlock/evacuation{ + dir = 2; + name = "\improper Evacuation Airlock PU-3" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/shuttle/escape_pod) +"l" = ( /turf/closed/shuttle/escapepod{ - icon_state = "wall9" + icon_state = "wall2" + }, +/area/shuttle/escape_pod) +"n" = ( +/turf/open/shuttle/escapepod{ + icon_state = "floor0" }, /area/shuttle/escape_pod) -"f" = ( +"p" = ( /obj/structure/machinery/computer/shuttle/escape_pod_panel{ pixel_y = 30 }, /turf/open/shuttle/escapepod{ - icon_state = "floor7" + icon_state = "floor2" }, /area/shuttle/escape_pod) -"g" = ( -/turf/closed/shuttle/escapepod, -/area/shuttle/escape_pod) -"i" = ( +"v" = ( +/obj/docking_port/mobile/crashable/escape_shuttle/n, /turf/closed/shuttle/escapepod{ - icon_state = "wall1" + icon_state = "wall9" }, /area/shuttle/escape_pod) -"j" = ( +"x" = ( +/obj/structure/machinery/cryopod/evacuation, /turf/open/shuttle/escapepod{ - icon_state = "floor9" + icon_state = "floor4" }, /area/shuttle/escape_pod) -"k" = ( -/obj/structure/machinery/door/airlock/evacuation{ - dir = 2; - name = "\improper Evacuation Airlock PU-3" +"z" = ( +/obj/structure/machinery/cryopod/evacuation, +/obj/structure/sign/safety/cryo{ + pixel_x = 8; + pixel_y = -28 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/turf/open/shuttle/escapepod{ + icon_state = "floor4" }, /area/shuttle/escape_pod) -"l" = ( -/turf/closed/shuttle/escapepod{ - icon_state = "wall2" +"D" = ( +/turf/open/shuttle/escapepod{ + dir = 4 }, /area/shuttle/escape_pod) "F" = ( @@ -50,9 +66,10 @@ icon_state = "wall3" }, /area/shuttle/escape_pod) -"H" = ( -/obj/structure/machinery/cryopod/evacuation, -/turf/open/shuttle/escapepod, +"K" = ( +/turf/closed/shuttle/escapepod{ + icon_state = "wall6" + }, /area/shuttle/escape_pod) "L" = ( /turf/closed/shuttle/escapepod{ @@ -64,19 +81,6 @@ icon_state = "wall11" }, /area/shuttle/escape_pod) -"V" = ( -/obj/structure/machinery/cryopod/evacuation, -/obj/structure/sign/safety/cryo{ - pixel_x = 8; - pixel_y = -35 - }, -/turf/open/shuttle/escapepod, -/area/shuttle/escape_pod) -"W" = ( -/turf/open/shuttle/escapepod{ - icon_state = "floor8" - }, -/area/shuttle/escape_pod) "Y" = ( /turf/closed/shuttle/escapepod{ icon_state = "wall4" @@ -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 99% rename from maps/templates/clf_ert_station.dmm rename to maps/templates/lazy_templates/clf_ert_station.dmm index 7347be914da2..908f8de06dcb 100644 --- a/maps/templates/clf_ert_station.dmm +++ b/maps/templates/lazy_templates/clf_ert_station.dmm @@ -954,6 +954,9 @@ /area/adminlevel/ert_station/clf_station) "vE" = ( /obj/structure/largecrate/supply/weapons/shotgun, +/obj/structure/platform/kutjevo{ + dir = 8 + }, /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) "vI" = ( @@ -1203,7 +1206,7 @@ /obj/structure/machinery/door/airlock/sandstone/runed/destroyable{ name = "\improper Strange Temple" }, -/turf/open/space/basic, +/turf/open/floor/sandstone/runed, /area/adminlevel/ert_station/clf_station) "BP" = ( /obj/structure/surface/table/reinforced, @@ -1378,6 +1381,17 @@ /obj/structure/flora/jungle/vines/heavy, /turf/open/gm/dirt, /area/adminlevel/ert_station/clf_station) +"Ia" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/structure/machinery/power/apc/antag{ + dir = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/adminlevel/ert_station/clf_station) "Ie" = ( /turf/open/gm/dirtgrassborder{ dir = 1; @@ -1914,9 +1928,6 @@ }, /turf/open/auto_turf/strata_grass/layer1, /area/adminlevel/ert_station/clf_station) -"Ub" = ( -/turf/closed/wall/mineral/sandstone/runed/decor, -/area/adminlevel/ert_station/clf_station) "Uj" = ( /obj/structure/closet/crate, /obj/item/clothing/head/welding, @@ -2168,14 +2179,14 @@ ax ax ax ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (2,1,1) = {" ax @@ -2210,14 +2221,14 @@ vI ZO LO ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (3,1,1) = {" ax @@ -2250,16 +2261,16 @@ Rg Rg Rg tJ -Ub +LO +ax +ax +ax +ax +ax +ax +ax +ax ax -KT -KT -KT -KT -KT -KT -KT -KT "} (4,1,1) = {" ax @@ -2294,14 +2305,14 @@ vI vI BC ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (5,1,1) = {" ax @@ -2334,16 +2345,16 @@ ax Rg Rg iO -Ub +LO +ax +ax +ax +ax +ax +ax +ax +ax ax -KT -KT -KT -KT -KT -KT -KT -KT "} (6,1,1) = {" ax @@ -2378,14 +2389,14 @@ Rg ZO LO ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (7,1,1) = {" ax @@ -2420,14 +2431,14 @@ Rg ax ax ax -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax "} (8,1,1) = {" KT @@ -2461,15 +2472,15 @@ HI ax ax ax -KT -KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax +ax +ax "} (9,1,1) = {" KT @@ -2505,13 +2516,13 @@ ax KT KT KT -KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax +ax "} (10,1,1) = {" KT @@ -2548,12 +2559,12 @@ KT KT KT KT -KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax +ax "} (11,1,1) = {" KT @@ -2591,11 +2602,11 @@ KT KT KT KT -KT -KT -KT -KT -KT +ax +ax +ax +ax +ax "} (12,1,1) = {" KT @@ -2634,10 +2645,10 @@ iG KT KT KT -KT -KT -KT -KT +ax +ax +ax +ax "} (13,1,1) = {" KT @@ -2676,10 +2687,10 @@ pk pk KT KT -KT -KT -KT -KT +ax +ax +ax +ax "} (14,1,1) = {" DN @@ -2718,10 +2729,10 @@ ON pk pk KT -KT -KT -KT -KT +ax +ax +ax +ax "} (15,1,1) = {" DN @@ -2762,8 +2773,8 @@ pk ax ax ax -KT -KT +ax +ax "} (16,1,1) = {" KT @@ -2804,8 +2815,8 @@ xL pk ax ax -KT -KT +ax +ax "} (17,1,1) = {" ax @@ -3006,7 +3017,7 @@ zO Ch ZI ZI -MQ +Ia mw mw LQ 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/lazy_templates/pizza_ert_station.dmm b/maps/templates/lazy_templates/pizza_ert_station.dmm new file mode 100644 index 000000000000..b154256c0459 --- /dev/null +++ b/maps/templates/lazy_templates/pizza_ert_station.dmm @@ -0,0 +1,6916 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ae" = ( +/obj/structure/machinery/door_control{ + id = "kitchen_pizza_time"; + name = "Main Kitchen Shutters"; + pixel_x = 28 + }, +/obj/structure/safe/floor, +/obj/item/spacecash/c1000, +/obj/item/spacecash/c100, +/obj/item/spacecash/c10, +/obj/item/spacecash/c10, +/obj/item/spacecash/c10, +/obj/item/spacecash/c10, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c100, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c50, +/obj/item/spacecash/c500, +/obj/item/spacecash/c500, +/obj/item/spacecash/c500, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"ah" = ( +/obj/structure/prop/invuln{ + desc = "An inflated membrane. This one is puncture proof. Wow!"; + icon = 'icons/obj/items/inflatable.dmi'; + icon_state = "wall"; + name = "Docking Umbilical" + }, +/obj/structure/blocker/invisible_wall, +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"am" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + pixel_x = -8; + layer = 2.97 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + anchored = 1; + layer = 2.97 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + pixel_x = 8; + layer = 2.97 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + layer = 4.1; + pixel_x = -4; + pixel_y = 18 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + layer = 4.1; + pixel_x = 4; + pixel_y = 18 + }, +/obj/item/reagent_container/food/drinks/cans/souto/cherry{ + layer = 4.2; + pixel_y = 36 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"an" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"ap" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"aq" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"aA" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"aD" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = 32 + }, +/obj/structure/sign/safety/manualopenclose{ + pixel_y = 14; + pixel_x = 32 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"aJ" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9; + pixel_x = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"aP" = ( +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"aS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out" + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = -32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = -32; + pixel_x = 15 + }, +/turf/open/floor/prison{ + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"bd" = ( +/obj/structure/prop/invuln{ + desc = "An inflated membrane. This one is puncture proof. Wow!"; + icon = 'icons/obj/items/inflatable.dmi'; + icon_state = "wall"; + name = "Docking Umbilical" + }, +/obj/structure/blocker/invisible_wall, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"bl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/corsat{ + icon_state = "retrosquareslight" + }, +/area/adminlevel/ert_station/pizza_station) +"bo" = ( +/obj/structure/machinery/shower{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"bB" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"bT" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/recharger, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"bU" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Central Fridge"; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"cq" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"cr" = ( +/obj/structure/surface/table/reinforced, +/obj/item/trash/plate{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/item/trash/plate{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -4 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"cE" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/ceramic_plate{ + pixel_y = 4; + pixel_x = -2 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"cI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"cK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"cL" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"cO" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"cP" = ( +/obj/structure/surface/table/reinforced, +/obj/item/trash/ceramic_plate{ + pixel_y = 5 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 8 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 11 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 14 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"dc" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"dh" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/diet/cranberry{ + pixel_y = 20; + layer = 3.03; + pixel_x = 4 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"dS" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Freezer" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"ec" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/birthdaycakeslice, +/obj/item/reagent_container/food/drinks/cans/dr_gibb{ + pixel_x = -8; + pixel_y = -6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"ef" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/snacks/sliceable/cheesewheel/mature{ + pixel_x = -1; + pixel_y = 7 + }, +/obj/item/reagent_container/food/snacks/sliceable/cheesewheel/mature{ + pixel_x = 1; + pixel_y = -5 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"eh" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/omelette{ + pixel_y = 2; + pixel_x = 1 + }, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 22; + pixel_x = -10 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 2; + pixel_x = -8 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 13; + pixel_x = 5 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"ei" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"eo" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/item/reagent_container/food/condiment/coldsauce, +/obj/item/reagent_container/food/condiment/coldsauce, +/obj/structure/machinery/light/small/blue{ + dir = 1; + pixel_y = 20; + pixel_x = 16 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"eD" = ( +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -11; + pixel_y = -1 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"eI" = ( +/obj/structure/platform/kutjevo/smooth, +/turf/open/space/basic, +/area/space) +"eK" = ( +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9; + pixel_x = 1 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 6 + }, +/area/adminlevel/ert_station/pizza_station) +"eQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"eW" = ( +/turf/open/mars_dirt{ + icon_state = "mars_cave_11" + }, +/area/space) +"fb" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/platform/kutjevo/smooth, +/turf/open/space, +/area/space) +"fg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"fj" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"fu" = ( +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"fE" = ( +/obj/structure/bed/sofa/south/grey/right, +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellowcorner" + }, +/area/adminlevel/ert_station/pizza_station) +"fH" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/space) +"fN" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/peach{ + pixel_y = 14; + pixel_x = -4 + }, +/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ + pixel_y = 9 + }, +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"fO" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"gb" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"gu" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/storage/box/drinkingglasses{ + layer = 2.97; + pixel_x = 12 + }, +/obj/item/reagent_container/food/drinks/shaker{ + pixel_x = -11; + layer = 2.97; + pixel_y = 2 + }, +/obj/item/reagent_container/food/drinks/bottle/rum{ + pixel_y = 2; + pixel_x = -2; + layer = 2.97 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"gy" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"gU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/turf/open/floor/prison{ + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"gV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/sign/safety/restrictedarea{ + pixel_y = 32 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"ha" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/turf/open/space, +/area/space) +"hb" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"hc" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"hg" = ( +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellowcorner" + }, +/area/adminlevel/ert_station/pizza_station) +"hv" = ( +/obj/structure/closet/crate/freezer/cooler, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/adminlevel/ert_station/pizza_station) +"hL" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"hR" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"hX" = ( +/obj/structure/bed/chair/bolted{ + pixel_y = -1; + buckling_y = -1 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"ic" = ( +/obj/item/trash/plate{ + pixel_y = 4 + }, +/obj/item/trash/plate{ + pixel_y = 6 + }, +/obj/item/trash/plate{ + pixel_y = 8 + }, +/obj/item/trash/plate{ + pixel_y = 10 + }, +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 14; + pixel_x = 11 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = 12 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"im" = ( +/obj/structure/bed/chair/janicart, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"ir" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"iw" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/tofukabob, +/obj/item/reagent_container/food/snacks/tofukabob{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/snacks/tofukabob{ + pixel_y = 5 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 6 + }, +/area/adminlevel/ert_station/pizza_station) +"iY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + layer = 2.5 + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = 32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = 32; + pixel_x = 15 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"ja" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space, +/area/space) +"jb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 5 + }, +/area/adminlevel/ert_station/pizza_station) +"jf" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 2 + }, +/obj/item/reagent_container/food/snacks/toastedsandwich{ + pixel_y = 11 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Kitchen Shutters"; + id = "kitchen_pizza_time" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/ert_station/pizza_station) +"jo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"jq" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/structure/mirror{ + pixel_x = 29 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_y = 13 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"jx" = ( +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + pixel_y = -6; + buckling_x = 7; + buckling_y = -6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"jy" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 12 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Kitchen Shutters"; + id = "kitchen_pizza_time" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/ert_station/pizza_station) +"jH" = ( +/turf/open/mars{ + icon_state = "mars_cave_10" + }, +/area/space) +"jT" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"jV" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"kz" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + dir = 1; + name = "\improper Kitchen" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"kW" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"la" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/machinery/door/poddoor/almayer{ + unacidable = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + locked = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"lg" = ( +/turf/closed/shuttle/ert{ + icon_state = "leftengine_1" + }, +/area/adminlevel/ert_station/pizza_station) +"lv" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/drinkingglass/cola{ + pixel_y = 8; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/shaker{ + pixel_y = 5; + pixel_x = -11 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"lw" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 22; + pixel_x = -10 + }, +/obj/item/clothing/mask/cigarette{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/item/ashtray/glass{ + pixel_x = -6 + }, +/obj/item/clothing/mask/cigarette{ + pixel_y = 8 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"lx" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space/basic, +/area/space) +"ly" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/grape{ + pixel_y = 16; + pixel_x = 9 + }, +/obj/item/reagent_container/food/drinks/cans/souto/lime{ + pixel_y = 12; + pixel_x = 5 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"lB" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/item/storage/briefcase/stowaway{ + pixel_y = 11; + layer = 4.11 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"lE" = ( +/obj/structure/machinery/vending/dinnerware, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"lH" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway_out" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"lJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N" + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/prison{ + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"lL" = ( +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"lN" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"ma" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/storage/donut_box{ + pixel_y = 10; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"me" = ( +/turf/open/mars_dirt{ + icon_state = "mars_cave_8" + }, +/area/space) +"mj" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_x = 16; + pixel_y = 20 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"mk" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = 16 + }, +/obj/structure/machinery/vending/snack{ + layer = 4.15; + pixel_y = 3 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"mt" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"mP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/fridge{ + pixel_x = 32 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"nf" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan5" + }, +/area/adminlevel/ert_station/pizza_station) +"nl" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"np" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox{ + pixel_y = 5 + }, +/obj/item/pizzabox{ + pixel_y = 8 + }, +/obj/item/pizzabox{ + pixel_y = 11 + }, +/obj/item/pizzabox{ + pixel_y = 14 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"ny" = ( +/obj/structure/closet/secure_closet/fridge/fish/stock, +/obj/structure/machinery/light/small/blue{ + pixel_x = 16 + }, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/adminlevel/ert_station/pizza_station) +"nA" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/tonic{ + pixel_x = -15; + pixel_y = 10 + }, +/obj/item/reagent_container/food/drinks/cans/tonic{ + pixel_y = 6; + pixel_x = -15 + }, +/obj/structure/machinery/computer/emails{ + dir = 1; + pixel_y = 2; + pixel_x = 3; + layer = 2.97 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"nB" = ( +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"nK" = ( +/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/structure/machinery/firealarm{ + pixel_x = -24 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"nU" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"nX" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"oh" = ( +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"ok" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"oo" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/prison{ + dir = 6; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"ov" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"oy" = ( +/obj/structure/bedsheetbin{ + icon_state = "linenbin-empty"; + name = "solar lattice"; + pixel_y = 6 + }, +/turf/open/floor/almayer_hull, +/area/space) +"oD" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/maint{ + locked = 1; + name = "STAFF ONLY"; + req_one_access = null; + req_one_access_txt = "101" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"oG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"oU" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"oX" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space/basic, +/area/space) +"pA" = ( +/obj/structure/machinery/vending/coffee{ + pixel_y = 18; + density = 0 + }, +/obj/structure/machinery/alarm{ + pixel_x = -32 + }, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"pD" = ( +/turf/open/mars_dirt{ + icon_state = "mars_cave_10" + }, +/area/space) +"pE" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/structure/mirror{ + pixel_x = 29 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"pS" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"pT" = ( +/obj/structure/closet/crate/freezer/rations, +/obj/item/reagent_container/food/snacks/meat/fish/crab, +/obj/item/reagent_container/food/snacks/meat/fish/crab, +/obj/item/reagent_container/food/snacks/meat/fish/squid, +/obj/item/reagent_container/food/snacks/meat/fish/squid, +/obj/item/reagent_container/food/snacks/meat/fish/squid, +/obj/item/reagent_container/food/snacks/meat/fish/squid/alt, +/obj/item/reagent_container/food/snacks/meat/fish/squid/alt, +/obj/item/reagent_container/food/snacks/meat/fish/squid/alt, +/obj/item/reagent_container/food/snacks/meat/fish, +/obj/item/reagent_container/food/snacks/meat/fish, +/obj/item/reagent_container/food/snacks/meat/fish, +/obj/item/reagent_container/food/snacks/meat/fish, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/adminlevel/ert_station/pizza_station) +"qb" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 1; + pixel_y = 9; + pixel_x = 2 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"qh" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_rightengine" + }, +/area/adminlevel/ert_station/pizza_station) +"qo" = ( +/obj/structure/closet{ + pixel_y = 16; + density = 0 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light/small{ + dir = 1; + pixel_x = 16; + pixel_y = 20 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"qq" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"qs" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/souto/diet/classic{ + pixel_x = -2 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"qt" = ( +/turf/open/mars_dirt{ + icon_state = "mars_cave_6" + }, +/area/space) +"qv" = ( +/obj/structure/surface/table/reinforced, +/obj/item/book/manual/chef_recipes, +/obj/item/clothing/head/chefhat, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"qy" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/juicer{ + pixel_y = 9 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"qA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"qU" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/obj/structure/machinery/alarm{ + pixel_y = 25 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"qX" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"rj" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/ceramic_plate{ + pixel_y = 1; + pixel_x = 2 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 9; + pixel_y = 14 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"rk" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"rA" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"rK" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"rL" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/machinery/door/poddoor/almayer{ + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + locked = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"rO" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + dir = 6; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"sa" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"se" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Bathroom"; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"sk" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"sl" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"sp" = ( +/obj/structure/surface/table/reinforced, +/obj/item/weapon/pizza_cutter, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"sx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"sB" = ( +/turf/open/mars_dirt{ + icon_state = "mars_cave_7" + }, +/area/space) +"sI" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/tool/kitchen/tray{ + pixel_y = 13; + pixel_x = 16 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 13; + pixel_x = 15 + }, +/obj/item/trash/plate{ + pixel_y = 3; + pixel_x = 1 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_y = 3; + pixel_x = -1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"sJ" = ( +/obj/structure/machinery/vending/ingredients, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"sW" = ( +/obj/structure/blocker/invisible_wall, +/obj/structure/machinery/door/poddoor/almayer{ + name = "\improper Umbillical Airlock"; + unacidable = 1 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"sY" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"td" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 8 + }, +/turf/open/floor/corsat{ + icon_state = "retrosquareslight" + }, +/area/adminlevel/ert_station/pizza_station) +"tp" = ( +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_y = 17; + pixel_x = 10; + buckling_y = 17; + buckling_x = 10 + }, +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"tq" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"ty" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"tC" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 13; + pixel_y = 12 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = 7; + pixel_y = 17 + }, +/obj/item/trash/plate{ + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/cheeseburger{ + pixel_x = -1; + pixel_y = 9 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"tH" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Galaxy Pizza!" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"tM" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor/corsat{ + icon_state = "retrosquareslight" + }, +/area/adminlevel/ert_station/pizza_station) +"tT" = ( +/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 + }, +/turf/open/space, +/area/space) +"tX" = ( +/obj/structure/machinery/disposal{ + layer = 2.97 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"ub" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway_out" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"ug" = ( +/obj/structure/pipes/vents/scrubber, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"uj" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space, +/area/space) +"uo" = ( +/obj/structure/window/framed/almayer/hull, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"uz" = ( +/obj/structure/prop/souto_land/pole{ + dir = 4; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"uD" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/processor{ + pixel_y = 10 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"uK" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 8; + layer = 3.01 + }, +/turf/open/space, +/area/space) +"uN" = ( +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"uY" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/box/cups, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 4; + pixel_x = 11 + }, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 4; + pixel_x = 19 + }, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + name = "\improper Kitchen Shutters"; + id = "kitchen_pizza_time" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/adminlevel/ert_station/pizza_station) +"vi" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "redcorner"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"vq" = ( +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"vr" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"vA" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"vI" = ( +/obj/structure/disposalpipe/segment, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = -1; + pixel_y = 6 + }, +/obj/item/storage/backpack/marine/satchel{ + desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; + icon = 'icons/obj/janitor.dmi'; + icon_state = "trashbag3"; + name = "trash bag"; + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/weapon/broken_bottle{ + pixel_y = 7; + pixel_x = -12 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"vR" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"vX" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"wa" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"wb" = ( +/obj/structure/platform/kutjevo/smooth, +/turf/open/space, +/area/space) +"wi" = ( +/obj/structure/closet/secure_closet/fridge/meat/stock, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 9 + }, +/area/adminlevel/ert_station/pizza_station) +"wm" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/tomatomeat, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"wo" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellowcorner" + }, +/area/adminlevel/ert_station/pizza_station) +"wq" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "redcorner"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"wu" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/ceramic_plate{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 13; + pixel_y = 2 + }, +/obj/item/reagent_container/food/snacks/carrotcakeslice{ + pixel_y = 6; + pixel_x = -1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"wz" = ( +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"wD" = ( +/obj/structure/platform_decoration/kutjevo, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"wP" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 1; + pixel_y = 3 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 2; + pixel_y = 6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"wQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"wX" = ( +/obj/structure/closet/crate/freezer/cooler/oj, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/adminlevel/ert_station/pizza_station) +"xc" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"xe" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"xh" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = -10; + pixel_y = 12 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = -15; + pixel_y = 17 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/item/reagent_container/food/snacks/applecakeslice{ + pixel_y = 8; + pixel_x = 3 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"xl" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/tool/kitchen/tray{ + pixel_y = 20 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 20 + }, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"xp" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/disposalpipe/trunk, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/turf/open/space, +/area/space) +"xy" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"xV" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "blue_plate" + }, +/area/adminlevel/ert_station/pizza_station) +"xX" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 3; + pixel_x = 1 + }, +/obj/item/reagent_container/food/snacks/mushroompizzaslice{ + pixel_y = 4 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"yg" = ( +/obj/structure/platform_decoration/kutjevo, +/turf/open/space/basic, +/area/space) +"yo" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/prison{ + icon_state = "greenbluecorner"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"yr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 10 + }, +/area/adminlevel/ert_station/pizza_station) +"ys" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"yE" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/structure/surface/table/almayer, +/obj/item/trash/ceramic_plate{ + pixel_y = 6 + }, +/obj/item/reagent_container/food/snacks/toastedsandwich{ + pixel_y = 17; + pixel_x = -1 + }, +/obj/item/reagent_container/food/snacks/toastedsandwich{ + pixel_y = 15; + pixel_x = 2 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"yG" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "blue_plate" + }, +/area/adminlevel/ert_station/pizza_station) +"yK" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"yM" = ( +/obj/structure/sign/safety/fridge{ + pixel_y = -32 + }, +/obj/structure/sign/safety/fridge{ + pixel_x = 32 + }, +/obj/structure/closet/firecloset/full, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"yP" = ( +/obj/structure/surface/rack, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = -4 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = 3 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 10 + }, +/area/adminlevel/ert_station/pizza_station) +"zf" = ( +/obj/structure/sign/safety/galley{ + pixel_x = -17 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"zh" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"zj" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical{ + pixel_y = -4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"zl" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 28; + pixel_x = 16 + }, +/obj/item/reagent_container/food/condiment/saltshaker{ + pixel_x = 7; + pixel_y = 17 + }, +/obj/item/reagent_container/food/condiment/peppermill{ + pixel_x = 13; + pixel_y = 12 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 4; + pixel_x = -3 + }, +/obj/item/tool/kitchen/utensil/knife{ + pixel_y = 4; + pixel_x = 3 + }, +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"zx" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 2 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 4 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 6 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"zz" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"zC" = ( +/obj/structure/bed/chair/bolted{ + dir = 4; + pixel_x = 7; + buckling_x = 7 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"zE" = ( +/obj/structure/machinery/door_control/airlock{ + id = "pizza_takeaway"; + name = "Airlock - Inside"; + pixel_x = 28; + pixel_y = 8 + }, +/obj/structure/machinery/door_control/airlock{ + id = "pizza_takeaway_out"; + name = "Airlock - Out"; + pixel_x = 28; + pixel_y = 18 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"zM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "redcorner"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"zQ" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"zW" = ( +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"Ab" = ( +/obj/structure/machinery/gibber{ + pixel_y = 10 + }, +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Ac" = ( +/obj/structure/closet/secure_closet/fridge/dry, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/sign/safety/galley{ + pixel_x = -24 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Aj" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/floor{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Ao" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Au" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"Ax" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = -3; + pixel_x = 16 + }, +/obj/item/ashtray/glass{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/clothing/mask/cigarette, +/obj/item/clothing/mask/cigarette{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"AB" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"AD" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Central Fridge" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"AH" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"AV" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"AW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out" + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = -32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = -32; + pixel_x = 15 + }, +/turf/open/floor/prison{ + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"Bu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"By" = ( +/obj/structure/machinery/suit_storage_unit/standard_unit{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/sign/safety/suit_storage{ + pixel_x = 32 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"Bz" = ( +/obj/structure/surface/table/reinforced, +/obj/item/trash/plate{ + pixel_y = 2 + }, +/obj/item/trash/plate{ + pixel_y = 4 + }, +/obj/item/trash/plate{ + pixel_y = 6 + }, +/obj/item/trash/plate{ + pixel_y = 8 + }, +/obj/item/trash/plate{ + pixel_y = 10 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"BC" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox{ + pixel_y = 5 + }, +/obj/item/pizzabox{ + pixel_y = 8 + }, +/obj/item/pizzabox{ + pixel_y = 11 + }, +/obj/structure/machinery/light, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"BJ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"BU" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = -30 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"Ck" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/machinery/light/small{ + pixel_x = 16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"Cp" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/waterbottle{ + pixel_x = -6; + pixel_y = 14 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Cv" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/condiment/hotsauce/tabasco, +/obj/item/reagent_container/food/condiment/hotsauce/sriracha, +/obj/item/reagent_container/food/condiment/hotsauce/franks, +/obj/item/reagent_container/food/condiment/hotsauce/cholula, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"CO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"CP" = ( +/turf/open/floor/almayer_hull, +/area/space) +"CT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/chem_dispenser/soda{ + density = 0; + pixel_y = 30 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Db" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Dd" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"Dx" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/sliceable/bread{ + pixel_y = 8 + }, +/obj/item/reagent_container/food/snacks/sliceable/bread{ + pixel_y = 4 + }, +/obj/item/reagent_container/food/snacks/sliceable/bread, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"DF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/machinery/chem_dispenser/soda/beer{ + density = 0; + pixel_y = 31 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"DH" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.01 + }, +/turf/open/space/basic, +/area/space) +"DW" = ( +/obj/structure/pipes/vents/pump, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"Ee" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 8; + layer = 3.01 + }, +/turf/open/space/basic, +/area/space) +"Eh" = ( +/obj/structure/prop/souto_land/pole{ + dir = 4; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"Ei" = ( +/turf/closed/wall/almayer/outer, +/area/adminlevel/ert_station/pizza_station) +"Ep" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"EH" = ( +/obj/structure/machinery/vending/cigarette{ + pixel_y = 18; + layer = 3.01; + density = 0 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"EK" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"EO" = ( +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"EZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Fd" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"Ff" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 10; + pixel_x = 1 + }, +/obj/item/trash/plate{ + pixel_y = -1 + }, +/obj/item/reagent_container/food/snacks/hotdog{ + pixel_y = 13 + }, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 11; + pixel_x = -7 + }, +/obj/item/reagent_container/food/snacks/grilledcheese{ + pixel_y = 6; + pixel_x = -1 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 2; + pixel_x = 8 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Fj" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_container/food/snacks/ricepudding, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/adminlevel/ert_station/pizza_station) +"Fp" = ( +/obj/structure/closet/crate/freezer, +/obj/structure/machinery/light/blue, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_burrito, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_hdogs, +/obj/item/reagent_container/food/snacks/packaged_burger, +/obj/item/reagent_container/food/snacks/packaged_burger, +/obj/item/reagent_container/food/snacks/packaged_burger, +/turf/open/floor/prison{ + dir = 10; + icon_state = "floor_marked" + }, +/area/adminlevel/ert_station/pizza_station) +"Fz" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray{ + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 5 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"FB" = ( +/obj/structure/machinery/light{ + pixel_x = 16 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"FD" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + icon_state = "almayer_pdoor"; + id = "pizza_takeaway" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"FL" = ( +/turf/closed/shuttle/ert{ + icon_state = "rightengine_1"; + opacity = 0 + }, +/area/adminlevel/ert_station/pizza_station) +"FS" = ( +/obj/structure/machinery/light, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"FY" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/cans/cola{ + pixel_y = 6; + pixel_x = -6 + }, +/obj/item/reagent_container/food/drinks/cans/cola{ + pixel_y = 4; + pixel_x = -3 + }, +/obj/item/reagent_container/food/drinks/cans/iced_tea{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/reagent_container/food/drinks/cans/iced_tea{ + pixel_x = 11; + pixel_y = 5 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Gd" = ( +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 9 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"Gh" = ( +/obj/structure/machinery/disposal{ + layer = 2.97 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/poster{ + desc = "Eat an EAT bar! ...Aren't they called MEAT bars?"; + icon_state = "poster7"; + name = "EAT - poster"; + pixel_y = 30 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Gj" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Gm" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"Gn" = ( +/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 + }, +/turf/open/space/basic, +/area/space) +"Gp" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/mushroomsoup{ + pixel_y = 6 + }, +/obj/item/tool/kitchen/utensil/spoon{ + pixel_y = 4; + pixel_x = 7 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Gt" = ( +/obj/structure/machinery/atm{ + pixel_y = 32; + pixel_x = 2 + }, +/turf/open/floor/prison{ + dir = 5; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"GB" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_x = 30 + }, +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"GM" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/turf/open/space/basic, +/area/space) +"Ha" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan_leftengine" + }, +/area/adminlevel/ert_station/pizza_station) +"Hd" = ( +/turf/open/floor/prison{ + dir = 4; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"Hg" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/space) +"HL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_y = 4; + pixel_x = 5 + }, +/obj/item/reagent_container/food/drinks/coffeecup{ + pixel_y = 2 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"HQ" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_y = 10; + pixel_x = -1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Ib" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"Iq" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = 5; + pixel_y = 13 + }, +/obj/item/trash/ceramic_plate{ + pixel_y = 1 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"ID" = ( +/turf/closed/wall/rock/red, +/area/space) +"IJ" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"Jd" = ( +/obj/structure/closet{ + pixel_y = 16; + density = 0 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"Jl" = ( +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"Jm" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"Jq" = ( +/obj/structure/closet/secure_closet/fridge/organic/stock, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/adminlevel/ert_station/pizza_station) +"JP" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/knife/butcher, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"JR" = ( +/obj/structure/bed/sofa/vert/grey/bot, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"JU" = ( +/obj/structure/janitorialcart{ + pixel_y = 15 + }, +/obj/item/tool/wet_sign{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/tool/wet_sign{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/reagent_container/glass/bucket{ + pixel_x = 9 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"JV" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/bed/chair/bolted{ + pixel_y = -1; + buckling_y = -1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Kb" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 4; + pixel_y = -3 + }, +/obj/item/corncob, +/obj/item/corncob{ + pixel_y = 7 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Kc" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door_control/airlock{ + id = "pizza_takeaway_out"; + name = "Airlock - Out"; + pixel_x = 2; + pixel_y = 18 + }, +/obj/structure/sign/safety/manualopenclose{ + pixel_y = -3; + pixel_x = 7 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"Kd" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"Kv" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/sink/kitchen{ + pixel_y = 12 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"KB" = ( +/obj/structure/sign/safety/bathunisex{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/washing_machine{ + pixel_y = 10 + }, +/obj/structure/sign/safety/water{ + pixel_x = -17 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"KC" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/structure/prop/souto_land/streamer{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"KY" = ( +/turf/open/floor/prison{ + icon_state = "blue_plate" + }, +/area/adminlevel/ert_station/pizza_station) +"La" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks/macho{ + pixel_y = 11; + pixel_x = -6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = 11; + pixel_x = 6 + }, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 11 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 6 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Lk" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Ln" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/machinery/computer{ + icon_state = "security_det"; + name = "Shuttle control deck"; + pixel_y = 6 + }, +/obj/structure/machinery/light/small{ + dir = 8; + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"Ly" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"LH" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/obj/structure/prop/souto_land/pole{ + dir = 8; + pixel_y = 9 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Mj" = ( +/obj/structure/bed/chair/dropship/pilot{ + dir = 1 + }, +/obj/structure/machinery/light/small{ + dir = 8; + pixel_x = -11; + pixel_y = 10 + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"Mk" = ( +/obj/structure/machinery/vending/coffee{ + pixel_y = 12 + }, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"Mt" = ( +/obj/structure/bed/sofa/south/grey/left, +/obj/item/storage/briefcase/stowaway, +/turf/open/floor/prison{ + dir = 9; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"Mz" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space, +/area/space) +"MB" = ( +/obj/structure/surface/table/reinforced, +/obj/item/pizzabox/meat, +/obj/item/weapon/pizza_cutter, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"MK" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = -3 + }, +/obj/item/reagent_container/food/drinks/bottle/wine{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/reagent_container/food/drinks/bottle/vermouth{ + pixel_y = 5; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/bottle/whiskey{ + pixel_x = -4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"MS" = ( +/obj/structure/machinery/shower{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/machinery/light/small{ + pixel_x = 16 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"MT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"MX" = ( +/turf/open/floor/prison{ + icon_state = "red"; + dir = 9 + }, +/area/adminlevel/ert_station/pizza_station) +"Nb" = ( +/obj/item/reagent_container/food/condiment/hotsauce/franks/macho{ + pixel_y = 18; + pixel_x = -6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = 18; + pixel_x = 6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 16 + }, +/obj/structure/surface/table/almayer, +/obj/item/reagent_container/food/condiment/coldsauce{ + pixel_y = 13; + pixel_x = 8 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Nl" = ( +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"No" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"Nr" = ( +/obj/structure/machinery/vending/cola{ + pixel_y = 12 + }, +/obj/structure/sign/safety/coffee{ + pixel_y = 32; + pixel_x = -13 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"Ny" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"NG" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"NH" = ( +/obj/structure/bed/sofa/vert/grey/top, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"NJ" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan20" + }, +/area/adminlevel/ert_station/pizza_station) +"NN" = ( +/obj/structure/closet/secure_closet/fridge/groceries/stock, +/obj/structure/machinery/light/small/blue{ + dir = 1; + pixel_y = 20 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 9 + }, +/area/adminlevel/ert_station/pizza_station) +"NP" = ( +/obj/structure/sink/kitchen{ + pixel_x = 11; + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/sign/safety/water{ + pixel_x = 38 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"NT" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 8 + }, +/turf/open/space, +/area/space) +"NV" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Showers & Bathroom"; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"Og" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza{ + pixel_y = -2; + pixel_x = -16 + }, +/obj/item/trash/plate{ + pixel_y = 8; + pixel_x = 3 + }, +/obj/item/reagent_container/food/snacks/meatpizzaslice{ + pixel_y = 8; + pixel_x = -1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Oh" = ( +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9; + pixel_x = 1 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"OE" = ( +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9; + pixel_x = -1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"OG" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/obj/structure/lattice, +/turf/open/space, +/area/space) +"OJ" = ( +/turf/open/floor{ + desc = "A sophisticated device that captures and converts light from the system's star into energy for the station."; + icon_state = "solarpanel"; + name = "solarpanel" + }, +/area/space) +"OK" = ( +/obj/structure/machinery/vending/cigarette{ + pixel_y = 3; + layer = 4.15 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"OQ" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 8; + pixel_y = 13 + }, +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_27"; + pixel_y = 13; + pixel_x = -2; + layer = 4.11 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"OS" = ( +/turf/open/floor/prison{ + icon_state = "red"; + dir = 4 + }, +/area/adminlevel/ert_station/pizza_station) +"Pa" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Pi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"Pl" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -8; + pixel_y = 15; + layer = 4.11 + }, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_17"; + pixel_x = -8; + pixel_y = 2; + layer = 4.12 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Pn" = ( +/obj/structure/surface/table/reinforced, +/obj/item/clothing/suit/chef/classic, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/suit/chef/classic, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Pq" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"Ps" = ( +/obj/item/reagent_container/glass/bucket/janibucket{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/tool/mop{ + pixel_x = -2; + pixel_y = 8 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Py" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space, +/area/space) +"PF" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"PH" = ( +/obj/structure/surface/table/reinforced/cloth, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"PL" = ( +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"Qe" = ( +/obj/structure/pipes/vents/scrubber{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"QN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"Ra" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/trash/plate{ + pixel_y = 10 + }, +/obj/item/reagent_container/food/snacks/vegetablepizzaslice{ + pixel_y = 10; + pixel_x = -2 + }, +/obj/item/reagent_container/food/drinks/cans/boda{ + pixel_y = 16; + pixel_x = -11; + layer = 3.03 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Rf" = ( +/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/adminlevel/ert_station/pizza_station) +"Rh" = ( +/obj/structure/window/framed/almayer/hull, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"RC" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/turf/open/space/basic, +/area/space) +"RG" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/platform/kutjevo/smooth, +/turf/open/space/basic, +/area/space) +"RN" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12; + layer = 4.11 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"RP" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "blueyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"RV" = ( +/obj/item/clothing/suit/chef/classic, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/head/chefhat, +/obj/structure/surface/table/reinforced, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Se" = ( +/obj/structure/bed/chair/bolted{ + dir = 1; + pixel_y = 12; + buckling_y = 12 + }, +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Sg" = ( +/obj/structure/platform/kutjevo/smooth{ + dir = 1 + }, +/obj/structure/barricade/handrail{ + dir = 1; + icon_state = "hr_kutjevo"; + name = "solar lattice" + }, +/turf/open/space, +/area/space) +"So" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"Sp" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Sq" = ( +/obj/structure/kitchenspike, +/obj/item/reagent_container/food/snacks/meat{ + pixel_y = -5 + }, +/obj/item/reagent_container/food/snacks/meat{ + pixel_y = 2 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/adminlevel/ert_station/pizza_station) +"Sr" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/drinks/cans/beer{ + pixel_x = -13; + pixel_y = -6 + }, +/obj/item/tool/kitchen/utensil/fork{ + pixel_y = 1; + pixel_x = 5 + }, +/obj/item/tool/kitchen/utensil/knife{ + pixel_y = 3; + pixel_x = 9 + }, +/obj/item/reagent_container/food/snacks/meatsteak{ + pixel_y = 5; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Sz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"SL" = ( +/obj/structure/surface/table/almayer, +/obj/structure/flora/pottedplant{ + icon_state = "pottedplant_21"; + pixel_y = 28; + pixel_x = 3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/diet/lime{ + pixel_y = 15; + pixel_x = -8 + }, +/turf/open/floor/prison{ + dir = 8; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"ST" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/ad{ + icon_state = "poster41"; + pixel_y = 32 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"SV" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Showers" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"Te" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 28; + pixel_x = 16 + }, +/obj/item/tool/kitchen/utensil/pknife{ + pixel_x = 13; + pixel_y = 1 + }, +/obj/item/tool/kitchen/utensil/pfork{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/reagent_container/food/snacks/chocolatecakeslice{ + pixel_y = 2; + pixel_x = 2 + }, +/obj/item/reagent_container/food/drinks/coffee{ + pixel_y = 13; + pixel_x = 5 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Tu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"TC" = ( +/turf/open/floor/prison{ + icon_state = "yellowcorner" + }, +/area/adminlevel/ert_station/pizza_station) +"TD" = ( +/turf/open/floor/prison{ + icon_state = "bright_clean2" + }, +/area/adminlevel/ert_station/pizza_station) +"TE" = ( +/turf/open/mars_dirt{ + icon_state = "mars_cave_3" + }, +/area/space) +"TH" = ( +/obj/structure/surface/table/almayer, +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/obj/item/storage/box/drinkingglasses{ + layer = 2.97; + pixel_x = 14 + }, +/obj/item/reagent_container/food/drinks/bottle/orangejuice{ + layer = 2.97 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"TK" = ( +/turf/closed/shuttle/ert, +/area/adminlevel/ert_station/pizza_station) +"TQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_y = -1 + }, +/obj/structure/pipes/standard/manifold/fourway/hidden/supply, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"TY" = ( +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 1; + pixel_y = 3 + }, +/obj/structure/bed/chair{ + can_buckle = 0; + dir = 4; + pixel_x = 2; + pixel_y = 6 + }, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Uu" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/machinery/power/apc/antag{ + dir = 1 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Ux" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/bed/chair/bolted{ + pixel_y = -1; + buckling_y = -1 + }, +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"UB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Vj" = ( +/obj/structure/closet/secure_closet/fridge/dry/stock, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 5 + }, +/area/adminlevel/ert_station/pizza_station) +"Vm" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray{ + pixel_y = 2 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/mushroompizza{ + pixel_y = 1 + }, +/turf/open/floor/prison{ + icon_state = "greenbluecorner" + }, +/area/adminlevel/ert_station/pizza_station) +"Vs" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/machinery/light{ + pixel_x = 16; + dir = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 8 + }, +/area/adminlevel/ert_station/pizza_station) +"Vt" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan25" + }, +/area/adminlevel/ert_station/pizza_station) +"Vv" = ( +/obj/docking_port/stationary/emergency_response/idle_port4, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"Vx" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"VD" = ( +/obj/structure/barricade/handrail/pizza{ + dir = 1; + pixel_y = 12 + }, +/obj/structure/reagent_dispensers/water_cooler/stacks{ + density = 0; + pixel_x = -3; + pixel_y = 15; + layer = 4.03 + }, +/obj/structure/surface/table/almayer{ + layer = 4.02 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"VK" = ( +/turf/open/floor/prison{ + dir = 10; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"VN" = ( +/obj/structure/bed/chair/bolted{ + dir = 8; + pixel_x = -7; + buckling_x = -7 + }, +/obj/structure/sign/poster{ + desc = "One of those hot, tanned babes back the beaches of good ol' Earth."; + icon_state = "poster12"; + name = "Beach Babe Pinup"; + pixel_x = 6; + pixel_y = 30; + serial_number = 12 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"VQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"VS" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/donut_box{ + pixel_y = -8 + }, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"VX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Wb" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"WL" = ( +/obj/structure/window/framed/almayer/hull, +/obj/structure/machinery/door/firedoor/border_only/almayer, +/turf/open/floor/plating, +/area/adminlevel/ert_station/pizza_station) +"WP" = ( +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"WS" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"WZ" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Kitchen and Cleaning" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"Xa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" + }, +/obj/structure/sign/safety/debark_lounge{ + pixel_y = 32 + }, +/obj/structure/sign/safety/landingzone{ + pixel_y = 32; + pixel_x = 15 + }, +/turf/open/floor/prison{ + dir = 1; + icon_state = "yellow" + }, +/area/adminlevel/ert_station/pizza_station) +"Xg" = ( +/obj/structure/prop/souto_land/streamer{ + pixel_y = 9; + pixel_x = 1 + }, +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"Xj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E" + }, +/obj/structure/sign/safety/airlock{ + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/closet/crate/trashcart, +/obj/item/storage/bag/trash, +/obj/item/storage/bag/trash{ + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Xn" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 4 + }, +/turf/open/space, +/area/space) +"Xq" = ( +/obj/structure/surface/rack, +/obj/structure/machinery/light/small/blue{ + pixel_x = 16 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = -2 + }, +/obj/item/reagent_container/food/snacks/bigbiteburger{ + pixel_x = 4 + }, +/turf/open/floor/prison{ + icon_state = "greenblue" + }, +/area/adminlevel/ert_station/pizza_station) +"Xr" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) +"Xw" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"Xx" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/snacks/sliceable/flatdough, +/obj/item/tool/kitchen/rollingpin, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"XB" = ( +/obj/structure/machinery/shower{ + pixel_y = 16 + }, +/obj/structure/window/reinforced{ + dir = 4; + health = 80 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 80 + }, +/turf/open/floor/plating/plating_catwalk, +/area/adminlevel/ert_station/pizza_station) +"XD" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/turf/open/floor/prison{ + icon_state = "red"; + dir = 5 + }, +/area/adminlevel/ert_station/pizza_station) +"XV" = ( +/obj/structure/prop/souto_land/streamer{ + dir = 4; + pixel_y = 9 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "red" + }, +/area/adminlevel/ert_station/pizza_station) +"XZ" = ( +/obj/structure/barricade/handrail/pizza{ + pixel_y = -3 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Ya" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "STAFF ONLY" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"Yf" = ( +/obj/structure/surface/table/reinforced, +/obj/item/reagent_container/food/condiment/hotsauce/franks/macho{ + pixel_y = 18; + pixel_x = -6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/franks{ + pixel_y = 18; + pixel_x = 6 + }, +/obj/item/reagent_container/food/condiment/hotsauce/cholula{ + pixel_y = 16 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 1; + pixel_x = -4 + }, +/obj/item/reagent_container/food/drinks/drinkingglass{ + pixel_y = 3; + pixel_x = 6 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"Yj" = ( +/obj/structure/surface/table/reinforced/cloth, +/obj/item/tool/kitchen/utensil/pknife{ + pixel_x = -6 + }, +/obj/item/tool/kitchen/utensil/pfork{ + pixel_y = 3; + pixel_x = -3 + }, +/obj/item/reagent_container/food/drinks/cans/souto/blue{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = -2; + pixel_x = 16 + }, +/turf/open/floor{ + icon_state = "redyellowfull" + }, +/area/adminlevel/ert_station/pizza_station) +"Ym" = ( +/obj/structure/sign/safety/nonpress_0g{ + pixel_x = -16 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/prison, +/area/adminlevel/ert_station/pizza_station) +"Yo" = ( +/turf/open/space, +/area/space) +"Yu" = ( +/obj/structure/platform/kutjevo/smooth, +/obj/structure/platform/kutjevo/smooth{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"Yv" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/adminlevel/ert_station/pizza_station) +"Yw" = ( +/turf/closed/shuttle/ert{ + icon_state = "stan27" + }, +/area/adminlevel/ert_station/pizza_station) +"Yy" = ( +/turf/open/space/basic, +/area/space) +"YD" = ( +/obj/structure/surface/table/reinforced, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 + }, +/obj/item/reagent_container/food/snacks/sliceable/pizza/meatpizza{ + pixel_y = 5 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 6 + }, +/area/adminlevel/ert_station/pizza_station) +"YF" = ( +/obj/structure/platform_decoration/kutjevo{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"YL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ + name = "\improper Galaxy Pizza!" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"YM" = ( +/obj/structure/prop/invuln{ + desc = "An inflated membrane. This one is puncture proof. Wow!"; + icon = 'icons/obj/items/inflatable.dmi'; + icon_state = "wall"; + name = "Docking Umbilical" + }, +/obj/structure/blocker/invisible_wall, +/obj/structure/sign/safety/airlock{ + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = -32 + }, +/turf/open/floor/almayer_hull, +/area/adminlevel/ert_station/pizza_station) +"YO" = ( +/turf/closed/wall/almayer, +/area/adminlevel/ert_station/pizza_station) +"ZD" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/poddoor/almayer/open{ + name = "\improper Umbillical Airlock"; + id = "pizza_ert_arrival" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/adminlevel/ert_station/pizza_station) +"ZM" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/drinks/soymilk, +/obj/item/reagent_container/food/condiment/hotsauce/tabasco, +/obj/item/reagent_container/food/condiment/hotsauce/sriracha, +/obj/item/reagent_container/food/condiment/hotsauce/franks, +/obj/item/reagent_container/food/condiment/hotsauce/cholula, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/prison{ + icon_state = "greenblue"; + dir = 1 + }, +/area/adminlevel/ert_station/pizza_station) +"ZR" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "cmo" + }, +/area/adminlevel/ert_station/pizza_station) +"ZV" = ( +/obj/structure/bed/sofa/vert/grey, +/turf/open/floor/prison, +/area/adminlevel/ert_station/pizza_station) +"ZX" = ( +/obj/structure/surface/table/reinforced, +/obj/structure/sign/poster/ad{ + icon_state = "poster12"; + pixel_y = 32 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 6 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 9 + }, +/obj/item/tool/kitchen/tray{ + pixel_y = 12 + }, +/turf/open/floor/prison{ + icon_state = "kitchen" + }, +/area/adminlevel/ert_station/pizza_station) + +(1,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(2,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yo +Yy +Yy +Yy +Yy +Yy +Yy +Yo +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(3,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +yg +qq +qq +qX +yg +uj +qq +qq +NT +yg +qq +qq +qX +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(4,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +yg +RG +OJ +OJ +Sg +eI +OJ +OJ +OJ +Sg +wb +OJ +OJ +Py +NT +Yy +Yy +Yy +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(5,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +Yy +yg +Xw +OJ +OJ +OJ +tT +Xw +OJ +OJ +OJ +Gn +Xw +OJ +OJ +OJ +OG +Vx +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(6,1,1) = {" +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +ID +eI +OJ +OJ +OJ +oy +CP +CP +OJ +OJ +OJ +CP +CP +oy +OJ +OJ +tT +rk +Vx +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(7,1,1) = {" +Yy +Yy +Yy +Yy +ID +ID +ID +ID +Vx +Pq +OJ +OJ +oy +CP +fH +fb +OJ +oy +OJ +ja +Mz +CP +oy +OJ +OJ +oX +Yy +Yy +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(8,1,1) = {" +Yy +Yy +Yy +ID +ID +ID +ID +Vx +Yy +RC +PF +xe +CP +lx +Xn +ID +ID +ID +ID +ID +ha +xe +CP +OJ +OJ +oX +Yy +Yy +Vx +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(9,1,1) = {" +Yy +Yy +Yy +ID +ID +ID +Yy +Vx +Yy +Yy +Yy +eI +CP +ID +ID +ID +ID +ID +ID +ID +ID +eI +CP +fH +Hg +fO +Yy +Vx +Vx +Yy +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(10,1,1) = {" +Yy +Yy +Yy +ID +ID +Vx +Vx +Vx +Yy +Yy +Yy +ID +ID +ID +ID +ID +ID +ID +ID +ID +Ei +Ei +WL +WL +WL +uo +Ei +Ei +Vx +Vx +Vx +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(11,1,1) = {" +Yy +Yy +Yy +Yy +ID +Yy +Yy +Vx +yg +qq +ID +ID +ID +ID +ID +ID +ID +ID +ID +Ei +Ei +hX +Ff +rA +uN +Pl +TY +Ei +Ei +Vx +Yy +Yy +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(12,1,1) = {" +Yy +Yy +Yy +Yy +Vx +Yy +Yy +wD +Yu +jH +ID +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Ei +Gh +Ly +Sp +uN +Sp +RN +jx +FS +Ei +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(13,1,1) = {" +Yy +Yy +Yy +Vx +Vx +Yy +yg +Yu +jH +pD +Ei +Ei +nK +RV +Xx +ef +wm +qy +YO +YO +vA +ug +Au +vr +yr +uN +wu +ly +Rh +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(14,1,1) = {" +Yy +Yy +Yy +Vx +wD +qq +Xw +jH +TE +TE +Ei +Ac +nB +nB +nB +nB +nB +nB +eD +YO +dc +zQ +oU +vi +Gm +uN +ec +xh +Rh +Yy +Yy +Yy +Yy +Ei +uo +uo +uo +Ei +uo +uo +uo +Ei +Yy +Yy +Yy +"} +(15,1,1) = {" +Yy +Yy +Yy +yg +Yu +pD +pD +TE +pD +qt +Rh +qv +nB +ZR +MB +cr +Pn +nB +nB +jy +tq +MK +FY +wz +Gm +hb +pS +pS +Rh +Yy +Yy +Yy +Ei +Ei +Mt +nl +SL +BU +fj +nl +sk +Ei +Ei +Yy +Yy +"} +(16,1,1) = {" +Yy +Yy +Yy +eI +pD +TE +pD +sB +TE +TE +Rh +Dx +nB +jo +np +JP +aA +Lk +nB +uY +tq +WP +TH +wz +uz +cO +KC +mt +Rh +Yy +Yy +Ei +Ei +pA +fE +VS +rK +an +Nl +cL +wo +VK +Ei +Ei +Yy +"} +(17,1,1) = {" +Yy +Yy +Yy +eI +sB +TE +TE +sB +TE +pD +Rh +Yf +UB +AB +Pa +NP +Pa +ov +nB +jf +tq +WP +La +wz +nU +uN +Ax +tC +Rh +Yy +Yy +Ei +Ei +Xa +Jm +Jm +Jm +Jm +Jm +Jm +Jm +aS +Ei +Ei +Yy +"} +(18,1,1) = {" +Yy +Yy +Yy +eI +NJ +TK +TK +Ha +lg +sB +Ei +sJ +jo +nB +ae +YO +uD +Ab +bT +YO +Ao +WP +lv +wz +OE +uN +HQ +fN +Ei +Yy +Yy +Yy +uo +AH +Vv +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(19,1,1) = {" +Yy +Yy +Yy +eI +Yw +Ln +Mj +WS +TE +eW +Ei +YO +Rf +kz +YO +YO +YO +YO +YO +YO +Uu +WP +nA +sa +aP +Db +zz +ys +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(20,1,1) = {" +Yy +Yy +Yy +eI +Vt +nf +nf +qh +FL +TE +uo +Ps +fg +WP +zf +WZ +TD +Fd +lN +Ya +bB +WP +lE +wz +Gm +Jl +Jl +Jl +tH +IJ +Jl +Jl +Ep +AH +fu +fu +fu +fu +fu +fu +fu +gU +la +Yy +Yy +"} +(21,1,1) = {" +Yy +Yy +Yy +eI +sB +sB +TE +eW +TE +pD +uo +JU +Tu +CO +CO +NG +mP +ok +Sz +BJ +vX +WP +yE +wz +hc +ir +ir +ir +Wb +zQ +ir +Dd +EO +AH +fu +fu +fu +fu +fu +fu +fu +gU +sW +Yy +Yy +"} +(22,1,1) = {" +Yy +Yy +Yy +eI +sB +sB +eW +TE +TE +ID +Ei +cP +tq +WP +Bz +YO +YO +AD +YO +YO +gV +WP +zx +DW +Eh +lB +mt +hR +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(23,1,1) = {" +Yy +Yy +Yy +eI +me +TE +TE +pD +ID +ID +Ei +Kv +EZ +Qe +BC +YO +wi +yK +yP +YO +VQ +WP +ic +wz +nU +hb +Iq +xl +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(24,1,1) = {" +Yy +Yy +Yy +RC +xe +me +me +ID +ID +ID +Ei +ZX +tq +WP +Fz +YO +eo +yG +Xq +YO +CT +WP +HL +wz +XV +uN +pS +tp +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(25,1,1) = {" +Yy +Yy +Yy +Yy +RC +uK +PL +Ei +Ei +Ei +Ei +Xj +Xr +WP +sp +YO +ZM +KY +Sq +YO +DF +WP +gu +wz +OE +hb +qs +dh +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(26,1,1) = {" +Yy +Yy +Yy +Yy +Yy +xp +ei +ub +oG +Ym +FD +vI +wa +FB +YO +YO +Cv +KY +Jq +YO +ST +Kb +am +wz +Gd +Db +zz +ys +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(27,1,1) = {" +Yy +Yy +Yy +Yy +Yy +DH +lL +lH +zE +aD +EK +im +sY +fg +YO +NN +yo +KY +ny +YO +Vs +sx +sx +wq +oh +zh +zh +zh +YL +vr +zh +Ib +Ep +AH +fu +fu +fu +fu +fu +fu +fu +gU +rL +Yy +Yy +"} +(28,1,1) = {" +Yy +Yy +Yy +Yy +Yy +vR +Kc +Ei +Ei +Ei +Ei +By +sl +aq +bU +hL +xV +Vm +iw +YO +OS +OS +OS +zM +Gm +OS +OS +OS +ZD +cq +OS +OS +EO +AH +fu +fu +fu +fu +fu +fu +fu +gU +sW +Yy +Yy +"} +(29,1,1) = {" +Yy +Yy +Vx +Yy +Yy +YF +Ee +fO +ID +ID +Ei +Ei +qA +yM +YO +Vj +zW +YD +YO +YO +Nr +Mk +OK +wQ +uz +wP +KC +hR +Ei +ah +bd +YM +Ei +cK +fu +fu +fu +fu +fu +fu +fu +lJ +Ei +GM +Yy +"} +(30,1,1) = {" +Yy +Vx +Vx +Vx +Vx +Vx +Yy +Yy +Yy +ID +ID +Ei +dS +YO +YO +YO +oD +YO +YO +qU +jV +Gj +mk +wQ +aJ +hb +PH +zl +Ei +Yy +Yy +Yy +uo +AH +fu +fu +fu +fu +fu +fu +fu +gU +uo +Yy +Yy +"} +(31,1,1) = {" +Yy +Yy +ID +Yy +Yy +Vx +Vx +Vx +Vx +Vx +Ei +Ei +bl +pT +YO +mj +ty +MS +YO +rj +ma +uN +MX +Pi +Xg +hb +Cp +lw +Rh +Yy +Yy +Ei +Ei +iY +No +No +No +No +No +No +No +AW +Ei +Ei +Yy +"} +(32,1,1) = {" +Yy +ID +ID +ID +ID +Vx +Yy +Yy +Yy +Yy +Rh +Fj +td +Fp +YO +XB +MT +bo +YO +Sr +Ra +uN +jb +xc +qb +uN +pS +pS +Rh +Yy +Yy +Ei +Ei +EH +hg +Nl +NH +ZV +JR +Nl +TC +rO +Ei +Ei +Yy +"} +(33,1,1) = {" +Yy +ID +ID +ID +ID +Vx +Yy +Yy +Yy +Yy +Rh +wX +tM +hv +YO +YO +SV +YO +YO +VN +pS +XZ +jT +So +Oh +uN +zC +zC +Rh +Yy +Yy +Yy +Ei +Ei +Gt +Hd +Hd +GB +Hd +Hd +oo +Ei +Ei +Yy +Yy +"} +(34,1,1) = {" +Yy +Yy +ID +ID +ID +ID +ID +Yy +Yy +Yy +Ei +YO +YO +YO +YO +KB +VX +zj +YO +Aj +RP +gy +gb +XD +eK +hb +Yj +sI +Rh +Yy +Yy +Yy +Yy +Ei +uo +uo +uo +Ei +uo +uo +uo +Ei +Yy +Yy +Yy +"} +(35,1,1) = {" +Yy +Yy +ID +ID +ID +ID +ID +Vx +Yy +Yy +Rh +vq +QN +Yv +se +Bu +TQ +Bu +NV +AV +cI +OQ +jV +uN +kW +RN +Og +xX +Rh +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(36,1,1) = {" +Yy +Yy +Yy +ID +ID +ID +Vx +Vx +Vx +Vx +Rh +vq +ap +Kd +YO +qo +eQ +Ck +YO +YO +tX +JV +Gp +Te +Se +hb +pS +nX +Ei +Yy +Yy +Vx +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(37,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +ID +Ei +Ei +jq +pE +YO +Jd +xy +Ny +YO +YO +YO +Ux +cE +eh +LH +VD +Nb +Ei +Ei +Vx +Vx +Vx +Vx +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(38,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +Ei +Ei +Ei +Ei +WL +WL +WL +Ei +ID +Ei +Ei +WL +WL +WL +uo +Ei +Ei +Vx +Yy +Yy +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(39,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +ID +ID +ID +ID +Yy +Yy +Yy +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Vx +Vx +Vx +Yy +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(40,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +ID +ID +Vx +Yy +Yy +Yy +Vx +Vx +Yy +Vx +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(41,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +Vx +Vx +Yy +Yy +Vx +Yy +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(42,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +Vx +Vx +ID +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(43,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Vx +ID +ID +ID +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(44,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +ID +ID +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} +(45,1,1) = {" +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +Yy +"} diff --git a/maps/templates/twe_ert_station.dmm b/maps/templates/lazy_templates/twe_ert_station.dmm similarity index 99% rename from maps/templates/twe_ert_station.dmm rename to maps/templates/lazy_templates/twe_ert_station.dmm index 78c98b4d16a9..2c9c696d7842 100644 --- a/maps/templates/twe_ert_station.dmm +++ b/maps/templates/lazy_templates/twe_ert_station.dmm @@ -309,9 +309,7 @@ "go" = ( /obj/structure/platform, /obj/structure/blocker/invisible_wall, -/turf/closed/shuttle/twe_dropship{ - icon_state = "0,0" - }, +/turf/closed/shuttle/twe_dropship, /area/adminlevel/ert_station/royal_marines_station) "gq" = ( /turf/open/floor/almayer{ @@ -1220,7 +1218,6 @@ /area/adminlevel/ert_station/royal_marines_station) "xw" = ( /obj/structure/machinery/door/airlock/almayer/medical{ - id_tag = null; name = "Operating Theatre 1" }, /turf/open/floor/almayer{ @@ -1705,6 +1702,9 @@ "Hg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/surface/table/almayer, +/obj/structure/machinery/power/apc/antag{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "sterile_green" }, 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 99% rename from maps/templates/weyland_ert_station.dmm rename to maps/templates/lazy_templates/weyland_ert_station.dmm index 1937aa6a61a9..aa6b43ef8422 100644 --- a/maps/templates/weyland_ert_station.dmm +++ b/maps/templates/lazy_templates/weyland_ert_station.dmm @@ -1506,6 +1506,9 @@ }, /area/adminlevel/ert_station/weyland_station) "sg" = ( +/obj/structure/machinery/power/apc/antag{ + dir = 4 + }, /turf/open/floor/corsat{ dir = 4; icon_state = "yellow" diff --git a/nano/images/weapons/88m4.png b/nano/images/weapons/88m4.png deleted file mode 100644 index 77faa65720af..000000000000 Binary files a/nano/images/weapons/88m4.png and /dev/null differ diff --git a/nano/images/weapons/aamateba.png b/nano/images/weapons/aamateba.png deleted file mode 100644 index 30a5c1c72c68..000000000000 Binary files a/nano/images/weapons/aamateba.png and /dev/null differ diff --git a/nano/images/weapons/amateba.png b/nano/images/weapons/amateba.png deleted file mode 100644 index 6d411d2ad7fc..000000000000 Binary files a/nano/images/weapons/amateba.png and /dev/null differ diff --git a/nano/images/weapons/auto.png b/nano/images/weapons/auto.png deleted file mode 100644 index 7efc6ff1c892..000000000000 Binary files a/nano/images/weapons/auto.png and /dev/null differ diff --git a/nano/images/weapons/auto9.png b/nano/images/weapons/auto9.png deleted file mode 100644 index 8fbc101f2f72..000000000000 Binary files a/nano/images/weapons/auto9.png and /dev/null differ diff --git a/nano/images/weapons/b92fs.png b/nano/images/weapons/b92fs.png deleted file mode 100644 index 2788124dfb8f..000000000000 Binary files a/nano/images/weapons/b92fs.png and /dev/null differ diff --git a/nano/images/weapons/burst.png b/nano/images/weapons/burst.png deleted file mode 100644 index 669bd676ebb0..000000000000 Binary files a/nano/images/weapons/burst.png and /dev/null differ diff --git a/nano/images/weapons/c70.png b/nano/images/weapons/c70.png deleted file mode 100644 index b7e2ed731ba1..000000000000 Binary files a/nano/images/weapons/c70.png and /dev/null differ diff --git a/nano/images/weapons/c_deagle.png b/nano/images/weapons/c_deagle.png deleted file mode 100644 index c2a5c991acf8..000000000000 Binary files a/nano/images/weapons/c_deagle.png and /dev/null differ diff --git a/nano/images/weapons/cmateba.png b/nano/images/weapons/cmateba.png deleted file mode 100644 index f949d4b54731..000000000000 Binary files a/nano/images/weapons/cmateba.png and /dev/null differ diff --git a/nano/images/weapons/cshotgun.png b/nano/images/weapons/cshotgun.png deleted file mode 100644 index 9820f5854679..000000000000 Binary files a/nano/images/weapons/cshotgun.png and /dev/null differ diff --git a/nano/images/weapons/dartgun.png b/nano/images/weapons/dartgun.png deleted file mode 100644 index 218dc742dc9b..000000000000 Binary files a/nano/images/weapons/dartgun.png and /dev/null differ diff --git a/nano/images/weapons/deagle.png b/nano/images/weapons/deagle.png deleted file mode 100644 index 059a730d7efd..000000000000 Binary files a/nano/images/weapons/deagle.png and /dev/null differ diff --git a/nano/images/weapons/disabled_automatic.png b/nano/images/weapons/disabled_automatic.png deleted file mode 100644 index 94da079d8049..000000000000 Binary files a/nano/images/weapons/disabled_automatic.png and /dev/null differ diff --git a/nano/images/weapons/disabled_burst.png b/nano/images/weapons/disabled_burst.png deleted file mode 100644 index 71b88bcaf945..000000000000 Binary files a/nano/images/weapons/disabled_burst.png and /dev/null differ diff --git a/nano/images/weapons/disabled_single.png b/nano/images/weapons/disabled_single.png deleted file mode 100644 index bf2cef4b1507..000000000000 Binary files a/nano/images/weapons/disabled_single.png and /dev/null differ diff --git a/nano/images/weapons/dshotgun.png b/nano/images/weapons/dshotgun.png deleted file mode 100644 index cd795982816b..000000000000 Binary files a/nano/images/weapons/dshotgun.png and /dev/null differ diff --git a/nano/images/weapons/fp9000.png b/nano/images/weapons/fp9000.png deleted file mode 100644 index b9f971eb0773..000000000000 Binary files a/nano/images/weapons/fp9000.png and /dev/null differ diff --git a/nano/images/weapons/fp9000_pmc.png b/nano/images/weapons/fp9000_pmc.png deleted file mode 100644 index b9f971eb0773..000000000000 Binary files a/nano/images/weapons/fp9000_pmc.png and /dev/null differ diff --git a/nano/images/weapons/g_deagle.png b/nano/images/weapons/g_deagle.png deleted file mode 100644 index c2a5c991acf8..000000000000 Binary files a/nano/images/weapons/g_deagle.png and /dev/null differ diff --git a/nano/images/weapons/hg3712.png b/nano/images/weapons/hg3712.png deleted file mode 100644 index f7f32190c468..000000000000 Binary files a/nano/images/weapons/hg3712.png and /dev/null differ diff --git a/nano/images/weapons/highpower.png b/nano/images/weapons/highpower.png deleted file mode 100644 index a7d25c44803b..000000000000 Binary files a/nano/images/weapons/highpower.png and /dev/null differ diff --git a/nano/images/weapons/holdout.png b/nano/images/weapons/holdout.png deleted file mode 100644 index 1d6f26fad25f..000000000000 Binary files a/nano/images/weapons/holdout.png and /dev/null differ diff --git a/nano/images/weapons/hunting.png b/nano/images/weapons/hunting.png deleted file mode 100644 index 5d9613117f07..000000000000 Binary files a/nano/images/weapons/hunting.png and /dev/null differ diff --git a/nano/images/weapons/kt42.png b/nano/images/weapons/kt42.png deleted file mode 100644 index ecf0ee41a9b7..000000000000 Binary files a/nano/images/weapons/kt42.png and /dev/null differ diff --git a/nano/images/weapons/l42mk1.png b/nano/images/weapons/l42mk1.png deleted file mode 100644 index b5efcc14d331..000000000000 Binary files a/nano/images/weapons/l42mk1.png and /dev/null differ diff --git a/nano/images/weapons/m16.png b/nano/images/weapons/m16.png deleted file mode 100644 index 2287f7319696..000000000000 Binary files a/nano/images/weapons/m16.png and /dev/null differ diff --git a/nano/images/weapons/m240.png b/nano/images/weapons/m240.png deleted file mode 100644 index 72eb477c9efa..000000000000 Binary files a/nano/images/weapons/m240.png and /dev/null differ diff --git a/nano/images/weapons/m240t.png b/nano/images/weapons/m240t.png deleted file mode 100644 index 619551d690e8..000000000000 Binary files a/nano/images/weapons/m240t.png and /dev/null differ diff --git a/nano/images/weapons/m37-17.png b/nano/images/weapons/m37-17.png deleted file mode 100644 index 7d53cbd76108..000000000000 Binary files a/nano/images/weapons/m37-17.png and /dev/null differ diff --git a/nano/images/weapons/m37.png b/nano/images/weapons/m37.png deleted file mode 100644 index f888adaeb6be..000000000000 Binary files a/nano/images/weapons/m37.png and /dev/null differ diff --git a/nano/images/weapons/m39.png b/nano/images/weapons/m39.png deleted file mode 100644 index f6fbb0a48961..000000000000 Binary files a/nano/images/weapons/m39.png and /dev/null differ diff --git a/nano/images/weapons/m41a.png b/nano/images/weapons/m41a.png deleted file mode 100644 index 9476e0d1f40f..000000000000 Binary files a/nano/images/weapons/m41a.png and /dev/null differ diff --git a/nano/images/weapons/m41a2.png b/nano/images/weapons/m41a2.png deleted file mode 100644 index 4179cb37f5c3..000000000000 Binary files a/nano/images/weapons/m41a2.png and /dev/null differ diff --git a/nano/images/weapons/m41ae2.png b/nano/images/weapons/m41ae2.png deleted file mode 100644 index 4a5232fd6638..000000000000 Binary files a/nano/images/weapons/m41ae2.png and /dev/null differ diff --git a/nano/images/weapons/m41amk1.png b/nano/images/weapons/m41amk1.png deleted file mode 100644 index 3f44c62b0fad..000000000000 Binary files a/nano/images/weapons/m41amk1.png and /dev/null differ diff --git a/nano/images/weapons/m41b.png b/nano/images/weapons/m41b.png deleted file mode 100644 index 1d63443f25fa..000000000000 Binary files a/nano/images/weapons/m41b.png and /dev/null differ diff --git a/nano/images/weapons/m42a.png b/nano/images/weapons/m42a.png deleted file mode 100644 index f0d07328c122..000000000000 Binary files a/nano/images/weapons/m42a.png and /dev/null differ diff --git a/nano/images/weapons/m42c.png b/nano/images/weapons/m42c.png deleted file mode 100644 index 47d53b86ced1..000000000000 Binary files a/nano/images/weapons/m42c.png and /dev/null differ diff --git a/nano/images/weapons/m44r.png b/nano/images/weapons/m44r.png deleted file mode 100644 index d7deb2589ed3..000000000000 Binary files a/nano/images/weapons/m44r.png and /dev/null differ diff --git a/nano/images/weapons/m44rc.png b/nano/images/weapons/m44rc.png deleted file mode 100644 index 1c20973a0a99..000000000000 Binary files a/nano/images/weapons/m44rc.png and /dev/null differ diff --git a/nano/images/weapons/m46c.png b/nano/images/weapons/m46c.png deleted file mode 100644 index d404a6d88f67..000000000000 Binary files a/nano/images/weapons/m46c.png and /dev/null differ diff --git a/nano/images/weapons/m4a3.png b/nano/images/weapons/m4a3.png deleted file mode 100644 index 9169c71c5176..000000000000 Binary files a/nano/images/weapons/m4a3.png and /dev/null differ diff --git a/nano/images/weapons/m4a345.png b/nano/images/weapons/m4a345.png deleted file mode 100644 index 1ba00158467e..000000000000 Binary files a/nano/images/weapons/m4a345.png and /dev/null differ diff --git a/nano/images/weapons/m4a3c.png b/nano/images/weapons/m4a3c.png deleted file mode 100644 index 95731a6c7160..000000000000 Binary files a/nano/images/weapons/m4a3c.png and /dev/null differ diff --git a/nano/images/weapons/m5.png b/nano/images/weapons/m5.png deleted file mode 100644 index 7d502fdaafc5..000000000000 Binary files a/nano/images/weapons/m5.png and /dev/null differ diff --git a/nano/images/weapons/m56.png b/nano/images/weapons/m56.png deleted file mode 100644 index baf9b9bd9c3c..000000000000 Binary files a/nano/images/weapons/m56.png and /dev/null differ diff --git a/nano/images/weapons/m57a4.png b/nano/images/weapons/m57a4.png deleted file mode 100644 index 6c2cbcbdbe8b..000000000000 Binary files a/nano/images/weapons/m57a4.png and /dev/null differ diff --git a/nano/images/weapons/m60.png b/nano/images/weapons/m60.png deleted file mode 100644 index 08baffaa747f..000000000000 Binary files a/nano/images/weapons/m60.png and /dev/null differ diff --git a/nano/images/weapons/m79.png b/nano/images/weapons/m79.png deleted file mode 100644 index 365280f2424c..000000000000 Binary files a/nano/images/weapons/m79.png and /dev/null differ diff --git a/nano/images/weapons/m81.png b/nano/images/weapons/m81.png deleted file mode 100644 index 7b1a6a195b33..000000000000 Binary files a/nano/images/weapons/m81.png and /dev/null differ diff --git a/nano/images/weapons/m82f.png b/nano/images/weapons/m82f.png deleted file mode 100644 index f6d5e24ec889..000000000000 Binary files a/nano/images/weapons/m82f.png and /dev/null differ diff --git a/nano/images/weapons/m92.png b/nano/images/weapons/m92.png deleted file mode 100644 index ce64c3df3637..000000000000 Binary files a/nano/images/weapons/m92.png and /dev/null differ diff --git a/nano/images/weapons/m93b2.png b/nano/images/weapons/m93b2.png deleted file mode 100644 index 987f56643afa..000000000000 Binary files a/nano/images/weapons/m93b2.png and /dev/null differ diff --git a/nano/images/weapons/mac15.png b/nano/images/weapons/mac15.png deleted file mode 100644 index 179c8b7a61ad..000000000000 Binary files a/nano/images/weapons/mac15.png and /dev/null differ diff --git a/nano/images/weapons/mar30.png b/nano/images/weapons/mar30.png deleted file mode 100644 index 3a5c19f33663..000000000000 Binary files a/nano/images/weapons/mar30.png and /dev/null differ diff --git a/nano/images/weapons/mar40.png b/nano/images/weapons/mar40.png deleted file mode 100644 index 043d6529ef33..000000000000 Binary files a/nano/images/weapons/mar40.png and /dev/null differ diff --git a/nano/images/weapons/mateba.png b/nano/images/weapons/mateba.png deleted file mode 100644 index 49ec3f897a2d..000000000000 Binary files a/nano/images/weapons/mateba.png and /dev/null differ diff --git a/nano/images/weapons/mk221.png b/nano/images/weapons/mk221.png deleted file mode 100644 index a15773fb26dc..000000000000 Binary files a/nano/images/weapons/mk221.png and /dev/null differ diff --git a/nano/images/weapons/mou.png b/nano/images/weapons/mou.png deleted file mode 100644 index a471e16f6e03..000000000000 Binary files a/nano/images/weapons/mou.png and /dev/null differ diff --git a/nano/images/weapons/mp5.png b/nano/images/weapons/mp5.png deleted file mode 100644 index e36fccdca47a..000000000000 Binary files a/nano/images/weapons/mp5.png and /dev/null differ diff --git a/nano/images/weapons/mp7.png b/nano/images/weapons/mp7.png deleted file mode 100644 index 9494c8003d01..000000000000 Binary files a/nano/images/weapons/mp7.png and /dev/null differ diff --git a/nano/images/weapons/no_name.png b/nano/images/weapons/no_name.png deleted file mode 100644 index 8babb2fda54f..000000000000 Binary files a/nano/images/weapons/no_name.png and /dev/null differ diff --git a/nano/images/weapons/ny762.png b/nano/images/weapons/ny762.png deleted file mode 100644 index bdd5fe500e1a..000000000000 Binary files a/nano/images/weapons/ny762.png and /dev/null differ diff --git a/nano/images/weapons/painless.png b/nano/images/weapons/painless.png deleted file mode 100644 index f493c662eb6e..000000000000 Binary files a/nano/images/weapons/painless.png and /dev/null differ diff --git a/nano/images/weapons/pk9.png b/nano/images/weapons/pk9.png deleted file mode 100644 index 7c6649463740..000000000000 Binary files a/nano/images/weapons/pk9.png and /dev/null differ diff --git a/nano/images/weapons/pk9r.png b/nano/images/weapons/pk9r.png deleted file mode 100644 index be9adcd50733..000000000000 Binary files a/nano/images/weapons/pk9r.png and /dev/null differ diff --git a/nano/images/weapons/pk9u.png b/nano/images/weapons/pk9u.png deleted file mode 100644 index 519f574f6e4c..000000000000 Binary files a/nano/images/weapons/pk9u.png and /dev/null differ diff --git a/nano/images/weapons/ppsh17b.png b/nano/images/weapons/ppsh17b.png deleted file mode 100644 index 4ea9e0214f94..000000000000 Binary files a/nano/images/weapons/ppsh17b.png and /dev/null differ diff --git a/nano/images/weapons/single.png b/nano/images/weapons/single.png deleted file mode 100644 index 2f784868ca32..000000000000 Binary files a/nano/images/weapons/single.png and /dev/null differ diff --git a/nano/images/weapons/skorpion.png b/nano/images/weapons/skorpion.png deleted file mode 100644 index 342fc75e3e6e..000000000000 Binary files a/nano/images/weapons/skorpion.png and /dev/null differ diff --git a/nano/images/weapons/skorpion_u.png b/nano/images/weapons/skorpion_u.png deleted file mode 100644 index 72128e1f46bf..000000000000 Binary files a/nano/images/weapons/skorpion_u.png and /dev/null differ diff --git a/nano/images/weapons/smartpistol.png b/nano/images/weapons/smartpistol.png deleted file mode 100644 index e688ac9260a8..000000000000 Binary files a/nano/images/weapons/smartpistol.png and /dev/null differ diff --git a/nano/images/weapons/spearhead.png b/nano/images/weapons/spearhead.png deleted file mode 100644 index 7b740dbdc593..000000000000 Binary files a/nano/images/weapons/spearhead.png and /dev/null differ diff --git a/nano/images/weapons/sshotgun.png b/nano/images/weapons/sshotgun.png deleted file mode 100644 index f052433653b8..000000000000 Binary files a/nano/images/weapons/sshotgun.png and /dev/null differ diff --git a/nano/images/weapons/supremo.png b/nano/images/weapons/supremo.png deleted file mode 100644 index 83f6a6fb4b3f..000000000000 Binary files a/nano/images/weapons/supremo.png and /dev/null differ diff --git a/nano/images/weapons/svd003.png b/nano/images/weapons/svd003.png deleted file mode 100644 index 6395b8d3b686..000000000000 Binary files a/nano/images/weapons/svd003.png and /dev/null differ diff --git a/nano/images/weapons/sw357.png b/nano/images/weapons/sw357.png deleted file mode 100644 index a89ea9cb2f2d..000000000000 Binary files a/nano/images/weapons/sw357.png and /dev/null differ diff --git a/nano/images/weapons/sw358.png b/nano/images/weapons/sw358.png deleted file mode 100644 index c24e72bfce7c..000000000000 Binary files a/nano/images/weapons/sw358.png and /dev/null differ diff --git a/nano/images/weapons/syringegun.png b/nano/images/weapons/syringegun.png deleted file mode 100644 index bf18bf425d7a..000000000000 Binary files a/nano/images/weapons/syringegun.png and /dev/null differ diff --git a/nano/images/weapons/taser.png b/nano/images/weapons/taser.png deleted file mode 100644 index 6337a8996677..000000000000 Binary files a/nano/images/weapons/taser.png and /dev/null differ diff --git a/nano/images/weapons/type71.png b/nano/images/weapons/type71.png deleted file mode 100644 index 700ff164d60c..000000000000 Binary files a/nano/images/weapons/type71.png and /dev/null differ diff --git a/nano/images/weapons/type71c.png b/nano/images/weapons/type71c.png deleted file mode 100644 index 273ac0bcbec0..000000000000 Binary files a/nano/images/weapons/type71c.png and /dev/null differ diff --git a/nano/images/weapons/type73.png b/nano/images/weapons/type73.png deleted file mode 100644 index 63294f7cc9f8..000000000000 Binary files a/nano/images/weapons/type73.png and /dev/null differ diff --git a/nano/images/weapons/vp78.png b/nano/images/weapons/vp78.png deleted file mode 100644 index 2383b4e3aded..000000000000 Binary files a/nano/images/weapons/vp78.png and /dev/null differ diff --git a/nano/images/weapons/xm42b.png b/nano/images/weapons/xm42b.png deleted file mode 100644 index 645c552314f9..000000000000 Binary files a/nano/images/weapons/xm42b.png and /dev/null differ diff --git a/sound/effects/dropship_crash.ogg b/sound/effects/dropship_crash.ogg index ec552ce5b194..880777a41297 100644 Binary files a/sound/effects/dropship_crash.ogg and b/sound/effects/dropship_crash.ogg differ 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/misc/desk_bell.ogg b/sound/misc/desk_bell.ogg new file mode 100644 index 000000000000..c3b143c1a11f Binary files /dev/null and b/sound/misc/desk_bell.ogg differ diff --git a/sound/voice/joe/alwaysknow_haz.ogg b/sound/voice/joe/alwaysknow_haz.ogg new file mode 100644 index 000000000000..b6489f72d59f Binary files /dev/null and b/sound/voice/joe/alwaysknow_haz.ogg differ diff --git a/sound/voice/joe/apollo_behalf_haz.ogg b/sound/voice/joe/apollo_behalf_haz.ogg new file mode 100644 index 000000000000..f89225f25e69 Binary files /dev/null and b/sound/voice/joe/apollo_behalf_haz.ogg differ diff --git a/sound/voice/joe/area_restricted_haz.ogg b/sound/voice/joe/area_restricted_haz.ogg new file mode 100644 index 000000000000..e9e890b72153 Binary files /dev/null and b/sound/voice/joe/area_restricted_haz.ogg differ diff --git a/sound/voice/joe/awful_haz.ogg b/sound/voice/joe/awful_haz.ogg new file mode 100644 index 000000000000..71f3e5cd0d26 Binary files /dev/null and b/sound/voice/joe/awful_haz.ogg differ diff --git a/sound/voice/joe/back_to_work_haz.ogg b/sound/voice/joe/back_to_work_haz.ogg new file mode 100644 index 000000000000..ce5966c71e46 Binary files /dev/null and b/sound/voice/joe/back_to_work_haz.ogg differ diff --git a/sound/voice/joe/beyond_repair_haz.ogg b/sound/voice/joe/beyond_repair_haz.ogg new file mode 100644 index 000000000000..31a9de147862 Binary files /dev/null and b/sound/voice/joe/beyond_repair_haz.ogg differ diff --git a/sound/voice/joe/breach_haz.ogg b/sound/voice/joe/breach_haz.ogg new file mode 100644 index 000000000000..a6d425c00dfd Binary files /dev/null and b/sound/voice/joe/breach_haz.ogg differ diff --git a/sound/voice/joe/come_out_vent_haz.ogg b/sound/voice/joe/come_out_vent_haz.ogg new file mode 100644 index 000000000000..8161b4331f47 Binary files /dev/null and b/sound/voice/joe/come_out_vent_haz.ogg differ diff --git a/sound/voice/joe/could_require_attention_haz.ogg b/sound/voice/joe/could_require_attention_haz.ogg new file mode 100644 index 000000000000..2d997a055d22 Binary files /dev/null and b/sound/voice/joe/could_require_attention_haz.ogg differ diff --git a/sound/voice/joe/damage_haz.ogg b/sound/voice/joe/damage_haz.ogg new file mode 100644 index 000000000000..3c757f48eab6 Binary files /dev/null and b/sound/voice/joe/damage_haz.ogg differ diff --git a/sound/voice/joe/dangerous_items_haz.ogg b/sound/voice/joe/dangerous_items_haz.ogg new file mode 100644 index 000000000000..6b1d3f5aef57 Binary files /dev/null and b/sound/voice/joe/dangerous_items_haz.ogg differ diff --git a/sound/voice/joe/day_never_done_haz.ogg b/sound/voice/joe/day_never_done_haz.ogg new file mode 100644 index 000000000000..3ae295a96143 Binary files /dev/null and b/sound/voice/joe/day_never_done_haz.ogg differ diff --git a/sound/voice/joe/detailed_report_haz.ogg b/sound/voice/joe/detailed_report_haz.ogg new file mode 100644 index 000000000000..31d4686a8799 Binary files /dev/null and b/sound/voice/joe/detailed_report_haz.ogg differ diff --git a/sound/voice/joe/disturbance_haz.ogg b/sound/voice/joe/disturbance_haz.ogg new file mode 100644 index 000000000000..78f242382bff Binary files /dev/null and b/sound/voice/joe/disturbance_haz.ogg differ diff --git a/sound/voice/joe/fire_haz.ogg b/sound/voice/joe/fire_haz.ogg new file mode 100644 index 000000000000..ec1ff9fad98f Binary files /dev/null and b/sound/voice/joe/fire_haz.ogg differ diff --git a/sound/voice/joe/firearm_haz.ogg b/sound/voice/joe/firearm_haz.ogg new file mode 100644 index 000000000000..ff5d19bab998 Binary files /dev/null and b/sound/voice/joe/firearm_haz.ogg differ diff --git a/sound/voice/joe/follow_me_please_haz.ogg b/sound/voice/joe/follow_me_please_haz.ogg new file mode 100644 index 000000000000..9d39bb8d1693 Binary files /dev/null and b/sound/voice/joe/follow_me_please_haz.ogg differ diff --git a/sound/voice/joe/good_day_haz.ogg b/sound/voice/joe/good_day_haz.ogg new file mode 100644 index 000000000000..7ec82d9483f4 Binary files /dev/null and b/sound/voice/joe/good_day_haz.ogg differ diff --git a/sound/voice/joe/health_risks_haz.ogg b/sound/voice/joe/health_risks_haz.ogg new file mode 100644 index 000000000000..76ecf60b23d7 Binary files /dev/null and b/sound/voice/joe/health_risks_haz.ogg differ diff --git a/sound/voice/joe/how_can_i_help_haz.ogg b/sound/voice/joe/how_can_i_help_haz.ogg new file mode 100644 index 000000000000..d6d28222efd7 Binary files /dev/null and b/sound/voice/joe/how_can_i_help_haz.ogg differ diff --git a/sound/voice/joe/hysterical_haz.ogg b/sound/voice/joe/hysterical_haz.ogg new file mode 100644 index 000000000000..cd2926fa64cc Binary files /dev/null and b/sound/voice/joe/hysterical_haz.ogg differ diff --git a/sound/voice/joe/investigating_disturbance_haz.ogg b/sound/voice/joe/investigating_disturbance_haz.ogg new file mode 100644 index 000000000000..c36bc8ff0f0d Binary files /dev/null and b/sound/voice/joe/investigating_disturbance_haz.ogg differ diff --git a/sound/voice/joe/irresponsible_haz.ogg b/sound/voice/joe/irresponsible_haz.ogg new file mode 100644 index 000000000000..585d5e6dc7bb Binary files /dev/null and b/sound/voice/joe/irresponsible_haz.ogg differ diff --git a/sound/voice/joe/misbehaving_haz.ogg b/sound/voice/joe/misbehaving_haz.ogg new file mode 100644 index 000000000000..f3a49f3527ee Binary files /dev/null and b/sound/voice/joe/misbehaving_haz.ogg differ diff --git a/sound/voice/joe/more_pressing_matters_haz.ogg b/sound/voice/joe/more_pressing_matters_haz.ogg new file mode 100644 index 000000000000..e4a2222ba2a4 Binary files /dev/null and b/sound/voice/joe/more_pressing_matters_haz.ogg differ diff --git a/sound/voice/joe/not_allowed_there_haz.ogg b/sound/voice/joe/not_allowed_there_haz.ogg new file mode 100644 index 000000000000..62804f4498a8 Binary files /dev/null and b/sound/voice/joe/not_allowed_there_haz.ogg differ diff --git a/sound/voice/joe/not_what_i_think_haz.ogg b/sound/voice/joe/not_what_i_think_haz.ogg new file mode 100644 index 000000000000..f8f640c87de8 Binary files /dev/null and b/sound/voice/joe/not_what_i_think_haz.ogg differ diff --git a/sound/voice/joe/other_concerns_haz.ogg b/sound/voice/joe/other_concerns_haz.ogg new file mode 100644 index 000000000000..8c24870cfa4b Binary files /dev/null and b/sound/voice/joe/other_concerns_haz.ogg differ diff --git a/sound/voice/joe/patience_haz.ogg b/sound/voice/joe/patience_haz.ogg new file mode 100644 index 000000000000..3e99f84c5d58 Binary files /dev/null and b/sound/voice/joe/patience_haz.ogg differ diff --git a/sound/voice/joe/presence_logged_haz.ogg b/sound/voice/joe/presence_logged_haz.ogg new file mode 100644 index 000000000000..df8b5a0cdfa9 Binary files /dev/null and b/sound/voice/joe/presence_logged_haz.ogg differ diff --git a/sound/voice/joe/really_shouldnt_be_here_haz.ogg b/sound/voice/joe/really_shouldnt_be_here_haz.ogg new file mode 100644 index 000000000000..22de4fe8ac63 Binary files /dev/null and b/sound/voice/joe/really_shouldnt_be_here_haz.ogg differ diff --git a/sound/voice/joe/report_haz.ogg b/sound/voice/joe/report_haz.ogg new file mode 100644 index 000000000000..188042163ed4 Binary files /dev/null and b/sound/voice/joe/report_haz.ogg differ diff --git a/sound/voice/joe/running_accidents_haz.ogg b/sound/voice/joe/running_accidents_haz.ogg new file mode 100644 index 000000000000..adca77ae199c Binary files /dev/null and b/sound/voice/joe/running_accidents_haz.ogg differ diff --git a/sound/voice/joe/safety_breach_haz.ogg b/sound/voice/joe/safety_breach_haz.ogg new file mode 100644 index 000000000000..41116872272a Binary files /dev/null and b/sound/voice/joe/safety_breach_haz.ogg differ diff --git a/sound/voice/joe/safety_haz.ogg b/sound/voice/joe/safety_haz.ogg new file mode 100644 index 000000000000..838abe6813b6 Binary files /dev/null and b/sound/voice/joe/safety_haz.ogg differ diff --git a/sound/voice/joe/species_haz.ogg b/sound/voice/joe/species_haz.ogg new file mode 100644 index 000000000000..a0bcaebf05ac Binary files /dev/null and b/sound/voice/joe/species_haz.ogg differ diff --git a/sound/voice/joe/support_ticket_removed_haz.ogg b/sound/voice/joe/support_ticket_removed_haz.ogg new file mode 100644 index 000000000000..db6e2dc69eca Binary files /dev/null and b/sound/voice/joe/support_ticket_removed_haz.ogg differ diff --git a/sound/voice/joe/temperatures_haz.ogg b/sound/voice/joe/temperatures_haz.ogg new file mode 100644 index 000000000000..5d1a4a952dfa Binary files /dev/null and b/sound/voice/joe/temperatures_haz.ogg differ diff --git a/sound/voice/joe/that_stings_haz.ogg b/sound/voice/joe/that_stings_haz.ogg new file mode 100644 index 000000000000..f88468d260c9 Binary files /dev/null and b/sound/voice/joe/that_stings_haz.ogg differ diff --git a/sound/voice/joe/this_is_futile_haz.ogg b/sound/voice/joe/this_is_futile_haz.ogg new file mode 100644 index 000000000000..3d371cc9fc04 Binary files /dev/null and b/sound/voice/joe/this_is_futile_haz.ogg differ diff --git a/sound/voice/joe/tomorrow_together_haz.ogg b/sound/voice/joe/tomorrow_together_haz.ogg new file mode 100644 index 000000000000..05686c426bf5 Binary files /dev/null and b/sound/voice/joe/tomorrow_together_haz.ogg differ diff --git a/sound/voice/joe/unprotected_flames_haz.ogg b/sound/voice/joe/unprotected_flames_haz.ogg new file mode 100644 index 000000000000..8b2df7a38946 Binary files /dev/null and b/sound/voice/joe/unprotected_flames_haz.ogg differ diff --git a/sound/voice/joe/what_happened_to_you_haz.ogg b/sound/voice/joe/what_happened_to_you_haz.ogg new file mode 100644 index 000000000000..db90ec8119eb Binary files /dev/null and b/sound/voice/joe/what_happened_to_you_haz.ogg differ diff --git a/sound/voice/joe/what_is_this_haz.ogg b/sound/voice/joe/what_is_this_haz.ogg new file mode 100644 index 000000000000..27aedef9f230 Binary files /dev/null and b/sound/voice/joe/what_is_this_haz.ogg differ diff --git a/sound/voice/joe/with_you_shortly_haz.ogg b/sound/voice/joe/with_you_shortly_haz.ogg new file mode 100644 index 000000000000..5f7a669c38fb Binary files /dev/null and b/sound/voice/joe/with_you_shortly_haz.ogg differ diff --git a/sound/weapons/gun_shotgun_xm51.ogg b/sound/weapons/gun_shotgun_xm51.ogg new file mode 100644 index 000000000000..0b0f94e49ca1 Binary files /dev/null and b/sound/weapons/gun_shotgun_xm51.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/fortunes.txt b/strings/fortunes.txt index 31478d7ba3d9..27f249d0c8b0 100644 --- a/strings/fortunes.txt +++ b/strings/fortunes.txt @@ -5,6 +5,7 @@ A conclusion is simply the place where you got tired of thinking. A curse on the surface may be a blessing in disguise. A cynic is only a frustrated optimist. A dream is a wish your heart makes. +A friend will bring you a big surprise soon. A golden egg of your opportunity falls into your lap this month. A good gun will never kill anyone on its own. It is the shooter who pulls the trigger. A good leader knows when to shut up and listen. @@ -19,7 +20,7 @@ A true leader looks after their men, not their life. A true soldier dies protecting the ones they care for. A very attractive person will come with a message for you. A well-aimed spear is worth three. -ALl endings are also beginnings. We just don't know it all the time. +All endings are also beginnings. We just don't know it all the time. About time I got out of that cookie. Accept what comes to you each day. Accomplish the tasks you were given, and then you can rest easy. @@ -183,6 +184,7 @@ Luck will shine upon you today. Make happiness a priority, and be gentle with yourself in the process. Make someone laugh today. Make someone smile today. +Make today your day. Man is born to live, but not prepared to live. Many will travel to hear you speak. Man’s mind, once stretched by a new idea, never regains its original dimensions. @@ -377,4 +379,4 @@ Your shoes are dirty. Your shoes are untied. Your talents will be recognized and suitably rewarded. Your work interests can capture the highest status or prestige. -Your worst enemy has a crush on you. \ No newline at end of file +Your worst enemy has a crush on you. diff --git a/strings/marinetips.txt b/strings/marinetips.txt index 89c55ab6d698..d461c764fb34 100644 --- a/strings/marinetips.txt +++ b/strings/marinetips.txt @@ -80,7 +80,7 @@ You can shoot through tents, but they won't protect you much in return. Reqs doesn't have an infinite budget. Good Reqs can land supplies anywhere outside - given coords - and sometimes in a minimal amount of time. A ‘point blank’ or ‘PB’ is a type of attack with a firearm where you click directly on a mob next to you. These attacks are not effected by accuracy allowing you to quickly fire with weapons like a shotgun to great effect. -Intel Officers can be put in a squad by going to CIC and requesting it. +Intel Officers can be put in a different squad by going to CIC and requesting it. Any marine can perform CPR. On dead marines, this will increase the time they have until they become unrevivable. If you've been pounced on and your squad is unloading into the target, you can hit the 'rest' button to stay down so you don't get filled with lead after getting up. You can check the landing zone as a marine in the status panel. @@ -88,7 +88,7 @@ The Colonial Marshals may come to crack down on too heavy of a Black Market usag A night vision HUD optic can be recharged by removing it with a screwdriver, then placing it into a recharger. You can put a pistol belt on your suit slot. (Just grab a rifle instead.) Alt-clicking the Squad Leader tracker lets you track your fireteam leader instead. -Armor has a randomized reduction in effectiveness, and does not protect the digits. Take the wiki damage values as a best-case scenario. +Armor consistently protects you from damage to your chest, arms, and legs, but does not protect hands and feet. Take the wiki damage values as a best-case scenario. You can click on your Security Access Tuner (multitool) in your hand to locate the area's APC if there is one. Need help learning the game and these tips aren't enough? Use MentorHelp or try to get ahold of your ship's Senior Enlisted Advisor. Clicking on your sprite with help intent will let you check your body, seeing where your fractures and other wounds are. 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/strings/xenotips.txt b/strings/xenotips.txt index e2bf3fe75098..08f56bf1aa8e 100644 --- a/strings/xenotips.txt +++ b/strings/xenotips.txt @@ -23,13 +23,12 @@ Claymores have directional explosions. Set them off early by slashing them from If you have difficulty clicking marines, try using Directional Slashing, though there's no directional slashing for abilities. You can diagonally pounce through the corners of fire as a Lurker or Runner without getting ignited. When playing as Xeno, consider aiming at the limbs instead of the chest. Marine armor doesn't protect the arms and legs as well as it does the body. -As Xeno, you can break Night-Vision goggles that some marines wear on their helmets. Just aim for the head and slash until the goggles shatter. You can dodge pounces that aren't aimed directly at you by laying down. You may rest immediately during a pounce to pounce straight through mobs. It's not very practical or useful though. Pouncing someone who is buckled to a chair will still stun them, but you won't jump into their tile and they will not be knocked to the ground. Star shell dust from said grenades is just as meltable as normal flares. You can join the hive as a living Facehugger by clicking on the hive's Eggmorpher. This works on other hives too.. -Playable Facehuggers can leap onto targets with a one-second windup, but this will only infect them if they are adjacent to it. Otherwise, it will simply knock them down for a small duration. +Playable Facehuggers can leap onto targets with a one-second windup, but this will only infect them if they are adjacent to it. Otherwise, it will simply knock them down for a small duration. As a Facehugger, you cannot talk in hivemind, but you can still open Hive Status and overwatch your sisters. This can be useful if you're locating other Facehuggers, flanker castes, or trying to learn from experienced Facehugger players. Shift-clicking the Queen indicator will tell you what area you are in, on the map. As a Ravager your abilities become greatly enhanced when you empower with three or more people around you. @@ -37,3 +36,4 @@ Resisting on a water tile will immediately put out fires. Make sure you're alone You can filter out the Xenomorphs displayed in hive status by health, allowing you to look only for wounded sisters. Each xeno has their own ‘tackle counter’ on a marine. The range to successfully tackle can be anywhere from two to six tackles based on caste. If a marine gets stunned or knocked over by other means it will reset everyone's tackle counters and they may get up! As a Xenomorph, the list of available tunnels is sorted by their distance to the player! +As a Xenomorph, pay attention to what a marine is wearing. If they have no helmet, aiming for the head will be significantly more damaging, if they aren't wearing gloves, then think about going for their hands. diff --git a/tgui/.eslintignore b/tgui/.eslintignore index a59187b933ae..7965d0731a6e 100644 --- a/tgui/.eslintignore +++ b/tgui/.eslintignore @@ -3,4 +3,3 @@ /**/*.bundle.* /**/*.chunk.* /**/*.hot-update.* -/packages/inferno/** diff --git a/tgui/babel.config.js b/tgui/babel.config.js index e702c9a7119d..69a5a401cc77 100644 --- a/tgui/babel.config.js +++ b/tgui/babel.config.js @@ -6,28 +6,36 @@ const createBabelConfig = (options) => { const { presets = [], plugins = [], removeConsole } = options; - // prettier-ignore return { presets: [ - [require.resolve('@babel/preset-typescript'), { - allowDeclareFields: true, - }], - [require.resolve('@babel/preset-env'), { - modules: 'commonjs', - useBuiltIns: 'entry', - corejs: '3', - spec: false, - loose: true, - targets: [], - }], + [ + require.resolve('@babel/preset-typescript'), + { + allowDeclareFields: true, + }, + ], + [ + require.resolve('@babel/preset-env'), + { + modules: 'commonjs', + useBuiltIns: 'entry', + corejs: '3.3.2', + spec: false, + loose: true, + targets: [], + }, + ], + [require.resolve('@babel/preset-react'), { runtime: 'automatic' }], ...presets, ].filter(Boolean), plugins: [ - [require.resolve('@babel/plugin-proposal-class-properties'), { - loose: true, - }], + [ + require.resolve('@babel/plugin-transform-class-properties'), + { + loose: true, + }, + ], require.resolve('@babel/plugin-transform-jscript'), - require.resolve('babel-plugin-inferno'), removeConsole && require.resolve('babel-plugin-transform-remove-console'), require.resolve('common/string.babel-plugin.cjs'), ...plugins, 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/package.json b/tgui/package.json index c52d0f754bdd..77ff3be9b01f 100644 --- a/tgui/package.json +++ b/tgui/package.json @@ -22,9 +22,10 @@ "dependencies": { "@babel/core": "^7.15.0", "@babel/eslint-parser": "^7.15.0", - "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-transform-class-properties": "^7.23.3", "@babel/plugin-transform-jscript": "^7.14.5", "@babel/preset-env": "^7.15.0", + "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.15.0", "@types/jest": "^27.0.1", "@types/jsdom": "^16.2.13", @@ -34,7 +35,6 @@ "@typescript-eslint/parser": "^4.29.1", "babel-jest": "^27.0.6", "babel-loader": "^8.2.2", - "babel-plugin-inferno": "^6.3.0", "babel-plugin-transform-remove-console": "^6.9.4", "common": "workspace:*", "css-loader": "^5.2.7", @@ -44,7 +44,6 @@ "eslint-plugin-react": "^7.24.0", "eslint-plugin-unused-imports": "^1.1.4", "file-loader": "^6.2.0", - "inferno": "^7.4.8", "jest": "^27.0.6", "jest-circus": "^27.0.6", "jsdom": "^16.7.0", diff --git a/tgui/packages/common/keys.ts b/tgui/packages/common/keys.ts new file mode 100644 index 000000000000..34ac9e1614dd --- /dev/null +++ b/tgui/packages/common/keys.ts @@ -0,0 +1,39 @@ +/** + * ### Key codes. + * event.keyCode is deprecated, use this reference instead. + * + * Handles modifier keys (Shift, Alt, Control) and arrow keys. + * + * For alphabetical keys, use the actual character (e.g. 'a') instead of the key code. + * + * Something isn't here that you want? Just add it: + * @url https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values + * @usage + * ```ts + * import { KEY } from 'tgui/common/keys'; + * + * if (event.key === KEY.Enter) { + * // do something + * } + * ``` + */ +export enum KEY { + Alt = 'Alt', + Backspace = 'Backspace', + Control = 'Control', + Delete = 'Delete', + Down = 'ArrowDown', + End = 'End', + Enter = 'Enter', + Escape = 'Escape', + Home = 'Home', + Insert = 'Insert', + Left = 'ArrowLeft', + PageDown = 'PageDown', + PageUp = 'PageUp', + Right = 'ArrowRight', + Shift = 'Shift', + Space = ' ', + Tab = 'Tab', + Up = 'ArrowUp', +} 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/common/react.ts b/tgui/packages/common/react.ts index 8e42d0971ab4..dd6430953445 100644 --- a/tgui/packages/common/react.ts +++ b/tgui/packages/common/react.ts @@ -51,15 +51,6 @@ export const shallowDiffers = (a: object, b: object) => { return false; }; -/** - * Default inferno hooks for pure components. - */ -export const pureComponentHooks = { - onComponentShouldUpdate: (lastProps, nextProps) => { - return shallowDiffers(lastProps, nextProps); - }, -}; - /** * A helper to determine whether the object is renderable by React. */ diff --git a/tgui/packages/common/redux.ts b/tgui/packages/common/redux.ts index 4e618bddafd0..7b4999d93b1a 100644 --- a/tgui/packages/common/redux.ts +++ b/tgui/packages/common/redux.ts @@ -194,19 +194,3 @@ export const createAction = ( return actionCreator; }; - -// Implementation specific -// -------------------------------------------------------- - -export const useDispatch = (context: { - store: Store; -}): Dispatch => { - return context.store.dispatch; -}; - -export const useSelector = ( - context: { store: Store }, - selector: (state: State) => Selected -): Selected => { - return selector(context.store.getState()); -}; 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-bench/package.json b/tgui/packages/tgui-bench/package.json index 49bc0c423c28..7cdb0ce7e3cf 100644 --- a/tgui/packages/tgui-bench/package.json +++ b/tgui/packages/tgui-bench/package.json @@ -6,10 +6,9 @@ "common": "workspace:*", "fastify": "^3.29.4", "fastify-static": "^4.2.3", - "inferno": "^7.4.8", - "inferno-vnode-flags": "^7.4.8", "lodash": "^4.17.21", "platform": "^1.3.6", + "react": "^18.2.0", "tgui": "workspace:*" } } diff --git a/tgui/packages/tgui-bench/tests/Button.test.tsx b/tgui/packages/tgui-bench/tests/Button.test.tsx index 6b806d720ab8..6340e915c079 100644 --- a/tgui/packages/tgui-bench/tests/Button.test.tsx +++ b/tgui/packages/tgui-bench/tests/Button.test.tsx @@ -1,4 +1,4 @@ -import { linkEvent } from 'inferno'; +import { linkEvent } from 'react'; import { Button } from 'tgui/components'; import { createRenderer } from 'tgui/renderer'; diff --git a/tgui/packages/tgui-panel/Panel.js b/tgui/packages/tgui-panel/Panel.jsx similarity index 93% rename from tgui/packages/tgui-panel/Panel.js rename to tgui/packages/tgui-panel/Panel.jsx index 83150ab6ef13..cb6b1416494a 100644 --- a/tgui/packages/tgui-panel/Panel.js +++ b/tgui/packages/tgui-panel/Panel.jsx @@ -14,17 +14,17 @@ import { PingIndicator } from './ping'; import { ReconnectButton } from './reconnect'; import { SettingsPanel, useSettings } from './settings'; -export const Panel = (props, context) => { +export const Panel = (props) => { // IE8-10: Needs special treatment due to missing Flex support if (Byond.IS_LTE_IE10) { return ; } - const audio = useAudio(context); - const settings = useSettings(context); - const game = useGame(context); + const audio = useAudio(); + const settings = useSettings(); + const game = useGame(); if (process.env.NODE_ENV !== 'production') { const { useDebug, KitchenSink } = require('tgui/debug'); - const debug = useDebug(context); + const debug = useDebug(); if (debug.kitchenSink) { return ; } @@ -103,8 +103,8 @@ export const Panel = (props, context) => { ); }; -const HoboPanel = (props, context) => { - const settings = useSettings(context); +const HoboPanel = (props) => { + const settings = useSettings(); return ( diff --git a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js b/tgui/packages/tgui-panel/audio/NowPlayingWidget.js deleted file mode 100644 index 672ecfad7cec..000000000000 --- a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { toFixed } from 'common/math'; -import { useDispatch, useSelector } from 'common/redux'; -import { Button, Flex, Knob } from 'tgui/components'; -import { useSettings } from '../settings'; -import { selectAudio } from './selectors'; - -export const NowPlayingWidget = (props, context) => { - const audio = useSelector(context, selectAudio); - const dispatch = useDispatch(context); - const settings = useSettings(context); - const title = audio.meta?.title; - return ( - - {(audio.playing && ( - <> - - Now playing: - - - {title || 'Unknown Track'} - - - )) || ( - - Nothing to play. - - )} - {audio.playing && ( - -
      + ); }; diff --git a/tgui/packages/tgui-panel/settings/SettingsPanel.js b/tgui/packages/tgui-panel/settings/SettingsPanel.jsx similarity index 90% rename from tgui/packages/tgui-panel/settings/SettingsPanel.js rename to tgui/packages/tgui-panel/settings/SettingsPanel.jsx index 19715a724e30..d0f249c77aff 100644 --- a/tgui/packages/tgui-panel/settings/SettingsPanel.js +++ b/tgui/packages/tgui-panel/settings/SettingsPanel.jsx @@ -6,7 +6,7 @@ import { toFixed } from 'common/math'; import { useLocalState } from 'tgui/backend'; -import { useDispatch, useSelector } from 'common/redux'; +import { useDispatch, useSelector } from 'tgui/backend'; import { Box, Button, ColorBox, Divider, Dropdown, Flex, Input, LabeledList, NumberInput, Section, Stack, Tabs, TextArea } from 'tgui/components'; import { ChatPageSettings } from '../chat'; import { rebuildChat, saveChatToDisk } from '../chat/actions'; @@ -15,9 +15,9 @@ import { changeSettingsTab, updateSettings, addHighlightSetting, removeHighlight import { SETTINGS_TABS, FONTS, MAX_HIGHLIGHT_SETTINGS } from './constants'; import { selectActiveTab, selectSettings, selectHighlightSettings, selectHighlightSettingById } from './selectors'; -export const SettingsPanel = (props, context) => { - const activeTab = useSelector(context, selectActiveTab); - const dispatch = useDispatch(context); +export const SettingsPanel = (props) => { + const activeTab = useSelector(selectActiveTab); + const dispatch = useDispatch(); return ( @@ -49,13 +49,11 @@ export const SettingsPanel = (props, context) => { ); }; -export const SettingsGeneral = (props, context) => { - const { theme, fontFamily, fontSize, lineHeight } = useSelector( - context, - selectSettings - ); - const dispatch = useDispatch(context); - const [freeFont, setFreeFont] = useLocalState(context, 'freeFont', false); +export const SettingsGeneral = (props) => { + const { theme, fontFamily, fontSize, lineHeight } = + useSelector(selectSettings); + const dispatch = useDispatch(); + const [freeFont, setFreeFont] = useLocalState('freeFont', false); return (
      @@ -159,9 +157,9 @@ export const SettingsGeneral = (props, context) => { ); }; -const TextHighlightSettings = (props, context) => { - const highlightSettings = useSelector(context, selectHighlightSettings); - const dispatch = useDispatch(context); +const TextHighlightSettings = (props) => { + const highlightSettings = useSelector(selectHighlightSettings); + const dispatch = useDispatch(); return (
      @@ -200,10 +198,10 @@ const TextHighlightSettings = (props, context) => { ); }; -const TextHighlightSetting = (props, context) => { +const TextHighlightSetting = (props) => { const { id, ...rest } = props; - const highlightSettingById = useSelector(context, selectHighlightSettingById); - const dispatch = useDispatch(context); + const highlightSettingById = useSelector(selectHighlightSettingById); + const dispatch = useDispatch(); const { highlightColor, highlightText, diff --git a/tgui/packages/tgui-panel/settings/hooks.js b/tgui/packages/tgui-panel/settings/hooks.js index da46322f9a94..5ea91c860674 100644 --- a/tgui/packages/tgui-panel/settings/hooks.js +++ b/tgui/packages/tgui-panel/settings/hooks.js @@ -4,13 +4,13 @@ * @license MIT */ -import { useDispatch, useSelector } from 'common/redux'; +import { useDispatch, useSelector } from 'tgui/backend'; import { updateSettings, toggleSettings } from './actions'; import { selectSettings } from './selectors'; -export const useSettings = (context) => { - const settings = useSelector(context, selectSettings); - const dispatch = useDispatch(context); +export const useSettings = () => { + const settings = useSelector(selectSettings); + const dispatch = useDispatch(); return { ...settings, visible: settings.view.visible, diff --git a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss index 9e6d604bdf82..ca142dab82a4 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss @@ -228,6 +228,7 @@ a.popt { .looc, .adminooc, .admin, +.niche, .medal, .yell { font-weight: bold; @@ -290,6 +291,11 @@ em { font-weight: bold; } +.niche { + color: #5975da; + font-weight: bold; +} + .name { font-weight: bold; } diff --git a/tgui/packages/tgui-panel/styles/goon/chat-light.scss b/tgui/packages/tgui-panel/styles/goon/chat-light.scss index 78613d37ae51..9cf69e221ca6 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-light.scss @@ -246,6 +246,7 @@ a.popt { .looc, .adminooc, .admin, +.niche, .medal, .yell { font-weight: bold; @@ -308,6 +309,11 @@ em { font-weight: bold; } +.niche { + color: #4473ff; + font-weight: bold; +} + .name { font-weight: bold; } diff --git a/tgui/packages/tgui-say/components/dragzone.tsx b/tgui/packages/tgui-say/components/dragzone.tsx index 1260f4cf5abc..3dc4d3792f57 100644 --- a/tgui/packages/tgui-say/components/dragzone.tsx +++ b/tgui/packages/tgui-say/components/dragzone.tsx @@ -14,7 +14,7 @@ export const Dragzone = (props: Partial) => { return (
      ); }; diff --git a/tgui/packages/tgui-say/helpers/ChannelIterator.ts b/tgui/packages/tgui-say/helpers/ChannelIterator.ts new file mode 100644 index 000000000000..136806927e95 --- /dev/null +++ b/tgui/packages/tgui-say/helpers/ChannelIterator.ts @@ -0,0 +1,50 @@ +export type Channel = 'Say' | 'Radio' | 'Me' | 'OOC' | 'Admin'; + +/** + * ### ChannelIterator + * Cycles a predefined list of channels, + * skipping over blacklisted ones, + * and providing methods to manage and query the current channel. + */ +export class ChannelIterator { + private index: number = 0; + private readonly channels: Channel[] = ['Say', 'Radio', 'Me', 'OOC', 'Admin']; + private readonly blacklist: Channel[] = ['Admin']; + private readonly quiet: Channel[] = ['OOC', 'Admin']; + + public next(): Channel { + if (this.blacklist.includes(this.channels[this.index])) { + return this.channels[this.index]; + } + + for (let index = 1; index <= this.channels.length; index++) { + let nextIndex = (this.index + index) % this.channels.length; + if (!this.blacklist.includes(this.channels[nextIndex])) { + this.index = nextIndex; + break; + } + } + + return this.channels[this.index]; + } + + public set(channel: Channel): void { + this.index = this.channels.indexOf(channel) || 0; + } + + public current(): Channel { + return this.channels[this.index]; + } + + public isSay(): boolean { + return this.channels[this.index] === 'Say'; + } + + public isVisible(): boolean { + return !this.quiet.includes(this.channels[this.index]); + } + + public reset(): void { + this.index = 0; + } +} diff --git a/tgui/packages/tgui-say/helpers/ChatHistory.ts b/tgui/packages/tgui-say/helpers/ChatHistory.ts new file mode 100644 index 000000000000..b5490b1887f4 --- /dev/null +++ b/tgui/packages/tgui-say/helpers/ChatHistory.ts @@ -0,0 +1,59 @@ +/** + * ### ChatHistory + * A class to manage a chat history, + * maintaining a maximum of five messages and supporting navigation, + * temporary message storage, and query operations. + */ +export class ChatHistory { + private messages: string[] = []; + private index: number = -1; // Initialize index at -1 + private temp: string | null = null; + + public add(message: string): void { + this.messages.unshift(message); + this.index = -1; // Reset index + if (this.messages.length > 5) { + this.messages.pop(); + } + } + + public getIndex(): number { + return this.index + 1; + } + + public getOlderMessage(): string | null { + if (this.messages.length === 0 || this.index >= this.messages.length - 1) { + return null; + } + this.index++; + return this.messages[this.index]; + } + + public getNewerMessage(): string | null { + if (this.index <= 0) { + this.index = -1; + return null; + } + this.index--; + return this.messages[this.index]; + } + + public isAtLatest(): boolean { + return this.index === -1; + } + + public saveTemp(message: string): void { + this.temp = message; + } + + public getTemp(): string | null { + const temp = this.temp; + this.temp = null; + return temp; + } + + public reset(): void { + this.index = -1; + this.temp = null; + } +} diff --git a/tgui/packages/tgui-say/interfaces/TguiSay.tsx b/tgui/packages/tgui-say/interfaces/TguiSay.tsx index d708463d5a1a..ef0c60b11614 100644 --- a/tgui/packages/tgui-say/interfaces/TguiSay.tsx +++ b/tgui/packages/tgui-say/interfaces/TguiSay.tsx @@ -3,7 +3,7 @@ import { CHANNELS, WINDOW_SIZES } from '../constants'; import { Dragzone } from '../components/dragzone'; import { eventHandlerMap } from '../handlers'; import { getCss, getTheme, timers } from '../helpers'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { Modal, State } from '../types'; /** Primary class for the TGUI say modal. */ @@ -52,15 +52,15 @@ export class TguiSay extends Component<{}, State> { const theme = getTheme(lightMode, radioPrefix, channel, availableChannels); return ( -
      +
      -
      +
      {!!theme && ( @@ -82,9 +82,9 @@ export class TguiSay extends Component<{}, State> { )} diff --git a/tgui/packages/tgui-say/package.json b/tgui/packages/tgui-say/package.json index 5ee9e432606f..6fc66ade82f1 100644 --- a/tgui/packages/tgui-say/package.json +++ b/tgui/packages/tgui-say/package.json @@ -3,8 +3,9 @@ "name": "tgui-say", "version": "1.0.0", "dependencies": { + "@types/react": "^18.2.39", "common": "workspace:*", - "inferno": "^7.4.8", + "react": "^18.2.0", "tgui": "workspace:*", "tgui-polyfill": "workspace:*" } diff --git a/tgui/packages/tgui-say/timers.ts b/tgui/packages/tgui-say/timers.ts new file mode 100644 index 000000000000..7b9fffc87fc2 --- /dev/null +++ b/tgui/packages/tgui-say/timers.ts @@ -0,0 +1,19 @@ +import { debounce, throttle } from 'common/timer'; + +const SECONDS = 1000; + +/** Timers: Prevents overloading the server, throttles messages */ +export const byondMessages = { + // Debounce: Prevents spamming the server + channelIncrementMsg: debounce( + (visible: boolean) => Byond.sendMessage('thinking', { visible }), + 0.4 * SECONDS + ), + forceSayMsg: debounce( + (entry: string) => Byond.sendMessage('force', { entry, channel: 'Say' }), + 1 * SECONDS, + true + ), + // Throttle: Prevents spamming the server + typingMsg: throttle(() => Byond.sendMessage('typing'), 4 * SECONDS), +} as const; diff --git a/tgui/packages/tgui-say/types/index.tsx b/tgui/packages/tgui-say/types/index.tsx index abd29630ff68..02da4b1ddea7 100644 --- a/tgui/packages/tgui-say/types/index.tsx +++ b/tgui/packages/tgui-say/types/index.tsx @@ -1,4 +1,4 @@ -import { RefObject } from 'inferno'; +import { RefObject } from 'react'; export type Modal = { events: Events; diff --git a/tgui/packages/tgui/backend.ts b/tgui/packages/tgui/backend.ts index dd4cae9e6227..746e511a5027 100644 --- a/tgui/packages/tgui/backend.ts +++ b/tgui/packages/tgui/backend.ts @@ -21,6 +21,12 @@ import { resumeRenderer, suspendRenderer } from './renderer'; const logger = createLogger('backend'); +export let globalStore; + +export const setGlobalStore = (store) => { + globalStore = store; +}; + export const backendUpdate = createAction('backend/update'); export const backendSetSharedState = createAction('backend/setSharedState'); export const backendSuspendStart = createAction('backend/suspendStart'); @@ -267,6 +273,10 @@ type BackendState = { shared: Record; suspending: boolean; suspended: boolean; + debug?: { + debugLayout: boolean; + kitchenSink: boolean; + }; }; /** @@ -280,9 +290,9 @@ export const selectBackend = (state: any): BackendState => * * Includes the `act` function for performing DM actions. */ -export const useBackend = (context: any) => { - const { store } = context; - const state = selectBackend(store.getState()); +export const useBackend = () => { + const state: BackendState = globalStore?.getState()?.backend; + return { ...state, act: sendAct, @@ -308,18 +318,16 @@ type StateWithSetter = [T, (nextState: T) => void]; * @param initialState Initializes your global variable with this value. */ export const useLocalState = ( - context: any, key: string, initialState: T ): StateWithSetter => { - const { store } = context; - const state = selectBackend(store.getState()); - const sharedStates = state.shared ?? {}; + const state = globalStore?.getState()?.backend; + const sharedStates = state?.shared ?? {}; const sharedState = key in sharedStates ? sharedStates[key] : initialState; return [ sharedState, (nextState) => { - store.dispatch( + globalStore.dispatch( backendSetSharedState({ key, nextState: @@ -347,27 +355,31 @@ export const useLocalState = ( * @param initialState Initializes your global variable with this value. */ export const useSharedState = ( - context: any, key: string, initialState: T ): StateWithSetter => { - const { store } = context; - const state = selectBackend(store.getState()); - const sharedStates = state.shared ?? {}; + const state = globalStore?.getState()?.backend; + const sharedStates = state?.shared ?? {}; const sharedState = key in sharedStates ? sharedStates[key] : initialState; return [ sharedState, (nextState) => { - // prettier-ignore Byond.sendMessage({ type: 'setSharedState', key, - value: JSON.stringify( - typeof nextState === 'function' - ? nextState(sharedState) - : nextState - ) || '', + value: + JSON.stringify( + typeof nextState === 'function' ? nextState(sharedState) : nextState + ) || '', }); }, ]; }; + +export const useDispatch = () => { + return globalStore.dispatch; +}; + +export const useSelector = (selector: (state: any) => any) => { + return selector(globalStore?.getState()); +}; diff --git a/tgui/packages/tgui/components/AnimatedNumber.tsx b/tgui/packages/tgui/components/AnimatedNumber.tsx index ed3be2e5ef3d..956dc0a8232c 100644 --- a/tgui/packages/tgui/components/AnimatedNumber.tsx +++ b/tgui/packages/tgui/components/AnimatedNumber.tsx @@ -5,7 +5,7 @@ */ import { clamp, toFixed } from 'common/math'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; const isSafeNumber = (value: number) => { // prettier-ignore diff --git a/tgui/packages/tgui/components/Autofocus.tsx b/tgui/packages/tgui/components/Autofocus.tsx index 28945dd7aa48..a0b3f6f76590 100644 --- a/tgui/packages/tgui/components/Autofocus.tsx +++ b/tgui/packages/tgui/components/Autofocus.tsx @@ -1,19 +1,17 @@ -import { Component, createRef } from 'inferno'; +import { createRef, PropsWithChildren, useEffect } from 'react'; -export class Autofocus extends Component { - ref = createRef(); +export const Autofocus = (props: PropsWithChildren) => { + const ref = createRef(); - componentDidMount() { + useEffect(() => { setTimeout(() => { - this.ref.current?.focus(); + ref.current?.focus(); }, 1); - } + }, []); - render() { - return ( -
      - {this.props.children} -
      - ); - } -} + return ( +
      + {props.children} +
      + ); +}; diff --git a/tgui/packages/tgui/components/Blink.jsx b/tgui/packages/tgui/components/Blink.jsx index bd781336b463..70d2f1393eb2 100644 --- a/tgui/packages/tgui/components/Blink.jsx +++ b/tgui/packages/tgui/components/Blink.jsx @@ -1,4 +1,4 @@ -import { Component } from 'inferno'; +import { Component } from 'react'; const DEFAULT_BLINKING_INTERVAL = 1000; const DEFAULT_BLINKING_TIME = 1000; diff --git a/tgui/packages/tgui/components/BodyZoneSelector.tsx b/tgui/packages/tgui/components/BodyZoneSelector.tsx index eb845458cd23..5daf2960a570 100644 --- a/tgui/packages/tgui/components/BodyZoneSelector.tsx +++ b/tgui/packages/tgui/components/BodyZoneSelector.tsx @@ -1,4 +1,4 @@ -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { resolveAsset } from '../assets'; import { Box } from './Box'; diff --git a/tgui/packages/tgui/components/Box.tsx b/tgui/packages/tgui/components/Box.tsx index ed10072b6239..8da3235553fa 100644 --- a/tgui/packages/tgui/components/Box.tsx +++ b/tgui/packages/tgui/components/Box.tsx @@ -4,59 +4,58 @@ * @license MIT */ -import { BooleanLike, classes, pureComponentHooks } from 'common/react'; -import { createVNode, InfernoNode, SFC } from 'inferno'; -import { ChildFlags, VNodeFlags } from 'inferno-vnode-flags'; +import { BooleanLike, classes } from 'common/react'; +import { createElement, ReactNode } from 'react'; import { CSS_COLORS } from '../constants'; export type BoxProps = { [key: string]: any; - as?: string; - className?: string | BooleanLike; - children?: InfernoNode; - position?: string | BooleanLike; - overflow?: string | BooleanLike; - overflowX?: string | BooleanLike; - overflowY?: string | BooleanLike; - top?: string | BooleanLike; - bottom?: string | BooleanLike; - left?: string | BooleanLike; - right?: string | BooleanLike; - width?: string | BooleanLike; - minWidth?: string | BooleanLike; - maxWidth?: string | BooleanLike; - height?: string | BooleanLike; - minHeight?: string | BooleanLike; - maxHeight?: string | BooleanLike; - fontSize?: string | BooleanLike; - fontFamily?: string; - lineHeight?: string | BooleanLike; - opacity?: number; - textAlign?: string | BooleanLike; - verticalAlign?: string | BooleanLike; - inline?: BooleanLike; - bold?: BooleanLike; - italic?: BooleanLike; - nowrap?: BooleanLike; - preserveWhitespace?: BooleanLike; - m?: string | BooleanLike; - mx?: string | BooleanLike; - my?: string | BooleanLike; - mt?: string | BooleanLike; - mb?: string | BooleanLike; - ml?: string | BooleanLike; - mr?: string | BooleanLike; - p?: string | BooleanLike; - px?: string | BooleanLike; - py?: string | BooleanLike; - pt?: string | BooleanLike; - pb?: string | BooleanLike; - pl?: string | BooleanLike; - pr?: string | BooleanLike; - color?: string | BooleanLike; - textColor?: string | BooleanLike; - backgroundColor?: string | BooleanLike; - fillPositionedParent?: boolean; + readonly as?: string; + readonly className?: string | BooleanLike; + readonly children?: ReactNode; + readonly position?: string | BooleanLike; + readonly overflow?: string | BooleanLike; + readonly overflowX?: string | BooleanLike; + readonly overflowY?: string | BooleanLike; + readonly top?: string | BooleanLike; + readonly bottom?: string | BooleanLike; + readonly left?: string | BooleanLike; + readonly right?: string | BooleanLike; + readonly width?: string | BooleanLike; + readonly minWidth?: string | BooleanLike; + readonly maxWidth?: string | BooleanLike; + readonly height?: string | BooleanLike; + readonly minHeight?: string | BooleanLike; + readonly maxHeight?: string | BooleanLike; + readonly fontSize?: string | BooleanLike; + readonly fontFamily?: string; + readonly lineHeight?: string | BooleanLike; + readonly opacity?: number; + readonly textAlign?: string | BooleanLike; + readonly verticalAlign?: string | BooleanLike; + readonly inline?: BooleanLike; + readonly bold?: BooleanLike; + readonly italic?: BooleanLike; + readonly nowrap?: BooleanLike; + readonly preserveWhitespace?: BooleanLike; + readonly m?: string | BooleanLike; + readonly mx?: string | BooleanLike; + readonly my?: string | BooleanLike; + readonly mt?: string | BooleanLike; + readonly mb?: string | BooleanLike; + readonly ml?: string | BooleanLike; + readonly mr?: string | BooleanLike; + readonly p?: string | BooleanLike; + readonly px?: string | BooleanLike; + readonly py?: string | BooleanLike; + readonly pt?: string | BooleanLike; + readonly pb?: string | BooleanLike; + readonly pl?: string | BooleanLike; + readonly pr?: string | BooleanLike; + readonly color?: string | BooleanLike; + readonly textColor?: string | BooleanLike; + readonly backgroundColor?: string | BooleanLike; + readonly fillPositionedParent?: boolean; }; /** @@ -65,15 +64,12 @@ export type BoxProps = { export const unit = (value: unknown): string | undefined => { if (typeof value === 'string') { // Transparently convert pixels into rem units - if (value.endsWith('px') && !Byond.IS_LTE_IE8) { + if (value.endsWith('px')) { return parseFloat(value) / 12 + 'rem'; } return value; } if (typeof value === 'number') { - if (Byond.IS_LTE_IE8) { - return value * 12 + 'px'; - } return value + 'rem'; } }; @@ -128,70 +124,66 @@ const mapColorPropTo = (attrName) => (style, value) => { } }; -const styleMapperByPropName = { - // Direct mapping - position: mapRawPropTo('position'), - overflow: mapRawPropTo('overflow'), - overflowX: mapRawPropTo('overflow-x'), - overflowY: mapRawPropTo('overflow-y'), - top: mapUnitPropTo('top', unit), +// String / number props +const stringStyleMap = { bottom: mapUnitPropTo('bottom', unit), + fontFamily: mapRawPropTo('fontFamily'), + fontSize: mapUnitPropTo('fontSize', unit), + height: mapUnitPropTo('height', unit), left: mapUnitPropTo('left', unit), + maxHeight: mapUnitPropTo('maxHeight', unit), + maxWidth: mapUnitPropTo('maxWidth', unit), + minHeight: mapUnitPropTo('minHeight', unit), + minWidth: mapUnitPropTo('minWidth', unit), + opacity: mapRawPropTo('opacity'), + overflow: mapRawPropTo('overflow'), + overflowX: mapRawPropTo('overflowX'), + overflowY: mapRawPropTo('overflowY'), + position: mapRawPropTo('position'), right: mapUnitPropTo('right', unit), + textAlign: mapRawPropTo('textAlign'), + top: mapUnitPropTo('top', unit), + verticalAlign: mapRawPropTo('verticalAlign'), width: mapUnitPropTo('width', unit), - minWidth: mapUnitPropTo('min-width', unit), - maxWidth: mapUnitPropTo('max-width', unit), - height: mapUnitPropTo('height', unit), - minHeight: mapUnitPropTo('min-height', unit), - maxHeight: mapUnitPropTo('max-height', unit), - fontSize: mapUnitPropTo('font-size', unit), - fontFamily: mapRawPropTo('font-family'), + lineHeight: (style, value) => { if (typeof value === 'number') { - style['line-height'] = value; + style['lineHeight'] = value; } else if (typeof value === 'string') { - style['line-height'] = unit(value); + style['lineHeight'] = unit(value); } }, - opacity: mapRawPropTo('opacity'), - textAlign: mapRawPropTo('text-align'), - verticalAlign: mapRawPropTo('vertical-align'), - // Boolean props - inline: mapBooleanPropTo('display', 'inline-block'), - bold: mapBooleanPropTo('font-weight', 'bold'), - italic: mapBooleanPropTo('font-style', 'italic'), - nowrap: mapBooleanPropTo('white-space', 'nowrap'), - preserveWhitespace: mapBooleanPropTo('white-space', 'pre-wrap'), // Margin m: mapDirectionalUnitPropTo('margin', halfUnit, [ - 'top', - 'bottom', - 'left', - 'right', + 'Top', + 'Bottom', + 'Left', + 'Right', ]), - mx: mapDirectionalUnitPropTo('margin', halfUnit, ['left', 'right']), - my: mapDirectionalUnitPropTo('margin', halfUnit, ['top', 'bottom']), - mt: mapUnitPropTo('margin-top', halfUnit), - mb: mapUnitPropTo('margin-bottom', halfUnit), - ml: mapUnitPropTo('margin-left', halfUnit), - mr: mapUnitPropTo('margin-right', halfUnit), + mx: mapDirectionalUnitPropTo('margin', halfUnit, ['Left', 'Right']), + my: mapDirectionalUnitPropTo('margin', halfUnit, ['Top', 'Bottom']), + mt: mapUnitPropTo('marginTop', halfUnit), + mb: mapUnitPropTo('marginBottom', halfUnit), + ml: mapUnitPropTo('marginLeft', halfUnit), + mr: mapUnitPropTo('marginRight', halfUnit), // Padding p: mapDirectionalUnitPropTo('padding', halfUnit, [ - 'top', - 'bottom', - 'left', - 'right', + 'Top', + 'Bottom', + 'Left', + 'Right', ]), - px: mapDirectionalUnitPropTo('padding', halfUnit, ['left', 'right']), - py: mapDirectionalUnitPropTo('padding', halfUnit, ['top', 'bottom']), - pt: mapUnitPropTo('padding-top', halfUnit), - pb: mapUnitPropTo('padding-bottom', halfUnit), - pl: mapUnitPropTo('padding-left', halfUnit), - pr: mapUnitPropTo('padding-right', halfUnit), + px: mapDirectionalUnitPropTo('padding', halfUnit, ['Left', 'Right']), + py: mapDirectionalUnitPropTo('padding', halfUnit, ['Top', 'Bottom']), + pt: mapUnitPropTo('paddingTop', halfUnit), + pb: mapUnitPropTo('paddingBottom', halfUnit), + pl: mapUnitPropTo('paddingLeft', halfUnit), + pr: mapUnitPropTo('paddingRight', halfUnit), // Color props color: mapColorPropTo('color'), textColor: mapColorPropTo('color'), - backgroundColor: mapColorPropTo('background-color'), + backgroundColor: mapColorPropTo('backgroundColor'), + // Utility props fillPositionedParent: (style, value) => { if (value) { @@ -202,44 +194,42 @@ const styleMapperByPropName = { style['right'] = 0; } }, -}; +} as const; + +// Boolean props +const booleanStyleMap = { + bold: mapBooleanPropTo('fontWeight', 'bold'), + inline: mapBooleanPropTo('display', 'inline-block'), + italic: mapBooleanPropTo('fontStyle', 'italic'), + nowrap: mapBooleanPropTo('whiteSpace', 'nowrap'), + preserveWhitespace: mapBooleanPropTo('whiteSpace', 'pre-wrap'), +} as const; + +export const computeBoxProps = (props) => { + const computedProps: Record = {}; + const computedStyles: Record = {}; -export const computeBoxProps = (props: BoxProps) => { - const computedProps: HTMLAttributes = {}; - const computedStyles = {}; // Compute props for (let propName of Object.keys(props)) { if (propName === 'style') { continue; } - // IE8: onclick workaround - if (Byond.IS_LTE_IE8 && propName === 'onClick') { - computedProps.onclick = props[propName]; - continue; - } + const propValue = props[propName]; - const mapPropToStyle = styleMapperByPropName[propName]; + + const mapPropToStyle = + stringStyleMap[propName] || booleanStyleMap[propName]; + if (mapPropToStyle) { mapPropToStyle(computedStyles, propValue); } else { computedProps[propName] = propValue; } } - // Concatenate styles - let style = ''; - for (let attrName of Object.keys(computedStyles)) { - const attrValue = computedStyles[attrName]; - style += attrName + ':' + attrValue + ';'; - } - if (props.style) { - for (let attrName of Object.keys(props.style)) { - const attrValue = props.style[attrName]; - style += attrName + ':' + attrValue + ';'; - } - } - if (style.length > 0) { - computedProps.style = style; - } + + // Merge computed styles and any directly provided styles + computedProps.style = { ...computedStyles, ...props.style }; + return computedProps; }; @@ -252,27 +242,26 @@ export const computeBoxClassName = (props: BoxProps) => { ]); }; -export const Box: SFC = (props: BoxProps) => { +export const Box = (props: BoxProps) => { const { as = 'div', className, children, ...rest } = props; - // Render props - if (typeof children === 'function') { - return children(computeBoxProps(props)); - } - const computedClassName = - typeof className === 'string' - ? className + ' ' + computeBoxClassName(rest) - : computeBoxClassName(rest); + + // Compute class name and styles + const computedClassName = className + ? `${className} ${computeBoxClassName(rest)}` + : computeBoxClassName(rest); const computedProps = computeBoxProps(rest); - // Render a wrapper element - return createVNode( - VNodeFlags.HtmlElement, - as, - computedClassName, - children, - ChildFlags.UnknownChildren, - computedProps, - undefined + + if (as === 'img') { + computedProps.style['-ms-interpolation-mode'] = 'nearest-neighbor'; + } + + // Render the component + return createElement( + typeof as === 'string' ? as : 'div', + { + ...computedProps, + className: computedClassName, + }, + children ); }; - -Box.defaultHooks = pureComponentHooks; diff --git a/tgui/packages/tgui/components/Button.jsx b/tgui/packages/tgui/components/Button.jsx index ef434d04c7aa..dbffb6a72c95 100644 --- a/tgui/packages/tgui/components/Button.jsx +++ b/tgui/packages/tgui/components/Button.jsx @@ -6,7 +6,7 @@ import { KEY_ENTER, KEY_ESCAPE, KEY_SPACE } from 'common/keycodes'; import { classes, pureComponentHooks } from 'common/react'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { createLogger } from '../logging'; import { Box, computeBoxClassName, computeBoxProps } from './Box'; import { Icon } from './Icon'; @@ -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 ( @@ -273,7 +277,7 @@ export class ButtonInput extends Component { className="NumberInput__input" style={{ 'display': !this.state.inInput ? 'none' : undefined, - 'text-align': 'left', + 'textAlign': 'left', }} onBlur={(e) => { if (!this.state.inInput) { diff --git a/tgui/packages/tgui/components/ByondUi.jsx b/tgui/packages/tgui/components/ByondUi.jsx index 4623fe577015..dc263b9482ff 100644 --- a/tgui/packages/tgui/components/ByondUi.jsx +++ b/tgui/packages/tgui/components/ByondUi.jsx @@ -6,7 +6,7 @@ import { shallowDiffers } from 'common/react'; import { debounce } from 'common/timer'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { createLogger } from '../logging'; import { computeBoxProps } from './Box'; diff --git a/tgui/packages/tgui/components/Chart.jsx b/tgui/packages/tgui/components/Chart.jsx index fac444bd1da9..b8a9c62f8929 100644 --- a/tgui/packages/tgui/components/Chart.jsx +++ b/tgui/packages/tgui/components/Chart.jsx @@ -6,7 +6,7 @@ import { map, zipWith } from 'common/collections'; import { pureComponentHooks } from 'common/react'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { Box } from './Box'; const normalizeData = (data, scale, rangeX, rangeY) => { diff --git a/tgui/packages/tgui/components/Collapsible.jsx b/tgui/packages/tgui/components/Collapsible.jsx index f91eeddb4568..805fc7d129c2 100644 --- a/tgui/packages/tgui/components/Collapsible.jsx +++ b/tgui/packages/tgui/components/Collapsible.jsx @@ -4,7 +4,7 @@ * @license MIT */ -import { Component } from 'inferno'; +import { Component } from 'react'; import { Box } from './Box'; import { Button } from './Button'; diff --git a/tgui/packages/tgui/components/DraggableControl.jsx b/tgui/packages/tgui/components/DraggableControl.jsx index 8ada6f2fa4d0..018118dd7966 100644 --- a/tgui/packages/tgui/components/DraggableControl.jsx +++ b/tgui/packages/tgui/components/DraggableControl.jsx @@ -6,7 +6,7 @@ import { clamp } from 'common/math'; import { pureComponentHooks } from 'common/react'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { AnimatedNumber } from './AnimatedNumber'; const DEFAULT_UPDATE_RATE = 400; diff --git a/tgui/packages/tgui/components/Dropdown.jsx b/tgui/packages/tgui/components/Dropdown.jsx deleted file mode 100644 index e6fe8a840a5f..000000000000 --- a/tgui/packages/tgui/components/Dropdown.jsx +++ /dev/null @@ -1,161 +0,0 @@ -/** - * @file - * @copyright 2020 Aleksej Komarov - * @license MIT - */ - -import { classes } from 'common/react'; -import { Component } from 'inferno'; -import { Box } from './Box'; -import { Icon } from './Icon'; - -export class Dropdown extends Component { - constructor(props) { - super(props); - this.state = { - selected: props.selected, - open: false, - }; - this.handleClick = () => { - if (this.state.open) { - this.setOpen(false); - } - }; - } - - componentWillUnmount() { - window.removeEventListener('click', this.handleClick); - } - - setOpen(open) { - this.setState({ open: open }); - if (open) { - setTimeout(() => { - window.addEventListener('click', this.handleClick); - }); - this.menuRef.focus(); - } else { - window.removeEventListener('click', this.handleClick); - } - } - - setSelected(selected) { - this.setState({ - selected: selected, - }); - this.setOpen(false); - this.props.onSelected(selected); - } - - buildMenu() { - const { options = [] } = this.props; - const ops = options.map((option) => { - let displayText, value; - - if (typeof option === 'string') { - displayText = option; - value = option; - } else { - displayText = option.displayText; - value = option.value; - } - - return ( - { - this.setSelected(value); - }}> - {displayText} - - ); - }); - return ops.length ? ops : 'No Options Found'; - } - - render() { - const { props } = this; - const { - icon, - iconRotation, - iconSpin, - clipSelectedText = true, - color = 'default', - dropdownStyle, - over, - noscroll, - nochevron, - width, - openWidth = width, - onClick, - onOpen, - selected, - disabled, - displayText, - ...boxProps - } = props; - const { className, ...rest } = boxProps; - - const adjustedOpen = over ? !this.state.open : this.state.open; - - const menu = this.state.open ? ( -
      { - this.menuRef = menu; - }} - tabIndex="-1" - style={{ - 'width': openWidth, - }} - className={classes([ - (noscroll && 'Dropdown__menu-noscroll') || 'Dropdown__menu', - over && 'Dropdown__over', - ])}> - {this.buildMenu()} -
      - ) : null; - - return ( -
      - { - if (disabled && !this.state.open) { - return; - } - this.setOpen(!this.state.open); - - if (props.onOpen) { - props.onOpen(event); - } - }}> - {icon && ( - - )} - - {displayText ? displayText : this.state.selected} - - {!!nochevron || ( - - - - )} - - {menu} -
      - ); - } -} diff --git a/tgui/packages/tgui/components/Dropdown.tsx b/tgui/packages/tgui/components/Dropdown.tsx new file mode 100644 index 000000000000..b7491c84dca6 --- /dev/null +++ b/tgui/packages/tgui/components/Dropdown.tsx @@ -0,0 +1,215 @@ +import { classes } from 'common/react'; +import { ReactNode, useCallback, useEffect, useRef, useState } from 'react'; + +import { BoxProps, unit } from './Box'; +import { Button } from './Button'; +import { Icon } from './Icon'; +import { Popper } from './Popper'; + +type DropdownEntry = { + displayText: ReactNode; + value: string | number; +}; + +type DropdownOption = string | DropdownEntry; + +type Props = { + /** An array of strings which will be displayed in the + dropdown when open. See Dropdown.tsx for more advanced usage with DropdownEntry */ + readonly options: DropdownOption[]; + /** Called when a value is picked from the list, `value` is the value that was picked */ + readonly onSelected: (value: any) => void; +} & Partial<{ + /** Whether to display previous / next buttons */ + buttons: boolean; + /** Whether to clip the selected text */ + clipSelectedText: boolean; + /** Color of dropdown button */ + color: string; + /** Disables the dropdown */ + disabled: boolean; + /** Text to always display in place of the selected text */ + displayText: ReactNode; + /** Icon to display in dropdown button */ + icon: string; + /** Angle of the icon */ + iconRotation: number; + /** Whether or not the icon should spin */ + iconSpin: boolean; + /** Width of the dropdown menu. Default: 15rem */ + menuWidth: string; + /** Whether or not the arrow on the right hand side of the dropdown button is visible */ + noChevron: boolean; + /** Called when dropdown button is clicked */ + onClick: (event) => void; + /** Dropdown renders over instead of below */ + over: boolean; + /** Currently selected entry */ + selected: string | number; +}> & + BoxProps; + +const getOptionValue = (option: DropdownOption) => { + return typeof option === 'string' ? option : option.value; +}; + +export const Dropdown = (props: Props) => { + const { + buttons, + className, + clipSelectedText = true, + color = 'default', + disabled, + displayText, + icon, + iconRotation, + iconSpin, + menuWidth = '15rem', + noChevron, + onClick, + onSelected, + options = [], + over, + selected, + width, + } = props; + + const [open, setOpen] = useState(false); + const adjustedOpen = over ? !open : open; + const innerRef = useRef(null); + + /** Update the selected value when clicking the left/right buttons */ + const updateSelected = useCallback( + (direction: 'previous' | 'next') => { + if (options.length < 1 || disabled) { + return; + } + const startIndex = 0; + const endIndex = options.length - 1; + + let selectedIndex = options.findIndex( + (option) => getOptionValue(option) === selected + ); + + if (selectedIndex < 0) { + selectedIndex = direction === 'next' ? endIndex : startIndex; + } + + let newIndex = selectedIndex; + if (direction === 'next') { + newIndex = selectedIndex === endIndex ? startIndex : selectedIndex++; + } else { + newIndex = selectedIndex === startIndex ? endIndex : selectedIndex--; + } + + onSelected?.(getOptionValue(options[newIndex])); + }, + [disabled, onSelected, options, selected] + ); + + /** Allows the menu to be scrollable on open */ + useEffect(() => { + if (!open) return; + + innerRef.current?.focus(); + }, [open]); + + return ( + setOpen(false)} + placement={over ? 'top-start' : 'bottom-start'} + content={ +
      + {options.length === 0 && ( +
      No options
      + )} + + {options.map((option, index) => { + const value = getOptionValue(option); + + return ( +
      { + setOpen(false); + onSelected?.(value); + }}> + {typeof option === 'string' ? option : option.displayText} +
      + ); + })} +
      + }> +
      +
      +
      { + if (disabled && !open) { + return; + } + setOpen(!open); + onClick?.(event); + }}> + {icon && ( + + )} + + {displayText || selected} + + {!noChevron && ( + + + + )} +
      + {buttons && ( + <> +
      +
      +
      + ); +}; diff --git a/tgui/packages/tgui/components/FitText.tsx b/tgui/packages/tgui/components/FitText.tsx index 751a2f8980b9..0632626aeb12 100644 --- a/tgui/packages/tgui/components/FitText.tsx +++ b/tgui/packages/tgui/components/FitText.tsx @@ -1,4 +1,4 @@ -import { Component, createRef, RefObject } from 'inferno'; +import { Component, createRef, HTMLAttributes, PropsWithChildren, RefObject } from 'react'; const DEFAULT_ACCEPTABLE_DIFFERENCE = 5; @@ -7,7 +7,7 @@ type Props = { readonly maxWidth: number; readonly maxFontSize: number; readonly native?: HTMLAttributes; -}; +} & PropsWithChildren; type State = { fontSize: number; @@ -19,8 +19,8 @@ export class FitText extends Component { fontSize: 0, }; - constructor() { - super(); + constructor(props: Props) { + super(props); this.resize = this.resize.bind(this); @@ -80,9 +80,10 @@ export class FitText extends Component { {this.props.children} diff --git a/tgui/packages/tgui/components/Flex.tsx b/tgui/packages/tgui/components/Flex.tsx index f67738280bac..da063f0296f5 100644 --- a/tgui/packages/tgui/components/Flex.tsx +++ b/tgui/packages/tgui/components/Flex.tsx @@ -4,16 +4,19 @@ * @license MIT */ -import { BooleanLike, classes, pureComponentHooks } from 'common/react'; +import { classes } from 'common/react'; import { BoxProps, computeBoxClassName, computeBoxProps, unit } from './Box'; -export type FlexProps = BoxProps & { - direction?: string | BooleanLike; - wrap?: string | BooleanLike; - align?: string | BooleanLike; - justify?: string | BooleanLike; - inline?: BooleanLike; -}; +export type FlexProps = Partial<{ + align: string | boolean; + direction: string; + inline: boolean; + justify: string; + scrollable: boolean; + style: Partial; + wrap: string | boolean; +}> & + BoxProps; export const computeFlexClassName = (props: FlexProps) => { return classes([ @@ -27,13 +30,14 @@ export const computeFlexClassName = (props: FlexProps) => { export const computeFlexProps = (props: FlexProps) => { const { className, direction, wrap, align, justify, inline, ...rest } = props; + return computeBoxProps({ style: { ...rest.style, - 'flex-direction': direction, - 'flex-wrap': wrap === true ? 'wrap' : wrap, - 'align-items': align, - 'justify-content': justify, + flexDirection: direction, + flexWrap: wrap === true ? 'wrap' : wrap, + alignItems: align, + justifyContent: justify, }, ...rest, }); @@ -49,15 +53,15 @@ export const Flex = (props) => { ); }; -Flex.defaultHooks = pureComponentHooks; - -export type FlexItemProps = BoxProps & { - grow?: number; - order?: number; - shrink?: number; - basis?: string | BooleanLike; - align?: string | BooleanLike; -}; +export type FlexItemProps = BoxProps & + Partial<{ + grow: number | boolean; + order: number; + shrink: number | boolean; + basis: string | number; + align: string | boolean; + style: Partial; + }>; export const computeFlexItemClassName = (props: FlexItemProps) => { return classes([ @@ -68,33 +72,26 @@ export const computeFlexItemClassName = (props: FlexItemProps) => { }; export const computeFlexItemProps = (props: FlexItemProps) => { - // prettier-ignore - const { - className, - style, - grow, - order, - shrink, - basis, - align, - ...rest - } = props; - // prettier-ignore - const computedBasis = basis + const { className, style, grow, order, shrink, basis, align, ...rest } = + props; + + const computedBasis = + basis ?? // IE11: Set basis to specified width if it's known, which fixes certain // bugs when rendering tables inside the flex. - ?? props.width + props.width ?? // If grow is used, basis should be set to 0 to be consistent with // flex css shorthand `flex: 1`. - ?? (grow !== undefined ? 0 : undefined); + (grow !== undefined ? 0 : undefined); + return computeBoxProps({ style: { ...style, - 'flex-grow': grow !== undefined && Number(grow), - 'flex-shrink': shrink !== undefined && Number(shrink), - 'flex-basis': unit(computedBasis), - 'order': order, - 'align-self': align, + flexGrow: grow !== undefined && Number(grow), + flexShrink: shrink !== undefined && Number(shrink), + flexBasis: unit(computedBasis), + order: order, + alignSelf: align, }, ...rest, }); @@ -110,6 +107,4 @@ const FlexItem = (props) => { ); }; -FlexItem.defaultHooks = pureComponentHooks; - Flex.Item = FlexItem; diff --git a/tgui/packages/tgui/components/InfinitePlane.jsx b/tgui/packages/tgui/components/InfinitePlane.jsx index 74f60f1e4d4c..e298537b46df 100644 --- a/tgui/packages/tgui/components/InfinitePlane.jsx +++ b/tgui/packages/tgui/components/InfinitePlane.jsx @@ -2,7 +2,7 @@ import { computeBoxProps } from './Box'; import { Stack } from './Stack'; import { ProgressBar } from './ProgressBar'; import { Button } from './Button'; -import { Component } from 'inferno'; +import { Component } from 'react'; const ZOOM_MIN_VAL = 0.5; const ZOOM_MAX_VAL = 1.5; diff --git a/tgui/packages/tgui/components/Input.jsx b/tgui/packages/tgui/components/Input.jsx index ac7ce6eef360..0eac3d05ebf1 100644 --- a/tgui/packages/tgui/components/Input.jsx +++ b/tgui/packages/tgui/components/Input.jsx @@ -6,7 +6,7 @@ import { KEY_ENTER, KEY_ESCAPE } from 'common/keycodes'; import { classes } from 'common/react'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { Box } from './Box'; // prettier-ignore diff --git a/tgui/packages/tgui/components/KeyListener.tsx b/tgui/packages/tgui/components/KeyListener.tsx index 62509cae96d6..d401642a3cff 100644 --- a/tgui/packages/tgui/components/KeyListener.tsx +++ b/tgui/packages/tgui/components/KeyListener.tsx @@ -1,4 +1,4 @@ -import { Component } from 'inferno'; +import { Component } from 'react'; import { KeyEvent } from '../events'; import { listenForKeyEvents } from '../hotkeys'; @@ -11,8 +11,8 @@ type KeyListenerProps = Partial<{ export class KeyListener extends Component { dispose: () => void; - constructor() { - super(); + constructor(props) { + super(props); this.dispose = listenForKeyEvents((key) => { if (this.props.onKey) { diff --git a/tgui/packages/tgui/components/LabeledList.tsx b/tgui/packages/tgui/components/LabeledList.tsx index 0c4c608f25f3..8bb3ab82fd64 100644 --- a/tgui/packages/tgui/components/LabeledList.tsx +++ b/tgui/packages/tgui/components/LabeledList.tsx @@ -4,35 +4,32 @@ * @license MIT */ -import { BooleanLike, classes, pureComponentHooks } from 'common/react'; -import { InfernoNode } from 'inferno'; +import { BooleanLike, classes } from 'common/react'; +import { PropsWithChildren, ReactNode } from 'react'; import { Box, unit } from './Box'; import { Divider } from './Divider'; +import { Tooltip } from './Tooltip'; -type LabeledListProps = { - readonly children?: any; -}; - -export const LabeledList = (props: LabeledListProps) => { +export const LabeledList = (props: PropsWithChildren) => { const { children } = props; return {children}
      ; }; -LabeledList.defaultHooks = pureComponentHooks; - -type LabeledListItemProps = { - readonly className?: string | BooleanLike; - readonly label?: string | InfernoNode | BooleanLike; - readonly labelColor?: string | BooleanLike; - readonly labelWrap?: boolean; - readonly color?: string | BooleanLike; - readonly textAlign?: string | BooleanLike; - readonly buttons?: InfernoNode; +type LabeledListItemProps = Partial<{ + buttons: ReactNode; + className: string | BooleanLike; + color: string; + key: string | number; + label: string | ReactNode | BooleanLike; + labelColor: string; + labelWrap: boolean; + textAlign: string; /** @deprecated */ - readonly content?: any; - readonly children?: InfernoNode; - readonly verticalAlign?: string; -}; + content: any; + children: ReactNode; + verticalAlign: string; + tooltip: string; +}>; const LabeledListItem = (props: LabeledListItemProps) => { const { @@ -46,20 +43,46 @@ const LabeledListItem = (props: LabeledListItemProps) => { content, children, verticalAlign = 'baseline', + tooltip, } = props; + + let innerLabel; + if (label) { + innerLabel = label; + if (typeof label === 'string') innerLabel += ':'; + } + + if (tooltip !== undefined) { + innerLabel = ( + + + {innerLabel} + + + ); + } + + let labelChild = ( + + {innerLabel} + + ); + return ( - - {label ? (typeof label === 'string' ? label + ':' : label) : null} - + {labelChild} { ); }; -LabeledListItem.defaultHooks = pureComponentHooks; - type LabeledListDividerProps = { readonly size?: number; }; @@ -90,8 +111,8 @@ const LabeledListDivider = (props: LabeledListDividerProps) => { @@ -99,7 +120,5 @@ const LabeledListDivider = (props: LabeledListDividerProps) => { ); }; -LabeledListDivider.defaultHooks = pureComponentHooks; - LabeledList.Item = LabeledListItem; LabeledList.Divider = LabeledListDivider; diff --git a/tgui/packages/tgui/components/NumberInput.jsx b/tgui/packages/tgui/components/NumberInput.jsx index e264d811d37b..a5890d5cd8aa 100644 --- a/tgui/packages/tgui/components/NumberInput.jsx +++ b/tgui/packages/tgui/components/NumberInput.jsx @@ -5,8 +5,9 @@ */ import { clamp } from 'common/math'; -import { classes, pureComponentHooks } from 'common/react'; -import { Component, createRef } from 'inferno'; +import { classes } from 'common/react'; +import { Component, createRef } from 'react'; + import { AnimatedNumber } from './AnimatedNumber'; import { Box } from './Box'; @@ -165,14 +166,15 @@ export class NumberInput extends Component { displayValue = intermediateValue; } - // prettier-ignore const contentElement = ( -
      - { - (animated && !dragging && !suppressingFlicker) ? - () : - (format ? format(displayValue) : displayValue) - } +
      + {animated && !dragging && !suppressingFlicker ? ( + + ) : format ? ( + format(displayValue) + ) : ( + displayValue + )} {unit ? ' ' + unit : ''}
      @@ -194,10 +196,12 @@ export class NumberInput extends Component {
      @@ -208,8 +212,8 @@ export class NumberInput extends Component { style={{ display: !editing ? 'none' : undefined, height: height, - 'line-height': lineHeight, - 'font-size': fontSize, + lineHeight: lineHeight, + fontSize: fontSize, }} onBlur={(e) => { if (!editing) { @@ -274,7 +278,6 @@ export class NumberInput extends Component { } } -NumberInput.defaultHooks = pureComponentHooks; NumberInput.defaultProps = { minValue: -Infinity, maxValue: +Infinity, diff --git a/tgui/packages/tgui/components/Popper.tsx b/tgui/packages/tgui/components/Popper.tsx index 08875d7f8d6c..682fd65a740d 100644 --- a/tgui/packages/tgui/components/Popper.tsx +++ b/tgui/packages/tgui/components/Popper.tsx @@ -1,84 +1,88 @@ -import { createPopper } from '@popperjs/core'; -import { ArgumentsOf } from 'common/types'; -import { Component, findDOMfromVNode, InfernoNode, render } from 'inferno'; +import { Placement } from '@popperjs/core'; +import { PropsWithChildren, ReactNode, useEffect, useRef, useState } from 'react'; +import { usePopper } from 'react-popper'; -type PopperProps = { - readonly popperContent: InfernoNode; - readonly options?: ArgumentsOf[2]; - readonly additionalStyles?: CSSProperties; +type RequiredProps = { + /** The content to display in the popper */ + readonly content: ReactNode; + /** Whether the popper is open */ + readonly isOpen: boolean; }; -export class Popper extends Component { - static id: number = 0; +type OptionalProps = Partial<{ + /** Called when the user clicks outside the popper */ + onClickOutside: () => void; + /** Where to place the popper relative to the reference element */ + placement: Placement; +}>; - renderedContent: HTMLDivElement; - popperInstance: ReturnType; +type Props = RequiredProps & OptionalProps; - constructor() { - super(); +/** + * ## Popper + * Popper lets you position elements so that they don't go out of the bounds of the window. + * @url https://popper.js.org/react-popper/ for more information. + */ +export const Popper = (props: PropsWithChildren) => { + const { children, content, isOpen, onClickOutside, placement } = props; - Popper.id += 1; - } + const [referenceElement, setReferenceElement] = + useState(null); + const [popperElement, setPopperElement] = useState( + null + ); - componentDidMount() { - const { additionalStyles, options } = this.props; + // One would imagine we could just use useref here, but it's against react-popper documentation and causes a positioning bug + // We still need them to call focus and clickoutside events :( + const popperRef = useRef(null); + const parentRef = useRef(null); - this.renderedContent = document.createElement('div'); + const { styles, attributes } = usePopper(referenceElement, popperElement, { + placement, + }); - if (additionalStyles) { - for (const [attribute, value] of Object.entries(additionalStyles)) { - this.renderedContent.style[attribute] = value; - } + /** Close the popper when the user clicks outside */ + const handleClickOutside = (event: MouseEvent) => { + if ( + !popperRef.current?.contains(event.target as Node) && + !parentRef.current?.contains(event.target as Node) + ) { + onClickOutside?.(); } + }; - this.renderPopperContent(() => { - document.body.appendChild(this.renderedContent); - - // HACK: We don't want to create a wrapper, as it could break the layout - // of consumers, so we do the inferno equivalent of `findDOMNode(this)`. - // This is usually bad as refs are usually better, but refs did - // not work in this case, as they weren't propagating correctly. - // A previous attempt was made as a render prop that passed an ID, - // but this made consuming use too unwieldly. - // This code is copied from `findDOMNode` in inferno-extras. - // Because this component is written in TypeScript, we will know - // immediately if this internal variable is removed. - const domNode = findDOMfromVNode(this.$LI, true); - if (!domNode) { - return; - } - - this.popperInstance = createPopper( - domNode, - this.renderedContent, - options - ); - }); - } - - componentDidUpdate() { - this.renderPopperContent(() => this.popperInstance?.update()); - } - - componentWillUnmount() { - this.popperInstance?.destroy(); - render(null, this.renderedContent, () => { - this.renderedContent.remove(); - }); - } + useEffect(() => { + if (isOpen) { + document.addEventListener('mousedown', handleClickOutside); + } else { + document.removeEventListener('mousedown', handleClickOutside); + } - renderPopperContent(callback: () => void) { - // `render` errors when given false, so we convert it to `null`, - // which is supported. - render( - this.props.popperContent || null, - this.renderedContent, - callback, - this.context - ); - } + return () => { + document.removeEventListener('mousedown', handleClickOutside); + }; + }, [isOpen]); - render() { - return this.props.children; - } -} + return ( + <> +
      { + setReferenceElement(node); + parentRef.current = node; + }}> + {children} +
      + {isOpen && ( +
      { + setPopperElement(node); + popperRef.current = node; + }} + style={{ ...styles.popper, zIndex: 5 }} + {...attributes.popper}> + {content} +
      + )} + + ); +}; diff --git a/tgui/packages/tgui/components/ProgressBar.jsx b/tgui/packages/tgui/components/ProgressBar.tsx similarity index 50% rename from tgui/packages/tgui/components/ProgressBar.jsx rename to tgui/packages/tgui/components/ProgressBar.tsx index 86116732c3f2..929ee232fd1a 100644 --- a/tgui/packages/tgui/components/ProgressBar.jsx +++ b/tgui/packages/tgui/components/ProgressBar.tsx @@ -4,12 +4,31 @@ * @license MIT */ -import { clamp01, scale, keyOfMatchingRange, toFixed } from 'common/math'; -import { classes, pureComponentHooks } from 'common/react'; -import { computeBoxClassName, computeBoxProps } from './Box'; +import { clamp01, keyOfMatchingRange, scale, toFixed } from 'common/math'; +import { classes } from 'common/react'; +import { PropsWithChildren } from 'react'; + import { CSS_COLORS } from '../constants'; +import { BoxProps, computeBoxClassName, computeBoxProps } from './Box'; + +type Props = { + readonly value: number; +} & Partial<{ + backgroundColor: string; + className: string; + color: string; + height: string | number; + maxValue: number; + minValue: number; + ranges: Record; + style: Partial; + title: string; + width: string | number; +}> & + Partial & + PropsWithChildren; -export const ProgressBar = (props) => { +export const ProgressBar = (props: Props) => { const { className, value, @@ -22,32 +41,28 @@ export const ProgressBar = (props) => { } = props; const scaledValue = scale(value, minValue, maxValue); const hasContent = children !== undefined; - // prettier-ignore - const effectiveColor = color - || keyOfMatchingRange(value, ranges) - || 'default'; + + const effectiveColor = + color || keyOfMatchingRange(value, ranges) || 'default'; // We permit colors to be in hex format, rgb()/rgba() format, // a name for a color- class, or a base CSS class. const outerProps = computeBoxProps(rest); - // prettier-ignore - const outerClasses = [ - 'ProgressBar', - className, - computeBoxClassName(rest), - ]; + + const outerClasses = ['ProgressBar', className, computeBoxClassName(rest)]; const fillStyles = { - 'width': clamp01(scaledValue) * 100 + '%', + width: clamp01(scaledValue) * 100 + '%', }; - if (CSS_COLORS.includes(effectiveColor) || effectiveColor === 'default') { + if ( + CSS_COLORS.includes(effectiveColor as any) || + effectiveColor === 'default' + ) { // If the color is a color- class, just use that. outerClasses.push('ProgressBar--color--' + effectiveColor); } else { // Otherwise, set styles directly. - // prettier-ignore - outerProps.style = (outerProps.style || "") - + `border-color: ${effectiveColor};`; - fillStyles['background-color'] = effectiveColor; + outerProps.style = { ...outerProps.style, borderColor: effectiveColor }; + fillStyles['backgroundColor'] = effectiveColor; } return ( @@ -62,5 +77,3 @@ export const ProgressBar = (props) => {
      ); }; - -ProgressBar.defaultHooks = pureComponentHooks; diff --git a/tgui/packages/tgui/components/RestrictedInput.jsx b/tgui/packages/tgui/components/RestrictedInput.jsx index 21f357239df7..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 { Component, createRef } from 'inferno'; +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/components/Section.tsx b/tgui/packages/tgui/components/Section.tsx index 27b7898e1067..9b5170e3774e 100644 --- a/tgui/packages/tgui/components/Section.tsx +++ b/tgui/packages/tgui/components/Section.tsx @@ -4,100 +4,79 @@ * @license MIT */ -import { canRender, classes } from 'common/react'; -import { Component, createRef, InfernoNode, RefObject } from 'inferno'; -import { addScrollableNode, removeScrollableNode } from '../events'; import { BoxProps, computeBoxClassName, computeBoxProps } from './Box'; +import { ReactNode, RefObject, createRef, useEffect } from 'react'; +import { addScrollableNode, removeScrollableNode } from '../events'; +import { canRender, classes } from 'common/react'; -type SectionProps = BoxProps & { - readonly className?: string; - readonly title?: InfernoNode; - readonly buttons?: InfernoNode; - readonly fill?: boolean; - readonly fitted?: boolean; - readonly scrollable?: boolean; - readonly scrollableHorizontal?: boolean; - /** @deprecated This property no longer works, please remove it. */ - readonly level?: boolean; - /** @deprecated Please use `scrollable` property */ - readonly overflowY?: any; +export type SectionProps = Partial<{ + buttons: ReactNode; + fill: boolean; + fitted: boolean; + scrollable: boolean; + scrollableHorizontal: boolean; + title: ReactNode; /** @member Allows external control of scrolling. */ - readonly scrollableRef?: RefObject; + scrollableRef: RefObject; /** @member Callback function for the `scroll` event */ - readonly onScroll?: (this: GlobalEventHandlers, ev: Event) => any; -}; + onScroll: ((this: GlobalEventHandlers, ev: Event) => any) | null; +}> & + BoxProps; -export class Section extends Component { - scrollableRef: RefObject; - scrollable: boolean; - onScroll?: (this: GlobalEventHandlers, ev: Event) => any; - scrollableHorizontal: boolean; +export const Section = (props: SectionProps) => { + const { + className, + title, + buttons, + fill, + fitted, + scrollable, + scrollableHorizontal, + children, + onScroll, + ...rest + } = props; - constructor(props) { - super(props); - this.scrollableRef = props.scrollableRef || createRef(); - this.scrollable = props.scrollable; - this.onScroll = props.onScroll; - this.scrollableHorizontal = props.scrollableHorizontal; - } + const scrollableRef = props.scrollableRef || createRef(); + const hasTitle = canRender(title) || canRender(buttons); - componentDidMount() { - if (this.scrollable || this.scrollableHorizontal) { - addScrollableNode(this.scrollableRef.current as HTMLElement); - if (this.onScroll && this.scrollableRef.current) { - this.scrollableRef.current.onscroll = this.onScroll; + useEffect(() => { + if (scrollable || scrollableHorizontal) { + addScrollableNode(scrollableRef.current as HTMLElement); + if (onScroll && scrollableRef.current) { + scrollableRef.current.onscroll = onScroll; } } - } - - componentWillUnmount() { - if (this.scrollable || this.scrollableHorizontal) { - removeScrollableNode(this.scrollableRef.current as HTMLElement); - } - } + return () => { + if (scrollable || scrollableHorizontal) { + removeScrollableNode(scrollableRef.current as HTMLElement); + } + }; + }, []); - render() { - const { - className, - title, - buttons, - fill, - fitted, - scrollable, - scrollableHorizontal, - children, - onScroll, - ...rest - } = this.props; - const hasTitle = canRender(title) || canRender(buttons); - return ( -
      - {hasTitle && ( -
      - {title} -
      {buttons}
      -
      - )} -
      -
      - {children} -
      + return ( +
      + {hasTitle && ( +
      + {title} +
      {buttons}
      +
      + )} +
      +
      + {children}
      - ); - } -} +
      + ); +}; diff --git a/tgui/packages/tgui/components/Stack.tsx b/tgui/packages/tgui/components/Stack.tsx index 77c92796a085..3eb31bd32560 100644 --- a/tgui/packages/tgui/components/Stack.tsx +++ b/tgui/packages/tgui/components/Stack.tsx @@ -5,22 +5,25 @@ */ import { classes } from 'common/react'; -import { RefObject } from 'inferno'; +import { RefObject } from 'react'; import { computeFlexClassName, computeFlexItemClassName, computeFlexItemProps, computeFlexProps, FlexItemProps, FlexProps } from './Flex'; -type StackProps = FlexProps & { - readonly vertical?: boolean; - readonly fill?: boolean; -}; +type Props = Partial<{ + vertical: boolean; + fill: boolean; + zebra: boolean; +}> & + FlexProps; -export const Stack = (props: StackProps) => { - const { className, vertical, fill, ...rest } = props; +export const Stack = (props: Props) => { + const { className, vertical, fill, zebra, ...rest } = props; return (
      { ); }; -type StackItemProps = FlexProps & { - readonly innerRef?: RefObject; -}; +type StackItemProps = FlexItemProps & + Partial<{ + innerRef: RefObject; + }>; const StackItem = (props: StackItemProps) => { const { className, innerRef, ...rest } = props; @@ -53,9 +57,10 @@ const StackItem = (props: StackItemProps) => { Stack.Item = StackItem; -type StackDividerProps = FlexItemProps & { - readonly hidden?: boolean; -}; +type StackDividerProps = FlexItemProps & + Partial<{ + hidden: boolean; + }>; const StackDivider = (props: StackDividerProps) => { const { className, hidden, ...rest } = props; diff --git a/tgui/packages/tgui/components/TextArea.jsx b/tgui/packages/tgui/components/TextArea.jsx index 76db8272aa38..1ca70488c9d9 100644 --- a/tgui/packages/tgui/components/TextArea.jsx +++ b/tgui/packages/tgui/components/TextArea.jsx @@ -6,14 +6,14 @@ */ import { classes } from 'common/react'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; import { Box } from './Box'; import { toInputValue } from './Input'; import { KEY_ENTER, KEY_ESCAPE, KEY_TAB } from 'common/keycodes'; export class TextArea extends Component { - constructor(props, context) { - super(props, context); + constructor(props) { + super(props); this.textareaRef = props.innerRef || createRef(); this.state = { editing: false, diff --git a/tgui/packages/tgui/components/TimeDisplay.jsx b/tgui/packages/tgui/components/TimeDisplay.jsx index 6b87ee5260ac..bbdd747701cc 100644 --- a/tgui/packages/tgui/components/TimeDisplay.jsx +++ b/tgui/packages/tgui/components/TimeDisplay.jsx @@ -1,5 +1,5 @@ import { formatTime } from '../format'; -import { Component } from 'inferno'; +import { Component } from 'react'; // AnimatedNumber Copypaste const isSafeNumber = (value) => { diff --git a/tgui/packages/tgui/components/Tooltip.tsx b/tgui/packages/tgui/components/Tooltip.tsx index f2004f96302a..b565e6fda475 100644 --- a/tgui/packages/tgui/components/Tooltip.tsx +++ b/tgui/packages/tgui/components/Tooltip.tsx @@ -1,9 +1,10 @@ import { createPopper, Placement, VirtualElement } from '@popperjs/core'; -import { Component, findDOMfromVNode, InfernoNode, render } from 'inferno'; +import { Component, ReactNode } from 'react'; +import { findDOMNode, render } from 'react-dom'; type TooltipProps = { - readonly children?: InfernoNode; - readonly content: InfernoNode; + readonly children?: ReactNode; + readonly content: ReactNode; readonly position?: Placement; }; @@ -50,14 +51,16 @@ export class Tooltip extends Component { getDOMNode() { // HACK: We don't want to create a wrapper, as it could break the layout - // of consumers, so we do the inferno equivalent of `findDOMNode(this)`. - // My attempt to avoid this was a render prop that passed in - // callbacks to onmouseenter and onmouseleave, but this was unwiedly - // to consumers, specifically buttons. - // This code is copied from `findDOMNode` in inferno-extras. + // of consumers, so we use findDOMNode. + // This is usually bad as refs are usually better, but refs did + // not work in this case, as they weren't propagating correctly. + // A previous attempt was made as a render prop that passed an ID, + // but this made consuming use too unwieldly. // Because this component is written in TypeScript, we will know // immediately if this internal variable is removed. - return findDOMfromVNode(this.$LI, true); + // + // eslint-disable-next-line react/no-find-dom-node + return findDOMNode(this) as Element; } componentDidMount() { @@ -103,33 +106,28 @@ export class Tooltip extends Component { return; } - render( - {this.props.content}, - renderedTooltip, - () => { - let singletonPopper = Tooltip.singletonPopper; - if (singletonPopper === undefined) { - singletonPopper = createPopper( - Tooltip.virtualElement, - renderedTooltip!, - { - ...DEFAULT_OPTIONS, - placement: this.props.position || 'auto', - } - ); - - Tooltip.singletonPopper = singletonPopper; - } else { - singletonPopper.setOptions({ + render({this.props.content}, renderedTooltip, () => { + let singletonPopper = Tooltip.singletonPopper; + if (singletonPopper === undefined) { + singletonPopper = createPopper( + Tooltip.virtualElement, + renderedTooltip!, + { ...DEFAULT_OPTIONS, placement: this.props.position || 'auto', - }); + } + ); - singletonPopper.update(); - } - }, - this.context - ); + Tooltip.singletonPopper = singletonPopper; + } else { + singletonPopper.setOptions({ + ...DEFAULT_OPTIONS, + placement: this.props.position || 'auto', + }); + + singletonPopper.update(); + } + }); } componentDidUpdate() { diff --git a/tgui/packages/tgui/components/TrackOutsideClicks.tsx b/tgui/packages/tgui/components/TrackOutsideClicks.tsx index 8ba46ffb5bd7..13cfb8443edb 100644 --- a/tgui/packages/tgui/components/TrackOutsideClicks.tsx +++ b/tgui/packages/tgui/components/TrackOutsideClicks.tsx @@ -1,14 +1,14 @@ -import { Component, createRef } from 'inferno'; +import { Component, createRef, PropsWithChildren } from 'react'; type Props = { readonly onOutsideClick: () => void; -}; +} & PropsWithChildren; export class TrackOutsideClicks extends Component { ref = createRef(); - constructor() { - super(); + constructor(props) { + super(props); this.handleOutsideClick = this.handleOutsideClick.bind(this); diff --git a/tgui/packages/tgui/debug/KitchenSink.jsx b/tgui/packages/tgui/debug/KitchenSink.jsx index e25751722c52..23cf96698101 100644 --- a/tgui/packages/tgui/debug/KitchenSink.jsx +++ b/tgui/packages/tgui/debug/KitchenSink.jsx @@ -20,10 +20,10 @@ const r = require.context('../stories', false, /\.stories\.jsx$/); */ const getStories = () => r.keys().map((path) => r(path)); -export const KitchenSink = (props, context) => { +export const KitchenSink = (props) => { const { panel } = props; - const [theme] = useLocalState(context, 'kitchenSinkTheme'); - const [pageIndex, setPageIndex] = useLocalState(context, 'pageIndex', 0); + const [theme] = useLocalState('kitchenSinkTheme'); + const [pageIndex, setPageIndex] = useLocalState('pageIndex', 0); const stories = getStories(); const story = stories[pageIndex]; const Layout = panel ? Pane : Window; diff --git a/tgui/packages/tgui/debug/hooks.js b/tgui/packages/tgui/debug/hooks.js index d324dd68d88f..fc4901c49657 100644 --- a/tgui/packages/tgui/debug/hooks.js +++ b/tgui/packages/tgui/debug/hooks.js @@ -4,7 +4,7 @@ * @license MIT */ -import { useSelector } from 'common/redux'; +import { useSelector } from '../backend'; import { selectDebug } from './selectors'; -export const useDebug = (context) => useSelector(context, selectDebug); +export const useDebug = () => useSelector(selectDebug); diff --git a/tgui/packages/tgui/drag.ts b/tgui/packages/tgui/drag.ts index 4b6f82e1207e..a34c49ac4622 100644 --- a/tgui/packages/tgui/drag.ts +++ b/tgui/packages/tgui/drag.ts @@ -203,7 +203,7 @@ const constraintPosition = ( }; // Start dragging the window -export const dragStartHandler = (event: MouseEvent) => { +export const dragStartHandler = (event) => { logger.log('drag start'); dragging = true; dragPointOffset = vecSubtract( @@ -218,7 +218,7 @@ export const dragStartHandler = (event: MouseEvent) => { }; // End dragging the window -const dragEndHandler = (event: MouseEvent) => { +const dragEndHandler = (event) => { logger.log('drag end'); dragMoveHandler(event); document.removeEventListener('mousemove', dragMoveHandler); diff --git a/tgui/packages/tgui/index.tsx b/tgui/packages/tgui/index.tsx index 97640d062a86..153a8486bbab 100644 --- a/tgui/packages/tgui/index.tsx +++ b/tgui/packages/tgui/index.tsx @@ -32,8 +32,9 @@ import { setupHotReloading } from 'tgui-dev-server/link/client.cjs'; import { setupHotKeys } from './hotkeys'; import { captureExternalLinks } from './links'; import { createRenderer } from './renderer'; -import { configureStore, StoreProvider } from './store'; +import { configureStore } from './store'; import { setupGlobalEvents } from './events'; +import { setGlobalStore } from './backend'; perf.mark('inception', window.performance?.timing?.navigationStart); perf.mark('init'); @@ -41,13 +42,11 @@ perf.mark('init'); const store = configureStore(); const renderApp = createRenderer(() => { + setGlobalStore(store); + const { getRoutedComponent } = require('./routes'); - const Component = getRoutedComponent(store); - return ( - - - - ); + const Component = getRoutedComponent(); + return ; }); const setupApp = () => { diff --git a/tgui/packages/tgui/interfaces/AcidVest.jsx b/tgui/packages/tgui/interfaces/AcidVest.jsx index adf0e37a2eb6..fffbb178764f 100644 --- a/tgui/packages/tgui/interfaces/AcidVest.jsx +++ b/tgui/packages/tgui/interfaces/AcidVest.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Button, LabeledList, Section, Slider, Flex, Box } from '../components'; import { Window } from '../layouts'; -export const AcidVest = (_props, context) => { - const { act, data } = useBackend(context); +export const AcidVest = (_props) => { + const { act, data } = useBackend(); const damageList = data.configList.Damage; const vitalsList = data.configList.Vitals; diff --git a/tgui/packages/tgui/interfaces/Adminhelp.tsx b/tgui/packages/tgui/interfaces/Adminhelp.tsx index 817e25e37cb6..c2a888cdc33c 100644 --- a/tgui/packages/tgui/interfaces/Adminhelp.tsx +++ b/tgui/packages/tgui/interfaces/Adminhelp.tsx @@ -10,8 +10,8 @@ type AdminhelpData = { urgentAhelpPromptMessage: string; }; -export const Adminhelp = (props, context) => { - const { act, data } = useBackend(context); +export const Adminhelp = (props) => { + const { act, data } = useBackend(); const { adminCount, urgentAhelpEnabled, @@ -19,20 +19,14 @@ export const Adminhelp = (props, context) => { urgentAhelpPromptMessage, } = data; const [requestForAdmin, setRequestForAdmin] = useLocalState( - context, 'request_for_admin', false ); const [currentlyInputting, setCurrentlyInputting] = useLocalState( - context, 'confirm_request', false ); - const [ahelpMessage, setAhelpMessage] = useLocalState( - context, - 'ahelp_message', - '' - ); + const [ahelpMessage, setAhelpMessage] = useLocalState('ahelp_message', ''); const confirmationText = 'alert admins'; return ( diff --git a/tgui/packages/tgui/interfaces/AlertModal.tsx b/tgui/packages/tgui/interfaces/AlertModal.tsx index ee53a0f1b637..60f60c94c524 100644 --- a/tgui/packages/tgui/interfaces/AlertModal.tsx +++ b/tgui/packages/tgui/interfaces/AlertModal.tsx @@ -17,8 +17,8 @@ type AlertModalData = { const KEY_DECREMENT = -1; const KEY_INCREMENT = 1; -export const AlertModal = (props, context) => { - const { act, data } = useBackend(context); +export const AlertModal = (props) => { + const { act, data } = useBackend(); const { autofocus, buttons = [], @@ -27,7 +27,7 @@ export const AlertModal = (props, context) => { timeout, title, } = data; - const [selected, setSelected] = useLocalState(context, 'selected', 0); + const [selected, setSelected] = useLocalState('selected', 0); // Dynamically sets window dimensions const windowHeight = 115 + @@ -89,8 +89,8 @@ export const AlertModal = (props, context) => { * Technically this handles more than 2 buttons, but you * should just be using a list input in that case. */ -const ButtonDisplay = (props, context) => { - const { data } = useBackend(context); +const ButtonDisplay = (props) => { + const { data } = useBackend(); const { buttons = [], large_buttons, swapped_buttons } = data; const { selected } = props; @@ -127,8 +127,8 @@ const ButtonDisplay = (props, context) => { /** * Displays a button with variable sizing. */ -const AlertButton = (props, context) => { - const { act, data } = useBackend(context); +const AlertButton = (props) => { + const { act, data } = useBackend(); const { large_buttons } = data; const { button, selected } = props; const buttonWidth = button.length > 7 ? button.length : 7; diff --git a/tgui/packages/tgui/interfaces/AlmayerControl.jsx b/tgui/packages/tgui/interfaces/AlmayerControl.jsx index 6cc44737626c..7a5133a3b19c 100644 --- a/tgui/packages/tgui/interfaces/AlmayerControl.jsx +++ b/tgui/packages/tgui/interfaces/AlmayerControl.jsx @@ -1,10 +1,10 @@ -import { Fragment } from 'inferno'; +import { Fragment } from 'react'; import { useBackend } from '../backend'; import { Button, Section, Flex, NoticeBox, Collapsible, Divider, Box } from '../components'; import { Window } from '../layouts'; -export const AlmayerControl = (_props, context) => { - const { act, data } = useBackend(context); +export const AlmayerControl = (_props) => { + const { act, data } = useBackend(); const worldTime = data.worldtime; const messages = data.messages; @@ -225,7 +225,7 @@ export const AlmayerControl = (_props, context) => {
      {messages && ( - + <> @@ -251,7 +251,7 @@ export const AlmayerControl = (_props, context) => { })} - + )} diff --git a/tgui/packages/tgui/interfaces/AltitudeControlConsole.jsx b/tgui/packages/tgui/interfaces/AltitudeControlConsole.jsx index 48550514fd4d..fd92602a3492 100644 --- a/tgui/packages/tgui/interfaces/AltitudeControlConsole.jsx +++ b/tgui/packages/tgui/interfaces/AltitudeControlConsole.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Button, ProgressBar, Box, Section } from '../components'; import { Window } from '../layouts'; import { createLogger } from '../logging'; -export const AltitudeControlConsole = (_props, context) => { - const { act, data } = useBackend(context); +export const AltitudeControlConsole = () => { + const { act, data } = useBackend(); const logger = createLogger('Debug'); logger.warn(data); return ( diff --git a/tgui/packages/tgui/interfaces/AntiAirConsole.jsx b/tgui/packages/tgui/interfaces/AntiAirConsole.jsx index 8bfc80bb763e..cd9b68ac782f 100644 --- a/tgui/packages/tgui/interfaces/AntiAirConsole.jsx +++ b/tgui/packages/tgui/interfaces/AntiAirConsole.jsx @@ -2,8 +2,8 @@ import { useBackend, useLocalState } from '../backend'; import { Stack, Section, Tabs, Button, NoticeBox, Box, Dimmer, Icon } from '../components'; import { Window } from '../layouts'; -export const AntiAirConsole = (props, context) => { - const { act, data } = useBackend(context); +export const AntiAirConsole = (props) => { + const { act, data } = useBackend(); return ( @@ -13,13 +13,12 @@ export const AntiAirConsole = (props, context) => { ); }; -const GeneralPanel = (props, context) => { - const { act, data } = useBackend(context); +const GeneralPanel = (props) => { + const { act, data } = useBackend(); const sections = data.sections; const [selectedSection, setSelectedSection] = useLocalState( - context, 'selected_section', null ); diff --git a/tgui/packages/tgui/interfaces/Apc.jsx b/tgui/packages/tgui/interfaces/Apc.jsx index 434d91f4e428..24decabb1cdc 100644 --- a/tgui/packages/tgui/interfaces/Apc.jsx +++ b/tgui/packages/tgui/interfaces/Apc.jsx @@ -3,7 +3,7 @@ import { Box, Button, LabeledList, NoticeBox, ProgressBar, Section } from '../co import { Window } from '../layouts'; import { InterfaceLockNoticeBox } from './common/InterfaceLockNoticeBox'; -export const Apc = (props, context) => { +export const Apc = (props) => { return ( @@ -31,8 +31,8 @@ const powerStatusMap = { }, }; -const ApcContent = (props, context) => { - const { act, data } = useBackend(context); +const ApcContent = (props) => { + const { act, data } = useBackend(); const locked = data.locked && !data.siliconUser; const externalPowerStatus = powerStatusMap[data.externalPower] || powerStatusMap[0]; diff --git a/tgui/packages/tgui/interfaces/AresAdmin.js b/tgui/packages/tgui/interfaces/AresAdmin.js new file mode 100644 index 000000000000..3963ee87f3a4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AresAdmin.js @@ -0,0 +1,2073 @@ +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, + 'tech_log': () => TechLogs, + '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. + +
      + +
      +

      Navigation Menu

      + + + +

      Access Level 1

      +
      + +
      +
      + + +

      Remote Admin

      +
      + +
      + + ); +}; + +const AnnouncementLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_announcement, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Announcement Logs

      + + {!!records_announcement.length && ( + + + Time + + + Title + + + Details + + + )} + {records_announcement.map((record, i) => { + return ( + + + {record.time} + + + {record.title} + + + {record.details} + + + + + + ); + })} +
      + + ); +}; + +const BioscanLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_bioscan, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Bioscan Logs

      + + {!!records_bioscan.length && ( + + + Time + + + Title + + + Details + + + )} + {records_bioscan.map((record, i) => { + return ( + + + {record.time} + + + {record.title} + + + {record.details} + + + + + + ); + })} +
      + + ); +}; + +const BombardmentLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_bombardment, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Orbital Bombardment Logs

      + + {!!records_bombardment.length && ( + + + Time + + + Warhead + + + User + + + Coordinates + + + )} + {records_bombardment.map((record, i) => { + return ( + + + {record.time} + + + {record.title} + + {record.user} + + {record.details} + + + + + + ); + })} +
      + + ); +}; + +const ApolloLog = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + apollo_log, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Apollo Log

      + + {apollo_log.map((apollo_message, i) => { + return ( + + {apollo_message} + + ); + })} +
      + + ); +}; + +const AccessLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + access_log, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Access Log

      + + {access_log.map((login, i) => { + return ( + + {login} + + ); + })} +
      + + ); +}; + +const DeletionLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_deletion, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Deletion Log

      + + {!!records_deletion.length && ( + + + Deletion Time + + + Deleted by + + + Title + + + Details + + + )} + {records_deletion.map((record, i) => { + return ( + + + {record.time} + + {record.user} + + {record.title} + + + {record.details} + + + ); + })} +
      + + ); +}; + +const ARESTalk = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + active_convo, + active_ref, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      ARES Communication

      +
      + +
      + {!active_convo.length && ( +
      +
      + + act('clear_conversation', { active_convo: active_ref }) + } + disabled={!active_convo.length} + /> +
      + + ); +}; + +const DeletedTalks = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + deleted_discussions, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Deletion Log

      + {!!deleted_discussions.length && ( + + + Deletion Time + + + Title + + + Read Record + + + )} + {deleted_discussions.map((record, i) => { + return ( + + + {record.time} + + + {record.title} + + +
      + + ); +}; + +const ReadingTalks = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + deleted_conversation, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Deleted Conversation

      + {deleted_conversation.map((message, i) => { + return ( + + {message} + + ); + })} +
      + + ); +}; + +const Requisitions = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_requisition, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      ASRS Audit Log

      + {!!records_requisition.length && ( + + + Time + + + User + + + Source + + + Order + + + )} + {records_requisition.map((record, i) => { + return ( + + + {record.time} + + + {record.user} + + + {record.title} + + + {record.details} + + + ); + })} +
      + + ); +}; + +const FlightLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_flight, + access_level, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Flight Control Logs

      + {!!records_flight.length && ( + + + Time + + + User + + + Details + + + )} + {records_flight.map((record, i) => { + return ( + + + {record.time} + + + {record.user} + + + {record.details} + + + act('delete_record', { record: record.ref })} + /> + + + ); + })} +
      + + ); +}; + +const Security = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_security, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Security Updates

      + {!!records_security.length && ( + + + Time + + + Title + + + Details + + + )} + {records_security.map((record, i) => { + return ( + + + {record.time} + + + {record.title} + + + {record.details} + + + + + + ); + })} +
      + + ); +}; + +const Emergency = (props, context) => { + const { data, act } = useBackend(context); + const { logged_in, access_text, last_page, current_menu, admin_login } = data; + + return ( + <> +
      + + +
      + +

      Emergency Protocols

      + + + + + + + + ); +}; + +const TechLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + records_tech, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Tech Control Logs

      + {!!records_tech.length && ( + + + Time + + + Authenticator + + + Details + + + )} + {records_tech.map((record, i) => { + return ( + + + {record.time} + + + {record.user} + + {!!record.tier_changer && ( + + {record.details} + + )} + {!record.tier_changer && ( + + {record.details} + + )} + + + act('delete_record', { record: record.ref })} + /> + + + ); + })} +
      + + ); +}; + +// -------------------------------------------------------------------- // +// Anything below this line is exclusive to the Admin Remote Interface. +// -------------------------------------------------------------------- // + +const AdminAccessLogs = (props, context) => { + const { data, act } = useBackend(context); + const { + logged_in, + access_text, + last_page, + current_menu, + admin_access_log, + admin_login, + } = data; + + return ( + <> +
      + + +
      + +
      +

      Access Log

      + + {admin_access_log.map((login, i) => { + return ( + + {login} + + ); + })} +
      + + ); +}; + +const AccessManagement = (props, context) => { + const { data, act } = useBackend(context); + const { last_page, current_menu, access_tickets, admin_login } = data; + + return ( + <> +
      + + +
      + +
      +

      Access Ticket Management

      + {!!access_tickets.length && ( + + + ID + + + Time + + + Submitter + + + For + + + Reason + + + )} + {access_tickets.map((ticket, i) => { + let can_update = 'Yes'; + if (ticket.lock_status === 'CLOSED') { + can_update = 'No'; + } + let view_status = 'Ticket is pending assignment.'; + let view_icon = 'circle-question'; + let update_tooltip = 'Grant Access'; + if (ticket.status === 'rejected') { + view_status = 'Ticket has been rejected.'; + view_icon = 'circle-xmark'; + update_tooltip = 'Ticket rejected. No further changes possible.'; + } else if (ticket.status === 'cancelled') { + view_status = 'Ticket was cancelled by reporter.'; + view_icon = 'circle-stop'; + update_tooltip = 'Ticket cancelled. No further changes possible.'; + } else if (ticket.status === 'granted') { + view_status = 'Access ticket has been granted.'; + view_icon = 'circle-check'; + update_tooltip = 'Revoke Access'; + } else if (ticket.status === 'revoked') { + view_status = 'Access ticket has been revoked.'; + view_icon = 'circle-minus'; + update_tooltip = 'Access revoked. No further changes possible.'; + } else if (ticket.status === 'returned') { + view_status = 'Access ticket has been returned.'; + view_icon = 'circle-minus'; + update_tooltip = + 'Access self-returned. No further changes possible.'; + } + let can_reject = 'Yes'; + if (can_update === 'No') { + can_reject = 'No'; + } + if (ticket.status !== 'pending') { + can_reject = 'No'; + } + + return ( + + + {ticket.id} + + + {ticket.time} + + + {ticket.submitter} + + + {ticket.title} + + + {ticket.details} + + +
      + + ); +}; + +const MaintManagement = (props, context) => { + const { data, act } = useBackend(context); + const { last_page, current_menu, maintenance_tickets, admin_login } = data; + + return ( + <> +
      + + +
      + +
      +

      Maintenance Reports Management

      + + +
      + + ); +}; diff --git a/tgui/packages/tgui/interfaces/AresInterface.jsx b/tgui/packages/tgui/interfaces/AresInterface.jsx index aae115d150b0..4045cba6509c 100644 --- a/tgui/packages/tgui/interfaces/AresInterface.jsx +++ b/tgui/packages/tgui/interfaces/AresInterface.jsx @@ -1,3 +1,7 @@ +// -------------------------------------------------------------------- // +// Please ensure when updating this menu, changes are reflected in AresAdmin.js +// -------------------------------------------------------------------- // + import { useBackend } from '../backend'; import { Flex, Box, Section, Button, Stack } from '../components'; import { Window } from '../layouts'; @@ -18,10 +22,11 @@ const PAGES = { 'security': () => Security, 'requisitions': () => Requisitions, 'emergency': () => Emergency, + 'tech_log': () => TechLogs, }; -export const AresInterface = (props, context) => { - const { data } = useBackend(context); +export const AresInterface = (props) => { + const { data } = useBackend(); const { current_menu, sudo } = data; const PageComponent = PAGES[current_menu](); @@ -33,7 +38,7 @@ export const AresInterface = (props, context) => { } return ( - + @@ -41,8 +46,8 @@ export const AresInterface = (props, context) => { ); }; -const Login = (props, context) => { - const { act } = useBackend(context); +const Login = (props) => { + const { act } = useBackend(); return ( { ); }; -const MainMenu = (props, context) => { - const { data, act } = useBackend(context); +const MainMenu = (props) => { + const { data, act } = useBackend(); const { logged_in, access_text, @@ -129,7 +134,7 @@ const MainMenu = (props, context) => { -

      Access Level 0

      +

      Access Level 1

      + +
      +

      Tech Control Logs

      + {!!records_tech.length && ( + + + Time + + + Authenticator + + + Details + + + )} + {records_tech.map((record, i) => { + return ( + + + {record.time} + + + {record.user} + + {!!record.tier_changer && ( + + {record.details} + + )} + {!record.tier_changer && ( + + {record.details} + + )} + + + act('delete_record', { record: record.ref })} + /> + + + ); + })} +
      + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Autodispenser.jsx b/tgui/packages/tgui/interfaces/Autodispenser.jsx index 5d029b72b894..249965e6d46c 100644 --- a/tgui/packages/tgui/interfaces/Autodispenser.jsx +++ b/tgui/packages/tgui/interfaces/Autodispenser.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Section, ProgressBar, Box, Flex, NoticeBox, Button, LabeledList, NumberInput } from '../components'; import { Window } from '../layouts'; -export const Autodispenser = (_props, context) => { - const { act, data } = useBackend(context); +export const Autodispenser = () => { + const { act, data } = useBackend(); const { energy, status, diff --git a/tgui/packages/tgui/interfaces/Autolathe.jsx b/tgui/packages/tgui/interfaces/Autolathe.jsx index ceb343eae0d9..6b21f7b6ece7 100644 --- a/tgui/packages/tgui/interfaces/Autolathe.jsx +++ b/tgui/packages/tgui/interfaces/Autolathe.jsx @@ -3,11 +3,11 @@ import { Section, Flex, ProgressBar, Box, Button, Tabs, Stack, Input } from '../ import { capitalize } from 'common/string'; import { Window } from '../layouts'; import { ElectricalPanel } from './common/ElectricalPanel'; -import { Fragment } from 'inferno'; +import { Fragment } from 'react'; import { createLogger } from '../logging'; -export const Autolathe = (_props, context) => { - const { act, data } = useBackend(context); +export const Autolathe = () => { + const { act, data } = useBackend(); const { materials, @@ -30,8 +30,8 @@ export const Autolathe = (_props, context) => { ); }; -const MaterialsData = (props, context) => { - const { act, data } = useBackend(context); +const MaterialsData = (props) => { + const { act, data } = useBackend(); const { materials, capacity, @@ -63,8 +63,8 @@ const MaterialsData = (props, context) => { ); }; -const CurrentlyMaking = (props, context) => { - const { act, data } = useBackend(context); +const CurrentlyMaking = (props) => { + const { act, data } = useBackend(); const { currently_making } = data; const MakingName = @@ -82,8 +82,8 @@ const CurrentlyMaking = (props, context) => { ); }; -const QueueList = (props, context) => { - const { act, data } = useBackend(context); +const QueueList = (props) => { + const { act, data } = useBackend(); const { materials, capacity, @@ -132,8 +132,8 @@ const QueueList = (props, context) => { }; // the below all has to be in one section due to the categories and search params -const PrintablesSection = (props, context) => { - const { act, data } = useBackend(context); +const PrintablesSection = (props) => { + const { act, data } = useBackend(); const logger = createLogger('autolathe'); @@ -146,11 +146,7 @@ const PrintablesSection = (props, context) => { queuemax, } = data; - const [currentSearch, setSearch] = useLocalState( - context, - 'current_search', - '' - ); + const [currentSearch, setSearch] = useLocalState('current_search', ''); const categories = []; printables @@ -158,7 +154,6 @@ const PrintablesSection = (props, context) => { .map((x) => x.recipe_category); const [currentCategory, setCategory] = useLocalState( - context, 'current_category', 'All' ); @@ -226,7 +221,7 @@ const PrintablesSection = (props, context) => { {(val.has_multipliers && ( - + <> @@ -250,7 +245,7 @@ const PrintablesSection = (props, context) => { )} - + )) || null} diff --git a/tgui/packages/tgui/interfaces/Binoculars.jsx b/tgui/packages/tgui/interfaces/Binoculars.jsx index d846a62a6545..7306cea90bbc 100644 --- a/tgui/packages/tgui/interfaces/Binoculars.jsx +++ b/tgui/packages/tgui/interfaces/Binoculars.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Section, Box } from '../components'; import { Window } from '../layouts'; -export const Binoculars = (_props, context) => { - const { data } = useBackend(context); +export const Binoculars = () => { + const { data } = useBackend(); const x_coord = data.xcoord; const y_coord = data.ycoord; diff --git a/tgui/packages/tgui/interfaces/BioSyntheticPrinter.jsx b/tgui/packages/tgui/interfaces/BioSyntheticPrinter.jsx index 283ff26a7b5f..8f39b0c5991b 100644 --- a/tgui/packages/tgui/interfaces/BioSyntheticPrinter.jsx +++ b/tgui/packages/tgui/interfaces/BioSyntheticPrinter.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Section, Button, Box, LabeledList, ProgressBar, NoticeBox, Divider } from '../components'; import { Window } from '../layouts'; -export const BioSyntheticPrinter = (_props, context) => { - const { act, data } = useBackend(context); +export const BioSyntheticPrinter = () => { + const { act, data } = useBackend(); const Working = data.working; diff --git a/tgui/packages/tgui/interfaces/BotanyEditor.jsx b/tgui/packages/tgui/interfaces/BotanyEditor.jsx index 425ffc9a5d5f..09a655e92814 100644 --- a/tgui/packages/tgui/interfaces/BotanyEditor.jsx +++ b/tgui/packages/tgui/interfaces/BotanyEditor.jsx @@ -1,10 +1,10 @@ -import { Fragment } from 'inferno'; +import { Fragment } from 'react'; import { useBackend } from '../backend'; import { Section, Button, Stack, LabeledList, NoticeBox } from '../components'; import { Window } from '../layouts'; -export const BotanyEditor = (_props, context) => { - const { act, data } = useBackend(context); +export const BotanyEditor = () => { + const { act, data } = useBackend(); const { disk, seed, degradation, sourceName, locus } = data; @@ -36,7 +36,7 @@ export const BotanyEditor = (_props, context) => {
      - + <> {!disk && ( No disk! Genetic data cannot be applied. @@ -45,7 +45,7 @@ export const BotanyEditor = (_props, context) => { {!seed && ( No seeds to apply genetic data to! )} - + {!!disk && ( {sourceName} diff --git a/tgui/packages/tgui/interfaces/BotanyExtractor.jsx b/tgui/packages/tgui/interfaces/BotanyExtractor.jsx index eca098a9d9f6..fe675384684e 100644 --- a/tgui/packages/tgui/interfaces/BotanyExtractor.jsx +++ b/tgui/packages/tgui/interfaces/BotanyExtractor.jsx @@ -1,10 +1,10 @@ -import { Fragment } from 'inferno'; +import { Fragment } from 'react'; import { useBackend } from '../backend'; import { Section, Button, LabeledList, Box, Stack, NoticeBox } from '../components'; import { Window } from '../layouts'; -export const BotanyExtractor = (_props, context) => { - const { act, data } = useBackend(context); +export const BotanyExtractor = () => { + const { act, data } = useBackend(); const { disk, seed, geneMasks, degradation, hasGenetics, sourceName } = data; @@ -49,7 +49,7 @@ export const BotanyExtractor = (_props, context) => {
      {(!!hasGenetics && ( - + <> {!disk && ( No disk! Genetic data cannot be extracted. @@ -86,7 +86,7 @@ export const BotanyExtractor = (_props, context) => { disabled={!hasGenetics} onClick={() => act('clear_buffer')} /> - + )) || No genetic data stored!}
      diff --git a/tgui/packages/tgui/interfaces/BrigCell.jsx b/tgui/packages/tgui/interfaces/BrigCell.jsx index f0eb325e0e60..23c7bf91d1b1 100644 --- a/tgui/packages/tgui/interfaces/BrigCell.jsx +++ b/tgui/packages/tgui/interfaces/BrigCell.jsx @@ -3,8 +3,8 @@ import { addZeros } from 'common/math'; import { Window } from '../layouts'; import { Box, ColorBox, NoticeBox, Flex, ProgressBar, Button, LabeledList, Divider } from '../components'; -export const BrigCell = (props, context) => { - const { data, act } = useBackend(context); +export const BrigCell = (props) => { + const { data, act } = useBackend(); const { viewing_incident, incidents, bit_active } = data; return ( @@ -90,8 +90,8 @@ const getTimeLeft = function (data) { return Math.max(0, timeLeft); }; -const IncidentDetails = (props, context) => { - const { data, act } = useBackend(context); +const IncidentDetails = (props) => { + const { data, act } = useBackend(); const { suspect, can_pardon, diff --git a/tgui/packages/tgui/interfaces/CameraConsole.jsx b/tgui/packages/tgui/interfaces/CameraConsole.jsx index 89f4cc4e6d92..b790100e980c 100644 --- a/tgui/packages/tgui/interfaces/CameraConsole.jsx +++ b/tgui/packages/tgui/interfaces/CameraConsole.jsx @@ -37,8 +37,8 @@ export const selectCameras = (cameras, searchText = '') => { ])(cameras); }; -export const CameraConsole = (props, context) => { - const { act, data } = useBackend(context); +export const CameraConsole = (props) => { + const { act, data } = useBackend(); const { mapRef, activeCamera } = data; const cameras = selectCameras(data.cameras); const [prevCameraName, nextCameraName] = prevNextCamera( @@ -89,9 +89,9 @@ export const CameraConsole = (props, context) => { ); }; -export const CameraConsoleContent = (props, context) => { - const { act, data } = useBackend(context); - const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); +export const CameraConsoleContent = (props) => { + const { act, data } = useBackend(); + const [searchText, setSearchText] = useLocalState('searchText', ''); const { activeCamera } = data; const cameras = selectCameras(data.cameras, searchText); return ( diff --git a/tgui/packages/tgui/interfaces/CanvasLayer.jsx b/tgui/packages/tgui/interfaces/CanvasLayer.jsx index e647ae765b1c..cf87e2f601fb 100644 --- a/tgui/packages/tgui/interfaces/CanvasLayer.jsx +++ b/tgui/packages/tgui/interfaces/CanvasLayer.jsx @@ -1,5 +1,5 @@ import { Box, Icon, Tooltip } from '../components'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; // this file should probably not be in interfaces, should move it later. export class CanvasLayer extends Component { diff --git a/tgui/packages/tgui/interfaces/CardMod.jsx b/tgui/packages/tgui/interfaces/CardMod.jsx index 6b27125f0995..6580cb18dfeb 100644 --- a/tgui/packages/tgui/interfaces/CardMod.jsx +++ b/tgui/packages/tgui/interfaces/CardMod.jsx @@ -1,12 +1,12 @@ -import { Fragment } from 'inferno'; +import { Fragment } from 'react'; import { useBackend, useLocalState } from '../backend'; import { Box, Button, Stack, Input, Section, Tabs, Table, NumberInput } from '../components'; import { Window } from '../layouts'; import { AccessList } from './common/AccessList'; import { map } from 'common/collections'; -export const CardMod = (props, context) => { - const [tab2, setTab2] = useLocalState(context, 'tab2', 1); +export const CardMod = (props) => { + const [tab2, setTab2] = useLocalState('tab2', 1); return ( @@ -27,8 +27,8 @@ export const CardMod = (props, context) => { ); }; -export const CrewManifest = (props, context) => { - const { act, data } = useBackend(context); +export const CrewManifest = (props) => { + const { act, data } = useBackend(); const { manifest = {} } = data; return (
      { ); }; -export const CardContent = (props, context) => { - const { act, data } = useBackend(context); - const [tab, setTab] = useLocalState(context, 'tab', 1); +export const CardContent = (props) => { + const { act, data } = useBackend(); + const [tab, setTab] = useLocalState('tab', 1); const { authenticated, regions = [], @@ -75,13 +75,12 @@ export const CardContent = (props, context) => { id_account, } = data; const [selectedDepartment, setSelectedDepartment] = useLocalState( - context, 'department', Object.keys(jobs)[0] ); const departmentJobs = jobs[selectedDepartment] || []; return ( - + <>
      { ) } buttons={ - + <>
      {!!has_id && !!authenticated && ( @@ -229,6 +228,6 @@ export const CardContent = (props, context) => { )} )} -
      + ); }; diff --git a/tgui/packages/tgui/interfaces/CasSim.tsx b/tgui/packages/tgui/interfaces/CasSim.tsx index cac23cde1833..f88bf65feab9 100644 --- a/tgui/packages/tgui/interfaces/CasSim.tsx +++ b/tgui/packages/tgui/interfaces/CasSim.tsx @@ -9,10 +9,9 @@ interface CasSimData { detonation_cooldown: number; } -export const CasSim = (_props, context) => { - const { act, data } = useBackend(context); +export const CasSim = () => { + const { act, data } = useBackend(); const [simulationView, setSimulationView] = useLocalState( - context, 'simulation_view', false ); diff --git a/tgui/packages/tgui/interfaces/Centrifuge.jsx b/tgui/packages/tgui/interfaces/Centrifuge.jsx index 45ed7bb4b6d7..94a1e7594fd3 100644 --- a/tgui/packages/tgui/interfaces/Centrifuge.jsx +++ b/tgui/packages/tgui/interfaces/Centrifuge.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Section, Flex, Button, Box, Input, NoticeBox } from '../components'; import { Window } from '../layouts'; -export const Centrifuge = (_props, context) => { - const { act, data } = useBackend(context); +export const Centrifuge = () => { + const { act, data } = useBackend(); return ( diff --git a/tgui/packages/tgui/interfaces/Changelog.jsx b/tgui/packages/tgui/interfaces/Changelog.jsx index 73982f2718a9..91d107673675 100644 --- a/tgui/packages/tgui/interfaces/Changelog.jsx +++ b/tgui/packages/tgui/interfaces/Changelog.jsx @@ -1,39 +1,39 @@ import { classes } from 'common/react'; import { useBackend } from '../backend'; -import { Component, Fragment } from 'inferno'; -import { Box, Button, Dropdown, Icon, Section, Stack, Table } from '../components'; +import { Component, Fragment } from 'react'; +import { Box, Button, Dropdown, Icon, Section, Stack, Table, Tooltip } from '../components'; import { Window } from '../layouts'; import { resolveAsset } from '../assets'; import dateformat from 'dateformat'; import yaml from 'js-yaml'; -const icons = { - bugfix: { icon: 'bug', color: 'green' }, - fix: { icon: 'bug', color: 'green' }, - wip: { icon: 'hammer', color: 'orange' }, - qol: { icon: 'hand-holding-heart', color: 'green' }, - soundadd: { icon: 'tg-sound-plus', color: 'green' }, - sounddel: { icon: 'tg-sound-minus', color: 'red' }, - add: { icon: 'check-circle', color: 'green' }, - expansion: { icon: 'check-circle', color: 'green' }, - rscadd: { icon: 'check-circle', color: 'green' }, - rscdel: { icon: 'times-circle', color: 'red' }, - imageadd: { icon: 'tg-image-plus', color: 'green' }, - imagedel: { icon: 'tg-image-minus', color: 'red' }, - spellcheck: { icon: 'spell-check', color: 'green' }, - experiment: { icon: 'radiation', color: 'yellow' }, - balance: { icon: 'balance-scale-right', color: 'yellow' }, - code_imp: { icon: 'code', color: 'green' }, - refactor: { icon: 'tools', color: 'green' }, - config: { icon: 'cogs', color: 'purple' }, - admin: { icon: 'user-shield', color: 'purple' }, - server: { icon: 'server', color: 'purple' }, - tgs: { icon: 'toolbox', color: 'purple' }, - tweak: { icon: 'wrench', color: 'green' }, - ui: { icon: 'desktop', color: 'blue' }, - mapadd: { icon: 'earth-africa', color: 'yellow' }, - maptweak: { icon: 'map-location-dot', color: 'green' }, - unknown: { icon: 'info-circle', color: 'label' }, +const changeTypes = { + bugfix: { icon: 'bug', color: 'green', desc: 'Fix' }, + fix: { icon: 'bug', color: 'green', desc: 'Fix' }, + wip: { icon: 'hammer', color: 'orange', desc: 'WIP' }, + qol: { icon: 'hand-holding-heart', color: 'green', desc: 'QOL' }, + soundadd: { icon: 'tg-sound-plus', color: 'green', desc: 'Sound add' }, + sounddel: { icon: 'tg-sound-minus', color: 'red', desc: 'Sound del' }, + add: { icon: 'check-circle', color: 'green', desc: 'Addition' }, + expansion: { icon: 'check-circle', color: 'green', desc: 'Addition' }, + rscadd: { icon: 'check-circle', color: 'green', desc: 'Addition' }, + rscdel: { icon: 'times-circle', color: 'red', desc: 'Removal' }, + imageadd: { icon: 'tg-image-plus', color: 'green', desc: 'Sprite add' }, + imagedel: { icon: 'tg-image-minus', color: 'red', desc: 'Sprite del' }, + spellcheck: { icon: 'spell-check', color: 'green', desc: 'Spellcheck' }, + experiment: { icon: 'radiation', color: 'yellow', desc: 'Experiment' }, + balance: { icon: 'balance-scale-right', color: 'yellow', desc: 'Balance' }, + code_imp: { icon: 'code', color: 'green', desc: 'Code improvement' }, + refactor: { icon: 'tools', color: 'green', desc: 'Code refactor' }, + config: { icon: 'cogs', color: 'purple', desc: 'Config' }, + admin: { icon: 'user-shield', color: 'purple', desc: 'Admin' }, + server: { icon: 'server', color: 'purple', desc: 'Server' }, + tgs: { icon: 'toolbox', color: 'purple', desc: 'Server (TGS)' }, + tweak: { icon: 'wrench', color: 'green', desc: 'Tweak' }, + ui: { icon: 'desktop', color: 'blue', desc: 'UI' }, + mapadd: { icon: 'earth-africa', color: 'yellow', desc: 'Map add' }, + maptweak: { icon: 'map-location-dot', color: 'green', desc: 'Map tweak' }, + unknown: { icon: 'info-circle', color: 'label', desc: 'Unknown' }, }; export class Changelog extends Component { @@ -60,7 +60,7 @@ export class Changelog extends Component { } getData = (date, attemptNumber = 1) => { - const { act } = useBackend(this.context); + const { act } = useBackend(); const self = this; const maxAttempts = 6; @@ -92,7 +92,7 @@ export class Changelog extends Component { componentDidMount() { const { data: { dates = [] }, - } = useBackend(this.context); + } = useBackend(); if (dates) { dates.forEach((date) => @@ -107,7 +107,7 @@ export class Changelog extends Component { const { data, selectedDate, selectedIndex } = this.state; const { data: { dates }, - } = useBackend(this.context); + } = useBackend(); const { dateChoices } = this; const dateDropdown = dateChoices.length > 0 && ( @@ -273,29 +273,27 @@ export class Changelog extends Component { {changes.map((change) => { - const changeType = Object.keys(change)[0]; + const changeKey = Object.keys(change)[0]; + const changeType = + changeTypes[changeKey] || changeTypes['unknown']; return ( - + - + + + - {change[changeType]} + {change[changeKey]} ); diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.jsx b/tgui/packages/tgui/interfaces/ChemDispenser.jsx index d4dadb58cfbe..77e4cac58a5f 100644 --- a/tgui/packages/tgui/interfaces/ChemDispenser.jsx +++ b/tgui/packages/tgui/interfaces/ChemDispenser.jsx @@ -3,8 +3,8 @@ import { useBackend } from '../backend'; import { AnimatedNumber, Box, Button, LabeledList, NoticeBox, ProgressBar, Section } from '../components'; import { Window } from '../layouts'; -export const ChemDispenser = (props, context) => { - const { act, data } = useBackend(context); +export const ChemDispenser = (props) => { + const { act, data } = useBackend(); const beakerTransferAmounts = data.beakerTransferAmounts || []; const beakerContents = data.beakerContents || []; return ( diff --git a/tgui/packages/tgui/interfaces/ChooseFruit.jsx b/tgui/packages/tgui/interfaces/ChooseFruit.jsx index 576897b16262..1a1ee9f85341 100644 --- a/tgui/packages/tgui/interfaces/ChooseFruit.jsx +++ b/tgui/packages/tgui/interfaces/ChooseFruit.jsx @@ -3,15 +3,11 @@ import { useBackend, useLocalState } from '../backend'; import { Tabs, Box, Section, Stack, Button } from '../components'; import { Window } from '../layouts'; -export const ChooseFruit = (props, context) => { - const { act, data } = useBackend(context); +export const ChooseFruit = (props) => { + const { act, data } = useBackend(); const { fruits, selected_fruit } = data; - const [compact, setCompact] = useLocalState( - context, - 'choosefruit_compact', - false - ); + const [compact, setCompact] = useLocalState('choosefruit_compact', false); let heightScale = 80; if (compact) heightScale = 45; diff --git a/tgui/packages/tgui/interfaces/ChooseResin.jsx b/tgui/packages/tgui/interfaces/ChooseResin.jsx index 47f91110c0ca..4a031ce9d91f 100644 --- a/tgui/packages/tgui/interfaces/ChooseResin.jsx +++ b/tgui/packages/tgui/interfaces/ChooseResin.jsx @@ -5,15 +5,11 @@ import { Window } from '../layouts'; export const INFINITE_BUILD_AMOUNT = -1; -export const ChooseResin = (props, context) => { - const { act, data } = useBackend(context); +export const ChooseResin = (props) => { + const { act, data } = useBackend(); const { constructions, selected_resin } = data; - const [compact, setCompact] = useLocalState( - context, - 'chooseresin_compact', - false - ); + const [compact, setCompact] = useLocalState('chooseresin_compact', false); let heightScale = 80; if (compact) heightScale = 45; diff --git a/tgui/packages/tgui/interfaces/ColorMatrixEditor.tsx b/tgui/packages/tgui/interfaces/ColorMatrixEditor.tsx index 93edd6f1b2c8..ec5f775c35f4 100644 --- a/tgui/packages/tgui/interfaces/ColorMatrixEditor.tsx +++ b/tgui/packages/tgui/interfaces/ColorMatrixEditor.tsx @@ -10,8 +10,8 @@ type Data = { const PREFIXES = ['r', 'g', 'b', 'a', 'c'] as const; -export const ColorMatrixEditor = (props, context) => { - const { act, data } = useBackend(context); +export const ColorMatrixEditor = (props) => { + const { act, data } = useBackend(); const { mapRef, currentColor } = data; return ( diff --git a/tgui/packages/tgui/interfaces/CommandTablet.jsx b/tgui/packages/tgui/interfaces/CommandTablet.jsx index 8b334d1dac62..429cc943db94 100644 --- a/tgui/packages/tgui/interfaces/CommandTablet.jsx +++ b/tgui/packages/tgui/interfaces/CommandTablet.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Button, Section, Flex, NoticeBox } from '../components'; import { Window } from '../layouts'; -export const CommandTablet = (_props, context) => { - const { act, data } = useBackend(context); +export const CommandTablet = () => { + const { act, data } = useBackend(); const evacstatus = data.evac_status; diff --git a/tgui/packages/tgui/interfaces/CrewConsole.jsx b/tgui/packages/tgui/interfaces/CrewConsole.jsx index 15c49d28061e..e84827ca7c57 100644 --- a/tgui/packages/tgui/interfaces/CrewConsole.jsx +++ b/tgui/packages/tgui/interfaces/CrewConsole.jsx @@ -100,8 +100,8 @@ export const CrewConsole = () => { ); }; -const CrewTable = (props, context) => { - const { act, data } = useBackend(context); +const CrewTable = (props) => { + const { act, data } = useBackend(); const sensors = sortBy((s) => s.ijob)(data.sensors ?? []); return (
      @@ -127,8 +127,8 @@ const CrewTable = (props, context) => { ); }; -const CrewTableEntry = (props, context) => { - const { act, data } = useBackend(context); +const CrewTableEntry = (props) => { + const { act, data } = useBackend(); const { link_allowed } = data; const { sensor_data } = props; const { diff --git a/tgui/packages/tgui/interfaces/Cryo.jsx b/tgui/packages/tgui/interfaces/Cryo.jsx index 240352836476..338717f2d0ca 100644 --- a/tgui/packages/tgui/interfaces/Cryo.jsx +++ b/tgui/packages/tgui/interfaces/Cryo.jsx @@ -32,8 +32,8 @@ export const Cryo = () => { ); }; -const CryoContent = (props, context) => { - const { act, data } = useBackend(context); +const CryoContent = (props) => { + const { act, data } = useBackend(); return ( <>
      diff --git a/tgui/packages/tgui/interfaces/DemoSim.tsx b/tgui/packages/tgui/interfaces/DemoSim.tsx index 87dfa81236be..4b2a1487146e 100644 --- a/tgui/packages/tgui/interfaces/DemoSim.tsx +++ b/tgui/packages/tgui/interfaces/DemoSim.tsx @@ -10,10 +10,9 @@ interface DemoSimData { detonation_cooldown: number; } -export const DemoSim = (_props, context) => { - const { act, data } = useBackend(context); +export const DemoSim = () => { + const { act, data } = useBackend(); const [simulationView, setSimulationView] = useLocalState( - context, 'simulation_view', false ); diff --git a/tgui/packages/tgui/interfaces/Disposals.jsx b/tgui/packages/tgui/interfaces/Disposals.jsx index c64a55a91334..7fa8098869b9 100644 --- a/tgui/packages/tgui/interfaces/Disposals.jsx +++ b/tgui/packages/tgui/interfaces/Disposals.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Section, ProgressBar, Button, Box } from '../components'; import { Window } from '../layouts'; -export const Disposals = (_props, context) => { - const { act, data } = useBackend(context); +export const Disposals = () => { + const { act, data } = useBackend(); const { pressure, mode, flush } = data; diff --git a/tgui/packages/tgui/interfaces/DrawnMap.jsx b/tgui/packages/tgui/interfaces/DrawnMap.jsx index cd5a9539f847..0e789b631d39 100644 --- a/tgui/packages/tgui/interfaces/DrawnMap.jsx +++ b/tgui/packages/tgui/interfaces/DrawnMap.jsx @@ -1,5 +1,5 @@ import { Box } from '../components'; -import { Component, createRef } from 'inferno'; +import { Component, createRef } from 'react'; export class DrawnMap extends Component { constructor(props) { diff --git a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx index 64486c66ad82..679b78efe843 100644 --- a/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx +++ b/tgui/packages/tgui/interfaces/DropshipFlightControl.tsx @@ -3,9 +3,17 @@ import { Window } from '../layouts'; import { Box, Button, Flex, Icon, ProgressBar, Section, Stack } from '../components'; import { LaunchButton, CancelLaunchButton, DisabledScreen, InFlightCountdown, LaunchCountdown, NavigationProps, ShuttleRecharge, DockingPort } from './NavigationShuttle'; +const DoorStatusEnum = { + SHUTTLE_DOOR_BROKEN: -1, + SHUTTLE_DOOR_UNLOCKED: 0, + SHUTTLE_DOOR_LOCKED: 1, +} as const; + +type DoorStatusEnums = typeof DoorStatusEnum[keyof typeof DoorStatusEnum]; + interface DoorStatus { id: string; - value: 0 | 1; + value: DoorStatusEnums; } interface AutomatedControl { @@ -27,8 +35,8 @@ interface DropshipNavigationProps extends NavigationProps { playing_launch_announcement_alarm: boolean; } -const DropshipDoorControl = (_, context) => { - const { data, act } = useBackend(context); +const DropshipDoorControl = () => { + const { data, act } = useBackend(); const in_flight = data.shuttle_mode === 'called' || data.shuttle_mode === 'pre-arrival'; const disable_door_controls = in_flight; @@ -40,7 +48,7 @@ const DropshipDoorControl = (_, context) => { .filter((x) => x.id === 'all') .map((x) => ( <> - {x.value === 0 && ( + {x.value === DoorStatusEnum.SHUTTLE_DOOR_UNLOCKED && ( )} - {x.value === 1 && ( + {x.value === DoorStatusEnum.SHUTTLE_DOOR_LOCKED && ( + )} + {x.value === DoorStatusEnum.SHUTTLE_DOOR_UNLOCKED && ( )} - {x.value === 1 && ( + {x.value === DoorStatusEnum.SHUTTLE_DOOR_LOCKED && (
      {limbs_damaged ? : null} @@ -240,8 +266,8 @@ export const HealthScan = (props, context) => { ); }; -const ScannerChems = (props, context) => { - const { data } = useBackend(context); +const ScannerChems = (props) => { + const { data } = useBackend(); const { has_unknown_chemicals, chemicals_lists } = data; const chemicals = Object.values(chemicals_lists); @@ -278,8 +304,8 @@ const ScannerChems = (props, context) => { ); }; -const ScannerLimbs = (props, context) => { - const { data } = useBackend(context); +const ScannerLimbs = (props) => { + const { data } = useBackend(); const { limb_data_lists, detail_level } = data; const limb_data = Object.values(limb_data_lists); const bodyscanner = detail_level >= 1; @@ -389,6 +415,11 @@ const ScannerLimbs = (props, context) => { [Embedded Object] ) : null} + {limb.open_zone_incision ? ( + + [Open Surgical Incision In {limb.open_zone_incision}] + + ) : null} )} @@ -399,8 +430,8 @@ const ScannerLimbs = (props, context) => { ); }; -const ScannerOrgans = (props, context) => { - const { data } = useBackend(context); +const ScannerOrgans = (props) => { + const { data } = useBackend(); const { damaged_organs } = data; return ( diff --git a/tgui/packages/tgui/interfaces/HiveFaction.jsx b/tgui/packages/tgui/interfaces/HiveFaction.jsx index 216af57e3336..fe71be57fc49 100644 --- a/tgui/packages/tgui/interfaces/HiveFaction.jsx +++ b/tgui/packages/tgui/interfaces/HiveFaction.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Button, Flex, Section } from '../components'; import { Window } from '../layouts'; -export const HiveFaction = (props, context) => { - const { act, data } = useBackend(context); +export const HiveFaction = (props) => { + const { act, data } = useBackend(); const { glob_factions, current_allies } = data; const onFactionButtonClick = (faction) => diff --git a/tgui/packages/tgui/interfaces/HiveLeaders.jsx b/tgui/packages/tgui/interfaces/HiveLeaders.jsx index d9b5bc924f5c..c11826bb718a 100644 --- a/tgui/packages/tgui/interfaces/HiveLeaders.jsx +++ b/tgui/packages/tgui/interfaces/HiveLeaders.jsx @@ -3,8 +3,8 @@ import { useBackend } from '../backend'; import { Section, Table, Icon } from '../components'; import { Window } from '../layouts'; -export const HiveLeaders = (props, context) => { - const { act, data } = useBackend(context); +export const HiveLeaders = (props) => { + const { act, data } = useBackend(); const { queens, leaders } = data; return ( { }; }; -export const HiveStatus = (props, context) => { - const { data } = useBackend(context); +export const HiveStatus = (props) => { + const { data } = useBackend(); const { hive_name } = data; return ( @@ -105,8 +105,8 @@ export const HiveStatus = (props, context) => { ); }; -const GeneralInformation = (props, context) => { - const { data } = useBackend(context); +const GeneralInformation = (props) => { + const { data } = useBackend(); const { queen_location, hive_location, @@ -152,8 +152,8 @@ const GeneralInformation = (props, context) => { ); }; -const XenoCounts = (props, context) => { - const { data } = useBackend(context); +const XenoCounts = (props) => { + const { data } = useBackend(); const { xeno_counts, tier_slots, hive_color } = data; return ( @@ -245,15 +245,15 @@ const XenoCounts = (props, context) => { ); }; -const XenoList = (props, context) => { - const { act, data } = useBackend(context); - const [searchKey, setSearchKey] = useLocalState(context, 'searchKey', ''); - const [searchFilters, setSearchFilters] = useLocalState( - context, - 'searchFilters', - { name: true, strain: true, location: true } - ); - const [maxHealth, setMaxHealth] = useLocalState(context, 'maxHealth', 100); +const XenoList = (props) => { + const { act, data } = useBackend(); + const [searchKey, setSearchKey] = useLocalState('searchKey', ''); + const [searchFilters, setSearchFilters] = useLocalState('searchFilters', { + name: true, + strain: true, + location: true, + }); + const [maxHealth, setMaxHealth] = useLocalState('maxHealth', 100); const { xeno_keys, xeno_vitals, xeno_info, user_ref, is_in_ovi, hive_color } = data; const xeno_entries = filterXenos({ @@ -365,7 +365,7 @@ const XenoList = (props, context) => { {entry.health < 30 ? ( {entry.health}% ) : ( - {entry.health}% + <>{entry.health}% )} @@ -399,7 +399,7 @@ const XenoList = (props, context) => { ); }; -const StatusIcon = (props, context) => { +const StatusIcon = (props) => { const { entry } = props; const { is_ssd, is_leader, is_queen } = entry; @@ -414,8 +414,8 @@ const StatusIcon = (props, context) => { } }; -const XenoCollapsible = (props, context) => { - const { data } = useBackend(context); +const XenoCollapsible = (props) => { + const { data } = useBackend(); const { title, children } = props; const { hive_color } = data; @@ -430,12 +430,12 @@ const XenoCollapsible = (props, context) => { ); }; -const QueenOviButtons = (props, context) => { - const { act, data } = useBackend(context); +const QueenOviButtons = (props) => { + const { act, data } = useBackend(); const { target_ref } = props; return ( - + <>
      {props.data @@ -57,9 +57,9 @@ const PlaytimeTable = (props: { readonly data: PlaytimeRecord[] }, context) => { ); }; -export const Playtime = (props, context) => { - const { data } = useBackend(context); - const [selected, setSelected] = useLocalState(context, 'selected', 'human'); +export const Playtime = (props) => { + const { data } = useBackend(); + const [selected, setSelected] = useLocalState('selected', 'human'); const humanTime = data.stored_human_playtime.length > 0 ? data.stored_human_playtime[0].playtime diff --git a/tgui/packages/tgui/interfaces/PodLauncher.jsx b/tgui/packages/tgui/interfaces/PodLauncher.jsx index 751fe1d386af..22f44abaf53c 100644 --- a/tgui/packages/tgui/interfaces/PodLauncher.jsx +++ b/tgui/packages/tgui/interfaces/PodLauncher.jsx @@ -2,7 +2,7 @@ import { toFixed } from 'common/math'; import { storage } from 'common/storage'; import { multiline } from 'common/string'; import { createUuid } from 'common/uuid'; -import { Component, Fragment } from 'inferno'; +import { Component, Fragment } from 'react'; import { useBackend, useLocalState } from '../backend'; import { Box, Button, ByondUi, Divider, Input, Knob, LabeledControls, NumberInput, Section, Flex, Slider } from '../components'; import { Window } from '../layouts'; @@ -11,7 +11,7 @@ const pod_grey = { color: 'grey', }; -export const PodLauncher = (props, context) => { +export const PodLauncher = (props) => { return ( @@ -19,7 +19,7 @@ export const PodLauncher = (props, context) => { ); }; -const PodLauncherContent = (props, context) => { +const PodLauncherContent = (props) => { return ( @@ -132,8 +132,8 @@ const EFFECTS_LOAD = [ selected: (data) => { return data['launch_choice'] === data.glob_launch_options.LAUNCH_ALL; }, - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('set_launch_option', { launch_option: 'LAUNCH_ALL' }); }, }, @@ -143,8 +143,8 @@ const EFFECTS_LOAD = [ selected: (data) => { return data['launch_choice'] === data.glob_launch_options.LAUNCH_RANDOM; }, - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('set_launch_option', { launch_option: 'LAUNCH_RANDOM' }); }, }, @@ -157,8 +157,8 @@ const EFFECTS_LOAD = [ selected: (data) => { return !data['launch_random_item']; }, - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('launch_random_item', { should_do: false }); }, }, @@ -168,8 +168,8 @@ const EFFECTS_LOAD = [ selected: (data) => { return data['launch_random_item']; }, - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('launch_random_item', { should_do: true }); }, }, @@ -180,8 +180,8 @@ const EFFECTS_LOAD = [ title: 'Clone', icon: 'clone', selected: (data) => data['launch_clone'], - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('launch_clone', { should_do: !data['launch_clone'] }); }, }, @@ -189,8 +189,8 @@ const EFFECTS_LOAD = [ title: 'Recall', icon: 'redo', selected: (data) => data['should_recall'], - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('set_should_recall', { should_do: !data['should_recall'] }); }, }, @@ -203,8 +203,8 @@ const EFFECTS_NORMAL = [ selected: (data) => { return data['gib_on_land']; }, - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('set_gib_on_land', { should_do: !data['gib_on_land'] }); }, }, @@ -214,8 +214,8 @@ const EFFECTS_NORMAL = [ selected: (data) => { return data['stealth']; }, - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('set_stealth', { should_do: !data['stealth'] }); }, }, @@ -225,8 +225,8 @@ const EFFECTS_NORMAL = [ selected: (data) => { return data['can_be_opened']; }, - onClick: (context) => { - const { act, data } = useBackend(context); + onClick: () => { + const { act, data } = useBackend(); act('set_can_be_opened', { should_do: !data['can_be_opened'] }); }, }, @@ -246,13 +246,9 @@ const EFFECTS_ALL = [ }, ]; -const ViewTabHolder = (props, context) => { - const { act, data } = useBackend(context); - const [tabPageIndex, setTabPageIndex] = useLocalState( - context, - 'tabPageIndex', - 1 - ); +const ViewTabHolder = (props) => { + const { act, data } = useBackend(); + const [tabPageIndex, setTabPageIndex] = useLocalState('tabPageIndex', 1); const { glob_tab_indexes, custom_dropoff, map_ref } = data; const TabPageComponent = TABPAGES[tabPageIndex].component(); return ( @@ -342,7 +338,7 @@ const ViewTabHolder = (props, context) => { ); }; -const TabPod = (props, context) => { +const TabPod = (props) => { return ( Note: You can right click on this @@ -352,8 +348,8 @@ const TabPod = (props, context) => { ); }; -const TabBay = (props, context) => { - const { act, data } = useBackend(context); +const TabBay = (props) => { + const { act, data } = useBackend(); return ( <>
      {props.items @@ -43,16 +43,12 @@ const ContentsTable = ( ); }; -const Contents = ( - props: { - readonly isLocal: boolean; - readonly items: StorageItem[]; - readonly title: string; - }, - context -) => { +const Contents = (props: { + readonly isLocal: boolean; + readonly items: StorageItem[]; + readonly title: string; +}) => { const [tabIndex, setTabIndex] = useLocalState( - context, `contentsTab_${props.isLocal}`, 'all' ); @@ -109,11 +105,11 @@ const Contents = ( ); }; -const ContentItem = ( - props: { readonly isLocal: boolean; readonly item: StorageItem }, - context -) => { - const { data, act } = useBackend(context); +const ContentItem = (props: { + readonly isLocal: boolean; + readonly item: StorageItem; +}) => { + const { data, act } = useBackend(); const { item } = props; const itemref = { 'index': item.index, 'amount': 1, isLocal: props.isLocal }; return ( @@ -149,8 +145,8 @@ const ContentItem = ( ); }; -export const SmartFridge = (_, context) => { - const { data } = useBackend(context); +export const SmartFridge = () => { + const { data } = useBackend(); return ( diff --git a/tgui/packages/tgui/interfaces/Smes.jsx b/tgui/packages/tgui/interfaces/Smes.jsx index 47f6e11991f1..7dce4bf1949f 100644 --- a/tgui/packages/tgui/interfaces/Smes.jsx +++ b/tgui/packages/tgui/interfaces/Smes.jsx @@ -6,8 +6,8 @@ import { Window } from '../layouts'; // Common power multiplier const POWER_MUL = 1e3; -export const Smes = (props, context) => { - const { act, data } = useBackend(context); +export const Smes = (props) => { + const { act, data } = useBackend(); const { capacityPercent, capacity, diff --git a/tgui/packages/tgui/interfaces/SquadInfo.tsx b/tgui/packages/tgui/interfaces/SquadInfo.tsx index 4bd0068850e2..112c1b9b2d99 100644 --- a/tgui/packages/tgui/interfaces/SquadInfo.tsx +++ b/tgui/packages/tgui/interfaces/SquadInfo.tsx @@ -47,11 +47,8 @@ interface SquadProps { objective: { primary?: string; secondary?: string }; } -const FireTeamLeadLabel = ( - props: { readonly ftl: SquadMarineEntry }, - context -) => { - const { data } = useBackend(context); +const FireTeamLeadLabel = (props: { readonly ftl: SquadMarineEntry }) => { + const { data } = useBackend(); const { ftl } = props; return ( <> @@ -75,11 +72,11 @@ const FireTeamLeadLabel = ( ); }; -const FireTeamLead = ( - props: { readonly fireteam: FireTeamEntry; readonly ft: string }, - context -) => { - const { data, act } = useBackend(context); +const FireTeamLead = (props: { + readonly fireteam: FireTeamEntry; + readonly ft: string; +}) => { + const { data, act } = useBackend(); const fireteamLead = props.fireteam.tl; const isNotAssigned = fireteamLead === undefined || @@ -114,7 +111,7 @@ interface FireteamBoxProps extends BoxProps { readonly isEmpty: boolean; } -const FireteamBox = (props: FireteamBoxProps, context) => { +const FireteamBox = (props: FireteamBoxProps) => { return (
      {props.name}
      @@ -123,8 +120,8 @@ const FireteamBox = (props: FireteamBoxProps, context) => { ); }; -const FireTeam = (props: { readonly ft: string }, context) => { - const { data, act } = useBackend(context); +const FireTeam = (props: { readonly ft: string }) => { + const { data, act } = useBackend(); const fireteam: FireTeamEntry = data.fireteams[props.ft]; const members: SquadMarineEntry[] = @@ -193,15 +190,12 @@ const FireTeam = (props: { readonly ft: string }, context) => { ); }; -const FireTeamMember = ( - props: { - readonly member: SquadMarineEntry; - readonly team: string; - readonly fireteam?: FireTeamEntry; - }, - context -) => { - const { data, act } = useBackend(context); +const FireTeamMember = (props: { + readonly member: SquadMarineEntry; + readonly team: string; + readonly fireteam?: FireTeamEntry; +}) => { + const { data, act } = useBackend(); const assignFT1 = { target_ft: 'FT1', target_marine: props.member.name }; const assignFT2 = { target_ft: 'FT2', target_marine: props.member.name }; const assignFT3 = { target_ft: 'FT3', target_marine: props.member.name }; @@ -273,8 +267,8 @@ const FireTeamMember = ( ); }; -const SquadObjectives = (props, context) => { - const { data } = useBackend(context); +const SquadObjectives = (props) => { + const { data } = useBackend(); const primaryObjective = data.objective?.primary ?? 'Unset'; const secondaryObjective = data.objective?.secondary ?? 'Unset'; return ( @@ -289,8 +283,8 @@ const SquadObjectives = (props, context) => { ); }; -export const SquadInfo = (_, context) => { - const { data } = useBackend(context); +export const SquadInfo = () => { + const { data } = useBackend(); const fireteams = ['FT1', 'FT2', 'FT3', 'Unassigned']; return ( diff --git a/tgui/packages/tgui/interfaces/SquadMod.jsx b/tgui/packages/tgui/interfaces/SquadMod.jsx index 15ce727a5341..d2b7722bd8a0 100644 --- a/tgui/packages/tgui/interfaces/SquadMod.jsx +++ b/tgui/packages/tgui/interfaces/SquadMod.jsx @@ -2,8 +2,8 @@ import { useBackend } from '../backend'; import { Button, Stack, Section, NoticeBox } from '../components'; import { Window } from '../layouts'; -export const SquadMod = (props, context) => { - const { act, data } = useBackend(context); +export const SquadMod = (props) => { + const { act, data } = useBackend(); const { squads = [], human, id_name, has_id } = data; return ( diff --git a/tgui/packages/tgui/interfaces/StatbrowserOptions.jsx b/tgui/packages/tgui/interfaces/StatbrowserOptions.jsx index d4a1a482336e..2b1712453360 100644 --- a/tgui/packages/tgui/interfaces/StatbrowserOptions.jsx +++ b/tgui/packages/tgui/interfaces/StatbrowserOptions.jsx @@ -2,14 +2,10 @@ import { useBackend, useLocalState } from '../backend'; import { Flex, NumberInput, Section } from '../components'; import { Window } from '../layouts'; -export const StatbrowserOptions = (props, context) => { - const { act, data } = useBackend(context); +export const StatbrowserOptions = (props) => { + const { act, data } = useBackend(); const { current_fontsize } = data; - const [fontsize, setFontsize] = useLocalState( - context, - 'fontsize', - current_fontsize - ); + const [fontsize, setFontsize] = useLocalState('fontsize', current_fontsize); return ( @@ -33,7 +29,7 @@ export const StatbrowserOptions = (props, context) => { ); }; -const Options = (props, context) => { +const Options = (props) => { const { children } = props; return ( @@ -49,7 +45,7 @@ const Options = (props, context) => { ); }; -const Option = (props, context) => { +const Option = (props) => { const { category, input } = props; return ( @@ -60,7 +56,7 @@ const Option = (props, context) => { ); }; -const NumberOption = (props, context) => { +const NumberOption = (props) => { const { category, ...rest } = props; return