diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 49eda07616..5eb8f0219e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -10,6 +10,12 @@ body: placeholder: "#1, #2, #3, etc" validations: required: true + - type: input + id: round-id + attributes: + label: Round ID + description: If known, what was the Round ID this bug was found on? Can be left blank if unknown or occured across multiple rounds. + placeholder: "12345" - type: textarea id: what-happened attributes: diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 97e9976244..978ede1e65 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -63,6 +63,34 @@ jobs: with: outputFile: output-annotations.txt + + odlint: + name: Lint with OpenDream + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - name: Get OpenDream Version + run: | + source dependencies.sh + echo "OPENDREAM_VERSION=$OPENDREAM_VERSION" >> $GITHUB_ENV + - name: Restore OpenDream cache + uses: actions/cache@v3 + id: cache-od + with: + path: ~/OpenDream + key: ${{ runner.os }}-opendream-${{ env.OPENDREAM_VERSION }} + - name: Download OpenDream + if: steps.cache-od.outputs.cache-hit != 'true' + run: | + bash tools/ci/download_od.sh + - name: Setup OpenDream + if: steps.cache-od.outputs.cache-hit != 'true' + run: | + bash tools/ci/setup_od.sh + - name: Run OpenDream + run: | + bash tools/ci/run_od.sh + compile_all_maps: if: "!contains(github.event.head_commit.message, '[ci skip]')" name: Compile Maps diff --git a/.gitignore b/.gitignore index 210efc84d7..4d2b7e810d 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,6 @@ test_environment.txt # byond-tracy backend, not shipped with the codebase so it shouldn't be maintained prof.dll libprof.so + +# OpenDream compatibility stuff +colonialmarines.json diff --git a/README.md b/README.md index fced9e02c9..e02929ee4f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Build Status](https://github.com/PvE-CMSS13/PvE-CMSS13/workflows/CI%20Suite/badge.svg)](https://github.com/PvE-CMSS13/PvE-CMSS13/actions?query=workflow%3A%22CI+Suite%22) * **Code:** https://github.com/PvE-CMSS13/PvE-CMSS13 -* **Discord:** https://discord.gg/v6P6wns5dN +* **Discord:** https://discord.gg/pve-cmss13 This is the codebase for the PvE CM-SS13 fork of CM-SS13 flavoured fork of SpaceStation 13 diff --git a/code/__DEFINES/__game.dm b/code/__DEFINES/__game.dm index 113b78dbad..f1424f5560 100644 --- a/code/__DEFINES/__game.dm +++ b/code/__DEFINES/__game.dm @@ -283,7 +283,6 @@ block( \ /// Only use the CEILING_PROTECTION_TIER_X defines for `protection_level` #define CEILING_IS_PROTECTED(ceiling, protection_level) (ceiling >= protection_level) - // Default font settings #define FONT_SIZE "5pt" #define DEFAULT_FONT_COLOR "#09f" @@ -493,6 +492,18 @@ block( \ #define TURF_PROTECTION_CAS 2 #define TURF_PROTECTION_OB 3 +/// Convert a turf protection level to a ceiling protection level +/proc/get_ceiling_protection_level(turf_protection_level) + switch(turf_protection_level) + if(TURF_PROTECTION_OB) + return CEILING_PROTECTION_TIER_4 + if(TURF_PROTECTION_CAS) + return CEILING_PROTECTION_TIER_3 + if(TURF_PROTECTION_MORTAR) + return CEILING_PROTECTION_TIER_2 + else + return CEILING_NO_PROTECTION + // Anything above the deck boundary is the upper deck, anything below is the lower deck // This is exclusive, so anything ON the boundary is an edge case that's neither on the upper nor the lower deck #define ALMAYER_DECK_BOUNDARY 101 diff --git a/code/__DEFINES/bullet_traits.dm b/code/__DEFINES/bullet_traits.dm index 0ca3bce2e6..40e250cd0d 100644 --- a/code/__DEFINES/bullet_traits.dm +++ b/code/__DEFINES/bullet_traits.dm @@ -3,7 +3,7 @@ // list of args if there are any args /// An entry to a list for giving projectiles bullet traits /// Must be placed inside of a list -#define BULLET_TRAIT_ENTRY(trait, args...) trait = #args ? list(##args) : null +#define BULLET_TRAIT_ENTRY(trait, args...) trait = list(##args) /// An entry to a list for giving projectiles bullet traits with a unique ID /// Must be placed inside of a list #define BULLET_TRAIT_ENTRY_ID(id, trait, args...) id = list(trait, ##args) diff --git a/code/__DEFINES/chemistry.dm b/code/__DEFINES/chemistry.dm index 078ccbdc2d..b99013f8a0 100644 --- a/code/__DEFINES/chemistry.dm +++ b/code/__DEFINES/chemistry.dm @@ -221,6 +221,7 @@ #define PROPERTY_ANTICARCINOGENIC "anti-carcinogenic" #define PROPERTY_UNKNOWN "unknown" //just has an OD effect #define PROPERTY_HEMOSITIC "hemositic" +#define PROPERTY_REVITALIZING "revitalizing" //Property rarity diff --git a/code/__DEFINES/client_prefs.dm b/code/__DEFINES/client_prefs.dm index 5337f64d9e..3e922d98e6 100644 --- a/code/__DEFINES/client_prefs.dm +++ b/code/__DEFINES/client_prefs.dm @@ -32,7 +32,7 @@ #define AGE_MIN 19 //youngest a character can be #define AGE_MAX 90 //oldest a character can be //no. you are not allowed to be 160. -#define MAX_GEAR_COST 7 //Used in chargen for loadout limit. +#define MAX_GEAR_COST 10 //Used in chargen for loadout limit. ///dual_wield_pref from /datum/preferences ///Fire both weapons when dual wielding diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm index 6614272d33..1d7a727232 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm @@ -67,3 +67,7 @@ #define COMSIG_HUMAN_SURGERY_APPLY_MODIFIERS "human_surgery_apply_modifiers" /// From /mob/living/carbon/human/proc/get_flags_cold_protection() #define COMSIG_HUMAN_COLD_PROTECTION_APPLY_MODIFIERS "human_cold_protection_apply_modifiers" + +/// From /mob/living/carbon/human/UnarmedAttack() +#define COMSIG_HUMAN_BEFORE_ATTACK_HAND "human_before_attack_hand" + #define COMPONENT_CANCEL_HUMAN_ATTACK_HAND (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 bab6064cfd..b9e89bf441 100644 --- a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm +++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm @@ -128,3 +128,7 @@ /// From /obj/item/proc/pickup() : (obj/item/picked_up) #define COMSIG_MOB_PICKUP_ITEM "mob_pickup_item" + +/// From /mob/proc/say_dead(message) +#define COMSIG_DEAD_SPEAK "comsig_dead_speak" + #define COMPONENT_OVERRIDE_DEAD_SPEAK (1<<0) diff --git a/code/__DEFINES/dcs/signals/atom/signals_atom.dm b/code/__DEFINES/dcs/signals/atom/signals_atom.dm index 7431c5593b..01e1533189 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_atom.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_atom.dm @@ -45,3 +45,23 @@ ///When the transform or an atom is varedited through vv topic. #define COMSIG_ATOM_VV_MODIFY_TRANSFORM "atom_vv_modify_transform" + +/// From /mob/living/carbon/human/UnarmedAttack() +#define COMSIG_ATOM_BEFORE_HUMAN_ATTACK_HAND "atom_before_human_attack_hand" + #define COMPONENT_CANCEL_ATTACK_HAND (1<<0) + +/// From /mob/proc/click_adjacent() +#define COMSIG_ATOM_MOB_ATTACKBY "atom_mob_attackby" + #define COMPONENT_CANCEL_ATTACKBY (1<<0) + +/// From /atom/proc/attack_hand() +#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" + +/// From /datum/component/phone/proc/picked_up_call() and /datum/component/phone/proc/post_call_phone() +#define COMSIG_ATOM_PHONE_PICKED_UP "atom_phone_picked_up" +/// From /datum/component/phone/proc/recall_handset() +#define COMSIG_ATOM_PHONE_HUNG_UP "atom_phone_hung_up" +/// From /datum/component/phone/proc/call_phone() +#define COMSIG_ATOM_PHONE_RINGING "atom_phone_ringing" +/// From /datum/component/phone/proc/reset_call() +#define COMSIG_ATOM_PHONE_STOPPED_RINGING "atom_phone_stopped_ringing" diff --git a/code/__DEFINES/dcs/signals/atom/signals_movable.dm b/code/__DEFINES/dcs/signals/atom/signals_movable.dm index ba889d0b52..923c2cc60f 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_movable.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_movable.dm @@ -4,11 +4,15 @@ /// From /atom/movable/proc/launch_towards #define COMSIG_MOVABLE_PRE_THROW "movable_pre_throw" #define COMPONENT_CANCEL_THROW (1<<0) + ///from base of atom/movable/Moved(): (/atom, dir, forced) #define COMSIG_MOVABLE_MOVED "movable_moved" /// From /atom/movable/Move(): (atom/NewLoc) #define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" #define COMPONENT_CANCEL_MOVE (1<<0) +/// From /atom/movable/proc/forceMove(): (atom/NewLoc) +#define COMSIG_MOVABLE_FORCEMOVED "movable_forcemove" + /// From /turf/open/gm/river/Entered(): (turf/open/gm/river/river, covered) #define COMSIG_MOVABLE_ENTERED_RIVER "movable_entered_river" @@ -29,3 +33,4 @@ #define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" #define COMSIG_MOVABLE_TURF_ENTER "movable_turf_enter" + diff --git a/code/__DEFINES/dcs/signals/atom/signals_obj.dm b/code/__DEFINES/dcs/signals/atom/signals_obj.dm index aebd0d09d0..7e4436b3cf 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_obj.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_obj.dm @@ -22,9 +22,6 @@ #define COMSIG_SENTRY_EMPTY_AMMO_ALERT "signal_sentry_empty_ammo" #define COMSIG_SENTRY_DESTROYED_ALERT "signal_sentry_destroyed" -/// from /obj/structure/transmitter/update_icon() -#define COMSIG_TRANSMITTER_UPDATE_ICON "transmitter_update_icon" - #define COMSIG_TENT_COLLAPSING "tent_collapsing" /// from /obj/proc/afterbuckle() diff --git a/code/__DEFINES/dcs/signals/atom/signals_turf.dm b/code/__DEFINES/dcs/signals/atom/signals_turf.dm index 6a0788bcf8..b59e9d60b4 100644 --- a/code/__DEFINES/dcs/signals/atom/signals_turf.dm +++ b/code/__DEFINES/dcs/signals/atom/signals_turf.dm @@ -15,7 +15,7 @@ /// From /turf/closed/wall/resin/attackby(): (obj/item/I, mob/M) #define COMSIG_WALL_RESIN_ATTACKBY "wall_resin_attackby" - #define COMPONENT_CANCEL_ATTACKBY (1<<0) + #define COMPONENT_CANCEL_RESIN_ATTACKBY (1<<0) ///from /turf/closed/wall/proc/place_poster #define COMSIG_POSTER_PLACED "poster_placed" diff --git a/code/__DEFINES/equipment.dm b/code/__DEFINES/equipment.dm index 5f8f27a657..96c0fc3738 100644 --- a/code/__DEFINES/equipment.dm +++ b/code/__DEFINES/equipment.dm @@ -552,7 +552,11 @@ var/global/list/uniform_categories = list( #define PHONE_UPP_SOLDIER "Soldier" #define PHONE_IO "IO" -#define PHONE_DND_FORCED 2 -#define PHONE_DND_ON 1 -#define PHONE_DND_OFF 0 -#define PHONE_DND_FORBIDDEN -1 +#define PHONE_DO_NOT_DISTURB_FORCED 2 +#define PHONE_DO_NOT_DISTURB_ON 1 +#define PHONE_DO_NOT_DISTURB_OFF 0 +#define PHONE_DO_NOT_DISTURB_FORBIDDEN -1 + +#define PHONE_ON_BASE_UNIT_ICON_STATE "[initial(icon_state)]" +#define PHONE_OFF_BASE_UNIT_ICON_STATE "[initial(icon_state)]_ear" +#define PHONE_RINGING_ICON_STATE "[initial(icon_state)]_ring" diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm index ea3aef5fa4..3a3a2473ec 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -58,7 +58,7 @@ #define MODE_RANDOM_HIVE (1<<12)// Makes Join-as-Xeno choose a hive to join as burrowed larva at random rather than at user's input.. #define MODE_THUNDERSTORM (1<<13)// Enables thunderstorm effects on maps that are compatible with it. (Lit exterior tiles, rain effects) #define MODE_FACTION_CLASH (1<<14)// Disables scopes, sniper sentries, OBs, shooting corpses, dragging enemy corpses, stripping enemy corpses -#define MODE_NO_XENO_EVOLVE (1<<15) // Stops all xenos from evolving +#define MODE_NO_XENO_EVOLVE (1<<15) // Stops all xenos from evolving or straining // Gamemode Toggleable Flags #define MODE_NO_SNIPER_SENTRY (1<<0) /// Upgrade kits will no longer allow you to select long-range upgrades diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index 6187a67825..9825cd118b 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.5.3" +#define TGS_DMAPI_VERSION "6.6.0" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -129,6 +129,13 @@ /// DreamDaemon Ultrasafe security level. #define TGS_SECURITY_ULTRASAFE 2 +/// DreamDaemon public visibility level. +#define TGS_VISIBILITY_PUBLIC 0 +/// DreamDaemon private visibility level. +#define TGS_VISIBILITY_PRIVATE 1 +/// DreamDaemon invisible visibility level. +#define TGS_VISIBILITY_INVISIBLE 2 + //REQUIRED HOOKS /** @@ -458,6 +465,10 @@ /world/proc/TgsSecurityLevel() return +/// Returns the current BYOND visibility level as a TGS_VISIBILITY_ define if TGS is present, null otherwise. Requires TGS to be using interop API version 5 or higher otherwise the string "___unimplemented" wil be returned. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! +/world/proc/TgsVisibility() + return + /// Returns a list of active [/datum/tgs_revision_information/test_merge]s if TGS is present, null otherwise. This function may sleep if the call to [/world/proc/TgsNew] is sleeping! /world/proc/TgsTestMerges() return diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index edc711d25b..1116f1acb2 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -732,11 +732,12 @@ world if (isnull(dir)) dir = thing.dir - if (ishuman(thing)) // Shitty workaround for a BYOND issue. + // Commented out because this is seemingly our source of bad icon operations + /* if (ishuman(thing)) // Shitty workaround for a BYOND issue. var/icon/temp = icon2collapse icon2collapse = icon() icon2collapse.Insert(temp, dir = SOUTH) - dir = SOUTH + dir = SOUTH*/ else if (isnull(dir)) dir = SOUTH diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 4e4a1b3ff3..5d0d113b0c 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -21,7 +21,7 @@ var/char = copytext(hex, i, i + 1) switch(char) if("0") - //Apparently, switch works with empty statements, yay! If that doesn't work, blame me, though. -- Urist + pass() if("9", "8", "7", "6", "5", "4", "3", "2", "1") num += text2num(char) * 16 ** power if("a", "A") @@ -77,7 +77,6 @@ hex += "E" if(15.0) hex += "F" - else power-- while(length(hex) < placeholder) hex = text("0[]", hex) @@ -165,8 +164,6 @@ return 6 if("SOUTHWEST") return 10 - else - return //Converts an angle (degrees) into an ss13 direction /proc/angle2dir(degree) diff --git a/code/__odlint.dm b/code/__odlint.dm new file mode 100644 index 0000000000..f425171337 --- /dev/null +++ b/code/__odlint.dm @@ -0,0 +1,11 @@ +// This file is included right at the start of the DME. +// Its purpose is to enable multiple lints (pragmas) that are supported by OpenDream to better validate the codebase +// These are essentially nitpicks the DM compiler should pick up on but doesnt + +#ifndef SPACEMAN_DMM +#ifdef OPENDREAM +// These are in their own file as you need to do it with an include as a hack to avoid +// SpacemanDMM evaluating the #pragma lines, even if its outside a block it cares about +#include "__pragmas.dm" +#endif +#endif diff --git a/code/__pragmas.dm b/code/__pragmas.dm new file mode 100644 index 0000000000..39c14e1bbc --- /dev/null +++ b/code/__pragmas.dm @@ -0,0 +1,27 @@ +//1000-1999 +#pragma FileAlreadyIncluded error +#pragma MissingIncludedFile error +#pragma MisplacedDirective error +#pragma UndefineMissingDirective error +#pragma DefinedMissingParen error +#pragma ErrorDirective error +#pragma WarningDirective error +#pragma MiscapitalizedDirective error + +//2000-2999 +#pragma SoftReservedKeyword error +#pragma DuplicateVariable error +#pragma DuplicateProcDefinition error +#pragma TooManyArguments error +#pragma PointlessParentCall error +#pragma PointlessBuiltinCall error +#pragma SuspiciousMatrixCall error +#pragma MalformedRange error +#pragma InvalidRange error +#pragma InvalidSetStatement error +#pragma InvalidOverride error +#pragma DanglingVarType error +#pragma MissingInterpolatedExpression error + +//3000-3999 +#pragma EmptyBlock error diff --git a/code/_byond_version_compat.dm b/code/_byond_version_compat.dm index 719d85654b..26968f0f83 100644 --- a/code/_byond_version_compat.dm +++ b/code/_byond_version_compat.dm @@ -3,7 +3,7 @@ //Update this whenever you need to take advantage of more recent byond features #define MIN_COMPILER_VERSION 514 #define MIN_COMPILER_BUILD 1588 -#if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) +#if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) && !defined(OPENDREAM) //Don't forget to update this part #error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. #error You need version 514.1588 or higher diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 0f81b0173a..20aa208131 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -30,7 +30,7 @@ #define CBT #endif -#if !defined(CBT) && !defined(SPACEMAN_DMM) +#if !defined(CBT) && !defined(SPACEMAN_DMM) && !defined(OPENDREAM) #warn Building with Dream Maker is no longer supported and will result in errors. #warn In order to build, run BUILD.bat in the bin directory. #warn Consider switching to VSCode editor instead, where you can press Ctrl+Shift+B to build. diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 21f3fcafd9..fe0c9e7b72 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -149,6 +149,9 @@ if(W.attack_speed && !src.contains(A)) //Not being worn or carried in the user's inventory somewhere, including internal storages. next_move += W.attack_speed + if(SEND_SIGNAL(A, COMSIG_ATOM_MOB_ATTACKBY, W, src) & COMPONENT_CANCEL_ATTACKBY) + return + if(!A.attackby(W, src, mods) && A && !QDELETED(A)) // in case the attackby slept if(!W) diff --git a/code/_onclick/human.dm b/code/_onclick/human.dm index cb71e27f9d..0bfba04070 100644 --- a/code/_onclick/human.dm +++ b/code/_onclick/human.dm @@ -80,12 +80,16 @@ to_chat(src, SPAN_NOTICE("You try to move your [temp.display_name], but cannot!")) return + if(SEND_SIGNAL(A, COMSIG_ATOM_BEFORE_HUMAN_ATTACK_HAND, src, click_parameters) & COMPONENT_CANCEL_HUMAN_ATTACK_HAND) + return + A.attack_hand(src, click_parameters) /datum/proc/handle_click(mob/living/carbon/human/user, atom/A, params) //Heres our handle click relay proc thing. return HANDLE_CLICK_PASS_THRU /atom/proc/attack_hand(mob/user) + SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, user) return /mob/living/carbon/human/MouseDrop_T(atom/dropping, mob/user) diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 23da8cc8c9..3d544dca13 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -131,7 +131,7 @@ SUBSYSTEM_DEF(atoms) switch(result) if (INITIALIZE_HINT_NORMAL) - // pass + pass() if(INITIALIZE_HINT_LATELOAD) if(arguments[1]) //mapload late_loaders += A diff --git a/code/controllers/subsystem/init/law.dm b/code/controllers/subsystem/init/law.dm index 52fbbbeadf..c7ade81597 100644 --- a/code/controllers/subsystem/init/law.dm +++ b/code/controllers/subsystem/init/law.dm @@ -8,20 +8,24 @@ SUBSYSTEM_DEF(law_init) var/list/minor_law = list() var/list/major_law = list() var/list/capital_law = list() + var/list/precautionary_law = list() /datum/controller/subsystem/law_init/Initialize() - for(var/L in subtypesof(/datum/law/optional_law)) - optional_law += new L + for(var/law in subtypesof(/datum/law/optional_law)) + optional_law += new law - for(var/L in subtypesof(/datum/law/minor_law)) - minor_law += new L + for(var/law in subtypesof(/datum/law/minor_law)) + minor_law += new law - for(var/L in subtypesof(/datum/law/major_law)) - major_law += new L + for(var/law in subtypesof(/datum/law/major_law)) + major_law += new law - for(var/L in subtypesof(/datum/law/capital_law)) - capital_law += new L + for(var/law in subtypesof(/datum/law/capital_law)) + capital_law += new law - laws = optional_law + minor_law + major_law + capital_law + for(var/law in subtypesof(/datum/law/precautionary_charge)) + precautionary_law += new law + + laws = optional_law + minor_law + major_law + capital_law + precautionary_law return SS_INIT_SUCCESS diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index afecabd74b..be69bdad1b 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -29,9 +29,7 @@ SUBSYSTEM_DEF(mapping) /datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig() if(!configs) configs = load_map_configs(ALL_MAPTYPES, error_if_missing = FALSE) - for(var/i in GLOB.clients) - var/client/C = i - winset(C, null, "mainwindow.title='[CONFIG_GET(string/title)] - [SSmapping.configs[SHIP_MAP].map_name]'") + world.name = "[CONFIG_GET(string/title)] - [SSmapping.configs[SHIP_MAP].map_name]" /datum/controller/subsystem/mapping/Initialize(timeofday) HACK_LoadMapConfig() diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index 6f5b9303a9..93bfd32468 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -321,6 +321,22 @@ SUBSYSTEM_DEF(minimaps) for(var/flag in GLOB.all_minimap_flags) minimaps_by_z["[z_level]"].images_assoc["[flag]"] -= source +/// Checks if the source has a marker already set +/datum/controller/subsystem/minimaps/proc/has_marker(atom/source) + var/turf/turf_gotten = get_turf(source) + + if(!turf_gotten) + return + + var/z_level = turf_gotten.z + + if(minimaps_by_z["[z_level]"]) + for(var/flag in GLOB.all_minimap_flags) + if(source in minimaps_by_z["[z_level]"].images_assoc["[flag]"]) + return TRUE + + return FALSE + /** * Fetches a /atom/movable/screen/minimap instance or creates on if none exists * Note this does not destroy them when the map is unused, might be a potential thing to do? diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 3882228a5a..a56e10636a 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -273,7 +273,7 @@ SUBSYSTEM_DEF(vote) question = "Gamemode vote" randomize_entries = TRUE for(var/mode_type in config.gamemode_cache) - var/datum/game_mode/M = initial(mode_type) + var/datum/game_mode/M = mode_type if(initial(M.config_tag)) var/vote_cycle_met = !initial(M.vote_cycle) || (text2num(SSperf_logging?.round?.id) % initial(M.vote_cycle) == 0) if(initial(M.votable) && vote_cycle_met) diff --git a/code/datums/_ndatabase/code/brsql_adapter.dm b/code/datums/_ndatabase/code/brsql_adapter.dm index a424b3fd6f..251267a04f 100644 --- a/code/datums/_ndatabase/code/brsql_adapter.dm +++ b/code/datums/_ndatabase/code/brsql_adapter.dm @@ -101,8 +101,8 @@ SSdatabase.create_parametric_query(query_updatetable, qpars, CB) /datum/db/adapter/brsql_adapter/insert_table(table_name, list/values, datum/callback/CB, sync = FALSE) - if(!sync) - set waitfor = 0 + set waitfor = FALSE + var/length = values.len var/list/qpars = list() var/query_inserttable = getquery_insert_table(table_name, values, qpars) diff --git a/code/datums/_ndatabase/code/native_adapter.dm b/code/datums/_ndatabase/code/native_adapter.dm index a5e4d41fb6..1c23a6ceab 100644 --- a/code/datums/_ndatabase/code/native_adapter.dm +++ b/code/datums/_ndatabase/code/native_adapter.dm @@ -83,8 +83,7 @@ SSdatabase.create_query(query_gettable, CB) /datum/db/adapter/native_adapter/update_table(table_name, list/values, datum/callback/CB, sync = FALSE) - if(!sync) - set waitfor = 0 + set waitfor = FALSE for(var/list/vals in values) var/list/qpars = list() diff --git a/code/datums/ammo/ammo.dm b/code/datums/ammo/ammo.dm index 638b487515..7957a8a994 100644 --- a/code/datums/ammo/ammo.dm +++ b/code/datums/ammo/ammo.dm @@ -174,6 +174,15 @@ else living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) +/datum/ammo/proc/slowdown(mob/living/living_mob, obj/projectile/fired_projectile) + if(iscarbonsizexeno(living_mob)) + var/mob/living/carbon/xenomorph/target = living_mob + target.apply_effect(1, SUPERSLOW) + target.apply_effect(2, SLOW) + to_chat(target, SPAN_XENODANGER("You are slowed by the sudden impact!")) + else + living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET) + /datum/ammo/proc/pushback(mob/target_mob, obj/projectile/fired_projectile, max_range = 2) if(!target_mob || target_mob == fired_projectile.firer || fired_projectile.distance_travelled > max_range || target_mob.lying) return diff --git a/code/datums/ammo/bullet/revolver.dm b/code/datums/ammo/bullet/revolver.dm index 339609f57b..633bf3e2f7 100644 --- a/code/datums/ammo/bullet/revolver.dm +++ b/code/datums/ammo/bullet/revolver.dm @@ -27,8 +27,9 @@ penetration = ARMOR_PENETRATION_TIER_4 accuracy = HIT_ACCURACY_TIER_3 -/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/M, obj/projectile/P) - knockback(M, P, 4) +/datum/ammo/bullet/revolver/heavy/on_hit_mob(mob/entity, obj/projectile/bullet) + slowdown(entity, bullet) + pushback(entity, bullet, 4) /datum/ammo/bullet/revolver/incendiary name = "incendiary revolver bullet" diff --git a/code/datums/ammo/bullet/special_ammo.dm b/code/datums/ammo/bullet/special_ammo.dm index 6e9b7df49d..7e91b8f0e9 100644 --- a/code/datums/ammo/bullet/special_ammo.dm +++ b/code/datums/ammo/bullet/special_ammo.dm @@ -83,7 +83,7 @@ accuracy_var_high = PROJECTILE_VARIANCE_TIER_8 max_range = 22 damage = 30 - penetration = ARMOR_PENETRATION_TIER_7 + penetration = ARMOR_PENETRATION_TIER_1 damage_armor_punch = 0 pen_armor_punch = 0 shell_speed = 2*AMMO_SPEED_TIER_6 diff --git a/code/datums/components/phone.dm b/code/datums/components/phone.dm new file mode 100644 index 0000000000..5d3c25e84b --- /dev/null +++ b/code/datums/components/phone.dm @@ -0,0 +1,634 @@ + +/// Holds all of our phone components +GLOBAL_LIST_EMPTY_TYPED(phones, /datum/component/phone) + +/datum/component/phone + + /// Our phone category which sorts us into tabs in the phone menu TGUI + var/phone_category = "Uncategorised" + + /// Color of phone displayed in the phone menu + var/phone_color = "white" + + /// The id of our phone which shows up when we talk + var/phone_id = "Telephone" + + /// Our phone icon that is displayed in the phone menu TGUI + var/phone_icon + + /// Our connected handset + var/obj/item/handset/phone_handset + + /// What actually holds our phone, defaults to parent but may be set differently + var/atom/holder + + /// A phone we are calling or has called us + var/datum/component/phone/calling_phone + + /// Whether or not the phone is receiving calls or not. Varies between on/off or forcibly on/off. + var/do_not_disturb = PHONE_DO_NOT_DISTURB_OFF + + /// The ID of our timer to cancel an attempted call and "go to voicemail" + var/timeout_timer_id + + /// The time it takes for our timer to end to cancel an attempted call and "go to voicemail" + var/timeout_duration = 30 SECONDS + + /// Networks that this phone can take calls from + var/list/networks_receive = list() + + /// Networks that this phone can call + var/list/networks_transmit = list() + + /// The looping ringing sound when the phone is called + var/datum/looping_sound/phone_ringing/ringing_loop + + /// Whether the phone is able to be called or not + var/enabled = TRUE + +/datum/component/phone/Initialize(phone_category, phone_color, phone_id, phone_icon, do_not_disturb, list/networks_receive, list/networks_transmit, holder) + . = ..() + + if(!istype(parent, /atom)) + return COMPONENT_INCOMPATIBLE + + if(!handle_initial_variables(arglist(args))) + return COMPONENT_INCOMPATIBLE + + GLOB.phones += src + +/datum/component/phone/Destroy() + if(phone_handset) + if(!phone_handset.loc) + UnregisterSignal(phone_handset, COMSIG_PARENT_PREQDELETED) + qdel(phone_handset) + else + phone_handset.phone_component = null + phone_handset = null + + networks_receive = null + networks_transmit = null + QDEL_NULL(ringing_loop) + + GLOB.phones -= src + SStgui.close_uis(src) + + reset_call() + return ..() + +/// Handles all of our variables usually set in Initialize(), needs to be a proc so virtual phones don't get incorrect signals or a handset +/datum/component/phone/proc/handle_initial_variables(phone_category, phone_color, phone_id, phone_icon, do_not_disturb, list/networks_receive, list/networks_transmit, holder) + src.phone_category = isnull(phone_category) ? src.phone_category : phone_category + src.phone_color = isnull(phone_color) ? src.phone_color : phone_color + src.phone_id = isnull(phone_id) ? src.phone_id : phone_id + src.phone_icon = isnull(phone_icon) ? src.phone_icon : phone_icon + src.do_not_disturb = isnull(do_not_disturb) ? src.do_not_disturb : do_not_disturb + src.networks_receive = isnull(networks_receive) ? src.networks_receive : networks_receive.Copy() + src.networks_transmit = isnull(networks_transmit) ? src.networks_transmit : networks_transmit.Copy() + src.holder = holder ? holder : parent + + phone_handset = new(null, src, src.holder) + RegisterSignal(phone_handset, COMSIG_PARENT_PREQDELETED, PROC_REF(override_delete)) + + RegisterSignal(src.holder, COMSIG_ATOM_MOB_ATTACKBY, PROC_REF(item_used_on_phone)) + RegisterSignal(src.holder, COMSIG_ATOM_BEFORE_HUMAN_ATTACK_HAND, PROC_REF(use_phone)) + + if(istype(src.holder, /obj/item)) + RegisterSignal(src.holder, COMSIG_ITEM_PICKUP, PROC_REF(holder_picked_up)) + RegisterSignal(src.holder, COMSIG_ITEM_DROPPED, PROC_REF(holder_dropped)) + enabled = FALSE + + RegisterSignal(src.holder, COMSIG_MOVABLE_FORCEMOVED, PROC_REF(holder_forcemoved)) + + ringing_loop = new(src.holder) + + return TRUE + +/// Handles bringing our handset back in case something tries to delete it +/datum/component/phone/proc/override_delete() + SIGNAL_HANDLER + recall_handset() + return COMPONENT_ABORT_QDEL + +/// Handles any attackbys on our holder so we can hang up the phone +/datum/component/phone/proc/item_used_on_phone(atom/phone, obj/item/attacking_item, mob/user) + SIGNAL_HANDLER + + if(attacking_item == phone_handset) + recall_handset() + return COMPONENT_CANCEL_ATTACKBY + +/// When we initially interact with the phone, whether opening the menu to call someone or picking up the phone being called +/datum/component/phone/proc/use_phone(atom/phone, mob/living/carbon/human/user, click_parameters) + SIGNAL_HANDLER + + if(!calling_phone) + INVOKE_ASYNC(src, PROC_REF(tgui_interact), user) + + if(enabled) + return COMPONENT_CANCEL_HUMAN_ATTACK_HAND + return + + if(!phone_handset) + return + + if(phone_handset.loc) + return + + picked_up_call(user) + calling_phone.other_phone_picked_up_call() + + return COMPONENT_CANCEL_HUMAN_ATTACK_HAND + +/// Handles what we want to do when we pick up a phone +/datum/component/phone/proc/picked_up_call(mob/living/carbon/human/user) + to_chat(user, SPAN_PURPLE("[icon2html(holder, user)] Picked up a call from [calling_phone.phone_id].")) + playsound(get_turf(user), "rtb_handset") + + user.put_in_active_hand(phone_handset) + SEND_SIGNAL(holder, COMSIG_ATOM_PHONE_PICKED_UP) + ringing_loop.stop() + +/// Handles what we want to do when a phone we are calling picks up +/datum/component/phone/proc/other_phone_picked_up_call() + if(!calling_phone) + return + + if(!phone_handset) + return + + if(timeout_timer_id) + deltimer(timeout_timer_id) + timeout_timer_id = null + + if(!ismob(phone_handset.loc)) + return + + var/mob/phone_user = phone_handset.loc + to_chat(phone_user, SPAN_PURPLE("[icon2html(calling_phone.holder, phone_user)] [calling_phone.phone_id] has picked up.")) + +/// Handles setting a specific phone ID and enabling the phone when the holder is picked up +/datum/component/phone/proc/holder_picked_up(obj/item/picked_up_holder, mob/user) + SIGNAL_HANDLER + + enabled = TRUE + + if(!ishuman(user)) + phone_id = "[user]" + return + + var/mob/living/carbon/human/human_user = user + if(human_user.comm_title) + phone_id = "[human_user.comm_title] [human_user]" + else if(human_user.job) + phone_id = "[human_user.job] [human_user]" + else + phone_id = "[human_user]" + + if(human_user.assigned_squad) + phone_id += " ([human_user.assigned_squad.name])" + +/// Handles disabling the phone when the holder is dropped +/datum/component/phone/proc/holder_dropped(obj/item/dropped_hold, mob/user) + SIGNAL_HANDLER + + enabled = FALSE + phone_id = "[holder]" + +/// Tells our phone_handset that the holder has been forcemoved so the tether can be updated if need be +/datum/component/phone/proc/holder_forcemoved(atom/movable/moving_atom, atom/destination) + SIGNAL_HANDLER + + if(!phone_handset) + return + + phone_handset.reset_tether() + +/// Gathers all phones that we can call from our phone, returns a list of those phones +/datum/component/phone/proc/get_phones() + var/list/phone_list = list() + + for(var/possible_phone in GLOB.phones) + var/datum/component/phone/target_phone = possible_phone + + if(!target_phone.phone_available()) + continue + + var/net_link = FALSE + for(var/network in networks_transmit) + if(network in target_phone.networks_receive) + net_link = TRUE + continue + if(!net_link) + continue + + var/id = target_phone.phone_id + var/num_id = 1 + while(id in phone_list) + id = "[target_phone.phone_id] [num_id]" + num_id++ + + target_phone.phone_id = id + phone_list[id] = target_phone + + return phone_list + +/// Whether or not our phone is available to be called from other phones, returns TRUE if callable, otherwise FALSE. Note: this does not account for network compatability +/datum/component/phone/proc/phone_available() + if(calling_phone) + return FALSE + + if(!phone_handset) + return FALSE + + if(!enabled) + return FALSE + + if(phone_handset.loc) + return FALSE + + if(do_not_disturb == PHONE_DO_NOT_DISTURB_ON) + return FALSE + + if(do_not_disturb == PHONE_DO_NOT_DISTURB_FORCED) + return FALSE + + return TRUE + +/// Whether or not clicking on our phone will bring up the phone menu, returns TRUE if it will, otherwise FALSE +/datum/component/phone/proc/phone_menu_usable() + if(calling_phone) + return FALSE + + if(!phone_handset) + return FALSE + + if(!enabled) + return FALSE + + if(phone_handset.loc) + return + + return TRUE + +/// Starts calling another phone, sets up connection between the phones +/datum/component/phone/proc/call_phone(mob/user, calling_phone_id) + var/list/phones = get_phones() + phones -= phone_id + + if(!length(phones) || !(calling_phone_id in phones)) + to_chat(user, SPAN_PURPLE("[icon2html(holder, user)] No phones could be located to call!")) + return + + calling_phone = phones[calling_phone_id] + if(!istype(calling_phone) || QDELETED(calling_phone)) + calling_phone = null + CRASH("Qdelled/improper atom inside phones list! (istype returned: [istype(calling_phone)], QDELETED returned: [QDELETED(calling_phone)])") + + if(!calling_phone.phone_available()) + calling_phone = null + return + + calling_phone.getting_call(src) + + post_call_phone(user, calling_phone_id) + +/// What we do when our phone is receiving a call, called from incoming_call's call_phone() +/datum/component/phone/proc/getting_call(datum/component/phone/incoming_call) + calling_phone = incoming_call + SEND_SIGNAL(holder, COMSIG_ATOM_PHONE_RINGING) + ringing_loop.start() + +/// What we do after our call is set up from call_phone() +/datum/component/phone/proc/post_call_phone(mob/user, calling_phone_id) + to_chat(user, SPAN_PURPLE("[icon2html(holder, user)] Dialing [calling_phone_id]..")) + timeout_timer_id = addtimer(CALLBACK(src, PROC_REF(reset_call), TRUE), timeout_duration, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) + playsound(get_turf(user), "rtb_handset") + + user.put_in_active_hand(phone_handset) + SEND_SIGNAL(holder, COMSIG_ATOM_PHONE_PICKED_UP) + +/// Resets this phone's connection as well as anything we are connected to's connection, calls itself on any other connections +/datum/component/phone/proc/reset_call(timeout = FALSE, recursed = FALSE) + if(timeout_timer_id) + deltimer(timeout_timer_id) + timeout_timer_id = null + + if(!calling_phone) + return + + if(!recursed) + calling_phone.reset_call(timeout, recursed = TRUE) + + SEND_SIGNAL(holder, COMSIG_ATOM_PHONE_STOPPED_RINGING) + + ringing_loop?.stop() + + handle_reset_call_message(timeout, recursed) + + calling_phone = null + +/// Handles any messaging we want when a call is reset +/datum/component/phone/proc/handle_reset_call_message(timeout = FALSE, recursed = FALSE) + if(!phone_handset) + return + + if(!ismob(phone_handset.loc)) + return + + var/mob/handset_user = phone_handset.loc + if(recursed) + to_chat(handset_user, SPAN_PURPLE("[icon2html(holder, handset_user)] [calling_phone.phone_id] has hung up on you.")) + else if(timeout) + to_chat(handset_user, SPAN_PURPLE("[icon2html(holder, handset_user)] Your call to [calling_phone.phone_id] has reached voicemail, you immediately disconnect the line.")) + else + to_chat(handset_user, SPAN_PURPLE("[icon2html(holder, handset_user)] You have hung up on [calling_phone.phone_id].")) + +/// Recalls our handset back to holder and calls reset_call() +/datum/component/phone/proc/recall_handset() + if(ismob(phone_handset.loc)) + var/mob/M = phone_handset.loc + M.drop_held_item(phone_handset) + playsound(get_turf(M), "rtb_handset", 100, FALSE, 7) + + phone_handset.moveToNullspace() + reset_call() + + SEND_SIGNAL(holder, COMSIG_ATOM_PHONE_HUNG_UP) + +/// Handles any messages that our handset 'hears' and passes to us. Passes the message to this phone and any connected phone via handle_hear() +/datum/component/phone/proc/handle_speak(message, datum/language/message_language, mob/speaker, direct_talking = TRUE) + if(message_language?.flags & SIGNLANG) + return + + if(!calling_phone) + return + + if(direct_talking) + handle_hear(message, message_language, speaker, direct_talking) + + log_say("TELEPHONE: [key_name(speaker)] on Phone '[phone_id]' to '[calling_phone.phone_id]' said '[message]'") + + var/comm_paygrade = "" + + if (ishuman(speaker)) + var/mob/living/carbon/human/human_speaker = speaker + comm_paygrade = human_speaker.get_paygrade() + + for(var/mob/dead/observer/cycled_observer in GLOB.player_list) + if((cycled_observer.client) && (cycled_observer.client.prefs) && (cycled_observer.client.prefs.toggles_chat & CHAT_GHOSTRADIO)) + var/ghost_message = "[comm_paygrade][speaker] (F) on '[phone_id]' to '[calling_phone.phone_id]': \"[message]\"" + cycled_observer.show_message(ghost_message, SHOW_MESSAGE_AUDIBLE) + + calling_phone.handle_hear(message, message_language, speaker, direct_talking) + +/// Handles any messages passed from handle_speak() and serves them to the user +/datum/component/phone/proc/handle_hear(message, datum/language/message_language, mob/speaker, direct_talking) + if(!phone_handset) + return + + if(!calling_phone) + return + + if(!ismob(phone_handset.loc)) + return + + var/loudness = 0 + if(phone_handset.raised) + loudness = 3 + + var/mob/hearing_mob = phone_handset.loc + var/name_override = calling_phone.phone_id + + if(hearing_mob == speaker && direct_talking) + name_override = phone_id + + hearing_mob.hear_radio(message, "says", message_language, part_a = "", part_b = " ", vname = name_override, speaker = speaker, command = loudness, no_paygrade = TRUE) + +/// Toggles do not disturb on or off, does not handle forced or unable do_not_disturb variables +/datum/component/phone/proc/toggle_do_not_disturb(mob/user) + switch(do_not_disturb) + if(PHONE_DO_NOT_DISTURB_ON) + do_not_disturb = PHONE_DO_NOT_DISTURB_OFF + to_chat(user, SPAN_NOTICE("Do Not Disturb has been disabled. You can now receive calls.")) + if(PHONE_DO_NOT_DISTURB_OFF) + do_not_disturb = PHONE_DO_NOT_DISTURB_ON + to_chat(user, SPAN_WARNING("Do Not Disturb has been enabled. No calls will be received.")) + else + return FALSE + return TRUE + + + +//TGUI section + +/datum/component/phone/ui_status(mob/user, datum/ui_state/state) + . = ..() + if(phone_menu_usable()) + return UI_INTERACTIVE + +/datum/component/phone/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("call_phone") + if(calling_phone) + return TRUE + call_phone(ui.user, params["phone_id"]) + return TRUE + + if("toggle_do_not_disturb") + toggle_do_not_disturb(ui.user) + return TRUE + +/datum/component/phone/ui_data(mob/user) + var/list/data = list() + + data["do_not_disturb"] = do_not_disturb + + return data + +/datum/component/phone/ui_static_data(mob/user) + . = list() + + .["available_phones"] = get_phones() - list(phone_id) + var/list/phones = list() + for(var/datum/component/phone/cycled_phone as anything in GLOB.phones) + phones += list(list( + "phone_category" = cycled_phone.phone_category, + "phone_color" = cycled_phone.phone_color, + "phone_id" = cycled_phone.phone_id, + "phone_icon" = cycled_phone.phone_icon + )) + + .["phones"] = phones + +/datum/component/phone/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PhoneMenu", phone_id) + ui.open() + + +// Virtual phone section + +/// Virtual phone used for situations where you want to be able to use a phone without a handset +/datum/component/phone/virtual + /// If it is a virtual phone we need a virtual user + var/client/virtual_user + +/datum/component/phone/virtual/Destroy() + virtual_user = null + + return ..() + +/datum/component/phone/virtual/handle_initial_variables(phone_category, phone_color, phone_id, phone_icon, do_not_disturb, list/networks_receive, list/networks_transmit, holder, virtual_user) + src.phone_category = isnull(phone_category) ? src.phone_category : phone_category + src.phone_color = isnull(phone_color) ? src.phone_color : phone_color + src.phone_id = isnull(phone_id) ? src.phone_id : phone_id + src.phone_icon = isnull(phone_icon) ? src.phone_icon : phone_icon + src.do_not_disturb = isnull(do_not_disturb) ? src.do_not_disturb : do_not_disturb + src.networks_receive = isnull(networks_receive) ? src.networks_receive : networks_receive.Copy() + src.networks_transmit = isnull(networks_transmit) ? src.networks_transmit : networks_transmit.Copy() + src.holder = holder ? holder : parent + + if(!virtual_user) + return FALSE + src.virtual_user = virtual_user + + RegisterSignal(src.holder, COMSIG_ATOM_ATTACK_HAND, PROC_REF(use_phone)) + + return TRUE + +/datum/component/phone/virtual/use_phone(atom/phone, mob/living/carbon/human/user, click_parameters) + INVOKE_ASYNC(src, PROC_REF(tgui_interact), user) + +/datum/component/phone/virtual/picked_up_call(mob/living/carbon/human/user) + to_chat(user, SPAN_PURPLE("[icon2html(holder, user)] Picked up a call from [calling_phone.phone_id].")) + + RegisterSignal(virtual_user.mob, COMSIG_DEAD_SPEAK, PROC_REF(handle_virtual_speak)) + +/datum/component/phone/virtual/other_phone_picked_up_call() + if(!calling_phone) + return + + if(timeout_timer_id) + deltimer(timeout_timer_id) + timeout_timer_id = null + + RegisterSignal(virtual_user.mob, COMSIG_DEAD_SPEAK, PROC_REF(handle_virtual_speak)) + to_chat(virtual_user, SPAN_PURPLE("[icon2html(calling_phone.holder, virtual_user)] [calling_phone.phone_id] has picked up.")) + +/datum/component/phone/virtual/phone_available() + if(calling_phone) + return FALSE + + if(do_not_disturb == PHONE_DO_NOT_DISTURB_ON) + return FALSE + + if(do_not_disturb == PHONE_DO_NOT_DISTURB_FORCED) + return FALSE + + return TRUE + +/datum/component/phone/virtual/reset_call(timeout = FALSE, recursed = FALSE) + . = ..() + if(!virtual_user?.mob) + return + + UnregisterSignal(virtual_user.mob, COMSIG_DEAD_SPEAK) + +/datum/component/phone/virtual/handle_reset_call_message(timeout = FALSE, recursed = FALSE) + if(recursed) + to_chat(virtual_user, SPAN_PURPLE("[icon2html(holder, virtual_user)] [calling_phone.phone_id] has hung up on you.")) + else if(timeout) + to_chat(virtual_user, SPAN_PURPLE("[icon2html(holder, virtual_user)] Your call to [calling_phone.phone_id] has reached voicemail, you immediately disconnect the line.")) + else + to_chat(virtual_user, SPAN_PURPLE("[icon2html(holder, virtual_user)] You have hung up on [calling_phone.phone_id].")) + +/datum/component/phone/virtual/getting_call(datum/component/phone/incoming_call) + calling_phone = incoming_call + SEND_SIGNAL(holder, COMSIG_ATOM_PHONE_RINGING) + playsound_client(virtual_user, 'sound/machines/telephone/telephone_ring.ogg', vol = 50) + addtimer(CALLBACK(src, PROC_REF(delayed_client_sound)), (10 SECONDS)) + +/datum/component/phone/virtual/proc/delayed_client_sound() + if(!calling_phone || !calling_phone.timeout_timer_id) + return + + playsound_client(virtual_user, 'sound/machines/telephone/telephone_ring.ogg', vol = 50) + +/datum/component/phone/virtual/post_call_phone(mob/user, calling_phone_id) + to_chat(user, SPAN_PURPLE("[icon2html(holder, user)] Dialing [calling_phone_id]..")) + timeout_timer_id = addtimer(CALLBACK(src, PROC_REF(reset_call), TRUE), timeout_duration, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) + + playsound_client(user.client, "rtb_handset") + +/datum/component/phone/virtual/recall_handset() + reset_call() // I don't think this will be possible given like... we don't have a handset but just in case + return + +/datum/component/phone/virtual/handle_hear(message, datum/language/message_language, mob/speaker, direct_talking) + if(!calling_phone) + return + + var/name_override = calling_phone.phone_id + + if(virtual_user == speaker) + name_override = phone_id + + if(!virtual_user.mob) + return + + virtual_user.mob.hear_radio(message, "says", message_language, part_a = "", part_b = " ", vname = name_override, speaker = speaker, command = 3, no_paygrade = TRUE) + +/// Used to fake the other side of our phone connection as a virtual user +/datum/component/phone/virtual/proc/handle_virtual_speak(mob/speaker, message) + SIGNAL_HANDLER + + if(!calling_phone) + return + + handle_hear(message, null, speaker, TRUE) + + log_say("TELEPHONE: [key_name(speaker)] on Phone '[phone_id]' to '[calling_phone.phone_id]' said '[message]'") + + for(var/mob/dead/observer/cycled_observer in GLOB.player_list) + if((cycled_observer.client) && (cycled_observer.client.prefs) && (cycled_observer.client.prefs.toggles_chat & CHAT_GHOSTRADIO)) + var/ghost_message = "Game Master on '[phone_id]' to '[calling_phone.phone_id]': \"[message]\"" + cycled_observer.show_message(ghost_message, SHOW_MESSAGE_AUDIBLE) + + calling_phone.handle_hear(message, null, speaker, TRUE) + + return COMPONENT_OVERRIDE_DEAD_SPEAK + +// TGUI section + +/datum/component/phone/virtual/ui_status(mob/user, datum/ui_state/state) + return UI_INTERACTIVE + +/datum/component/phone/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("hang_up") + reset_call() + return TRUE + if("pick_up") + if(!calling_phone) + return + picked_up_call(ui.user) + calling_phone.other_phone_picked_up_call() + return TRUE + +/datum/component/phone/virtual/ui_data(mob/user) + . = ..() + + .["virtual_phone"] = TRUE + .["being_called"] = calling_phone?.timeout_timer_id ? TRUE : FALSE + .["active_call"] = calling_phone ? TRUE : FALSE + .["calling_phone_id"] = "[calling_phone?.phone_id]" diff --git a/code/datums/emergency_calls/emergency_call.dm b/code/datums/emergency_calls/emergency_call.dm index 6533086d98..79ba9fff97 100644 --- a/code/datums/emergency_calls/emergency_call.dm +++ b/code/datums/emergency_calls/emergency_call.dm @@ -168,7 +168,7 @@ return var/deathtime = world.time - usr.timeofdeath - if(deathtime < 1 MINUTES) //Nice try, ghosting right after the announcement + if(deathtime < 30 SECONDS) //Nice try, ghosting right after the announcement if(SSmapping.configs[GROUND_MAP].map_name != MAP_WHISKEY_OUTPOST) // people ghost so often on whiskey outpost. to_chat(src, SPAN_WARNING("You ghosted too recently.")) return diff --git a/code/datums/keybinding/client.dm b/code/datums/keybinding/client.dm index a5baf09a13..7522878822 100644 --- a/code/datums/keybinding/client.dm +++ b/code/datums/keybinding/client.dm @@ -4,8 +4,8 @@ /datum/keybinding/client/admin_help - hotkey_keys = list("F1") - classic_keys = list("F1") + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") name = "admin_help" full_name = "Admin Help" description = "Ask an admin for help." diff --git a/code/datums/langchat/langchat.dm b/code/datums/langchat/langchat.dm index 3f00c26b6d..83b9be0ac0 100644 --- a/code/datums/langchat/langchat.dm +++ b/code/datums/langchat/langchat.dm @@ -47,6 +47,13 @@ M.client.images -= langchat_image langchat_listeners = null +/atom/proc/langchat_set_x_offset() + langchat_image.maptext_x = world.icon_size / 2 - langchat_image.maptext_width / 2 +/atom/movable/langchat_set_x_offset() + langchat_image.maptext_x = bound_width / 2 - langchat_image.maptext_width / 2 +/mob/langchat_set_x_offset() + langchat_image.maptext_x = icon_size / 2 - langchat_image.maptext_width / 2 + ///Creates the image if one does not exist, resets settings that are modified by speech procs. /atom/proc/langchat_make_image(override_color = null) if(!langchat_image) @@ -56,8 +63,8 @@ langchat_image.appearance_flags = NO_CLIENT_COLOR|KEEP_APART|RESET_COLOR|RESET_TRANSFORM langchat_image.maptext_y = langchat_height langchat_image.maptext_height = 64 - langchat_image.maptext_x = - world.icon_size - get_pixel_position_x(src, TRUE) langchat_image.maptext_y -= LANGCHAT_MESSAGE_POP_Y_SINK + langchat_set_x_offset() langchat_image.pixel_y = 0 langchat_image.alpha = 0 @@ -102,7 +109,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH - langchat_image.maptext_x = - world.icon_size - get_pixel_position_x(src, TRUE) + langchat_set_x_offset() langchat_listeners = listeners for(var/mob/M in langchat_listeners) @@ -149,7 +156,7 @@ langchat_image.maptext = text_to_display langchat_image.maptext_width = LANGCHAT_WIDTH * 2 - langchat_image.maptext_x = - world.icon_size - get_pixel_position_x(src, TRUE) - LANGCHAT_WIDTH / 2 + langchat_set_x_offset() langchat_listeners = listeners for(var/mob/M in langchat_listeners) diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index a2aa2fb5b6..5382ad2f42 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -2,3 +2,11 @@ mid_sounds = list('sound/items/taperecorder/taperecorder_hiss_mid.ogg' = 1) start_sound = list('sound/items/taperecorder/taperecorder_hiss_start.ogg' = 1) volume = 10 + +/datum/looping_sound/phone_ringing + start_sound = list('sound/machines/telephone/telephone_ring.ogg' = 1) + mid_sounds = list('sound/machines/telephone/telephone_ring.ogg' = 1) + volume = 25 + extra_range = 14 + mid_length = (3 SECONDS) + max_loops = 10 diff --git a/code/datums/quadtree.dm b/code/datums/quadtree.dm index 68f45b855d..f6023f6bfc 100644 --- a/code/datums/quadtree.dm +++ b/code/datums/quadtree.dm @@ -139,7 +139,8 @@ if(range.contains(P)) if(flags & QTREE_SCAN_MOBS) found_players.Add(P.player) - return + continue if(P.player.client) found_players.Add(P.player.client) + continue diff --git a/code/datums/statistics/entities/death_stats.dm b/code/datums/statistics/entities/death_stats.dm index 1753536026..f0055ed871 100644 --- a/code/datums/statistics/entities/death_stats.dm +++ b/code/datums/statistics/entities/death_stats.dm @@ -87,6 +87,10 @@ if(!mind || statistic_exempt) return + var/area/area = get_area(death_loc) + handle_observer_message(cause_data, cause_mob, death_loc, area) + + // Perform logging above before get_player_from_key to avoid delays var/datum/entity/statistic/death/new_death = DB_ENTITY(/datum/entity/statistic/death) var/datum/entity/player/player_entity = get_player_from_key(mind.ckey) if(player_entity) @@ -98,11 +102,8 @@ new_death.role_name = get_role_name() new_death.mob_name = real_name new_death.faction_name = faction - new_death.is_xeno = FALSE - - var/area/A = get_area(death_loc) - new_death.area_name = A.name + new_death.area_name = area.name new_death.cause_name = cause_data?.cause_name var/datum/entity/player/cause_player = get_player_from_key(cause_data?.ckey) @@ -132,8 +133,6 @@ new_death.total_damage_taken = life_damage_taken_total new_death.total_revives_done = life_revives_total - handle_observer_message(cause_data, cause_mob, death_loc, A) - if(round_statistics) round_statistics.track_death(new_death) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 3c4104b6c2..c9092a750f 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -59,8 +59,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/machinery/optable/get_examine_text(mob/user) . = ..() diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm index 16512a944b..e6fc0c8de7 100644 --- a/code/game/machinery/air_alarm.dm +++ b/code/game/machinery/air_alarm.dm @@ -431,8 +431,6 @@ var/wireIndex = AAlarmWireColorToIndex[wireColor] //not used in this function AAlarmwires |= wireFlag switch(wireIndex) - if(AALARM_WIRE_IDSCAN) - if(AALARM_WIRE_POWER) shorted = 0 shock(usr, 50) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index b70829c708..d82591994e 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -551,7 +551,7 @@ var/speed = ((wires & WIRE_MOTOR1) ? 1:0) + ((wires & WIRE_MOTOR2) ? 2:0) switch(speed) if(0) - // do nothing + pass() if(1) process_bot() spawn(2) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index adce72f7d8..304b24a14f 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -53,8 +53,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/machinery/computer/bullet_act(obj/projectile/Proj) if(exproof) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index b68ca41d6f..fe85599018 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -123,7 +123,6 @@ else dat += "
[bdat]" - else else dat += text("{Log In}", src) show_browser(user, dat, "Medical Records", "med_rec") @@ -365,8 +364,6 @@ for(var/datum/data/record/E in GLOB.data_core.medical) if ((E.fields["ref"] == R.fields["ref"] || E.fields["id"] == R.fields["id"])) M = E - else - //Foreach continue //goto(2540) src.active1 = R src.active2 = M src.screen = 4 @@ -417,16 +414,12 @@ for(var/datum/data/record/R as anything in GLOB.data_core.medical) if ((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]))) src.active2 = R - else - //Foreach continue //goto(3229) if (!active2) temp = "Could not locate record [t1]." else for(var/datum/data/record/E in GLOB.data_core.general) if ((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"])) src.active1 = E - else - //Foreach continue //goto(3334) src.screen = 4 if (href_list["print_p"]) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 3858230a08..f6adaa8edd 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -20,7 +20,6 @@ for(var/obj/structure/machinery/mass_driver/M in machines) if(M.id == id) connected = M - else return return diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 12f4faedc9..c5a13e2c3e 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -55,8 +55,7 @@ dat += " Locked Down |" else dat += " Operating Normally |" - if (!R.canmove) - else if(R.cell) + if(R.canmove && R.cell) dat += " Battery Installed ([R.cell.charge]/[R.cell.maxcharge]) |" else dat += " No Cell Installed |" diff --git a/code/game/machinery/computer/sentencing.dm b/code/game/machinery/computer/sentencing.dm index 52a4159a2a..3aa9b5a032 100644 --- a/code/game/machinery/computer/sentencing.dm +++ b/code/game/machinery/computer/sentencing.dm @@ -78,6 +78,7 @@ data["laws"] += list(create_law_data("Major Laws", SSlaw_init.major_law)) data["laws"] += list(create_law_data("Capital Laws", SSlaw_init.capital_law)) data["laws"] += list(create_law_data("Optional Laws", SSlaw_init.optional_law)) + data["laws"] += list(create_law_data("Precautionary Laws", SSlaw_init.precautionary_law)) return data diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index f891d46bc3..a20d344b53 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -43,16 +43,16 @@ var/dat if (temp) - dat = text("[]

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

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

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

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

" - dat += text("Record Maintenance

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

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

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

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

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

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

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

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

Back" else dat += {" "} - dat += text("", tempname) + dat += "" dat += {"
Search Results for '[]':Search Results for '[tempname]':
@@ -121,17 +120,14 @@ if(istype(Perp[i+1],/datum/data/record/)) var/datum/data/record/E = Perp[i+1] crimstat = E.fields["criminal"] - var/background - background = "'background-color:#00FF7F;'" - dat += text("[]", background, src, R, R.fields["name"]) - dat += text("[]", R.fields["id"]) - dat += text("[]", R.fields["rank"]) - dat += text("[]", crimstat) + dat += "[R.fields["name"]]" + dat += "[R.fields["id"]]" + dat += "[R.fields["rank"]]" + dat += "[crimstat]" dat += "
" - dat += text("
Return to index.", src) - else + dat += "
Return to index." else - dat += text("{Log In}", src) + dat += "{Log In}" show_browser(user, dat, "Employment Records", "secure_rec", "size=600x400") onclose(user, "secure_rec") return @@ -342,7 +338,6 @@ What a mess.*/ if ((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"])) GLOB.data_core.medical -= R qdel(R) - else QDEL_NULL(active1) else temp = "This function does not appear to be working at the moment. Our apologies." diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index e6df92d258..99996bea89 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -54,7 +54,6 @@ src.health -= W.force * 0.75 if("brute") src.health -= W.force * 0.5 - else if (src.health <= 0) src.explode() ..() diff --git a/code/game/machinery/medical_pod/bodyscanner.dm b/code/game/machinery/medical_pod/bodyscanner.dm index 4756121e50..fdcd0ceb62 100644 --- a/code/game/machinery/medical_pod/bodyscanner.dm +++ b/code/game/machinery/medical_pod/bodyscanner.dm @@ -62,8 +62,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return #ifdef OBJECTS_PROXY_SPEECH // Transfers speech to occupant @@ -124,8 +122,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/machinery/body_scanconsole/power_change() ..() diff --git a/code/game/machinery/medical_pod/sleeper.dm b/code/game/machinery/medical_pod/sleeper.dm index 805fedb292..35d9a44863 100644 --- a/code/game/machinery/medical_pod/sleeper.dm +++ b/code/game/machinery/medical_pod/sleeper.dm @@ -385,7 +385,6 @@ t1 = "Unconscious" if(2) t1 = "*dead*" - else to_chat(user, "[]\t Health %: [] ([])", (occupant.health > 50 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.health, t1) to_chat(user, "[]\t -Core Temperature: []°C ([]°F)
", (occupant.bodytemperature > 50 ? "" : ""), occupant.bodytemperature-T0C, occupant.bodytemperature*1.8-459.67) to_chat(user, "[]\t -Brute Damage %: []", (occupant.getBruteLoss() < 60 ? SPAN_NOTICE("") : SPAN_DANGER("")), occupant.getBruteLoss()) diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm index bf7c4fffee..861f5b37eb 100644 --- a/code/game/machinery/vending/cm_vending.dm +++ b/code/game/machinery/vending/cm_vending.dm @@ -774,8 +774,8 @@ GLOBAL_LIST_EMPTY(vending_products) desc = "An automated closet hooked up to a colossal storage of standard-issue uniform and armor." icon_state = "clothing" use_points = TRUE + show_points = TRUE vendor_theme = VENDOR_THEME_USCM - show_points = FALSE vend_flags = VEND_CLUTTER_PROTECTION | VEND_UNIFORM_RANKS | VEND_UNIFORM_AUTOEQUIP | VEND_CATEGORY_CHECK /obj/structure/machinery/cm_vending/clothing/ui_static_data(mob/user) diff --git a/code/game/machinery/vending/vending.dm b/code/game/machinery/vending/vending.dm index a74dd923cb..414ab4a562 100644 --- a/code/game/machinery/vending/vending.dm +++ b/code/game/machinery/vending/vending.dm @@ -398,28 +398,25 @@ GLOBAL_LIST_EMPTY_TYPED(total_vending_machines, /obj/structure/machinery/vending /obj/structure/machinery/vending/proc/GetProductIndex(datum/data/vending_product/product) var/list/plist - switch(product.category) - if(CAT_NORMAL) - plist=product_records - if(CAT_HIDDEN) - plist=hidden_records - if(CAT_COIN) - plist=coin_records - else - warning("UNKNOWN CATEGORY [product.category] IN TYPE [product.product_path] INSIDE [type]!") + if(product.category == CAT_NORMAL) + plist = product_records + else if(product.category == CAT_HIDDEN) + plist = hidden_records + else if(product.category == CAT_COIN) + plist = coin_records + else + warning("UNKNOWN CATEGORY [product.category] IN TYPE [product.product_path] INSIDE [type]!") return plist.Find(product) /obj/structure/machinery/vending/proc/GetProductByID(pid, category) - switch(category) - if(CAT_NORMAL) - return product_records[pid] - if(CAT_HIDDEN) - return hidden_records[pid] - if(CAT_COIN) - return coin_records[pid] - else - warning("UNKNOWN PRODUCT: PID: [pid], CAT: [category] INSIDE [type]!") - return null + if(category == CAT_NORMAL) + return product_records[pid] + else if(category == CAT_HIDDEN) + return hidden_records[pid] + else if(category == CAT_COIN) + return coin_records[pid] + else + warning("UNKNOWN PRODUCT: PID: [pid], CAT: [category] INSIDE [type]!") /obj/structure/machinery/vending/attack_hand(mob/user) if(is_tipped_over) diff --git a/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm b/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm index 830511ad4b..d7d49a8ae0 100644 --- a/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm @@ -1,9 +1,9 @@ //------------GEAR VENDOR--------------- GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( - list("COMMANDING OFFICER'S PRIMARY (CHOOSE 1)", 0, null, null, null), - list("M46C pulse rifle", 0, /obj/effect/essentials_set/co/riflepreset, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - list("M56C Smartgun", 0, /obj/item/storage/box/m56c_system, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + list("COMMANDER'S PRIMARY (CHOOSE 1)", 0, null, null, null), + list("M46C Pulse Rifle", 0, /obj/effect/essentials_set/co/riflepreset, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY), + list("M56C Smartgun", 0, /obj/item/storage/box/m56c_system, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY), list("PRIMARY AMMUNITION", 0, null, null, null), list("M41A MK1 Magazine", 30, /obj/item/ammo_magazine/rifle/m41aMK1, null, VENDOR_ITEM_RECOMMENDED), @@ -28,11 +28,19 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( list("M41A Rubber Shot Magazine", 10, /obj/item/ammo_magazine/rifle/rubber, null, VENDOR_ITEM_REGULAR), list("Beanbag Slugs", 10, /obj/item/ammo_magazine/shotgun/beanbag, null, VENDOR_ITEM_REGULAR), + list("EXPLOSIVES", 0, null, null, null), + list("HEDP Grenade Pack", 15, /obj/item/storage/box/packet/high_explosive, null, VENDOR_ITEM_REGULAR), + list("HEFA Grenade Pack", 15, /obj/item/storage/box/packet/hefa, null, VENDOR_ITEM_REGULAR), + list("WP Grenade Pack", 15, /obj/item/storage/box/packet/phosphorus, null, VENDOR_ITEM_REGULAR), + list("RAIL ATTACHMENTS", 0, null, null, null), list("Red-Dot Sight", 15, /obj/item/attachable/reddot, null, VENDOR_ITEM_REGULAR), list("Reflex Sight", 15, /obj/item/attachable/reflex, null, VENDOR_ITEM_REGULAR), list("S4 2x Telescopic Mini-Scope", 15, /obj/item/attachable/scope/mini, null, VENDOR_ITEM_REGULAR), + list("Helmet Visors", 0, null, null, null), + list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_RECOMMENDED), + list("UNDERBARREL ATTACHMENTS", 0, null, null, null), list("Laser Sight", 15, /obj/item/attachable/lasersight, null, VENDOR_ITEM_REGULAR), list("Angled Grip", 15, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR), @@ -40,12 +48,13 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( list("Underbarrel Shotgun", 15, /obj/item/attachable/attached_gun/shotgun, null, VENDOR_ITEM_REGULAR), list("Underbarrel Extinguisher", 15, /obj/item/attachable/attached_gun/extinguisher, null, VENDOR_ITEM_REGULAR), list("Underbarrel Flamethrower", 15, /obj/item/attachable/attached_gun/flamer, null, VENDOR_ITEM_REGULAR), + list("Underbarrel Grenade Launcher", 5, /obj/item/attachable/attached_gun/grenade, null, VENDOR_ITEM_REGULAR), list("BARREL ATTACHMENTS", 0, null, null, null), - list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR), list("Extended Barrel", 15, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), list("Recoil Compensator", 15, /obj/item/attachable/compensator, null, VENDOR_ITEM_REGULAR), - )) + list("Suppressor", 15, /obj/item/attachable/suppressor, null, VENDOR_ITEM_REGULAR), + )) /obj/structure/machinery/cm_vending/gear/commanding_officer name = "\improper ColMarTech Commanding Officer Weapon Rack" @@ -63,9 +72,15 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( GLOBAL_LIST_INIT(cm_vending_clothing_commanding_officer, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom/cdrcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Satchel", 0, /obj/item/storage/backpack/satchel/lockable, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("COMMANDING OFFICER ESSENTIALS KIT (TAKE ALL)", 0, null, null, null), + list("Commanding Officer Essentials Kit", 0, /obj/effect/essentials_set/commanding_officer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), + + list("BAGS (CHOOSE 1)", 0, null, null, null), + list("Commanding Officer Backpack", 0, /obj/item/storage/backpack/mcommander, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), + list("Secure Satchel", 0, /obj/item/storage/backpack/satchel/lockable, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_MANDATORY), + list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Commanding Officer's M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/CO, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), list("Commanding Officer's M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/CO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), @@ -84,8 +99,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_commanding_officer, list( list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED), list("Security HUD Glasses", 0, /obj/item/clothing/glasses/sunglasses/sechud, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), - list("BELTS (TAKE ALL)", 0, null, null, null), + list("BELTS (CHOOSE 1)", 0, null, null, null), list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("Military Police Belt", 0, /obj/item/storage/belt/security/MP/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Medical Storage Rig", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Holster Toolrig", 0, /obj/item/storage/belt/gun/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), list("POUCHES (CHOOSE 2)", 0, null, null, null), list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -110,6 +130,15 @@ GLOBAL_LIST_INIT(cm_vending_clothing_commanding_officer, list( /obj/structure/machinery/cm_vending/clothing/commanding_officer/get_listed_products(mob/user) return GLOB.cm_vending_clothing_commanding_officer +/obj/effect/essentials_set/commanding_officer + spawned_gear_list = list( + /obj/item/device/binoculars/range/designator, + /obj/item/map/current_map, + /obj/item/device/whistle, + /obj/item/weapon/gun/energy/taser, + /obj/item/device/megaphone, + ) + // This gets around the COs' weapon not spawning without incendiary mag. /obj/effect/essentials_set/co/riflepreset spawned_gear_list = list( diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm index 11c9341da0..50b83ccdc5 100644 --- a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm @@ -13,13 +13,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), list("Headset", 0, /obj/item/device/radio/headset/almayer/mcom, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Service Uniform", 0, /obj/item/clothing/under/marine/officer/bridge, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_REGULAR), list("Operations Uniform", 0, /obj/item/clothing/under/marine/officer/boiler, MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_RECOMMENDED), + list("Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_REGULAR), list("JACKET (CHOOSE 1)", 0, null, null, null), list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_RECOMMENDED), @@ -33,65 +33,21 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null), - list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M4A3 Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("VP78 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp78, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("M4A3 Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), + list("VP78 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp78, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED), list("BACKPACK (CHOOSE 1)", 0, null, null, null), list("Backpack", 0, /obj/item/storage/backpack/marine, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), list("Satchel", 0, /obj/item/storage/backpack/marine/satchel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - list("Radio Telephone Pack", 0, /obj/item/storage/backpack/marine/satchel/rto, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("BELT (CHOOSE 1)", 0, null, null, null), - list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M39 Holster Rig", 0, /obj/item/storage/belt/gun/m39, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Shotgun Shell Loading Rig", 0, /obj/item/storage/belt/shotgun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M40 Grenade Rig", 0, /obj/item/storage/belt/grenade, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - - list("POUCHES (CHOOSE 2)", 0, null, null, null), - list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First Responder Pouch", 0, /obj/item/storage/pouch/first_responder, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Fuel Tank Strap Pouch", 0, /obj/item/storage/pouch/flamertank, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - - list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), - list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), - list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - - list("MASK (CHOOSE 1)", 0, null, null, null), - list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), - list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), list("OTHER SUPPLIES", 0, null, null, null), list("Binoculars", 5,/obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), list("Rangefinder", 8, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), list("Laser Designator", 12, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_RECOMMENDED), - list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), list("Flashlight", 1, /obj/item/device/flashlight, null, VENDOR_ITEM_RECOMMENDED), - list("Fulton Recovery Device", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), - list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), + list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), list("Space Cleaner", 2, /obj/item/reagent_container/spray/cleaner, null, VENDOR_ITEM_REGULAR), list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), - list("Machete Scabbard (Full)", 2, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR) )) diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm new file mode 100644 index 0000000000..e616cff228 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer_armory.dm @@ -0,0 +1,82 @@ +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory + name = "\improper ColMarTech Staff Officer Armory Equipment Rack" + desc = "An automated combat equipment vendor for Staff Officers." + req_access = list(ACCESS_MARINE_COMMAND) + icon_state = "mar_rack" + vendor_role = list(JOB_SO) + +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory/get_listed_products(mob/user) + return GLOB.cm_vending_clothing_staff_officer_armory + +//------------GEAR--------------- + +GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer_armory, list( + list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), + list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_COMBAT_ARMOR, VENDOR_ITEM_MANDATORY), + list("Officer M10 Helmet", 0, /obj/item/clothing/head/helmet/marine/MP/SO, MARINE_CAN_BUY_COMBAT_HELMET, VENDOR_ITEM_MANDATORY), + list("Marine Combat Boots", 0, /obj/item/clothing/shoes/marine/knife, MARINE_CAN_BUY_SHOES, VENDOR_ITEM_MANDATORY), + list("Marine Combat Gloves", 0, /obj/item/clothing/gloves/marine, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), + list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), + list("Aviator Shades", 0, /obj/item/clothing/glasses/sunglasses/aviator, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_REGULAR), + + list("SPECIALISATION KIT (CHOOSE 1)", 0, null, null, null), + list("Essential Engineer Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), + list("Essential Medical Set", 0, /obj/effect/essentials_set/medic, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_RECOMMENDED), + + list("BELT (CHOOSE 1)", 0, null, null, null), + list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), + list("M276 Lifesaver Bag (Full)", 0, /obj/item/storage/belt/medical/lifesaver/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Medical Storage Rig (Full)", 0, /obj/item/storage/belt/medical/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M39 Holster Rig", 0, /obj/item/storage/belt/gun/m39, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M82F Holster Rig", 0, /obj/item/storage/belt/gun/flaregun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 Shotgun Shell Loading Rig", 0, /obj/item/storage/belt/shotgun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + list("M276 M40 Grenade Rig", 0, /obj/item/storage/belt/grenade, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), + + list("POUCHES (CHOOSE 2)", 0, null, null, null), + list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("First Responder Pouch", 0, /obj/item/storage/pouch/first_responder, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Fuel Tank Strap Pouch", 0, /obj/item/storage/pouch/flamertank, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), + list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Medical Kit Pouch", 0, /obj/item/storage/pouch/medkit, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Pistol Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), + + list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), + list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), + list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), + + list("MASK (CHOOSE 1)", 0, null, null, null), + list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), + + list("OTHER SUPPLIES", 0, null, null, null), + list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), + list("Magnetic Harness", 12, /obj/item/attachable/magnetic_harness, null, VENDOR_ITEM_REGULAR), + list("Radio Telephone Pack", 15, /obj/item/storage/backpack/marine/satchel/rto, null, VENDOR_ITEM_RECOMMENDED), + list("Binoculars", 5,/obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), + list("Rangefinder", 8, /obj/item/device/binoculars/range, null, VENDOR_ITEM_REGULAR), + list("Laser Designator", 12, /obj/item/device/binoculars/range/designator, null, VENDOR_ITEM_RECOMMENDED), + list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), + list("Flashlight", 1, /obj/item/device/flashlight, null, VENDOR_ITEM_RECOMMENDED), + list("Fulton Recovery Device", 5, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), + list("Motion Detector", 5, /obj/item/device/motiondetector, null, VENDOR_ITEM_REGULAR), + list("Space Cleaner", 2, /obj/item/reagent_container/spray/cleaner, null, VENDOR_ITEM_REGULAR), + list("Whistle", 5, /obj/item/device/whistle, null, VENDOR_ITEM_REGULAR), + list("Machete Scabbard (Full)", 5, /obj/item/storage/large_holster/machete/full, null, VENDOR_ITEM_REGULAR) + )) diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 8e556318c7..bf96246e92 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -49,7 +49,6 @@ list("Injector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR), list("Injector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR), - list("Injector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR), list("Injector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR), list("Injector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR), list("Injector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR), @@ -60,7 +59,6 @@ list("Autoinjector (C-M) (EMPTY)", 2, /obj/item/reagent_container/hypospray/autoinjector/empty/medium, null, VENDOR_ITEM_REGULAR), list("Autoinjector (C-L) (EMPTY)", 4, /obj/item/reagent_container/hypospray/autoinjector/empty/large, null, VENDOR_ITEM_REGULAR), - list("Emergency Defibrillator", 4, /obj/item/device/defibrillator, null, VENDOR_ITEM_MANDATORY), list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Surgical Line", 4, /obj/item/tool/surgery/surgical_line, null, VENDOR_ITEM_REGULAR), list("Synth-Graft", 4, /obj/item/tool/surgery/synthgraft, null, VENDOR_ITEM_REGULAR), @@ -348,7 +346,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Autocompressor", 15, /obj/item/clothing/suit/auto_cpr, null, VENDOR_ITEM_REGULAR), list("Backpack Firefighting Watertank", 15, /obj/item/reagent_container/glass/watertank/atmos, null, VENDOR_ITEM_REGULAR), list("Breaching Hammer", 15, /obj/item/weapon/twohanded/breacher/synth, null, VENDOR_ITEM_REGULAR), - list("Compact Defibrillator", 15, /obj/item/device/defibrillator/compact, null, VENDOR_ITEM_REGULAR), list("Compact Nailgun kit", 15, /obj/effect/essentials_set/cnailgun, null, VENDOR_ITEM_REGULAR), list("Crew Monitor", 15, /obj/item/tool/crew_monitor, null, VENDOR_ITEM_REGULAR), list("Experimental Meson Goggles", 15, /obj/item/clothing/glasses/night/experimental_mesons, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/medical.dm b/code/game/machinery/vending/vendor_types/medical.dm index 9844101cb1..ece0752721 100644 --- a/code/game/machinery/vending/vendor_types/medical.dm +++ b/code/game/machinery/vending/vendor_types/medical.dm @@ -141,7 +141,6 @@ 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), @@ -174,7 +173,6 @@ list("Health Analyzer", round(scale * 5), /obj/item/device/healthanalyzer, VENDOR_ITEM_REGULAR), list("M276 Pattern Medical Storage Rig", round(scale * 2), /obj/item/storage/belt/medical, VENDOR_ITEM_REGULAR), list("Medical HUD Glasses", round(scale * 3), /obj/item/clothing/glasses/hud/health, VENDOR_ITEM_REGULAR), - list("Stasis Bag", round(scale * 2), /obj/item/bodybag/cryobag, VENDOR_ITEM_REGULAR), list("Syringe", round(scale * 7), /obj/item/reagent_container/syringe, VENDOR_ITEM_REGULAR) ) diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index 2b46d0bead..9e19ee7a32 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -191,7 +191,7 @@ turf_to_vent_to = H.loc return turf_to_vent_to -/obj/structure/machinery/cm_vending/sorted/cargo_guns/blend +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend icon_state = "req_guns_wall" tiles_with = list( /obj/structure/window/framed/almayer, @@ -295,7 +295,7 @@ updateUsrDialog() return //We found our item, no reason to go on. -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/blend +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend icon_state = "req_ammo_wall" tiles_with = list( /obj/structure/window/framed/almayer, 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 c965b7c90e..dd3700b3d5 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 @@ -23,7 +23,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("AUTOINJECTORS", 0, null, null, null), list("Autoinjector (Bicaridine)", 1, /obj/item/reagent_container/hypospray/autoinjector/bicaridine, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Dexalin+)", 1, /obj/item/reagent_container/hypospray/autoinjector/dexalinp, null, VENDOR_ITEM_REGULAR), - list("Autoinjector (Epinephrine)", 2, /obj/item/reagent_container/hypospray/autoinjector/adrenaline, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Inaprovaline)", 1, /obj/item/reagent_container/hypospray/autoinjector/inaprovaline, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Kelotane)", 1, /obj/item/reagent_container/hypospray/autoinjector/kelotane, null, VENDOR_ITEM_REGULAR), list("Autoinjector (Oxycodone)", 2, /obj/item/reagent_container/hypospray/autoinjector/oxycodone, null, VENDOR_ITEM_REGULAR), @@ -42,7 +41,6 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( list("MEDICAL UTILITIES", 0, null, null, null), list("Health Analyzer", 4, /obj/item/device/healthanalyzer, null, VENDOR_ITEM_REGULAR), list("Roller Bed", 4, /obj/item/roller, null, VENDOR_ITEM_REGULAR), - list("Stasis Bag", 6, /obj/item/bodybag/cryobag, null, VENDOR_ITEM_REGULAR), list("Pressurized Reagent Canister Pouch (EMPTY)", 3, /obj/item/storage/pouch/pressurized_reagent_canister, null, VENDOR_ITEM_REGULAR), list("G8-A General Utility Pouch", 15, /obj/item/storage/backpack/general_belt, null, VENDOR_ITEM_REGULAR), list("MS-11 Smart Refill Tank", 6, /obj/item/reagent_container/glass/minitank, null, VENDOR_ITEM_REGULAR), @@ -214,4 +212,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( /obj/item/storage/surgical_case/regular, /obj/item/reagent_container/blood/OMinus, /obj/item/reagent_container/blood/OMinus, + /obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated, + /obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated, ) 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 ba9606d27b..4f382a8f34 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 @@ -288,6 +288,7 @@ list("Machete Scabbard (Full)", round(scale * 5), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR), list("Binoculars", round(scale * 1), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR), list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR), + list("Rail Flashlight", round(scale * 5), /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR), ) //--------------SQUAD ATTACHMENTS VENDOR-------------- diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index bebe0ec8b2..56c6ae45cd 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -95,8 +95,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/effect/glowshroom/fire_act(exposed_temperature, exposed_volume) if(exposed_temperature > 300) diff --git a/code/game/objects/explosion_recursive.dm b/code/game/objects/explosion_recursive.dm index 1f52901c21..82566c8030 100644 --- a/code/game/objects/explosion_recursive.dm +++ b/code/game/objects/explosion_recursive.dm @@ -149,7 +149,7 @@ explosion resistance exactly as much as their health switch(angle) //this reduces power when the explosion is going around corners if (0) - //no change + pass() if (45) if(spread_power >= 0) spread_power *= 0.75 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 2d142789fd..9dbe33e051 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -268,7 +268,6 @@ cases. Override_icon_state should be a list.*/ size = "huge" if(SIZE_MASSIVE) size = "massive" - else . += "This is a [blood_color ? blood_color != "#030303" ? "bloody " : "oil-stained " : ""][icon2html(src, user)][src.name]. It is a [size] item." if(desc) . += desc diff --git a/code/game/objects/items/devices/motion_detector.dm b/code/game/objects/items/devices/motion_detector.dm index 9776eae11c..99b11d1ff6 100644 --- a/code/game/objects/items/devices/motion_detector.dm +++ b/code/game/objects/items/devices/motion_detector.dm @@ -5,6 +5,9 @@ #define MOTION_DETECTOR_RANGE_LONG 14 #define MOTION_DETECTOR_RANGE_SHORT 7 +#define MOTION_DETECTOR_BASE_COOLDOWN (1 SECONDS) +#define MOTION_DETECTOR_RANGE_LONG_MULTIPLIER 2.5 + /obj/effect/detector_blip icon = 'icons/obj/items/marine-items.dmi' icon_state = "detector_blip" @@ -30,7 +33,6 @@ w_class = SIZE_MEDIUM var/active = 0 var/recycletime = 120 - var/long_range_cooldown = 2 var/blip_type = "detector" var/iff_signal = FACTION_MARINE actions_types = list(/datum/action/item_action) @@ -39,6 +41,9 @@ var/long_range_locked = FALSE //only long-range MD var/ping_overlay + /// Handles our cooldowns regarding pings + COOLDOWN_DECLARE(ping_cooldown) + /obj/item/device/motiondetector/proc/get_help_text() . = "Blue bubble-like indicators on your HUD will show pings locations or direction to them. The device screen will show the amount of unidentified movements detected (up to 9). Has two modes: slow long-range [SPAN_HELPFUL("([MOTION_DETECTOR_RANGE_LONG] tiles)")] and fast short-range [SPAN_HELPFUL("([MOTION_DETECTOR_RANGE_SHORT] tiles)")]. Use [SPAN_HELPFUL("Alt + Click")] on the device to switch between modes. Using the device on the adjacent multitile vehicle will start the process of recalibrating and scanning vehicle interior for unidentified movements inside." @@ -136,7 +141,7 @@ else if(user) to_chat(user, SPAN_NOTICE("You activate \the [src].")) playsound(loc, 'sound/items/detector_turn_on.ogg', 30, FALSE, 5, 2) - START_PROCESSING(SSobj, src) + START_PROCESSING(SSfastobj, src) /obj/item/device/motiondetector/proc/turn_off(mob/user, forced = FALSE) if(forced) @@ -146,34 +151,37 @@ scanning = FALSE // safety if MD runtimes in scan and stops scanning icon_state = "[initial(icon_state)]" playsound(loc, 'sound/items/detector_turn_off.ogg', 30, FALSE, 5, 2) - STOP_PROCESSING(SSobj, src) + STOP_PROCESSING(SSfastobj, src) /obj/item/device/motiondetector/Destroy() - STOP_PROCESSING(SSobj, src) + STOP_PROCESSING(SSfastobj, src) for(var/to_delete in blip_pool) qdel(blip_pool[to_delete]) blip_pool.Remove(to_delete) blip_pool = null return ..() -/obj/item/device/motiondetector/process() +/obj/item/device/motiondetector/process(delta_time) if(isturf(loc)) toggle_active(null, TRUE) + if(!active) - STOP_PROCESSING(SSobj, src) + STOP_PROCESSING(SSfastobj, src) return + recycletime-- if(!recycletime) recycletime = initial(recycletime) refresh_blip_pool() - if(!detector_mode) - long_range_cooldown-- - if(long_range_cooldown) return - else long_range_cooldown = initial(long_range_cooldown) + if(!COOLDOWN_FINISHED(src, ping_cooldown)) + return scan() + var/next_ping_cooldown = MOTION_DETECTOR_BASE_COOLDOWN * (detector_mode ? 1 : MOTION_DETECTOR_RANGE_LONG_MULTIPLIER) + COOLDOWN_START(src, ping_cooldown, next_ping_cooldown) + /obj/item/device/motiondetector/proc/refresh_blip_pool() for(var/X in blip_pool) //we dump and remake the blip pool every few minutes if(blip_pool[X]) //to clear blips assigned to mobs that are long gone. diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 4e37424a59..1f7c20a648 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -493,6 +493,7 @@ initial_keys = list(/obj/item/device/encryptionkey/mcom) volume = RADIO_VOLUME_CRITICAL multibroadcast_cooldown = LOW_MULTIBROADCAST_COOLDOWN + frequency = ALPHA_FREQ /obj/item/device/radio/headset/almayer/mcom/alt initial_keys = list(/obj/item/device/encryptionkey/mcom/alt) @@ -569,7 +570,6 @@ name = "marine radio headset" desc = "A standard marine radio headset. When worn, grants access to Squad Leader tracker. Click tracker with empty hand to open Squad Info window." frequency = ALPHA_FREQ - initial_keys = list(/obj/item/device/encryptionkey/public) //############################## ALPHA ############################### /obj/item/device/radio/headset/almayer/marine/alpha diff --git a/code/game/objects/items/handheld_distress_beacon.dm b/code/game/objects/items/handheld_distress_beacon.dm index c11a7a57c3..19a64c2c37 100644 --- a/code/game/objects/items/handheld_distress_beacon.dm +++ b/code/game/objects/items/handheld_distress_beacon.dm @@ -64,3 +64,47 @@ 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") + +/// Generic beacon for objectives +/obj/item/handheld_beacon + name = "handheld beacon" + desc = "A standard handheld beacon. Generally used by teams who may be out of regular communications range but must signal for various reasons. This one is branded with a Weyland Yutani symbol and sold en masse." + icon = 'icons/obj/items/handheld_distress_beacon.dmi' + icon_state = "beacon_inactive" + w_class = SIZE_SMALL + + /// Whether the beacon is active or not + var/active = FALSE + +/obj/item/handheld_beacon/get_examine_text(mob/user) + . = ..() + + if(active) + . += "The beacon has been activated!" + +/obj/item/handheld_beacon/update_icon() + . = ..() + + if(active) + icon_state = "beacon_active" + return + icon_state = initial(icon_state) + +/obj/item/handheld_beacon/attack_self(mob/user) + . = ..() + + if(.) + return + + active = !active + update_icon() + + to_chat(user, SPAN_NOTICE("The beacon pings quietly and turns [active ? "on" : "off"].")) + + if(!active) + return + + for(var/client/admin_client in GLOB.admins) + if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) + playsound_client(admin_client,'sound/effects/sos-morse-code.ogg',10) + message_admins("[key_name(user)] has used [name]! [ADMIN_JMP_USER(user)]") diff --git a/code/game/objects/items/reagent_containers/autoinjectors.dm b/code/game/objects/items/reagent_containers/autoinjectors.dm index 46463e628c..248bdd7392 100644 --- a/code/game/objects/items/reagent_containers/autoinjectors.dm +++ b/code/game/objects/items/reagent_containers/autoinjectors.dm @@ -99,6 +99,15 @@ display_maptext = TRUE maptext_label = "Ep" +/obj/item/reagent_container/hypospray/autoinjector/adrenaline_concentrated + name = "epinephrine (concentrated) autoinjector" + chemname = "adrenaline_concentrated" + desc = "An autoinjector loaded with 3 uses of Epinephrine, better known as Adrenaline, a nerve stimulant useful in restarting the heart. In this concentrated form, it will prevent unconciousness but will cause minor suffocation." + amount_per_transfer_from_this = LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD + volume = (LOWM_REAGENTS_OVERDOSE * INJECTOR_PERCENTAGE_OF_OD) * INJECTOR_USES + display_maptext = TRUE + maptext_label = "Ep" + /obj/item/reagent_container/hypospray/autoinjector/dexalinp name = "dexalin plus autoinjector" chemname = "dexalinp" diff --git a/code/game/objects/items/reagent_containers/blood_pack.dm b/code/game/objects/items/reagent_containers/blood_pack.dm index 0879dcffdc..128c127082 100644 --- a/code/game/objects/items/reagent_containers/blood_pack.dm +++ b/code/game/objects/items/reagent_containers/blood_pack.dm @@ -74,14 +74,10 @@ update_beam() return - if(!skillcheck(user, SKILL_SURGERY, SKILL_SURGERY_NOVICE)) - to_chat(user, SPAN_WARNING("You don't know how to connect this!")) - return - if(user.action_busy) return - if(!do_after(user, (1 SECONDS) * user.get_skill_duration_multiplier(SKILL_SURGERY), INTERRUPT_ALL, BUSY_ICON_FRIENDLY, attacked_mob, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) + if(!do_after(user, skillcheck(user, SKILL_SURGERY, SKILL_SURGERY_NOVICE) ? (1 SECONDS) * user.get_skill_duration_multiplier(SKILL_SURGERY) : (8 SECONDS), INTERRUPT_ALL, BUSY_ICON_FRIENDLY, attacked_mob, INTERRUPT_MOVED, BUSY_ICON_MEDICAL)) to_chat(user, SPAN_WARNING("You were interrupted before you could finish!")) return diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm index 06a4d785e6..2892eb1113 100644 --- a/code/game/objects/items/reagent_containers/food/snacks.dm +++ b/code/game/objects/items/reagent_containers/food/snacks.dm @@ -182,10 +182,9 @@ return 0 var/inaccurate = 0 - if(W.sharp == IS_SHARP_ITEM_ACCURATE) - else if(W.sharp == IS_SHARP_ITEM_BIG) + if(W.sharp == IS_SHARP_ITEM_BIG) inaccurate = 1 - else + else if(W.sharp != IS_SHARP_ITEM_ACCURATE) return 1 if ( !istype(loc, /obj/structure/surface/table) && \ (!isturf(src.loc) || \ @@ -206,7 +205,7 @@ SPAN_NOTICE("[user] crudely slices \the [src] with [W]!"), \ SPAN_NOTICE("You crudely slice \the [src] with your [W]!") \ ) - slices_lost = rand(1,min(1,round(slices_num/2))) + slices_lost = rand(1,max(1,round(slices_num/2))) var/reagents_per_slice = reagents.total_volume/slices_num for(var/i=1 to (slices_num-slices_lost)) var/obj/slice = new slice_path (src.loc) diff --git a/code/game/objects/items/stacks/nanopaste.dm b/code/game/objects/items/stacks/nanopaste.dm index 32e9a03046..754a36c601 100644 --- a/code/game/objects/items/stacks/nanopaste.dm +++ b/code/game/objects/items/stacks/nanopaste.dm @@ -40,7 +40,7 @@ H.pain.recalculate_pain() H.updatehealth() use(1) - var/others_msg = "\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " \the"] [S.display_name] with \the [src]." // Needs to create vars for these messages because macro doesn't work otherwise + var/others_msg = "\The [user] applies some nanite paste at[user != M ? " \the [M]'s" : " the"] [S.display_name] with \the [src]." // Needs to create vars for these messages because macro doesn't work otherwise var/user_msg = "You apply some nanite paste at [user == M ? "your" : "[M]'s"] [S.display_name]." user.visible_message(SPAN_NOTICE("[others_msg]"),\ SPAN_NOTICE("[user_msg]")) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 3b65811b05..95c5f181cd 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -487,115 +487,41 @@ desc = "A heavy-duty chestrig used by some USCM technicians." icon_state = "marinesatch_techi" -GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/rto) - /obj/item/storage/backpack/marine/satchel/rto name = "\improper USCM Radio Telephone Pack" desc = "A heavy-duty pack, used for telecommunications between central command. Commonly carried by RTOs." icon_state = "rto_backpack" item_state = "rto_backpack" has_gamemode_skin = FALSE - actions_types = list(/datum/action/item_action/rto_pack/use_phone) flags_item = ITEM_OVERRIDE_NORTHFACE - var/obj/structure/transmitter/internal/internal_transmitter - var/phone_category = PHONE_MARINE var/list/networks_receive = list(FACTION_MARINE) var/list/networks_transmit = list(FACTION_MARINE) - var/base_icon - -/datum/action/item_action/rto_pack/use_phone/New(mob/living/user, obj/item/holder) - ..() - name = "Use Phone" - button.name = name - button.overlays.Cut() - var/image/IMG = image('icons/obj/items/misc.dmi', button, "rpb_phone") - button.overlays += IMG - -/datum/action/item_action/rto_pack/use_phone/action_activate() - for(var/obj/item/storage/backpack/marine/satchel/rto/radio_backpack in owner) - radio_backpack.use_phone(owner) - return - -/obj/item/storage/backpack/marine/satchel/rto/post_skin_selection() - base_icon = icon_state /obj/item/storage/backpack/marine/satchel/rto/Initialize() . = ..() - internal_transmitter = new(src) - internal_transmitter.relay_obj = src - internal_transmitter.phone_category = phone_category - internal_transmitter.enabled = FALSE - internal_transmitter.networks_receive = networks_receive - internal_transmitter.networks_transmit = networks_transmit - RegisterSignal(internal_transmitter, COMSIG_TRANSMITTER_UPDATE_ICON, PROC_REF(check_for_ringing)) - GLOB.radio_packs += src - -/obj/item/storage/backpack/marine/satchel/rto/proc/check_for_ringing() - SIGNAL_HANDLER - update_icon() - -/obj/item/storage/backpack/marine/satchel/rto/update_icon() - . = ..() - if(!internal_transmitter) - return - - if(!internal_transmitter.attached_to \ - || internal_transmitter.attached_to.loc != internal_transmitter) - icon_state = "[base_icon]_ear" - return - - if(internal_transmitter.caller) - icon_state = "[base_icon]_ring" - else - icon_state = base_icon - -/obj/item/storage/backpack/marine/satchel/rto/forceMove(atom/dest) - . = ..() - if(isturf(dest)) - internal_transmitter.set_tether_holder(src) - else - internal_transmitter.set_tether_holder(loc) -/obj/item/storage/backpack/marine/satchel/rto/Destroy() - GLOB.radio_packs -= src - qdel(internal_transmitter) - return ..() + AddComponent(/datum/component/phone, phone_category = phone_category, networks_receive = networks_receive, networks_transmit = networks_transmit) + RegisterSignal(src, COMSIG_ATOM_PHONE_PICKED_UP, PROC_REF(phone_picked_up)) + RegisterSignal(src, COMSIG_ATOM_PHONE_HUNG_UP, PROC_REF(phone_hung_up)) + RegisterSignal(src, COMSIG_ATOM_PHONE_RINGING, PROC_REF(phone_ringing)) + RegisterSignal(src, COMSIG_ATOM_PHONE_STOPPED_RINGING, PROC_REF(phone_stopped_ringing)) -/obj/item/storage/backpack/marine/satchel/rto/pickup(mob/user) - . = ..() - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.comm_title) - internal_transmitter.phone_id = "[H.comm_title] [H]" - else if(H.job) - internal_transmitter.phone_id = "[H.job] [H]" - else - internal_transmitter.phone_id = "[H]" +/obj/item/storage/backpack/marine/satchel/rto/proc/phone_picked_up() + icon_state = PHONE_OFF_BASE_UNIT_ICON_STATE - if(H.assigned_squad) - internal_transmitter.phone_id += " ([H.assigned_squad.name])" - else - internal_transmitter.phone_id = "[user]" - - internal_transmitter.enabled = TRUE - -/obj/item/storage/backpack/marine/satchel/rto/dropped(mob/user) - . = ..() - internal_transmitter.phone_id = "[src]" - internal_transmitter.enabled = FALSE +/obj/item/storage/backpack/marine/satchel/rto/proc/phone_hung_up() + icon_state = PHONE_ON_BASE_UNIT_ICON_STATE -/obj/item/storage/backpack/marine/satchel/rto/proc/use_phone(mob/user) - internal_transmitter.attack_hand(user) +/obj/item/storage/backpack/marine/satchel/rto/proc/phone_ringing() + icon_state = PHONE_RINGING_ICON_STATE - -/obj/item/storage/backpack/marine/satchel/rto/attackby(obj/item/W, mob/user) - if(internal_transmitter && internal_transmitter.attached_to == W) - internal_transmitter.attackby(W, user) - else - . = ..() +/obj/item/storage/backpack/marine/satchel/rto/proc/phone_stopped_ringing() + if(icon_state == PHONE_OFF_BASE_UNIT_ICON_STATE) + return + icon_state = PHONE_ON_BASE_UNIT_ICON_STATE /obj/item/storage/backpack/marine/satchel/rto/upp_net name = "\improper UPP Radio Telephone Pack" @@ -606,7 +532,6 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r name = "\improper USCM Small Radio Telephone Pack" max_storage_space = 10 - /obj/item/storage/backpack/marine/satchel/rto/small/upp_net name = "\improper UPP Radio Telephone Pack" networks_receive = list(FACTION_UPP) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 71edc21e29..d2451ff29a 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -245,7 +245,6 @@ new /obj/item/stack/medical/advanced/bruise_pack(src) new /obj/item/stack/medical/advanced/ointment(src) new /obj/item/stack/medical/advanced/ointment(src) - new /obj/item/reagent_container/hypospray/autoinjector/adrenaline(src) new /obj/item/reagent_container/hypospray/autoinjector/dexalinp(src) new /obj/item/reagent_container/hypospray/autoinjector/oxycodone(src) new /obj/item/storage/pill_bottle/bicaridine(src) diff --git a/code/game/objects/items/storage/large_holster.dm b/code/game/objects/items/storage/large_holster.dm index ef2bcfb721..b4a6c3a8c1 100644 --- a/code/game/objects/items/storage/large_holster.dm +++ b/code/game/objects/items/storage/large_holster.dm @@ -326,7 +326,7 @@ /obj/item/storage/large_holster/fuelpack/get_examine_text(mob/user) . = ..() if(contents.len) - . += "It is storing \a M240-T incinerator unit." + . += "It is storing a M240-T incinerator unit." if (get_dist(user, src) <= 1) if(fuel) . += "The [fuel.caliber] currently contains: [round(fuel.get_ammo_percent())]% fuel." diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index 6d49db9950..f38f15cfef 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -168,7 +168,7 @@ name = "synth survival pouch" desc = "An emergency pouch given to synthetics in the event of an emergency." icon_state = "tools" - storage_slots = 7 + storage_slots = 6 max_w_class = SIZE_MEDIUM can_hold = list( /obj/item/device/flashlight, @@ -181,7 +181,6 @@ ) /obj/item/storage/pouch/survival/synth/full/fill_preset_inventory() - new /obj/item/device/flashlight(src) new /obj/item/tool/crowbar/red(src) new /obj/item/tool/weldingtool(src) new /obj/item/stack/cable_coil(src) diff --git a/code/game/objects/structures/barricade/barricade.dm b/code/game/objects/structures/barricade/barricade.dm index 0ca2ccb1dd..5a72ec33ea 100644 --- a/code/game/objects/structures/barricade/barricade.dm +++ b/code/game/objects/structures/barricade/barricade.dm @@ -78,7 +78,7 @@ switch(dir) if(SOUTH) layer = ABOVE_MOB_LAYER - else if(NORTH) + if(NORTH) layer = initial(layer) - 0.01 else layer = initial(layer) diff --git a/code/game/objects/structures/barricade/handrail.dm b/code/game/objects/structures/barricade/handrail.dm index ea10dc7256..ae166dbbf9 100644 --- a/code/game/objects/structures/barricade/handrail.dm +++ b/code/game/objects/structures/barricade/handrail.dm @@ -24,7 +24,7 @@ switch(dir) if(SOUTH) layer = ABOVE_MOB_LAYER - else if(NORTH) + if(NORTH) layer = initial(layer) - 0.01 else layer = initial(layer) diff --git a/code/game/objects/structures/bookcase.dm b/code/game/objects/structures/bookcase.dm index c71b2853ea..becb0906e3 100644 --- a/code/game/objects/structures/bookcase.dm +++ b/code/game/objects/structures/bookcase.dm @@ -58,8 +58,6 @@ contents_explosion(severity) deconstruct(FALSE) return - else - return /obj/structure/bookcase/update_icon() if(contents.len < 5) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index d6b4a35b04..b63936ef88 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -4,15 +4,6 @@ req_access = list(ACCESS_CIVILIAN_PUBLIC) var/registered_name = null -/obj/structure/closet/secure_closet/personal/Initialize() - . = ..() - if(prob(50)) - new /obj/item/storage/backpack(src) - else - new /obj/item/storage/backpack/satchel/norm(src) - new /obj/item/device/radio/headset( src ) - - /obj/structure/closet/secure_closet/personal/patient name = "patient's closet" @@ -44,12 +35,6 @@ else icon_state = icon_opened -/obj/structure/closet/secure_closet/personal/cabinet/Initialize() - . = ..() - contents = list() - new /obj/item/storage/backpack/satchel( src ) - new /obj/item/device/radio/headset( src ) - /obj/structure/closet/secure_closet/personal/attackby(obj/item/W as obj, mob/user as mob) if (src.opened) return ..() diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm index 7848aaba48..b000fd5733 100644 --- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm @@ -51,8 +51,6 @@ new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/mask/gas(src) new /obj/item/storage/firstaid/o2(src) - if ("nothing") - // doot // teehee - Ah, tg coders... if ("delete") diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 7c9faaf1a0..9f0417ccb3 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -130,8 +130,6 @@ contents_explosion(severity) deconstruct(FALSE) return - else - return /obj/structure/closet/crate/alpha name = "alpha squad crate" diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 38201e052c..d2b3d36b59 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -43,8 +43,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob) diff --git a/code/game/objects/structures/reagent_dispensers.dm b/code/game/objects/structures/reagent_dispensers.dm index 7dc6d883a2..6471dfa215 100644 --- a/code/game/objects/structures/reagent_dispensers.dm +++ b/code/game/objects/structures/reagent_dispensers.dm @@ -119,8 +119,6 @@ if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY) deconstruct(FALSE) return - else - return /obj/structure/reagent_dispensers/attack_hand() if(!reagents || reagents.locked) diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm index 22979858ce..009eab0b6f 100644 --- a/code/game/turfs/walls/wall_types.dm +++ b/code/game/turfs/walls/wall_types.dm @@ -24,8 +24,8 @@ /obj/structure/girder, /obj/structure/machinery/door, /obj/structure/machinery/cm_vending/sorted/attachments/blend, - /obj/structure/machinery/cm_vending/sorted/cargo_ammo/blend, - /obj/structure/machinery/cm_vending/sorted/cargo_guns/blend, + /obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, + /obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, ) /turf/closed/wall/almayer/update_icon() @@ -1219,7 +1219,7 @@ INITIALIZE_IMMEDIATE(/turf/closed/wall/indestructible/splashscreen) to_chat(user, SPAN_WARNING("You scrape ineffectively at \the [src].")) /turf/closed/wall/resin/attackby(obj/item/W, mob/living/user) - if(SEND_SIGNAL(src, COMSIG_WALL_RESIN_ATTACKBY, W, user) & COMPONENT_CANCEL_ATTACKBY) + if(SEND_SIGNAL(src, COMSIG_WALL_RESIN_ATTACKBY, W, user) & COMPONENT_CANCEL_RESIN_ATTACKBY) return if(!(W.flags_item & NOBLUDGEON)) diff --git a/code/game/verbs/records.dm b/code/game/verbs/records.dm index f09de72da2..18ed35ee63 100644 --- a/code/game/verbs/records.dm +++ b/code/game/verbs/records.dm @@ -143,7 +143,7 @@ dat += "" var/color = "#008800" - var/add_dat = "Add Admin Note
Add Confidential Admin Note
" + var/add_dat = "Add Admin Note
Add Confidential Admin Note
" switch(note_category) if(NOTE_MERIT) color = "#9e3dff" diff --git a/code/game/world.dm b/code/game/world.dm index fce40ca468..1307ebccbd 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -306,14 +306,11 @@ var/world_topic_spam_protect_time = world.timeofday var/s = "" if(CONFIG_GET(string/servername)) - s += "[CONFIG_GET(string/servername)]" - - if(SSmapping?.configs) - var/datum/map_config/MG = SSmapping.configs[GROUND_MAP] - s += "
Map: [MG?.map_name ? "[MG.map_name]" : ""]" - if(SSticker?.mode) - s += "
Mode: [SSticker.mode.name]" + s += "[CONFIG_GET(string/servername)]" + s += "
Hosted by: [CONFIG_GET(string/hostedby)]" s += "
Round time: [duration2text()]" + s += "
An RP server focused on a tight knit platoon fighting xenos!" + s += "
Shoot the shit *and* shoot shit." world.status = s diff --git a/code/modules/admin/game_master/game_master.dm b/code/modules/admin/game_master/game_master.dm index be98fdf17f..83acd45660 100644 --- a/code/modules/admin/game_master/game_master.dm +++ b/code/modules/admin/game_master/game_master.dm @@ -2,6 +2,9 @@ /// Assoc list that holds our custom game master objectives, formatted as atom = objective_string GLOBAL_LIST_EMPTY(game_master_objectives) +/// Percentage of characters end up clear when sent via radio message +GLOBAL_VAR_INIT(radio_communication_clarity, 100) + /proc/open_game_master_panel(client/using_client) set name = "Game Master Panel" set category = "Game Master" @@ -73,23 +76,32 @@ GLOBAL_LIST_EMPTY(game_master_objectives) /// End Objective Stuff + /// Communication stuff + + var/atom/movable/game_master_phone + + /// End Communication stuff + /// Holds what type of click intercept we are using var/current_click_intercept_action /datum/game_master/New(client/using_client) . = ..() - if(using_client.mob) - tgui_interact(using_client.mob) + tgui_interact(using_client.mob) current_submenus = list() + game_master_phone = new(null) + game_master_phone.AddComponent(/datum/component/phone/virtual, "Game Master", "white", "Company Command", null, PHONE_DO_NOT_DISTURB_ON, list(FACTION_MARINE, FACTION_COLONIST, FACTION_WY), list(FACTION_MARINE, FACTION_COLONIST, FACTION_WY), null, using_client) + using_client.click_intercept = src /datum/game_master/Destroy(force, ...) . = ..() submenu_types = null current_submenus = null + QDEL_NULL(game_master_phone) /datum/game_master/ui_data(mob/user) . = ..() @@ -104,7 +116,10 @@ GLOBAL_LIST_EMPTY(game_master_objectives) // Objective stuff data["objective_click_intercept"] = objective_click_intercept + data["game_master_objectives"] = length(GLOB.game_master_objectives) ? GLOB.game_master_objectives : "" + // Communication stuff + data["communication_clarity"] = GLOB.radio_communication_clarity return data @@ -150,6 +165,15 @@ GLOBAL_LIST_EMPTY(game_master_objectives) xeno_spawn_count = clamp(new_number, 1, 10) return + if("delete_all_xenos") + if(tgui_alert(ui.user, "Do you want to delete all xenos?", "Confirmation", list("Yes", "No")) != "Yes") + return + + for(var/mob/living/carbon/xenomorph/cycled_xeno in GLOB.alive_mob_list) + qdel(cycled_xeno) + + return + //Objective Section if("toggle_click_objective") if(objective_click_intercept) @@ -161,6 +185,33 @@ GLOBAL_LIST_EMPTY(game_master_objectives) current_click_intercept_action = OBJECTIVE_CLICK_INTERCEPT_ACTION return + if("jump_to") + if(!params["val"]) + return + + var/list/objective = params["val"] + + var/atom/objective_atom = locate(objective["object_ref"]) + + var/turf/objective_turf = get_turf(objective_atom) + + if(!objective_turf) + return TRUE + + var/client/jumping_client = ui.user.client + jumping_client.jump_to_turf(objective_turf) + return TRUE + + //Communication Section + if("use_game_master_phone") + game_master_phone.attack_hand(ui.user) + + if("set_communication_clarity") + var/new_clarity = text2num(params["clarity"]) + if(!isnum(new_clarity)) + return + + GLOB.radio_communication_clarity = clamp(new_clarity, 0, 100) /datum/game_master/ui_close(mob/user) . = ..() @@ -190,6 +241,11 @@ GLOBAL_LIST_EMPTY(game_master_objectives) switch(current_click_intercept_action) if(SPAWN_CLICK_INTERCEPT_ACTION) + if(LAZYACCESS(modifiers, MIDDLE_CLICK)) + if(isxeno(object)) + qdel(object) + return + var/spawning_xeno_type = RoleAuthority.get_caste_by_text(selected_xeno) if(!spawning_xeno_type) @@ -204,20 +260,22 @@ GLOBAL_LIST_EMPTY(game_master_objectives) return TRUE if(OBJECTIVE_CLICK_INTERCEPT_ACTION) - if(object in GLOB.game_master_objectives) + var/turf/object_turf = get_turf(object) + + if(!object_turf) + return TRUE + + if(SSminimaps.has_marker(object)) if(tgui_alert(user, "Do you want to remove [object] as an objective?", "Confirmation", list("Yes", "No")) != "Yes") return TRUE SSminimaps.remove_marker(object) - GLOB.game_master_objectives -= object + for(var/list/cycled_objective in GLOB.game_master_objectives) + var/atom/objective_object = locate(cycled_objective["object_ref"]) + if(objective_object == object) + GLOB.game_master_objectives.Remove(list(cycled_objective)) return TRUE - var/turf/object_turf = get_turf(object) - if(!object_turf) - return TRUE - - var/z_level = object_turf.z - if(tgui_alert(user, "Do you want to make [object] an objective?", "Confirmation", list("Yes", "No")) != "Yes") return TRUE @@ -239,14 +297,22 @@ GLOBAL_LIST_EMPTY(game_master_objectives) background.overlays += icon + var/z_level = object_turf?.z + + if(!object || !z_level) + return + SSminimaps.add_marker(object, z_level, MINIMAP_FLAG_USCM, given_image = background) - /// objective_info needs to be implemented both in the game master menu and overwatch TGUI - /// GLOB.game_master_objectives should also probably hold a datum with more info including the icon here for TGUI usage - /// - Morrow var/objective_info = tgui_input_text(user, "Objective info?", "Objective Info") - GLOB.game_master_objectives[object] = objective_info || "" + var/object_ref = REF(object) + + GLOB.game_master_objectives += list(list( + "object_name" = object.name, + "objective_info" = (objective_info || ""), + "object_ref" = object_ref, + )) return TRUE else diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index ca1072a95b..852c8b6b32 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -931,13 +931,8 @@ message_admins("[key_name(usr)] has fired \an [warhead.name] at ([target.x],[target.y],[target.z]).") warhead.warhead_impact(target) - if(istype(warhead, /obj/structure/ob_ammo/warhead/cluster)) - // so the user's screen can shake for the duration of the cluster, otherwise we get a runtime. - QDEL_IN(warhead, OB_CLUSTER_DURATION) - else - QDEL_IN(warhead, OB_CRASHING_DOWN) else - warhead.loc = target + warhead.forceMove(target) /client/proc/change_taskbar_icon() set name = "Set Taskbar Icon" diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index 8bbc999252..27e457be6d 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -336,86 +336,6 @@ /////////////////////////////////////new ban stuff - else if(href_list["jobban2"]) -// if(!check_rights(R_BAN)) return - /* - var/mob/M = locate(href_list["jobban2"]) - if(!ismob(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - if(!M.ckey) //sanity - to_chat(usr, "This mob has no ckey") - return - if(!RoleAuthority) - to_chat(usr, "The Role Authority is not set up!") - return - - var/datum/entity/player/P = get_player_from_key(M.ckey) - - var/dat = "" - var/body - var/jobs = "" - - /***********************************WARNING!************************************ - The jobban stuff looks mangled and disgusting - But it looks beautiful in-game - -Nodrak - ************************************WARNING!***********************************/ -//Regular jobs - //Command (Blue) - jobs += generate_job_ban_list(M, ROLES_CIC, "CIC", "ddddff") - jobs += "
" - // SUPPORT - jobs += generate_job_ban_list(M, ROLES_AUXIL_SUPPORT, "Support", "ccccff") - jobs += "
" - // MPs - jobs += generate_job_ban_list(M, ROLES_POLICE, "Police", "ffdddd") - jobs += "
" - //Engineering (Yellow) - jobs += generate_job_ban_list(M, ROLES_ENGINEERING, "Engineering", "fff5cc") - jobs += "
" - //Cargo (Yellow) //Copy paste, yada, yada. Hopefully Snail can rework this in the future. - jobs += generate_job_ban_list(M, ROLES_REQUISITION, "Requisition", "fff5cc") - jobs += "
" - //Medical (White) - jobs += generate_job_ban_list(M, ROLES_MEDICAL, "Medical", "ffeef0") - jobs += "
" - //Marines - jobs += generate_job_ban_list(M, ROLES_MARINES, "Marines", "ffeeee") - jobs += "
" - // MISC - jobs += generate_job_ban_list(M, ROLES_MISC, "Misc", "aaee55") - jobs += "
" - // Xenos (Orange) - jobs += generate_job_ban_list(M, ROLES_XENO, "Xenos", "a268b1") - jobs += "
" - //Extra (Orange) - var/isbanned_dept = jobban_isbanned(M, "Syndicate", P) - jobs += "" - jobs += "" - - //ERT - if(jobban_isbanned(M, "Emergency Response Team", P) || isbanned_dept) - jobs += "" - else - jobs += "" - - //Survivor - if(jobban_isbanned(M, "Survivor", P) || isbanned_dept) - jobs += "" - else - jobs += "" - - if(jobban_isbanned(M, "Agent", P) || isbanned_dept) - jobs += "" - else - jobs += "" - - body = "[jobs]" - dat = "[body]" - show_browser(usr, dat, "Job-Ban Panel: [M.name]", "jobban2", "size=800x490") - return*/ // DEPRECATED //JOBBAN'S INNARDS else if(href_list["jobban3"]) if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return @@ -697,7 +617,6 @@ to_world(SPAN_NOTICE("The mode is now: [GLOB.master_mode]!")) Game() // updates the main game menu SSticker.save_mode(GLOB.master_mode) - .(href, list("c_mode"=1)) else if(href_list["f_secret2"]) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index d5d44a0479..d1e7f83dac 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -321,7 +321,7 @@ I = icon(icon_file, icon_state, SOUTH) var/c = initial(item.color) if (!isnull(c) && c != "#FFFFFF") - I.Blend(initial(c), ICON_MULTIPLY) + I.Blend(c, ICON_MULTIPLY) else if (ispath(k, /obj/effect/essentials_set)) var/obj/effect/essentials_set/es_set = new k() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b09589990e..2e1f8f33f2 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1414,11 +1414,8 @@ var/const/MAX_SAVE_SLOTS = 10 var/all_ok = TRUE for(var/i=1, i<=length(new_xeno_prefix), i++) var/ascii_char = text2ascii(new_xeno_prefix,i) - switch(ascii_char) - // A .. Z - if(65 to 90) //Uppercase Letters will work - else - all_ok = FALSE //everything else - won't + if(ascii_char < 65 || ascii_char > 90) + all_ok = FALSE //everything else - won't if(all_ok) xeno_prefix = new_xeno_prefix owner.load_xeno_name() diff --git a/code/modules/clothing/glasses/night.dm b/code/modules/clothing/glasses/night.dm index afb711c3ca..2a3780832e 100644 --- a/code/modules/clothing/glasses/night.dm +++ b/code/modules/clothing/glasses/night.dm @@ -187,7 +187,7 @@ if(target) var/obj/item/clothing/glasses/night/m56_goggles/G = target G.set_far_sight(owner, !G.far_sight) - to_chat(owner, SPAN_NOTICE("You [G.far_sight ? "enable" : "disable"] \the [src]'s far sight system.")) + to_chat(owner, SPAN_NOTICE("You [G.far_sight ? "enable" : "disable"] \the [G]'s far sight system.")) /datum/action/item_action/m56_goggles/far_sight/update_button_icon() if(!target) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index d969587e32..cc7fee7724 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -423,7 +423,7 @@ return var/obj/item/weapon/gun/W = usr.get_active_hand() if (W.w_class > SIZE_MEDIUM) - to_chat(usr, SPAN_DANGER("This gun won't fit in \the belt!")) + to_chat(usr, SPAN_DANGER("This gun won't fit in the belt!")) return holstered = usr.get_active_hand() usr.drop_held_item() diff --git a/code/modules/cm_aliens/XenoStructures.dm b/code/modules/cm_aliens/XenoStructures.dm index 73ced80994..b1fe57d55d 100644 --- a/code/modules/cm_aliens/XenoStructures.dm +++ b/code/modules/cm_aliens/XenoStructures.dm @@ -752,7 +752,7 @@ /obj/effect/alien/resin/resin_pillar/proc/handle_attackby(turf/T, obj/item/I, mob/M) SIGNAL_HANDLER attackby(I, M) - return COMPONENT_CANCEL_ATTACKBY + return COMPONENT_CANCEL_RESIN_ATTACKBY /obj/effect/alien/resin/resin_pillar/proc/handle_hitby(turf/T, atom/movable/AM) SIGNAL_HANDLER diff --git a/code/modules/cm_marines/orbital_cannon.dm b/code/modules/cm_marines/orbital_cannon.dm index 8d80f80860..78bdfc3d77 100644 --- a/code/modules/cm_marines/orbital_cannon.dm +++ b/code/modules/cm_marines/orbital_cannon.dm @@ -217,15 +217,16 @@ var/list/ob_type_fuel_requirements if(user) tray.warhead.source_mob = user - tray.warhead.warhead_impact(target) + var/obj/structure/ob_ammo/warhead/warhead = tray.warhead + tray.warhead = null + warhead.moveToNullspace() + warhead.warhead_impact(target) sleep(OB_CRASHING_DOWN) ob_cannon_busy = FALSE - chambered_tray = FALSE tray.fuel_amt = 0 - QDEL_NULL(tray.warhead) tray.update_icon() update_icon() @@ -357,6 +358,9 @@ var/list/ob_type_fuel_requirements var/max_shake_factor var/max_knockdown_time + // Note that the warhead should be cleared of location by the firing proc, + // then auto-delete at the end of the warhead_impact implementation + /obj/structure/ob_ammo/warhead/proc/warhead_impact(turf/target) // make damn sure everyone hears it playsound(target, 'sound/weapons/gun_orbital_travel.ogg', 100, 1, 75) @@ -366,7 +370,7 @@ var/list/ob_type_fuel_requirements message_admins(FONT_SIZE_XL("CLICK TO CANCEL THIS OB")) var/relative_dir - for(var/mob/M in range(30, target)) + for(var/mob/M in urange(30, target)) if(get_turf(M) == target) relative_dir = 0 else @@ -377,7 +381,7 @@ var/list/ob_type_fuel_requirements ) sleep(OB_TRAVEL_TIMING/3) - for(var/mob/M in range(25, target)) + for(var/mob/M in urange(25, target)) if(get_turf(M) == target) relative_dir = 0 else @@ -388,7 +392,7 @@ var/list/ob_type_fuel_requirements ) sleep(OB_TRAVEL_TIMING/3) - for(var/mob/M in range(15, target)) + for(var/mob/M in urange(15, target)) M.show_message( \ SPAN_HIGHDANGER("OH GOD THE SKY WILL EXPLODE!!!"), SHOW_MESSAGE_VISIBLE, \ SPAN_HIGHDANGER("YOU SHOULDN'T BE HERE!"), SHOW_MESSAGE_AUDIBLE \ @@ -455,6 +459,7 @@ var/list/ob_type_fuel_requirements handle_ob_shake(target) sleep(double_explosion_delay) cell_explosion(target, standard_power, standard_falloff, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, cause_data) + qdel(src) return // Checks turf around the target @@ -464,8 +469,11 @@ var/list/ob_type_fuel_requirements handle_ob_shake(target) sleep(double_explosion_delay) cell_explosion(target, standard_power, standard_falloff, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, cause_data) + qdel(src) return + qdel(src) + /obj/structure/ob_ammo/warhead/incendiary name = "\improper Incendiary orbital warhead" warhead_kind = "incendiary" @@ -497,6 +505,7 @@ var/list/ob_type_fuel_requirements sleep(clear_delay) fire_spread(target, cause_data, distance, fire_level, burn_level, fire_color, fire_type, TURF_PROTECTION_OB) + qdel(src) /obj/structure/ob_ammo/warhead/cluster name = "\improper Cluster orbital warhead" @@ -529,12 +538,16 @@ var/list/ob_type_fuel_requirements for(var/i = 1 to total_amount) for(var/k = 1 to instant_amount) - var/turf/U = pick(turf_list) - if(protected_by_pylon(TURF_PROTECTION_OB, U)) //If the turf somehow gained OB protection while the cluster was firing + var/turf/selected_turf = pick(turf_list) + if(protected_by_pylon(TURF_PROTECTION_OB, selected_turf)) + continue + var/area/selected_area = get_area(selected_turf) + if(CEILING_IS_PROTECTED(selected_area?.ceiling, CEILING_PROTECTION_TIER_4)) continue - fire_in_a_hole(U) + fire_in_a_hole(selected_turf) sleep(delay_between_clusters) + QDEL_IN(src, 5 SECONDS) // Leave time for last handle_ob_shake below /obj/structure/ob_ammo/warhead/cluster/proc/fire_in_a_hole(turf/loc) new /obj/effect/overlay/temp/blinking_laser (loc) diff --git a/code/modules/cm_phone/handset.dm b/code/modules/cm_phone/handset.dm new file mode 100644 index 0000000000..66ecdeb0d0 --- /dev/null +++ b/code/modules/cm_phone/handset.dm @@ -0,0 +1,179 @@ + +#define HANDSET_RANGE 7 + +/obj/item/handset + name = "telephone" + icon = 'icons/obj/items/misc.dmi' + icon_state = "rpb_phone" + + w_class = SIZE_LARGE + + flags_atom = FPRINT|USES_HEARING + + var/datum/component/phone/phone_component + + var/atom/holder + + var/datum/effects/tethering/tether_effect + + var/raised = FALSE + var/zlevel_transfer = FALSE + var/zlevel_transfer_timer = TIMER_ID_NULL + var/zlevel_transfer_timeout = 5 SECONDS + +/obj/item/handset/Initialize(mapload, phone_component, holder) + . = ..() + + src.phone_component = phone_component + src.holder = holder + attach_to(src.holder) + +/obj/item/handset/Destroy() + phone_component = null + holder = null + remove_attached() + return ..() + +/obj/item/handset/hear_talk(mob/living/talker, message, verb="says", datum/language/message_language, italics = 0) + . = ..() + + if(talker == loc) + phone_component.handle_speak(message, message_language, talker, direct_talking = TRUE) + return + + var/distance = get_dist(src, talker) + + if(distance > 1) + return + + message = stars(message, (100 - (distance * 40 + rand(-15, 15)))) + + phone_component.handle_speak(message, message_language, talker, direct_talking = FALSE) + +/obj/item/handset/proc/attach_to(atom/to_attach) + if(!istype(to_attach)) + return + + remove_attached() + + holder = to_attach + +/obj/item/handset/proc/remove_attached() + holder = null + reset_tether() + +/obj/item/handset/proc/reset_tether() + SIGNAL_HANDLER + if (tether_effect) + UnregisterSignal(tether_effect, COMSIG_PARENT_QDELETING) + if(!QDESTROYING(tether_effect)) + qdel(tether_effect) + tether_effect = null + if(!do_zlevel_check()) + on_beam_removed() + +/obj/item/handset/attack_hand(mob/user) + if(holder && get_dist(user, holder) > HANDSET_RANGE) + return FALSE + return ..() + +/obj/item/handset/proc/on_beam_removed() + if(!holder) + return + + if(!loc) + return + + if(get_dist(holder, src) > HANDSET_RANGE) + phone_component.recall_handset() + + var/atom/tether_to = get_atom_on_turf(src) + + var/atom/tether_from = get_atom_on_turf(holder) + + if(tether_from == tether_to) + return + + var/list/tether_effects = apply_tether(tether_from, tether_to, range = HANDSET_RANGE, icon = "wire", always_face = FALSE) + tether_effect = tether_effects["tetherer_tether"] + RegisterSignal(tether_effect, COMSIG_PARENT_QDELETING, PROC_REF(reset_tether)) + +/obj/item/handset/attack_self(mob/user) + ..() + + if(raised) + set_raised(FALSE, user) + to_chat(user, SPAN_NOTICE("You lower [src].")) + else + set_raised(TRUE, user) + to_chat(user, SPAN_NOTICE("You raise [src] to your ear.")) + +/obj/item/handset/proc/set_raised(to_raise, mob/living/carbon/human/user) + if(!istype(user)) + return + + if(!to_raise) + raised = FALSE + item_state = "rpb_phone" + else + raised = TRUE + item_state = "rpb_phone_ear" + + user.update_inv_r_hand() + user.update_inv_l_hand() + +/obj/item/handset/dropped(mob/user) + . = ..() + set_raised(FALSE, user) + reset_tether() + +/obj/item/handset/on_enter_storage(obj/item/storage/S) + . = ..() + if(phone_component) + phone_component.recall_handset() + +/obj/item/handset/forceMove(atom/dest) + . = ..() + if(.) + reset_tether() + +/obj/item/handset/moveToNullspace() + . = ..() + if(.) + reset_tether() + +/obj/item/handset/proc/do_zlevel_check() + if(!holder || !loc?.z || !holder.z) + return FALSE + + if(zlevel_transfer) + if(loc.z == holder.z) + zlevel_transfer = FALSE + if(zlevel_transfer_timer) + deltimer(zlevel_transfer_timer) + UnregisterSignal(holder, COMSIG_MOVABLE_MOVED) + return FALSE + return TRUE + + if(holder && loc.z != holder.z) + zlevel_transfer = TRUE + zlevel_transfer_timer = addtimer(CALLBACK(src, PROC_REF(try_doing_tether)), zlevel_transfer_timeout, TIMER_UNIQUE|TIMER_STOPPABLE) + RegisterSignal(holder, COMSIG_MOVABLE_MOVED, PROC_REF(transmitter_move_handler)) + return TRUE + return FALSE + +/obj/item/handset/proc/transmitter_move_handler(datum/source) + SIGNAL_HANDLER + zlevel_transfer = FALSE + if(zlevel_transfer_timer) + deltimer(zlevel_transfer_timer) + UnregisterSignal(holder, COMSIG_MOVABLE_MOVED) + reset_tether() + +/obj/item/handset/proc/try_doing_tether() + zlevel_transfer_timer = TIMER_ID_NULL + zlevel_transfer = FALSE + UnregisterSignal(holder, COMSIG_MOVABLE_MOVED) + reset_tether() + +#undef HANDSET_RANGE diff --git a/code/modules/cm_phone/internal_phone.dm b/code/modules/cm_phone/internal_phone.dm deleted file mode 100644 index 96530503aa..0000000000 --- a/code/modules/cm_phone/internal_phone.dm +++ /dev/null @@ -1,15 +0,0 @@ -/obj/structure/transmitter/internal - name = "\improper internal telephone receiver" - - phone_type = /obj/item/phone - - var/atom/relay_obj - -/obj/structure/transmitter/internal/ui_host(mob/user, datum/tgui/ui) - if(!relay_obj) - return ..() - return relay_obj - -/obj/structure/transmitter/internal/Destroy() - relay_obj = null - return ..() diff --git a/code/modules/cm_phone/phone.dm b/code/modules/cm_phone/phone.dm deleted file mode 100644 index fd9c8aa02d..0000000000 --- a/code/modules/cm_phone/phone.dm +++ /dev/null @@ -1,623 +0,0 @@ -GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) - -/obj/structure/transmitter - name = "telephone receiver" - icon = 'icons/obj/structures/structures.dmi' - icon_state = "wall_phone" - desc = "It is a wall mounted telephone. The fine text reads: To log your details with the mainframe please insert your keycard into the slot below. Unfortunately the slot is jammed. You can still use the phone, however." - - var/phone_category = "Uncategorised" - var/phone_color = "white" - var/phone_id = "Telephone" - var/phone_icon - - var/obj/item/phone/attached_to - var/atom/tether_holder - - var/obj/structure/transmitter/calling - var/obj/structure/transmitter/caller - - var/next_ring = 0 - - var/phone_type = /obj/item/phone - - var/range = 7 - - var/enabled = TRUE - /// Whether or not the phone is receiving calls or not. Varies between on/off or forcibly on/off. - var/do_not_disturb = PHONE_DND_OFF - - var/base_icon_state - - var/timeout_timer_id - var/timeout_duration = 30 SECONDS - - var/list/networks_receive = list(FACTION_MARINE) - var/list/networks_transmit = list(FACTION_MARINE) - -/obj/structure/transmitter/hidden - do_not_disturb = PHONE_DND_FORCED - -/obj/structure/transmitter/Initialize(mapload, ...) - . = ..() - base_icon_state = icon_state - - attached_to = new phone_type(src) - RegisterSignal(attached_to, COMSIG_PARENT_PREQDELETED, PROC_REF(override_delete)) - update_icon() - - if(!get_turf(src)) - return - - GLOB.transmitters += src - -/obj/structure/transmitter/update_icon() - . = ..() - SEND_SIGNAL(src, COMSIG_TRANSMITTER_UPDATE_ICON) - if(attached_to.loc != src) - icon_state = "[base_icon_state]_ear" - return - - if(caller) - icon_state = "[base_icon_state]_ring" - else - icon_state = base_icon_state - -/obj/structure/transmitter/proc/override_delete() - SIGNAL_HANDLER - recall_phone() - return COMPONENT_ABORT_QDEL - - -#define TRANSMITTER_UNAVAILABLE(T) (\ - T.get_calling_phone() \ - || !T.attached_to \ - || T.attached_to.loc != T \ - || !T.enabled\ -) - -/obj/structure/transmitter/proc/get_transmitters() - var/list/phone_list = list() - - for(var/possible_phone in GLOB.transmitters) - var/obj/structure/transmitter/target_phone = possible_phone - var/current_dnd = FALSE - switch(target_phone.do_not_disturb) - if(PHONE_DND_ON, PHONE_DND_FORCED) - current_dnd = TRUE - if(TRANSMITTER_UNAVAILABLE(target_phone) || current_dnd) // Phone not available - continue - var/net_link = FALSE - for(var/network in networks_transmit) - if(network in target_phone.networks_receive) - net_link = TRUE - continue - if(!net_link) - continue - - var/id = target_phone.phone_id - var/num_id = 1 - while(id in phone_list) - id = "[target_phone.phone_id] [num_id]" - num_id++ - - target_phone.phone_id = id - phone_list[id] = target_phone - - return phone_list - -/obj/structure/transmitter/ui_status(mob/user, datum/ui_state/state) - . = ..() - if(TRANSMITTER_UNAVAILABLE(src)) - return UI_CLOSE - -/obj/structure/transmitter/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - if(TRANSMITTER_UNAVAILABLE(src)) - return - - if(!ishuman(usr)) - return - - var/mob/living/carbon/human/user = usr - - switch(action) - if("call_phone") - call_phone(user, params["phone_id"]) - . = TRUE - SStgui.close_uis(src) - if("toggle_dnd") - toggle_dnd(user) - - update_icon() - -/obj/structure/transmitter/ui_data(mob/user) - var/list/data = list() - - data["availability"] = do_not_disturb - - return data - -/obj/structure/transmitter/ui_static_data(mob/user) - . = list() - - .["available_transmitters"] = get_transmitters() - list(phone_id) - var/list/transmitters = list() - for(var/i in GLOB.transmitters) - var/obj/structure/transmitter/T = i - transmitters += list(list( - "phone_category" = T.phone_category, - "phone_color" = T.phone_color, - "phone_id" = T.phone_id, - "phone_icon" = T.phone_icon - )) - - .["transmitters"] = transmitters - -/obj/structure/transmitter/proc/call_phone(mob/living/carbon/human/user, calling_phone_id) - var/list/transmitters = get_transmitters() - transmitters -= phone_id - - if(!length(transmitters) || !(calling_phone_id in transmitters)) - to_chat(user, SPAN_PURPLE("[icon2html(src, user)] No transmitters could be located to call!")) - return - - var/obj/structure/transmitter/T = transmitters[calling_phone_id] - if(!istype(T) || QDELETED(T)) - transmitters -= T - CRASH("Qdelled/improper atom inside transmitters list! (istype returned: [istype(T)], QDELETED returned: [QDELETED(T)])") - - if(TRANSMITTER_UNAVAILABLE(T)) - return - - calling = T - T.caller = src - T.update_icon() - - to_chat(user, SPAN_PURPLE("[icon2html(src, user)] Dialing [calling_phone_id]..")) - playsound(get_turf(user), "rtb_handset") - timeout_timer_id = addtimer(CALLBACK(src, PROC_REF(reset_call), TRUE), timeout_duration, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE) - - START_PROCESSING(SSobj, src) - START_PROCESSING(SSobj, T) - - user.put_in_hands(attached_to) - -/obj/structure/transmitter/proc/toggle_dnd(mob/living/carbon/human/user) - switch(do_not_disturb) - if(PHONE_DND_ON) - do_not_disturb = PHONE_DND_OFF - to_chat(user, SPAN_NOTICE("Do Not Disturb has been disabled. You can now receive calls.")) - if(PHONE_DND_OFF) - do_not_disturb = PHONE_DND_ON - to_chat(user, SPAN_WARNING("Do Not Disturb has been enabled. No calls will be received.")) - else - return FALSE - return TRUE - -/obj/structure/transmitter/attack_hand(mob/user) - . = ..() - - if(!attached_to || attached_to.loc != src) - return - - if(!ishuman(user)) - return - - if(!enabled) - return - - if(!get_calling_phone()) - tgui_interact(user) - return - - var/obj/structure/transmitter/T = get_calling_phone() - - if(T.attached_to && ismob(T.attached_to.loc)) - var/mob/M = T.attached_to.loc - to_chat(M, SPAN_PURPLE("[icon2html(src, M)] [phone_id] has picked up.")) - if(T.timeout_timer_id) - deltimer(T.timeout_timer_id) - T.timeout_timer_id = null - - to_chat(user, SPAN_PURPLE("[icon2html(src, user)] Picked up a call from [T.phone_id].")) - playsound(get_turf(user), "rtb_handset") - - user.put_in_active_hand(attached_to) - update_icon() - - -#undef TRANSMITTER_UNAVAILABLE - -/obj/structure/transmitter/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "PhoneMenu", phone_id) - ui.open() - -/obj/structure/transmitter/proc/set_tether_holder(atom/A) - tether_holder = A - - if(attached_to) - attached_to.reset_tether() - -/obj/structure/transmitter/proc/reset_call(timeout = FALSE) - var/obj/structure/transmitter/T = get_calling_phone() - if(T) - if(T.attached_to && ismob(T.attached_to.loc)) - var/mob/M = T.attached_to.loc - to_chat(M, SPAN_PURPLE("[icon2html(src, M)] [phone_id] has hung up on you.")) - - if(attached_to && ismob(attached_to.loc)) - var/mob/M = attached_to.loc - if(timeout) - to_chat(M, SPAN_PURPLE("[icon2html(src, M)] Your call to [T.phone_id] has reached voicemail, you immediately disconnect the line.")) - else - to_chat(M, SPAN_PURPLE("[icon2html(src, M)] You have hung up on [T.phone_id].")) - - if(calling) - calling.caller = null - calling = null - - if(caller) - caller.calling = null - caller = null - - if(timeout_timer_id) - deltimer(timeout_timer_id) - timeout_timer_id = null - - if(T) - if(T.timeout_timer_id) - deltimer(T.timeout_timer_id) - T.timeout_timer_id = null - - T.update_icon() - STOP_PROCESSING(SSobj, T) - - STOP_PROCESSING(SSobj, src) - -/obj/structure/transmitter/process() - if(caller) - if(!attached_to) - STOP_PROCESSING(SSobj, src) - return - - if(attached_to.loc == src) - if(next_ring < world.time) - playsound(loc, 'sound/machines/telephone/telephone_ring.ogg', 75) - visible_message(SPAN_WARNING("[src] rings vigorously!")) - next_ring = world.time + 3 SECONDS - - else if(calling) - var/obj/structure/transmitter/T = get_calling_phone() - if(!T) - STOP_PROCESSING(SSobj, src) - return - - var/obj/item/phone/P = T.attached_to - - if(P && attached_to.loc == src && P.loc == T && next_ring < world.time) - playsound(get_turf(attached_to), 'sound/machines/telephone/telephone_ring.ogg', 20, FALSE, 14) - visible_message(SPAN_WARNING("[src] rings vigorously!")) - next_ring = world.time + 3 SECONDS - - else - STOP_PROCESSING(SSobj, src) - return - - -/obj/structure/transmitter/proc/recall_phone() - if(ismob(attached_to.loc)) - var/mob/M = attached_to.loc - M.drop_held_item(attached_to) - playsound(get_turf(M), "rtb_handset", 100, FALSE, 7) - - attached_to.forceMove(src) - reset_call() - - update_icon() - -/obj/structure/transmitter/proc/get_calling_phone() - if(calling) - return calling - else if(caller) - return caller - - return - -/obj/structure/transmitter/proc/handle_speak(message, datum/language/L, mob/speaking) - if(L.flags & SIGNLANG) return - - var/obj/structure/transmitter/T = get_calling_phone() - if(!istype(T)) - return - - var/obj/item/phone/P = T.attached_to - - if(!P || !attached_to) - return - - P.handle_hear(message, L, speaking) - attached_to.handle_hear(message, L, speaking) - log_say("TELEPHONE: [key_name(speaking)] on Phone '[phone_id]' to '[T.phone_id]' said '[message]'") - -/obj/structure/transmitter/attackby(obj/item/W, mob/user) - if(W == attached_to) - recall_phone() - else - . = ..() - -/obj/structure/transmitter/Destroy() - if(attached_to) - if(attached_to.loc == src) - UnregisterSignal(attached_to, COMSIG_PARENT_PREQDELETED) - qdel(attached_to) - else - attached_to.attached_to = null - attached_to = null - - GLOB.transmitters -= src - SStgui.close_uis(src) - - reset_call() - return ..() - -/obj/item/phone - name = "telephone" - icon = 'icons/obj/items/misc.dmi' - icon_state = "rpb_phone" - - w_class = SIZE_LARGE - - var/obj/structure/transmitter/attached_to - var/datum/effects/tethering/tether_effect - - var/raised = FALSE - var/zlevel_transfer = FALSE - var/zlevel_transfer_timer = TIMER_ID_NULL - var/zlevel_transfer_timeout = 5 SECONDS - -/obj/item/phone/Initialize(mapload) - . = ..() - if(istype(loc, /obj/structure/transmitter)) - attach_to(loc) - -/obj/item/phone/Destroy() - remove_attached() - return ..() - -/obj/item/phone/proc/handle_speak(mob/speaking, message, datum/language/L) - SIGNAL_HANDLER - - if(!attached_to || loc == attached_to) - UnregisterSignal(speaking, COMSIG_LIVING_SPEAK) - return - - attached_to.handle_speak(message, L, speaking) - -/obj/item/phone/proc/handle_hear(message, datum/language/L, mob/speaking) - if(!attached_to) - return - - var/obj/structure/transmitter/T = attached_to.get_calling_phone() - - if(!T) - return - - if(!ismob(loc)) - return - - var/loudness = 0 - if(raised) - loudness = 3 - - var/mob/M = loc - var/vname = T.phone_id - - if(M == speaking) - vname = attached_to.phone_id - - M.hear_radio( - message, "says", L, part_a = "", - part_b = " ", vname = vname, - speaker = speaking, command = loudness, no_paygrade = TRUE) - -/obj/item/phone/proc/attach_to(obj/structure/transmitter/to_attach) - if(!istype(to_attach)) - return - - remove_attached() - - attached_to = to_attach - - -/obj/item/phone/proc/remove_attached() - attached_to = null - reset_tether() - -/obj/item/phone/proc/reset_tether() - SIGNAL_HANDLER - if (tether_effect) - UnregisterSignal(tether_effect, COMSIG_PARENT_QDELETING) - if(!QDESTROYING(tether_effect)) - qdel(tether_effect) - tether_effect = null - if(!do_zlevel_check()) - on_beam_removed() - -/obj/item/phone/attack_hand(mob/user) - if(attached_to && get_dist(user, attached_to) > attached_to.range) - return FALSE - return ..() - - -/obj/item/phone/proc/on_beam_removed() - if(!attached_to) - return - - if(loc == attached_to) - return - - if(get_dist(attached_to, src) > attached_to.range) - attached_to.recall_phone() - - var/atom/tether_to = src - - if(loc != get_turf(src)) - tether_to = loc - if(tether_to.loc != get_turf(tether_to)) - attached_to.recall_phone() - return - - var/atom/tether_from = attached_to - - if(attached_to.tether_holder) - tether_from = attached_to.tether_holder - - if(tether_from == tether_to) - return - - var/list/tether_effects = apply_tether(tether_from, tether_to, range = attached_to.range, icon = "wire", always_face = FALSE) - tether_effect = tether_effects["tetherer_tether"] - RegisterSignal(tether_effect, COMSIG_PARENT_QDELETING, PROC_REF(reset_tether)) - -/obj/item/phone/attack_self(mob/user) - ..() - if(raised) - set_raised(FALSE, user) - to_chat(user, SPAN_NOTICE("You lower [src].")) - else - set_raised(TRUE, user) - to_chat(user, SPAN_NOTICE("You raise [src] to your ear.")) - - -/obj/item/phone/proc/set_raised(to_raise, mob/living/carbon/human/H) - if(!istype(H)) - return - - if(!to_raise) - raised = FALSE - item_state = "rpb_phone" - - var/obj/item/device/radio/R = H.get_type_in_ears(/obj/item/device/radio) - R?.on = TRUE - else - raised = TRUE - item_state = "rpb_phone_ear" - - var/obj/item/device/radio/R = H.get_type_in_ears(/obj/item/device/radio) - R?.on = FALSE - - H.update_inv_r_hand() - H.update_inv_l_hand() - -/obj/item/phone/dropped(mob/user) - . = ..() - UnregisterSignal(user, COMSIG_LIVING_SPEAK) - - set_raised(FALSE, user) - -/obj/item/phone/on_enter_storage(obj/item/storage/S) - . = ..() - if(attached_to) - attached_to.recall_phone() - -/obj/item/phone/pickup(mob/user) - . = ..() - RegisterSignal(user, COMSIG_LIVING_SPEAK, PROC_REF(handle_speak)) - -/obj/item/phone/forceMove(atom/dest) - . = ..() - if(.) - reset_tether() - -/obj/item/phone/proc/do_zlevel_check() - if(!attached_to || !loc.z || !attached_to.z) - return FALSE - - if(zlevel_transfer) - if(loc.z == attached_to.z) - zlevel_transfer = FALSE - if(zlevel_transfer_timer) - deltimer(zlevel_transfer_timer) - UnregisterSignal(attached_to, COMSIG_MOVABLE_MOVED) - return FALSE - return TRUE - - if(attached_to && loc.z != attached_to.z) - zlevel_transfer = TRUE - zlevel_transfer_timer = addtimer(CALLBACK(src, PROC_REF(try_doing_tether)), zlevel_transfer_timeout, TIMER_UNIQUE|TIMER_STOPPABLE) - RegisterSignal(attached_to, COMSIG_MOVABLE_MOVED, PROC_REF(transmitter_move_handler)) - return TRUE - return FALSE - -/obj/item/phone/proc/transmitter_move_handler(datum/source) - SIGNAL_HANDLER - zlevel_transfer = FALSE - if(zlevel_transfer_timer) - deltimer(zlevel_transfer_timer) - UnregisterSignal(attached_to, COMSIG_MOVABLE_MOVED) - reset_tether() - -/obj/item/phone/proc/try_doing_tether() - zlevel_transfer_timer = TIMER_ID_NULL - zlevel_transfer = FALSE - UnregisterSignal(attached_to, COMSIG_MOVABLE_MOVED) - reset_tether() - -/obj/structure/transmitter/no_dnd - do_not_disturb = PHONE_DND_FORBIDDEN - -//rotary desk phones (need a touch tone handset at some point) -/obj/structure/transmitter/rotary - name = "rotary telephone" - icon_state = "rotary_phone" - desc = "The finger plate is a little stiff." - -/obj/structure/transmitter/rotary/no_dnd - do_not_disturb = PHONE_DND_FORBIDDEN - -/obj/structure/transmitter/touchtone - name = "touch-tone telephone" - icon_state = "rotary_phone"//placeholder - desc = "Ancient aliens, it's all true. I'm an expert just like you!" - -/obj/structure/transmitter/colony_net - networks_receive = list(FACTION_COLONIST) - networks_transmit = list(FACTION_COLONIST) - -/obj/structure/transmitter/colony_net/rotary - name = "rotary telephone" - icon_state = "rotary_phone" - desc = "The finger plate is a little stiff." - -/obj/structure/transmitter/upp_net - networks_receive = list(FACTION_UPP) - networks_transmit = list(FACTION_UPP) - -/obj/structure/transmitter/upp_net/rotary - name = "rotary telephone" - icon_state = "rotary_phone" - desc = "The finger plate is a little stiff." - -/obj/structure/transmitter/clf_net - networks_receive = list(FACTION_CLF) - networks_transmit = list(FACTION_CLF) - -/obj/structure/transmitter/clf_net/rotary - name = "rotary telephone" - icon_state = "rotary_phone" - desc = "The finger plate is a little stiff." - -/obj/structure/transmitter/wy_net - networks_receive = list(FACTION_WY) - networks_transmit = list(FACTION_WY) - -/obj/structure/transmitter/wy_net/rotary - name = "rotary telephone" - icon_state = "rotary_phone" - desc = "The finger plate is a little stiff." diff --git a/code/modules/cm_phone/phone_base.dm b/code/modules/cm_phone/phone_base.dm new file mode 100644 index 0000000000..4b74262b9e --- /dev/null +++ b/code/modules/cm_phone/phone_base.dm @@ -0,0 +1,100 @@ +/obj/structure/phone_base + name = "telephone receiver" + icon = 'icons/obj/structures/structures.dmi' + icon_state = "wall_phone" + desc = "It is a wall mounted telephone. The fine text reads: To log your details with the mainframe please insert your keycard into the slot below. Unfortunately the slot is jammed. You can still use the phone, however." + + var/phone_category = "Uncategorised" + var/phone_color = "white" + var/phone_id = "Telephone" + var/phone_icon + + /// Whether or not the phone is receiving calls or not. Varies between on/off or forcibly on/off. + var/do_not_disturb = PHONE_DO_NOT_DISTURB_OFF + + var/list/networks_receive = list(FACTION_MARINE) + var/list/networks_transmit = list(FACTION_MARINE) + +/obj/structure/phone_base/Initialize(mapload, ...) + . = ..() + + AddComponent(/datum/component/phone, phone_category, phone_color, phone_id, phone_icon, do_not_disturb, networks_receive, networks_transmit) + RegisterSignal(src, COMSIG_ATOM_PHONE_PICKED_UP, PROC_REF(phone_picked_up)) + RegisterSignal(src, COMSIG_ATOM_PHONE_HUNG_UP, PROC_REF(phone_hung_up)) + RegisterSignal(src, COMSIG_ATOM_PHONE_RINGING, PROC_REF(phone_ringing)) + RegisterSignal(src, COMSIG_ATOM_PHONE_STOPPED_RINGING, PROC_REF(phone_stopped_ringing)) + +/obj/structure/phone_base/Destroy() + networks_receive = null + networks_transmit = null + return ..() + +/obj/structure/phone_base/proc/phone_picked_up() + icon_state = PHONE_OFF_BASE_UNIT_ICON_STATE + +/obj/structure/phone_base/proc/phone_hung_up() + icon_state = PHONE_ON_BASE_UNIT_ICON_STATE + +/obj/structure/phone_base/proc/phone_ringing() + icon_state = PHONE_RINGING_ICON_STATE + +/obj/structure/phone_base/proc/phone_stopped_ringing() + if(icon_state == PHONE_OFF_BASE_UNIT_ICON_STATE) + return + icon_state = PHONE_ON_BASE_UNIT_ICON_STATE + +/obj/structure/phone_base/hidden + do_not_disturb = PHONE_DO_NOT_DISTURB_FORCED + +/obj/structure/phone_base/no_dnd + do_not_disturb = PHONE_DO_NOT_DISTURB_FORBIDDEN + +//rotary desk phones (need a touch tone handset at some point) +/obj/structure/phone_base/rotary + name = "rotary telephone" + icon_state = "rotary_phone" + desc = "The finger plate is a little stiff." + +/obj/structure/phone_base/rotary/no_dnd + do_not_disturb = PHONE_DO_NOT_DISTURB_FORBIDDEN + +/obj/structure/phone_base/touchtone + name = "touch-tone telephone" + icon_state = "rotary_phone"//placeholder + desc = "Ancient aliens, it's all true. I'm an expert just like you!" + +/obj/structure/phone_base/colony_net + networks_receive = list(FACTION_COLONIST) + networks_transmit = list(FACTION_COLONIST) + +/obj/structure/phone_base/colony_net/rotary + name = "rotary telephone" + icon_state = "rotary_phone" + desc = "The finger plate is a little stiff." + +/obj/structure/phone_base/upp_net + networks_receive = list(FACTION_UPP) + networks_transmit = list(FACTION_UPP) + +/obj/structure/phone_base/upp_net/rotary + name = "rotary telephone" + icon_state = "rotary_phone" + desc = "The finger plate is a little stiff." + +/obj/structure/phone_base/clf_net + networks_receive = list(FACTION_CLF) + networks_transmit = list(FACTION_CLF) + +/obj/structure/phone_base/clf_net/rotary + name = "rotary telephone" + icon_state = "rotary_phone" + desc = "The finger plate is a little stiff." + +/obj/structure/phone_base/wy_net + networks_receive = list(FACTION_WY) + networks_transmit = list(FACTION_WY) + +/obj/structure/phone_base/wy_net/rotary + name = "rotary telephone" + icon_state = "rotary_phone" + desc = "The finger plate is a little stiff." diff --git a/code/modules/desert_dam/filtration/consoles.dm b/code/modules/desert_dam/filtration/consoles.dm index 038b96eb47..8c2814fafd 100644 --- a/code/modules/desert_dam/filtration/consoles.dm +++ b/code/modules/desert_dam/filtration/consoles.dm @@ -35,8 +35,6 @@ var/global/river_activated = FALSE if (prob(10)) get_broken() return - else - return /obj/structure/machinery/filtration/console/proc/get_broken() if(damaged) diff --git a/code/modules/flufftext/Chinese.dm b/code/modules/flufftext/Chinese.dm index 36da1d307a..6b19dd61fc 100644 --- a/code/modules/flufftext/Chinese.dm +++ b/code/modules/flufftext/Chinese.dm @@ -62,12 +62,12 @@ //remove complex/simple -u- glide final_syllables if(initial.initial_sound_flags & SIMPLE_U_ONLY) for(var/datum/chinese_sound/final_syllable/final_syllable as anything in possible_final_syllables) - if(initial(initial(final_syllable.vowel_class)) == VOWEL_CLASS_BACK_CLOSE) + if(initial(final_syllable.vowel_class) == VOWEL_CLASS_BACK_CLOSE) possible_final_syllables -= final_syllable possible_final_syllables += /datum/chinese_sound/final_syllable/u else if(initial.initial_sound_flags & HALF_U) for(var/datum/chinese_sound/final_syllable/final_syllable as anything in possible_final_syllables) - if(initial(initial(final_syllable.vowel_class)) == VOWEL_CLASS_BACK_CLOSE && initial(final_syllable.final_syllable_sound_flags) & U_GROUP_FULL) + if(initial(final_syllable.vowel_class) == VOWEL_CLASS_BACK_CLOSE && initial(final_syllable.final_syllable_sound_flags) & U_GROUP_FULL) possible_final_syllables -= final_syllable //check for if the sound is alveolo-palatal or sibilant/retroflex - then remove or keep front close vowels accordingly diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index a00e4f1889..fa947cfa01 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -417,7 +417,7 @@ 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_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_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, /obj/item/clothing/suit/storage/jacket/marine/dress/bridge_coat_grey, ) /datum/equipment_preset/uscm_ship/commander/New() . = ..() @@ -458,7 +458,6 @@ 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/storage/pouch/pistol/command(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_L_HAND) if(kit) new_human.equip_to_slot_or_del(new kit(new_human), WEAR_IN_BACK) @@ -479,6 +478,8 @@ /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/officer/falcon, + /obj/item/clothing/suit/storage/jacket/marine/dress/bridge_coat_grey, + /obj/item/clothing/suit/storage/jacket/marine/dress/bridge_coat, ) /datum/equipment_preset/uscm_ship/commander/council/load_gear(mob/living/carbon/human/new_human) @@ -512,7 +513,7 @@ minimap_icon = list("cic" = MINIMAP_ICON_COLOR_HEAD) minimap_background = MINIMAP_ICON_BACKGROUND_CIC - dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full) + dress_extra = list(/obj/item/storage/large_holster/ceremonial_sword/full, /obj/item/clothing/suit/storage/jacket/marine/dress/bridge_coat_grey,) /datum/equipment_preset/uscm_ship/xo/New() . = ..() diff --git a/code/modules/law/law.dm b/code/modules/law/law.dm index 7d59060470..20245beda3 100644 --- a/code/modules/law/law.dm +++ b/code/modules/law/law.dm @@ -13,13 +13,14 @@ var/special_punishment = "" //This is for special punishments //These are bitflags to indicate the type of crime it is. -#define OPTIONAL_CRIME 1 -#define MINOR_CRIME 2 -#define MAJOR_CRIME 4 -#define CAPITAL_CRIME 8 +#define OPTIONAL_CRIME (1<<0) +#define MINOR_CRIME (1<<1) +#define MAJOR_CRIME (1<<2) +#define CAPITAL_CRIME (1<<3) +#define PRECAUTIONARY_CHARGE (1<<4) //These are bitflags for special punishments -#define PERMABRIG 1 -#define DOUBLE_TIME 2 -#define SAME_AS_ACCUSED 4 -#define DEMOTION 8 +#define PERMABRIG (1<<0) +#define DOUBLE_TIME (1<<1) +#define SAME_AS_ACCUSED (1<<2) +#define DEMOTION (1<<3) diff --git a/code/modules/law/laws/capital_crime.dm b/code/modules/law/laws/capital_crime.dm index 8329374e91..687c483c65 100644 --- a/code/modules/law/laws/capital_crime.dm +++ b/code/modules/law/laws/capital_crime.dm @@ -10,10 +10,6 @@ name = "Desertion" desc = "Refusing to carry out the duties essential to one’s post or abandoning post unauthorized, without intent to return. (Retreating from the planet when the FOB is breached is not Desertion, refusing to return when ordered is)." -/datum/law/capital_law/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." - /datum/law/capital_law/jailbreak_escape name = "Jailbreak/Escape" desc = "To escape, assist in an escape, attempt escape, or be willfully and knowingly broken out." @@ -30,7 +26,3 @@ /datum/law/capital_law/crimes_against_humanity name = "Crimes against Humanity" desc = "To engage in actions that violate human rights or otherwise are heinous acts against humans. Examples are torture, cannibalism and forced infection with Xenomorph larva." - -/datum/law/capital_law/prisoner_of_war - name = "Prisoner of War" - desc = "Being a member of a currently hostile faction to the USCM." diff --git a/code/modules/law/laws/precautionary_charge.dm b/code/modules/law/laws/precautionary_charge.dm new file mode 100644 index 0000000000..c06cd6ca52 --- /dev/null +++ b/code/modules/law/laws/precautionary_charge.dm @@ -0,0 +1,18 @@ +/datum/law/precautionary_charge + severity = PRECAUTIONARY_CHARGE + brig_time = PERMABRIG_SENTENCE + special_punishment = "Not inclusive for execution criteria." + +/datum/law/precautionary_charge/discretionary_arrest + name = "Discretionary Detainment" + desc = "A discretionary charge used by Commanding Officers to detain personnel for any reason, for the safety and benefit of the operation or security. The duration of this charge is variable and may be pardoned/lifted at any time by the Commanding Officer." + special_punishment = "Not inclusive for execution criteria. May only be appealed to the Acting Commander or Provost/USCM HC." + +/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." + +/datum/law/precautionary_charge/prisoner_of_war + name = "Prisoner of War" + desc = "Being a member of a legitimate and recognised faction currently hostile to the USCM." + special_punishment = "Execution is forbidden barring exceptional circumstances." diff --git a/code/modules/mentor/mentorhelp.dm b/code/modules/mentor/mentorhelp.dm index 7746e90d96..695ec60463 100644 --- a/code/modules/mentor/mentorhelp.dm +++ b/code/modules/mentor/mentorhelp.dm @@ -169,10 +169,7 @@ if(sender == author) message_title = "MentorHelp" // If there's a mentor, let them mark it. If not, let them unmark it - if(mentor) - message_sender_options = " (Unmark" - else - message_sender_options = " (Mark" + message_sender_options = " (Mark/Unmark" message_sender_options += " | Close | AutoResponse)" var/message_header = SPAN_MENTORHELP("[message_title] from [message_sender_key]: [message_sender_options]
") @@ -274,9 +271,10 @@ if("autorespond") autoresponse(C) if("mark") - mark(C) - if("unmark") - unmark(C) + if(!mentor) + mark(C) + else + unmark(C) if("close") if(C == author || C == mentor || CLIENT_IS_STAFF(C)) close(C) @@ -327,7 +325,7 @@ var/msg = SPAN_MENTORSAY("Autoresponse: [choice]") switch(choice) if("L: Discord") - msg += "You can join our Discord server by using this link!" + msg += "You can join our Discord server by using this link!" if("L: Xeno Quickstart Guide") msg += "Your answer can be found on the Xeno Quickstart Guide on our wiki. Check it out here." if("L: Marine Quickstart Guide") diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index 19f461be75..8a13617fa7 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -90,6 +90,9 @@ else message = stars(message) + if(GLOB.radio_communication_clarity < 100) + message = stars(message, GLOB.radio_communication_clarity) + if(language) style = language.color diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 4b86c827a0..28e45dcb2f 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -132,7 +132,6 @@ for(var/message_mode in parsed["modes"]) var/list/obj/item/used_radios = list() switch(message_mode) - if(MESSAGE_MODE_LOCAL) if(RADIO_MODE_WHISPER) whisper_say(message, speaking, alt_name) return @@ -142,9 +141,10 @@ used_radios += I break // remove this if we EVER have two different intercomms with DIFFERENT frequencies IN ONE ROOM else - var/earpiece = get_type_in_ears(/obj/item/device/radio) - if(earpiece) - used_radios += earpiece + if(message_mode != MESSAGE_MODE_LOCAL) + var/earpiece = get_type_in_ears(/obj/item/device/radio) + if(earpiece) + used_radios += earpiece var/sound/speech_sound var/sound_vol diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm index bf46934730..467fceb360 100644 --- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm +++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm @@ -202,7 +202,7 @@ to_chat(src, SPAN_WARNING("Nuh-uh.")) return FALSE - if(SSticker?.mode?.flags_round_type & MODE_NO_XENO_EVOLVE) + if(SSticker.mode?.flags_round_type & MODE_NO_XENO_EVOLVE) to_chat(src, SPAN_WARNING("This mode disallows xeno evolution.")) return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm b/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm index 1af6eebcf9..83c8500a1b 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoMutatorSets.dm @@ -25,6 +25,10 @@ return FALSE /datum/mutator_set/proc/list_and_purchase_mutators() + if(SSticker.mode?.flags_round_type & MODE_NO_XENO_EVOLVE) + to_chat(usr, SPAN_WARNING("This mode disallows xeno mutators.")) + return FALSE + var/list/mutators_for_purchase = available_mutators() var/mob/living/carbon/xenomorph/Xeno = usr if(mutators_for_purchase.len == 0) diff --git a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm index fa9036bd83..3fd8e53024 100644 --- a/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm +++ b/code/modules/mob/living/carbon/xenomorph/XenoProcs.dm @@ -357,8 +357,8 @@ /mob/living/carbon/xenomorph/proc/pounced_turf(turf/T) if(!T.density) - for(var/mob/M in T) - pounced_mob(M) + for(var/mob/living/mob in T) + pounced_mob(mob) break else turf_launch_collision(T) diff --git a/code/modules/mob/living/carbon/xenomorph/ai/movement/drone.dm b/code/modules/mob/living/carbon/xenomorph/ai/movement/drone.dm index c612fdbe79..ef91bd32bc 100644 --- a/code/modules/mob/living/carbon/xenomorph/ai/movement/drone.dm +++ b/code/modules/mob/living/carbon/xenomorph/ai/movement/drone.dm @@ -15,9 +15,6 @@ if(idle_xeno.throwing) return - if(idle_xeno.resting) - return - if(home_turf) if(get_dist(home_turf, idle_xeno) > max_distance_from_home) home_turf = null @@ -38,52 +35,16 @@ if(next_home_search > world.time) return - var/turf/current_turf = get_turf(idle_xeno.loc) + var/turf/current_turf = get_turf(idle_xeno) next_home_search = world.time + home_search_delay - if(!current_turf.weeds && current_turf.is_weedable() >= FULLY_WEEDABLE) + if(!current_turf.weeds && check_turf(current_turf)) home_turf = current_turf else var/shortest_distance for(var/turf/potential_home as anything in RANGE_TURFS(home_locate_range, current_turf)) - - var/area/found_area = get_area(potential_home) - if(found_area.flags_area & AREA_NOTUNNEL) - continue - - if(found_area.flags_area & AREA_UNWEEDABLE) - continue - - if(!found_area.can_build_special) - continue - - if(potential_home in blacklisted_turfs) - continue - - if(potential_home.weeds) - continue - - if(potential_home.is_weedable() < FULLY_WEEDABLE) - continue - - if(locate(/obj/effect/alien/weeds/node) in range(3, potential_home)) - continue - - if(potential_home.density) + if(!check_turf(potential_home)) continue - var/blocked = FALSE - for(var/atom/potential_blocker as anything in potential_home) - if(potential_blocker.can_block_movement) - blocked = TRUE - break - - if(blocked) - continue - - for(var/obj/structure/struct in potential_home) - if(struct.density && !(struct.flags_atom & ON_BORDER)) - continue - if(shortest_distance && get_dist(idle_xeno, potential_home) > shortest_distance) continue @@ -103,3 +64,44 @@ /datum/xeno_ai_movement/drone/proc/unblacklist_turf(turf/unblacklisting_turf) blacklisted_turfs -= unblacklisting_turf + +/datum/xeno_ai_movement/drone/proc/check_turf(turf/checked_turf) + var/area/found_area = get_area(checked_turf) + if(found_area.flags_area & AREA_NOTUNNEL) + return FALSE + + if(found_area.flags_area & AREA_UNWEEDABLE) + return FALSE + + if(!found_area.can_build_special) + return FALSE + + if(checked_turf in blacklisted_turfs) + return FALSE + + if(checked_turf.weeds) + return FALSE + + if(checked_turf.is_weedable() < FULLY_WEEDABLE) + return FALSE + + if(locate(/obj/effect/alien/weeds/node) in range(3, checked_turf)) + return FALSE + + if(checked_turf.density) + return FALSE + + var/blocked = FALSE + for(var/atom/potential_blocker as anything in checked_turf) + if(potential_blocker.can_block_movement) + blocked = TRUE + break + + if(blocked) + return FALSE + + for(var/obj/structure/struct in checked_turf) + if(struct.density && !(struct.flags_atom & ON_BORDER)) + return FALSE + + return TRUE diff --git a/code/modules/mob/new_player/sprite_accessories/hair.dm b/code/modules/mob/new_player/sprite_accessories/hair.dm index 3f624b8d3b..3dfe8bebd5 100644 --- a/code/modules/mob/new_player/sprite_accessories/hair.dm +++ b/code/modules/mob/new_player/sprite_accessories/hair.dm @@ -738,3 +738,20 @@ /datum/sprite_accessory/hair/aviator name = "Aviator" icon_state = "hair_aviator" + +/datum/sprite_accessory/hair/gantleponytail + name = "Gentle Ponytail" + icon_state = "hair_gantleponytail" + gender = FEMALE + +/datum/sprite_accessory/hair/edgar + name = "Edgar" + icon_state = "hair_edgar" + +/datum/sprite_accessory/hair/emobun + name = "Emo Little Bun" + icon_state = "hair_emobun" + +/datum/sprite_accessory/hair/taper + name = "Taper" + icon_state = "hair_taper" diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 8cd5b148a1..fc62c076c7 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -65,6 +65,9 @@ if(!src.client) //Somehow return + if(SEND_SIGNAL(src, COMSIG_DEAD_SPEAK, message) & COMPONENT_OVERRIDE_DEAD_SPEAK) + return + if(!src.client.admin_holder || !(client.admin_holder.rights & R_MOD)) if(!dsay_allowed) to_chat(src, SPAN_DANGER("Deadchat is globally muted")) diff --git a/code/modules/movement/movement.dm b/code/modules/movement/movement.dm index da0c76cba9..4645756e29 100644 --- a/code/modules/movement/movement.dm +++ b/code/modules/movement/movement.dm @@ -102,11 +102,14 @@ /atom/movable/proc/forceMove(atom/destination) . = FALSE + if(destination) . = doMove(destination) else CRASH("No valid destination passed into forceMove") + if(SEND_SIGNAL(src, COMSIG_MOVABLE_FORCEMOVED, destination)) + return /atom/movable/proc/moveToNullspace() return doMove(null) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 71d1090b20..bde60ef3a3 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -382,9 +382,6 @@ /obj/item/paper/attackby(obj/item/P, mob/user) ..() - var/clown = 0 - if(user.mind && (user.job == "Clown")) - clown = 1 if(istype(P, /obj/item/paper) || istype(P, /obj/item/photo)) if (istype(P, /obj/item/paper/carbon)) @@ -424,6 +421,7 @@ return stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [P.name]." + playsound(src, 'sound/effects/alien_footstep_medium3.ogg', 20, TRUE, 6) var/image/stampoverlay = image('icons/obj/items/paper.dmi') var/x @@ -439,11 +437,6 @@ stampoverlay.pixel_x = x stampoverlay.pixel_y = y - if(istype(P, /obj/item/tool/stamp/clown)) - if(!clown) - to_chat(user, SPAN_NOTICE("You are totally unable to use the stamp. HONK!")) - return - if(!ico) ico = new ico += "paper_[P.icon_state]" diff --git a/code/modules/projectiles/guns/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm index 42a0e2ce03..2c842073d6 100644 --- a/code/modules/projectiles/guns/flamer/flamer.dm +++ b/code/modules/projectiles/guns/flamer/flamer.dm @@ -23,7 +23,8 @@ /obj/item/attachable/flashlight, /obj/item/attachable/magnetic_harness, /obj/item/attachable/attached_gun/extinguisher, - /obj/item/attachable/attached_gun/flamer_nozzle + /obj/item/attachable/attached_gun/extinguisher/pyro, + /obj/item/attachable/attached_gun/flamer_nozzle, ) flags_gun_features = GUN_UNUSUAL_DESIGN|GUN_WIELDED_FIRING_ONLY|GUN_TRIGGER_SAFETY gun_category = GUN_CATEGORY_HEAVY @@ -724,12 +725,12 @@ GLOBAL_LIST_EMPTY(flamer_particles) var/direction_angle = dir2angle(direction) var/obj/flamer_fire/foundflame = locate() in target if(!foundflame) - var/datum/reagent/R = new() - R.intensityfire = burn_lvl - R.durationfire = fire_lvl - R.burn_sprite = burn_sprite - R.burncolor = f_color - new/obj/flamer_fire(target, cause_data, R) + var/datum/reagent/fire_reag = new() + fire_reag.intensityfire = burn_lvl + fire_reag.durationfire = fire_lvl + fire_reag.burn_sprite = burn_sprite + fire_reag.burncolor = f_color + new/obj/flamer_fire(target, cause_data, fire_reag) if(target.density) return @@ -742,8 +743,6 @@ GLOBAL_LIST_EMPTY(flamer_particles) var/angle = 180 - abs( abs( direction_angle - spread_direction_angle ) - 180 ) // the angle difference between the spread direction and initial direction switch(angle) //this reduces power when the explosion is going around corners - if (0) - //no change if (45) spread_power *= 0.75 else //turns out angles greater than 90 degrees almost never happen. This bit also prevents trying to spread backwards @@ -758,25 +757,29 @@ GLOBAL_LIST_EMPTY(flamer_particles) if (spread_power < 1) continue - var/turf/T = get_step(target, spread_direction) + var/turf/picked_turf = get_step(target, spread_direction) - if(!T) //prevents trying to spread into "null" (edge of the map?) + if(!picked_turf) //prevents trying to spread into "null" (edge of the map?) continue - if(aerial_flame_level && (T.get_pylon_protection_level() >= aerial_flame_level)) - break + if(aerial_flame_level) + if(picked_turf.get_pylon_protection_level() >= aerial_flame_level) + break + var/area/picked_area = get_area(picked_turf) + if(CEILING_IS_PROTECTED(picked_area?.ceiling, get_ceiling_protection_level(aerial_flame_level))) + break spawn(0) - fire_spread_recur(T, cause_data, spread_power, spread_direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) + fire_spread_recur(picked_turf, cause_data, spread_power, spread_direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) /proc/fire_spread(turf/target, datum/cause_data/cause_data, range, fire_lvl, burn_lvl, f_color, burn_sprite = "dynamic", aerial_flame_level = TURF_PROTECTION_NONE) - var/datum/reagent/R = new() - R.intensityfire = burn_lvl - R.durationfire = fire_lvl - R.burn_sprite = burn_sprite - R.burncolor = f_color + var/datum/reagent/fire_reag = new() + fire_reag.intensityfire = burn_lvl + fire_reag.durationfire = fire_lvl + fire_reag.burn_sprite = burn_sprite + fire_reag.burncolor = f_color - new/obj/flamer_fire(target, cause_data, R) + new/obj/flamer_fire(target, cause_data, fire_reag) for(var/direction in alldirs) var/spread_power = range switch(direction) @@ -784,7 +787,11 @@ GLOBAL_LIST_EMPTY(flamer_particles) spread_power-- else spread_power -= 1.414 //diagonal spreading - var/turf/T = get_step(target, direction) - if(aerial_flame_level && (T.get_pylon_protection_level() >= aerial_flame_level)) - continue - fire_spread_recur(T, cause_data, spread_power, direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) + var/turf/picked_turf = get_step(target, direction) + if(aerial_flame_level) + if(picked_turf.get_pylon_protection_level() >= aerial_flame_level) + continue + var/area/picked_area = get_area(picked_turf) + if(CEILING_IS_PROTECTED(picked_area?.ceiling, get_ceiling_protection_level(aerial_flame_level))) + continue + fire_spread_recur(picked_turf, cause_data, spread_power, direction, fire_lvl, burn_lvl, f_color, burn_sprite, aerial_flame_level) diff --git a/code/modules/projectiles/guns/smgs.dm b/code/modules/projectiles/guns/smgs.dm index 89e6594c64..24eddf3159 100644 --- a/code/modules/projectiles/guns/smgs.dm +++ b/code/modules/projectiles/guns/smgs.dm @@ -11,7 +11,7 @@ aim_slowdown = SLOWDOWN_ADS_QUICK wield_delay = WIELD_DELAY_VERY_FAST attachable_allowed = list( - /obj/item/attachable/suppressor, + /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, /obj/item/attachable/flashlight, @@ -50,7 +50,8 @@ /obj/item/attachable/suppressor, /obj/item/attachable/reddot, /obj/item/attachable/reflex, - /obj/item/attachable/angledgrip, + /obj/item/attachable/angledgrip, + /obj/item/attachable/verticalgrip, /obj/item/attachable/flashlight/grip, /obj/item/attachable/stock/smg, /obj/item/attachable/stock/smg/collapsible, diff --git a/code/modules/reagents/chemistry_properties/prop_positive.dm b/code/modules/reagents/chemistry_properties/prop_positive.dm index 7f476cecf2..971051e9bf 100644 --- a/code/modules/reagents/chemistry_properties/prop_positive.dm +++ b/code/modules/reagents/chemistry_properties/prop_positive.dm @@ -548,7 +548,7 @@ rarity = PROPERTY_RARE category = PROPERTY_TYPE_REACTANT value = 3 - max_level = 1 + COOLDOWN_DECLARE(ghost_notif) /datum/chem_property/positive/defibrillating/on_delete(mob/living/M) ..() @@ -574,19 +574,33 @@ /datum/chem_property/positive/defibrillating/process_dead(mob/living/M, potency = 1, delta_time) if(!ishuman(M)) return - var/mob/living/carbon/human/H = M - H.apply_damage(-H.getOxyLoss(), OXY) - if(H.check_tod() && H.is_revivable() && H.health > HEALTH_THRESHOLD_DEAD) - to_chat(H, SPAN_NOTICE("You feel your heart struggling as you suddenly feel a spark, making it desperately try to continue pumping.")) - playsound_client(H.client, 'sound/effects/Heart Beat Short.ogg', 35) - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, handle_revive)), 50, TIMER_UNIQUE) - else if (potency > POTENCY_MAX_TIER_1 && H.check_tod() && H.is_revivable() && H.health < HEALTH_THRESHOLD_DEAD) //Will heal if level is 7 or greater - to_chat(H, SPAN_NOTICE("You feel a faint spark in your chest.")) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BRUTE) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BURN) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, TOX) - H.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, CLONE) - H.apply_damage(-H.getOxyLoss(), OXY) + var/mob/living/carbon/human/dead = M + var/revivable = dead.check_tod() && dead.is_revivable() + if(revivable && (dead.health > HEALTH_THRESHOLD_DEAD)) + addtimer(CALLBACK(dead, TYPE_PROC_REF(/mob/living/carbon/human, handle_revive)), 5 SECONDS) + to_chat(dead, SPAN_NOTICE("You feel your heart struggling as you suddenly feel a spark, making it desperately try to continue pumping.")) + playsound_client(dead.client, 'sound/effects/heart_beat_short.ogg', 35) + else if ((potency >= 1) && revivable && dead.health <= HEALTH_THRESHOLD_DEAD) //heals on all level above 1. This is however, minimal. + to_chat(dead, SPAN_NOTICE("You feel a faint spark in your chest.")) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, BRUTE) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, BURN) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, TOX) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_VLOW, CLONE) + dead.apply_damage(-dead.getOxyLoss(), OXY) + if(potency > CREATE_MAX_TIER_1) //heal more if higher levels + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BRUTE) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, BURN) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, TOX) + dead.apply_damage(-potency * POTENCY_MULTIPLIER_LOW, CLONE) + if(dead.health < HEALTH_THRESHOLD_DEAD) + return + if(!COOLDOWN_FINISHED(src, ghost_notif)) + return + var/mob/dead/observer/ghost = dead.get_ghost() + if(ghost?.client) + COOLDOWN_START(src, ghost_notif, 30 SECONDS) + playsound_client(ghost.client, 'sound/effects/adminhelp_new.ogg') + to_chat(ghost, SPAN_BOLDNOTICE("Your heart is struggling to pump! There is a chance you might get up!(Verbs -> Ghost -> Re-enter corpse, or click here!)")) return TRUE /datum/chem_property/positive/hyperdensificating diff --git a/code/modules/reagents/chemistry_properties/prop_special.dm b/code/modules/reagents/chemistry_properties/prop_special.dm index 640e184263..7baa66fc58 100644 --- a/code/modules/reagents/chemistry_properties/prop_special.dm +++ b/code/modules/reagents/chemistry_properties/prop_special.dm @@ -369,3 +369,20 @@ /datum/chem_property/special/firepenetrating/update_reagent() holder.fire_penetrating = TRUE ..() + +/datum/chem_property/special/revitalizing + name = PROPERTY_REVITALIZING + code = "REV" + description = "For a period of time, revitalizes the main systems of the body and prevents unconciousness." + rarity = PROPERTY_ADMIN + category = PROPERTY_TYPE_STIMULANT + value = 666 + +/datum/chem_property/special/revitalizing/reagent_added(mob/living/M) + if(!ishuman(M)) + return + M.status_flags &= ~CANKNOCKOUT + M.knocked_out = 0 + +/datum/chem_property/special/revitalizing/on_delete(mob/living/M) + M.status_flags |= CANKNOCKOUT diff --git a/code/modules/reagents/chemistry_reactions/medical.dm b/code/modules/reagents/chemistry_reactions/medical.dm index 2e38117134..72a491d779 100644 --- a/code/modules/reagents/chemistry_reactions/medical.dm +++ b/code/modules/reagents/chemistry_reactions/medical.dm @@ -14,6 +14,13 @@ required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1) result_amount = 2 +/datum/chemical_reaction/adrenaline_concentrated + name = "Epinephrine (concentrated)" + id = "adrenaline_concentrated" + result = "adrenaline_concentrated" + required_reagents = list("carbon" = 1, "nitrogen" = 1, "oxygen" = 1, "phoron" = 3) + result_amount = 1 + /datum/chemical_reaction/alkysine name = "Alkysine" id = "alkysine" diff --git a/code/modules/reagents/chemistry_reagents/drink.dm b/code/modules/reagents/chemistry_reagents/drink.dm index 468243a0cc..3bd7336c32 100644 --- a/code/modules/reagents/chemistry_reagents/drink.dm +++ b/code/modules/reagents/chemistry_reagents/drink.dm @@ -85,13 +85,13 @@ /datum/reagent/drink/carrotjuice/on_mob_life(mob/living/M) . = ..() - if(!.) return + if(!.) + return M.ReduceEyeBlur(1) M.ReduceEyeBlind(1) - if(!data) data = 1 + if(!data) + data = 1 switch(data) - if(1 to 20) - //nothing if(21 to INFINITY) if(prob(data-10)) M.disabilities &= ~NEARSIGHTED diff --git a/code/modules/reagents/chemistry_reagents/medical.dm b/code/modules/reagents/chemistry_reagents/medical.dm index f69d1b952c..01269a0d85 100644 --- a/code/modules/reagents/chemistry_reagents/medical.dm +++ b/code/modules/reagents/chemistry_reagents/medical.dm @@ -275,7 +275,7 @@ id = "adrenaline" description = "A natural muscle and heart stimulant. Useful for restarting the heart. Overdosing may stress the heart and cause tissue damage." reagent_state = LIQUID - color = "FFE703" // Yellow-ish + color = "#FFE703" // Yellow-ish overdose = LOWM_REAGENTS_OVERDOSE overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL custom_metabolism = AMOUNT_PER_TIME(1, 5 SECONDS) @@ -283,6 +283,19 @@ properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_INTRAVENOUS = 1) flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE +/datum/reagent/medical/adrenaline_concentrated + name = "Epinephrine (concentrated)" + id = "adrenaline_concentrated" + description = "A natural muscle and heart stimulant that is in a high concerntration. Useful for restarting the heart and preventing unconciousness but in this concentrated form it will cause minor suffocation. Overdosing may stress the heart and cause tissue damage." + reagent_state = LIQUID + color = "#FFE702" // Yellow-ish + overdose = LOWM_REAGENTS_OVERDOSE + overdose_critical = LOWM_REAGENTS_OVERDOSE_CRITICAL + custom_metabolism = AMOUNT_PER_TIME(1, 10 SECONDS) + chemclass = CHEM_CLASS_COMMON + properties = list(PROPERTY_PAINKILLING = 1.5, PROPERTY_ELECTROGENETIC = 4, PROPERTY_REVITALIZING = 1, PROPERTY_HYPOXEMIC = 5, PROPERTY_INTRAVENOUS = 1) + flags = REAGENT_TYPE_MEDICAL | REAGENT_SCANNABLE + /datum/reagent/medical/ultrazine name = "Ultrazine" id = "ultrazine" diff --git a/code/modules/tents/equipment.dm b/code/modules/tents/equipment.dm index 0d47c7e3ce..bf9a76fc2d 100644 --- a/code/modules/tents/equipment.dm +++ b/code/modules/tents/equipment.dm @@ -44,9 +44,10 @@ return ..() /// Telephone -/obj/structure/transmitter/tent +/obj/structure/phone_base/tent layer = INTERIOR_WALLMOUNT_LAYER -/obj/structure/transmitter/tent/Initialize(mapload, ...) + +/obj/structure/phone_base/tent/Initialize(mapload, ...) AddComponent(/datum/component/tent_supported_object) return ..() diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 41a0473394..b9a9f27a28 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -153,4 +153,9 @@ /world/TgsSecurityLevel() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) - api.SecurityLevel() + return api.SecurityLevel() + +/world/TgsVisibility() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.Visibility() diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 68b0330fe8..93377079aa 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -57,3 +57,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/SecurityLevel() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/Visibility() + return TGS_UNIMPLEMENTED diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 5d3d491a73..1b52b31d6a 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.6.1" +"5.6.2" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index f973338daa..bdcd4e4dd5 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -48,6 +48,7 @@ #define DMAPI5_RUNTIME_INFORMATION_REVISION "revision" #define DMAPI5_RUNTIME_INFORMATION_TEST_MERGES "testMerges" #define DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL "securityLevel" +#define DMAPI5_RUNTIME_INFORMATION_VISIBILITY "visibility" #define DMAPI5_CHAT_UPDATE_CHANNELS "channels" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 34cc43f876..45250efc46 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -4,6 +4,7 @@ var/instance_name var/security_level + var/visibility var/reboot_mode = TGS_REBOOT_MODE_NORMAL @@ -54,6 +55,7 @@ version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] + visibility = runtime_information[DMAPI5_RUNTIME_INFORMATION_VISIBILITY] instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] @@ -252,3 +254,7 @@ /datum/tgs_api/v5/SecurityLevel() RequireInitialBridgeResponse() return security_level + +/datum/tgs_api/v5/Visibility() + RequireInitialBridgeResponse() + return visibility diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index c679737dfc..f163adaaaf 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -48,6 +48,7 @@ #undef DMAPI5_RUNTIME_INFORMATION_REVISION #undef DMAPI5_RUNTIME_INFORMATION_TEST_MERGES #undef DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL +#undef DMAPI5_RUNTIME_INFORMATION_VISIBILITY #undef DMAPI5_CHAT_UPDATE_CHANNELS diff --git a/code/modules/vehicles/apc/apc.dm b/code/modules/vehicles/apc/apc.dm index d71db37074..60d21f7090 100644 --- a/code/modules/vehicles/apc/apc.dm +++ b/code/modules/vehicles/apc/apc.dm @@ -108,6 +108,8 @@ GLOBAL_LIST_EMPTY(command_apc_list) add_verb(M.client, list( /obj/vehicle/multitile/proc/toggle_door_lock, /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, /obj/vehicle/multitile/proc/name_vehicle )) else if(seat == VEHICLE_GUNNER) @@ -135,6 +137,8 @@ GLOBAL_LIST_EMPTY(command_apc_list) remove_verb(M.client, list( /obj/vehicle/multitile/proc/toggle_door_lock, /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, /obj/vehicle/multitile/proc/name_vehicle, )) else if(seat == VEHICLE_GUNNER) diff --git a/code/modules/vehicles/apc/apc_command.dm b/code/modules/vehicles/apc/apc_command.dm index c5bd559283..1e9fba7371 100644 --- a/code/modules/vehicles/apc/apc_command.dm +++ b/code/modules/vehicles/apc/apc_command.dm @@ -7,7 +7,7 @@ interior_map = /datum/map_template/interior/apc_command - passengers_slots = 8 + passengers_slots = 15 var/sensor_radius = 45 //45 tiles radius @@ -98,6 +98,8 @@ add_verb(M.client, list( /obj/vehicle/multitile/proc/toggle_door_lock, /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, )) else if(seat == VEHICLE_GUNNER) add_verb(M.client, list( @@ -119,6 +121,8 @@ remove_verb(M.client, list( /obj/vehicle/multitile/proc/toggle_door_lock, /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, )) else if(seat == VEHICLE_GUNNER) remove_verb(M.client, list( diff --git a/code/modules/vehicles/apc/apc_medical.dm b/code/modules/vehicles/apc/apc_medical.dm index f8809bedaa..c3b3a16bd8 100644 --- a/code/modules/vehicles/apc/apc_medical.dm +++ b/code/modules/vehicles/apc/apc_medical.dm @@ -8,7 +8,7 @@ interior_map = /datum/map_template/interior/apc_med - passengers_slots = 8 + passengers_slots = 15 //MED APC can store additional 6 dead revivable bodies for the triage //but interior won't allow more revivable dead if passengers_taken_slots >= passengers_slots + revivable_dead_slots //to prevent infinitely growing the marine force inside of the vehicle @@ -54,6 +54,8 @@ add_verb(M.client, list( /obj/vehicle/multitile/proc/toggle_door_lock, /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, )) else if(seat == VEHICLE_GUNNER) add_verb(M.client, list( @@ -75,6 +77,8 @@ remove_verb(M.client, list( /obj/vehicle/multitile/proc/toggle_door_lock, /obj/vehicle/multitile/proc/activate_horn, + /obj/vehicle/multitile/proc/switch_hardpoint, + /obj/vehicle/multitile/proc/cycle_hardpoint, )) else if(seat == VEHICLE_GUNNER) remove_verb(M.client, list( diff --git a/code/modules/vehicles/hardpoints/primary/dual_cannon.dm b/code/modules/vehicles/hardpoints/primary/dual_cannon.dm index 763bfb6984..d33fc1d628 100644 --- a/code/modules/vehicles/hardpoints/primary/dual_cannon.dm +++ b/code/modules/vehicles/hardpoints/primary/dual_cannon.dm @@ -19,6 +19,8 @@ origins = list(0, -2) + allowed_seat = VEHICLE_DRIVER + ammo = new /obj/item/ammo_magazine/hardpoint/boyars_dualcannon max_clips = 2 diff --git a/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm b/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm index 4d454bed12..c7600059d9 100644 --- a/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm +++ b/code/modules/vehicles/hardpoints/secondary/frontal_cannon.dm @@ -18,6 +18,8 @@ origins = list(0, -2) + allowed_seat = VEHICLE_DRIVER + ammo = new /obj/item/ammo_magazine/hardpoint/m56_cupola/frontal_cannon max_clips = 1 diff --git a/code/modules/vehicles/hardpoints/support/flare.dm b/code/modules/vehicles/hardpoints/support/flare.dm index 00dcd3ac18..2cee40064f 100644 --- a/code/modules/vehicles/hardpoints/support/flare.dm +++ b/code/modules/vehicles/hardpoints/support/flare.dm @@ -19,6 +19,8 @@ origins = list(0, -2) + allowed_seat = VEHICLE_DRIVER + ammo = new /obj/item/ammo_magazine/hardpoint/flare_launcher max_clips = 3 diff --git a/code/modules/vehicles/interior/interactable/vendors.dm b/code/modules/vehicles/interior/interactable/vendors.dm index 6d98bc85e4..f5aef4f430 100644 --- a/code/modules/vehicles/interior/interactable/vendors.dm +++ b/code/modules/vehicles/interior/interactable/vendors.dm @@ -77,7 +77,6 @@ list("AUTOINJECTORS", -1, null, null), 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), diff --git a/code/modules/vehicles/interior/interior_landmarks.dm b/code/modules/vehicles/interior/interior_landmarks.dm index 90284682d2..eb62e50243 100644 --- a/code/modules/vehicles/interior/interior_landmarks.dm +++ b/code/modules/vehicles/interior/interior_landmarks.dm @@ -216,18 +216,18 @@ color = "yellow" /obj/effect/landmark/interior/spawn/telephone/on_load(datum/interior/I) - var/obj/structure/transmitter/Phone = new(loc) - - Phone.icon = icon - Phone.icon_state = icon_state - Phone.layer = layer - Phone.setDir(dir) - Phone.alpha = alpha - Phone.update_icon() - Phone.pixel_x = pixel_x - Phone.pixel_y = pixel_y - Phone.phone_category = "Vehicles" - Phone.phone_id = I.exterior.name + var/obj/structure/phone_base/phone = new(loc) + + phone.icon = icon + phone.icon_state = icon_state + phone.layer = layer + phone.setDir(dir) + phone.alpha = alpha + phone.update_icon() + phone.pixel_x = pixel_x + phone.pixel_y = pixel_y + phone.phone_category = "Vehicles" + phone.phone_id = I.exterior.name qdel(src) diff --git a/colonialmarines.dme b/colonialmarines.dme index ceb12bf95f..c2bc51d894 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1,4 +1,4 @@ -s// DM Environment file for colonialmarines.dme. +// DM Environment file for colonialmarines.dme. // All manual changes should be made outside the BEGIN_ and END_ blocks. // New source code should be placed in .dm files: choose File/New --> Code File. // BEGIN_INTERNALS @@ -11,6 +11,7 @@ s// DM Environment file for colonialmarines.dme. #define DEBUG // END_PREFERENCES // BEGIN_INCLUDE +#include "code\__odlint.dm" #include "code\_byond_version_compat.dm" #include "code\_compile_options.dm" #include "code\_experiments.dm" @@ -388,6 +389,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\datums\components\label.dm" #include "code\datums\components\orbiter.dm" #include "code\datums\components\overlay_lighting.dm" +#include "code\datums\components\phone.dm" #include "code\datums\components\rename.dm" #include "code\datums\components\speed_modifier.dm" #include "code\datums\components\toxin_buildup.dm" @@ -942,6 +944,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\machinery\vending\vendor_types\crew\sea.dm" #include "code\game\machinery\vending\vendor_types\crew\senior_officers.dm" #include "code\game\machinery\vending\vendor_types\crew\staff_officer.dm" +#include "code\game\machinery\vending\vendor_types\crew\staff_officer_armory.dm" #include "code\game\machinery\vending\vendor_types\crew\synthetic.dm" #include "code\game\machinery\vending\vendor_types\crew\vehicle_crew.dm" #include "code\game\machinery\vending\vendor_types\squad_prep\squad_engineer.dm" @@ -1585,8 +1588,8 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\cm_marines\equipment\weapons.dm" #include "code\modules\cm_marines\equipment\mortar\mortar_shells.dm" #include "code\modules\cm_marines\equipment\mortar\mortars.dm" -#include "code\modules\cm_phone\internal_phone.dm" -#include "code\modules\cm_phone\phone.dm" +#include "code\modules\cm_phone\handset.dm" +#include "code\modules\cm_phone\phone_base.dm" #include "code\modules\cm_preds\_yaut_defines.dm" #include "code\modules\cm_preds\falcon.dm" #include "code\modules\cm_preds\huntdata.dm" @@ -1755,6 +1758,7 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\law\laws\major_crime.dm" #include "code\modules\law\laws\minor_crime.dm" #include "code\modules\law\laws\optional.dm" +#include "code\modules\law\laws\precautionary_charge.dm" #include "code\modules\lighting\emissive_blocker.dm" #include "code\modules\lighting\lighting_area.dm" #include "code\modules\lighting\lighting_atom.dm" diff --git a/dependencies.sh b/dependencies.sh index 2889751d36..f88c2f9b0a 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -19,3 +19,5 @@ export SPACEMAN_DMM_VERSION=suite-1.7.2 # Python version for mapmerge and other tools export PYTHON_VERSION=3.7.9 + +export OPENDREAM_VERSION=0.2.0 diff --git a/html/changelogs/AutoChangeLog-pr-4657.yml b/html/changelogs/AutoChangeLog-pr-4657.yml deleted file mode 100644 index 4641f99bb6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4657.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CapCamIII" -delete-after: True -changes: - - balance: "Crawling now only takes 1 second to move and no longer has an overhead icon when doing it." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4693.yml b/html/changelogs/AutoChangeLog-pr-4693.yml deleted file mode 100644 index e13e912459..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4693.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "fira" -delete-after: True -changes: - - bugfix: "Fixed Rangefinders/Designators preventing you from lazing if you looked up/down them without moving." - - bugfix: "Fixed Rangefinders/Designators forcing you to look up/down again if you had moved while using them." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4703.yml b/html/changelogs/AutoChangeLog-pr-4703.yml deleted file mode 100644 index c140f3ea46..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4703.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "CapCamIII" -delete-after: True -changes: - - spellcheck: "UPP Synth Survivor on the Trijent Dam nightmare is now called a Support Synthetic instead of a Combat Synthetic, as its not a combat synthetic" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4713.yml b/html/changelogs/AutoChangeLog-pr-4713.yml deleted file mode 100644 index 71a3a8cfd0..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4713.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Steelpoint" -delete-after: True -changes: - - rscadd: "UPP ERT's have a chance to be neutral to the USCM." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4721.yml b/html/changelogs/AutoChangeLog-pr-4721.yml deleted file mode 100644 index 5c78dc4499..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4721.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "SpartanBobby" -delete-after: True -changes: - - maptweak: "Fixes incorrect DIR on fireshutters in memorial" - - maptweak: "Corrects lack of warning stripe tile under door in north brig maint" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4724.yml b/html/changelogs/AutoChangeLog-pr-4724.yml deleted file mode 100644 index 326c78aea2..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4724.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "foxtrot1322" -delete-after: True -changes: - - rscadd: "Added splints to the survival pouch" - - rscadd: "Increased survival pouch storage space by 1" - - spellcheck: "Updates the survival pouch's description" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4725.yml b/html/changelogs/AutoChangeLog-pr-4725.yml deleted file mode 100644 index 4bd068d532..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4725.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "fira" -delete-after: True -changes: - - bugfix: "Xeno and Megaphone abovehead chat speech should now properly be centered horizontally." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4727.yml b/html/changelogs/AutoChangeLog-pr-4727.yml deleted file mode 100644 index e8bed292d8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4727.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Birdtalon" -delete-after: True -changes: - - rscadd: "USCM Service Jacket to SEA Vendor" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4730.yml b/html/changelogs/AutoChangeLog-pr-4730.yml deleted file mode 100644 index b275429f33..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4730.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fixed imaginary friends not initializing correctly and throwing a runtime" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4731.yml b/html/changelogs/AutoChangeLog-pr-4731.yml deleted file mode 100644 index 44d62ec78b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4731.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - ui: "Tweaked the position of some ghost alerts" \ No newline at end of file diff --git a/html/changelogs/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml index dda0958c93..fb4ed664fd 100644 --- a/html/changelogs/archive/2023-10.yml +++ b/html/changelogs/archive/2023-10.yml @@ -286,3 +286,97 @@ VileBeggar: - rscadd: Dartboards are now functional and can be crafted with cardboard. - bugfix: Fixed an issue with some deconstructed signs losing their icon. +2023-10-21: + Birdtalon: + - rscadd: USCM Service Jacket to SEA Vendor + CapCamIII: + - balance: Crawling now only takes 1 second to move and no longer has an overhead + icon when doing it. + - balance: Timer on attempting to join ERT after death is now 30 seconds down from + 1 minute + - spellcheck: UPP Synth Survivor on the Trijent Dam nightmare is now called a Support + Synthetic instead of a Combat Synthetic, as its not a combat synthetic + Drathek: + - bugfix: Fixed imaginary friends not initializing correctly and throwing a runtime + - ui: Tweaked the position of some ghost alerts + SpartanBobby: + - maptweak: Fixes incorrect DIR on fireshutters in memorial + - maptweak: Corrects lack of warning stripe tile under door in north brig maint + Steelpoint: + - rscadd: UPP ERT's have a chance to be neutral to the USCM. + fira: + - bugfix: Xeno and Megaphone abovehead chat speech should now properly be centered + horizontally. + - bugfix: Fixed Rangefinders/Designators preventing you from lazing if you looked + up/down them without moving. + - bugfix: Fixed Rangefinders/Designators forcing you to look up/down again if you + had moved while using them. + foxtrot1322: + - rscadd: Added splints to the survival pouch + - rscadd: Increased survival pouch storage space by 1 + - spellcheck: Updates the survival pouch's description +2023-10-22: + Drathek: + - bugfix: Fix incend and cluster OBs not respecting ceiling OB protections. + - bugfix: Disabled code in icon2html that is causing bad icon operations + Morrow: + - server: the rustg mysql driver is now properly compatible with mariadb + Zonespace27: + - rscadd: Mentors can now unmark mhelps + fira: + - bugfix: Removed redundant double binding for F1 to AdminHelp from default keybinds. + This does not affect existing users or their settings. + - rscadd: Stamping papers now makes a noise. + - bugfix: Fixed incorrect Reqs vendors visuals on the Almayer. They now blend in + with the walls again. + - bugfix: Re-fixed Megaphone above-head-chat drifting to the left. + harryob: + - admin: no more href token errors when changing the game mode via game panel + - bugfix: mentorhelp response no longer gives a dead discord link + - admin: view-target-records now allows you to note people properly + kiVts: + - rscadd: Ghosts get notified when they are being revived by DFB property + - balance: DFB property healing threshold lowered, You can create DFB property higher + than one. + realforest2001: + - rscadd: Added Discretionary Arrest to JAS. + - rscadd: Added a new category to JAS, Precautionary Charges. Moves Insanity and + POW to this category. +2023-10-23: + QuickLode: + - balance: Nerfs synth surv pouch by removing 1 storage slot. + SpypigDev: + - rscadd: CIC Armory SO vendor + - balance: Moved most combat-themed gear from SO spawn vendors, to CIC Armory vendor + - balance: Made RTO pack a point-buy item in CIC Armory vendor for SOs + Steelpoint: + - balance: Revolver Heavy ammo no longer stuns targets it strikes, it will instead + knock them back and slow them down for a short time. + harryob: + - server: the server now respects /string/title for late joiners + stalkerino: + - balance: m39 is able to use vertigrip +2023-10-24: + Segrain: + - bugfix: Slicing food once again works as intended. +2023-10-25: + fira: + - bugfix: Fixed Ghosts and Queen Eye occasionally "eating" pounces in place of a + mob on the same turf. + - bugfix: Re-Re-Fixed Xeno Above Head Chat offsets, for real this time + - bugfix: Fixed people talking in radios all the time. Finally some quiet. + - bugfix: deadchat death messages should now display immediately rather than being + delayed a couple seconds. +2023-10-26: + 4hands44: + - rscadd: Added more attachments, and belts to the CO arsenal. + - rscadd: CO now has an Essentials Kit like other roles, containing his Designator, + and other useful tools. + - rscadd: Re-Adds Bridgecoat to some Officer Dress vendors. (Limited to CO(+) and + XO currently.) + - rscdel: Removed Laser Designator from CO spawn Preset. + - balance: CO can now vend welding Helmet visors. + - balance: Adds grenade packets to CO Vendor. + XDinka: + - rscadd: 'Added four new haircuts: gentle ponytail, edgar haircut, emo bun, taper + haircut.' diff --git a/icons/mob/humans/human_hair.dmi b/icons/mob/humans/human_hair.dmi index ca4a20bcaf..9634a2543a 100644 Binary files a/icons/mob/humans/human_hair.dmi and b/icons/mob/humans/human_hair.dmi differ diff --git a/icons/obj/items/syringe.dmi b/icons/obj/items/syringe.dmi index d08b2a8c2d..d54123a898 100644 Binary files a/icons/obj/items/syringe.dmi and b/icons/obj/items/syringe.dmi differ diff --git a/interface/interface.dm b/interface/interface.dm index abbf4049e5..2ea40d924d 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -43,7 +43,7 @@ if(tgui_alert(src, "This will open the discord in your browser. Are you sure?", "Confirm", list("Yes", "No")) != "Yes") return - src << link("https://discord.gg/v6P6wns5dN") + src << link("[CONFIG_GET(string/discordurl)]") return /client/verb/github() diff --git a/interface/skin.dmf b/interface/skin.dmf index e9a5a21557..dfd279983e 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -164,7 +164,6 @@ window "mainwindow" anchor2 = -1,-1 is-default = true saved-params = "pos;size;is-minimized;is-maximized" - title = "CM-SS13 - USS Almayer" is-maximized = true statusbar = false icon = 'icons\\taskbar\\gml_distress.png' @@ -297,7 +296,7 @@ window "infowindow" text-align = center font-weight = bold saved-params = "is-checked" - text = "discord.gg/v6P6wns5dN" + text = "discord.gg/PVE-CMSS13" command = "discord" window "outputwindow" diff --git a/maps/interiors/tank.dmm b/maps/interiors/tank.dmm index 75da1e24f7..8dc0bf1419 100644 --- a/maps/interiors/tank.dmm +++ b/maps/interiors/tank.dmm @@ -6,7 +6,7 @@ name = "back entrance marker"; tag = "back" }, -/obj/structure/transmitter{ +/obj/structure/phone_base{ dir = 8; layer = 3.1; name = "Tank Telephone"; diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index 6439378dba..e9b77c1ca9 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -1328,7 +1328,7 @@ /obj/structure/machinery/computer/telecomms/monitor{ req_one_access_txt = "19;200" }, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 4; phone_category = "Solaris Ridge"; phone_color = "yellow"; @@ -2958,7 +2958,7 @@ "aiG" = ( /obj/structure/surface/table, /obj/item/handcuffs, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_color = "red"; phone_id = "Marshal Office" @@ -7964,7 +7964,7 @@ "awB" = ( /obj/structure/surface/table/holotable/wood, /obj/item/reagent_container/food/drinks/coffee, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lambda Labs"; phone_color = "blue"; phone_id = "Administration" @@ -9835,7 +9835,7 @@ /obj/item/device/healthanalyzer, /obj/structure/pipes/vents/pump, /obj/item/reagent_container/spray/cleaner, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Solaris Ridge"; phone_color = "green"; phone_id = "Clinic"; @@ -11088,7 +11088,7 @@ "aFl" = ( /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 4; phone_category = "Eta Labs"; phone_id = "Observation"; @@ -14186,7 +14186,7 @@ dir = 4; health = 80 }, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_color = "blue"; phone_id = "Administration" @@ -14648,7 +14648,7 @@ /area/bigredv2/caves/eta/storage) "aOQ" = ( /obj/structure/surface/table, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Eta Labs"; phone_color = "Blue"; phone_id = "Director" @@ -14778,7 +14778,7 @@ /area/bigredv2/outside/hydroponics) "aPf" = ( /obj/structure/surface/table, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Eta Labs"; phone_id = "Workshop" }, @@ -15068,7 +15068,7 @@ dir = 4; health = 80 }, -/obj/item/phone, +/obj/item/handset, /turf/open/floor{ dir = 4; icon_state = "warnwhite" @@ -17370,7 +17370,7 @@ /obj/structure/bed/chair/office/dark{ dir = 4 }, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Solaris Ridge"; phone_color = "blue"; phone_id = "Operations"; @@ -22512,7 +22512,7 @@ dir = 4 }, /obj/structure/surface/table/reinforced, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lambda Labs"; phone_id = "Virology" }, @@ -22833,7 +22833,7 @@ /area/bigredv2/outside/filtration_plant) "boY" = ( /obj/structure/machinery/cm_vending/sorted/tech/tool_storage, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Solaris Ridge"; phone_color = "yellow"; phone_id = "Filtration"; @@ -23347,7 +23347,7 @@ /obj/structure/surface/table, /obj/effect/spawner/random/technology_scanner, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Solaris Ridge"; phone_color = "yellow"; phone_id = "Engineering"; @@ -24065,7 +24065,7 @@ "bwr" = ( /obj/structure/machinery/light, /obj/structure/surface/table, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_color = "green"; phone_id = "Virology Lab" @@ -24158,7 +24158,7 @@ "bwQ" = ( /obj/structure/surface/table, /obj/item/tool/screwdriver, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Eta Labs"; phone_color = "yellow"; phone_id = "Robotics" @@ -25169,7 +25169,7 @@ "bzF" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, -/obj/item/phone, +/obj/item/handset, /turf/open/floor{ dir = 1; icon_state = "darkblue2" @@ -27603,7 +27603,7 @@ /area/bigredv2/caves_sw) "daB" = ( /obj/structure/surface/table/reinforced, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lambda Labs"; phone_id = "Xenobiology" }, @@ -28788,7 +28788,7 @@ }, /area/bigredv2/caves/eta/living) "fyO" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Solaris Ridge"; phone_color = "green"; phone_id = "Clinic Labs"; @@ -28898,7 +28898,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lambda Labs"; phone_id = "Surgery"; pixel_y = 24 @@ -29563,7 +29563,7 @@ }, /area/bigredv2/outside/filtration_plant) "htp" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ do_not_disturb = 1; dir = 4; phone_category = "Lambda Labs"; @@ -31175,7 +31175,7 @@ }, /area/bigredv2/caves/eta/xenobiology) "kyz" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 4; phone_category = "Eta Labs"; phone_id = "Observation"; @@ -32691,7 +32691,7 @@ /area/bigredv2/caves/mining) "ofJ" = ( /obj/structure/surface/table, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Eta Labs"; phone_color = "red"; phone_id = "Security" @@ -36454,7 +36454,7 @@ /area/bigredv2/caves_research) "vBT" = ( /obj/structure/surface/table/reinforced, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_id = "Clinic Reception" }, @@ -36812,7 +36812,7 @@ /area/bigredv2/outside/w) "wry" = ( /obj/structure/surface/table, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_color = "blue"; phone_id = "Space Port" diff --git a/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm b/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm index 8907ab630f..ec219d07b9 100644 --- a/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm +++ b/maps/map_files/BigRed/sprinkles/70.se-checkpoint.dmm @@ -69,7 +69,7 @@ /area/bigredv2/outside/filtration_cave_cas) "kd" = ( /obj/structure/surface/table/almayer, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_color = "red"; phone_id = "Filtration Checkpoint" diff --git a/maps/map_files/BigRed/standalone/medbay-v3.dmm b/maps/map_files/BigRed/standalone/medbay-v3.dmm index 2e89ccc9f4..ae681377cb 100644 --- a/maps/map_files/BigRed/standalone/medbay-v3.dmm +++ b/maps/map_files/BigRed/standalone/medbay-v3.dmm @@ -1729,7 +1729,7 @@ /area/bigredv2/outside/medical) "eD" = ( /obj/structure/surface/table/reinforced, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Solaris Ridge"; phone_id = "Clinic Reception" }, @@ -2055,7 +2055,7 @@ }, /area/bigredv2/outside/medical) "Xh" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Solaris Ridge"; phone_color = "green"; phone_id = "Clinic Labs"; diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm index e265184172..c95caf2a9b 100644 --- a/maps/map_files/CORSAT/Corsat.dmm +++ b/maps/map_files/CORSAT/Corsat.dmm @@ -16467,7 +16467,7 @@ /turf/open/floor/wood, /area/corsat/gamma/administration) "aTJ" = ( -/obj/item/phone, +/obj/item/handset, /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/surface/table/woodentable/fancy, /turf/open/floor{ @@ -25672,7 +25672,7 @@ /area/corsat/omega/offices) "bug" = ( /obj/structure/surface/table/almayer, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/corsat{ dir = 8; icon_state = "bluegrey" @@ -29328,7 +29328,7 @@ /area/corsat/omega/hangar/security) "bEt" = ( /obj/structure/surface/table/reinforced, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/corsat{ dir = 8; icon_state = "red" @@ -36395,7 +36395,7 @@ /area/corsat/gamma/hangar/cargo) "csM" = ( /obj/structure/surface/table/almayer, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/corsat{ icon_state = "bluegreycorner" }, @@ -38369,7 +38369,7 @@ /area/corsat/sigma/biodome/gunrange) "dYh" = ( /obj/structure/surface/table/woodentable/fancy, -/obj/item/phone, +/obj/item/handset, /turf/open/floor{ dir = 8; icon_state = "carpet15-15" @@ -41794,7 +41794,7 @@ /area/corsat/theta/airlock/east/id) "gwW" = ( /obj/structure/surface/table/reinforced, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/corsat{ dir = 10; icon_state = "red" @@ -48246,7 +48246,7 @@ /area/corsat/gamma/biodome/complex) "lnW" = ( /obj/structure/surface/table/reinforced, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/corsat{ dir = 4; icon_state = "purplewhite" @@ -48818,7 +48818,7 @@ /area/corsat/sigma/south/complex) "lIX" = ( /obj/structure/surface/table/reinforced, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/corsat{ icon_state = "purplewhite" }, @@ -54498,7 +54498,7 @@ dir = 4; health = 80 }, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/corsat{ icon_state = "blue" }, @@ -64466,7 +64466,7 @@ /obj/item/ashtray/plastic{ pixel_x = 4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = -4; pixel_y = 4 }, diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm index 17a02d24ce..d7a3cd48f8 100644 --- a/maps/map_files/DesertDam/Desert_Dam.dmm +++ b/maps/map_files/DesertDam/Desert_Dam.dmm @@ -8246,7 +8246,7 @@ "ayG" = ( /obj/structure/surface/table, /obj/effect/spawner/random/tech_supply, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/prison{ dir = 1; icon_state = "blue" 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 0fd8b269d3..9cd11760c2 100644 --- a/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm +++ b/maps/map_files/FOP_v2_Cellblocks/Prison_Station_FOP.dmm @@ -17167,7 +17167,7 @@ }, /area/prison/security/checkpoint/highsec/n) "aWF" = ( -/obj/item/phone, +/obj/item/handset, /obj/structure/surface/table/reinforced, /turf/open/floor/prison{ dir = 9; @@ -18315,7 +18315,7 @@ /turf/open/floor/prison, /area/prison/kitchen) "bag" = ( -/obj/item/phone, +/obj/item/handset, /obj/structure/surface/table/reinforced, /turf/open/floor{ icon_state = "hydrofloor" @@ -20844,7 +20844,7 @@ }, /area/prison/cellblock/vip) "bhq" = ( -/obj/item/phone, +/obj/item/handset, /obj/structure/surface/table/reinforced, /turf/open/floor/prison{ icon_state = "cell_stripe" @@ -23437,7 +23437,7 @@ }, /area/prison/cellblock/vip) "boR" = ( -/obj/item/phone, +/obj/item/handset, /obj/structure/surface/table/reinforced, /turf/open/floor/prison{ dir = 1; @@ -37320,7 +37320,7 @@ /turf/open/floor/prison, /area/prison/recreation/medsec) "cgm" = ( -/obj/item/phone, +/obj/item/handset, /obj/structure/surface/table/reinforced, /turf/open/floor/prison, /area/prison/recreation/medsec) diff --git a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm index 660c219af5..fd4c360e7e 100644 --- a/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm +++ b/maps/map_files/FOP_v3_Sciannex/Fiorina_SciAnnex.dmm @@ -2035,7 +2035,7 @@ /area/fiorina/station/botany) "bck" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_y = 7 }, /turf/open/floor/prison{ @@ -11656,7 +11656,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -11946,7 +11946,7 @@ }, /area/fiorina/station/lowsec) "hob" = ( -/obj/item/phone{ +/obj/item/handset{ pixel_y = 7 }, /turf/open/floor/plating/prison, @@ -12421,11 +12421,11 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 7; pixel_y = -16 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = -3; pixel_y = 16 }, @@ -16569,11 +16569,11 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 6; pixel_y = -15 }, -/obj/item/phone{ +/obj/item/handset{ pixel_y = 7 }, /turf/open/floor/prison{ @@ -17733,7 +17733,7 @@ /area/fiorina/station/transit_hub) "kLX" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/prison{ dir = 10; icon_state = "sterile_white" @@ -19893,7 +19893,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = -3; pixel_y = 13 }, @@ -21789,7 +21789,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = -3; pixel_y = 13 }, @@ -31826,7 +31826,7 @@ /turf/open/floor/plating/prison, /area/fiorina/station/medbay) "tER" = ( -/obj/item/phone{ +/obj/item/handset{ pixel_x = 9; pixel_y = -10 }, @@ -34510,11 +34510,11 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = -3; pixel_y = 10 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 9; pixel_y = -10 }, @@ -36440,10 +36440,10 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_y = -4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 7; pixel_y = 10 }, diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm index 0043ae9f1c..368d8e5faa 100644 --- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm +++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.medicalhold.dmm @@ -494,7 +494,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/phone{ +/obj/item/handset{ pixel_x = -3; pixel_y = 13 }, diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm index d777aaf2e7..0332274d42 100644 --- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm +++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm @@ -11183,7 +11183,7 @@ pixel_y = 5 }, /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = -12; pixel_y = 7 }, diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index fdc0fdea32..f82f8bc42d 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -3336,7 +3336,7 @@ /turf/open/floor/almayer/research/containment/floor2, /area/kutjevo/interior/power) "ewF" = ( -/obj/item/phone{ +/obj/item/handset{ pixel_x = 1; pixel_y = 4 }, @@ -8059,7 +8059,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 5; pixel_y = -4 }, 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 e798127468..7559e07353 100644 --- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm +++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @@ -1367,7 +1367,7 @@ }, /area/lv522/indoors/a_block/dorms) "aNn" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Colony Corporate"; @@ -2377,7 +2377,7 @@ /area/lv522/indoors/c_block/garage) "bny" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Reactor Garage"; @@ -8838,7 +8838,7 @@ /area/lv522/oob) "ebR" = ( /obj/structure/surface/table/almayer, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 1; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -11205,7 +11205,7 @@ /obj/structure/platform{ dir = 8 }, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "LZ1 Service Tunnel"; @@ -11478,7 +11478,7 @@ /area/lv522/landing_zone_2) "ffO" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 8; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -17534,7 +17534,7 @@ "huX" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 1; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -18627,7 +18627,7 @@ "hPQ" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/surface/table/woodentable/fancy, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "LV522 Chances Claim"; phone_id = "Chief Engineer Office"; pixel_x = -2; @@ -19659,7 +19659,7 @@ /area/lv522/landing_zone_1/tunnel) "ike" = ( /obj/item/prop/alien/hugger, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 4; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -22663,7 +22663,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 4; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -23515,7 +23515,7 @@ /turf/closed/wall/r_wall/biodome/biodome_unmeltable, /area/lv522/oob) "jEF" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Reactor Meeting Room"; @@ -29654,7 +29654,7 @@ /area/lv522/landing_zone_2) "lSP" = ( /obj/structure/surface/table/almayer, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "LV522 Chances Claim"; phone_id = "Colony Operations Centre"; pixel_y = 6 @@ -30067,7 +30067,7 @@ "mbw" = ( /obj/effect/decal/cleanable/blood, /obj/effect/decal/cleanable/dirt, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Colony Dining"; @@ -31010,7 +31010,7 @@ /turf/open/floor/grass, /area/lv522/indoors/a_block/garden) "mtM" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 4; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -31032,7 +31032,7 @@ "muO" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 1; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -32905,7 +32905,7 @@ /turf/open/floor/plating/plating_catwalk/prison, /area/lv522/indoors/a_block/security) "nem" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Colony Northern Dorms"; @@ -34187,7 +34187,7 @@ /turf/open/floor/prison, /area/lv522/indoors/c_block/mining) "nDS" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Colony Dorms"; @@ -36356,7 +36356,7 @@ }, /area/lv522/outdoors/colony_streets/north_west_street) "osm" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Reactor Sewer"; @@ -37068,7 +37068,7 @@ }, /area/lv522/indoors/a_block/admin) "oHR" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 4; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -37219,7 +37219,7 @@ }, /area/lv522/atmos/east_reactor/south) "oKN" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Reactor Central Office"; @@ -41954,7 +41954,7 @@ }, /area/lv522/indoors/a_block/dorms) "qyp" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Reactor Eastern Reactor Control"; @@ -42387,7 +42387,7 @@ /turf/open/asphalt/cement, /area/lv522/outdoors/colony_streets/central_streets) "qGh" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Colony Fitness"; @@ -44203,7 +44203,7 @@ "rjl" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node, /obj/effect/decal/cleanable/blood, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "LV522 Chances Claim"; phone_color = "red"; phone_id = "Reactor Entrance Office"; @@ -47074,7 +47074,7 @@ /area/lv522/landing_zone_2) "slt" = ( /obj/structure/surface/table/almayer, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "LV522 Chances Claim"; phone_id = "Reactor Control"; pixel_y = 6 @@ -55594,7 +55594,7 @@ /obj/structure/bed/chair{ dir = 8 }, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 8; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -59282,7 +59282,7 @@ /area/lv522/indoors/a_block/admin) "wDu" = ( /obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 8; phone_category = "LV522 Chances Claim"; phone_color = "red"; @@ -60553,7 +60553,7 @@ /area/lv522/outdoors/colony_streets/north_street) "xfS" = ( /obj/structure/surface/table/woodentable/fancy, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ dir = 1; phone_category = "LV522 Chances Claim"; phone_color = "red"; diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm index 20757954b5..80da4a7381 100644 --- a/maps/map_files/LV624/LV624.dmm +++ b/maps/map_files/LV624/LV624.dmm @@ -4750,7 +4750,7 @@ /obj/structure/machinery/light{ dir = 8 }, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_id = "Research Dome"; pixel_y = 24 @@ -5744,7 +5744,7 @@ /area/lv624/lazarus/sleep_female) "aBe" = ( /obj/structure/surface/table, -/obj/item/phone, +/obj/item/handset, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor{ dir = 9; @@ -8068,7 +8068,7 @@ }, /area/lv624/lazarus/main_hall) "aJC" = ( -/obj/item/phone{ +/obj/item/handset{ desc = "A model of an ancient Earth communication device."; force = 8 }, @@ -8640,7 +8640,7 @@ pixel_x = 6; pixel_y = 14 }, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lazarus Landing"; phone_color = "red"; phone_id = "Marshal Office" @@ -11548,7 +11548,7 @@ "aXt" = ( /obj/structure/surface/rack, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_color = "yellow"; phone_id = "Engineering"; @@ -11861,7 +11861,7 @@ "aYJ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/trash/chips, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lazarus Landing"; phone_color = "blue"; phone_id = "Director's Office" @@ -14986,7 +14986,7 @@ /turf/open/gm/river, /area/lv624/ground/river/central_river) "hXt" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_id = "Lakeside Bar"; pixel_y = 32 @@ -17005,7 +17005,7 @@ }, /area/lv624/ground/barrens/west_barrens) "nrP" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_id = "Cargo"; pixel_y = 24 @@ -18086,7 +18086,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lazarus Landing"; phone_id = "Medbay" }, @@ -18254,7 +18254,7 @@ pixel_x = 25; pixel_y = -5 }, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_color = "blue"; phone_id = "Corporate Office"; @@ -19042,7 +19042,7 @@ /turf/open/gm/dirtgrassborder/south, /area/lv624/ground/colony/north_tcomms_road) "rVH" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_color = "yellow"; phone_id = "Communications"; @@ -20048,7 +20048,7 @@ }, /area/lv624/ground/caves/sand_temple) "ulp" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_color = "red"; phone_id = "Secure Storage"; diff --git a/maps/map_files/LV624/armory/10.cheese.dmm b/maps/map_files/LV624/armory/10.cheese.dmm index af57be0474..b16499db31 100644 --- a/maps/map_files/LV624/armory/10.cheese.dmm +++ b/maps/map_files/LV624/armory/10.cheese.dmm @@ -17,7 +17,7 @@ }, /area/lv624/lazarus/main_hall) "d" = ( -/obj/item/phone{ +/obj/item/handset{ desc = "A model of an ancient Earth communication device."; force = 8 }, diff --git a/maps/map_files/LV624/armory/10.extra.dmm b/maps/map_files/LV624/armory/10.extra.dmm index 6ac8be8435..e407d06c85 100644 --- a/maps/map_files/LV624/armory/10.extra.dmm +++ b/maps/map_files/LV624/armory/10.extra.dmm @@ -17,7 +17,7 @@ }, /area/lv624/lazarus/main_hall) "d" = ( -/obj/item/phone{ +/obj/item/handset{ desc = "A model of an ancient Earth communication device."; force = 8 }, diff --git a/maps/map_files/LV624/armory/10.looted.dmm b/maps/map_files/LV624/armory/10.looted.dmm index cf9c2d141a..40e2637415 100644 --- a/maps/map_files/LV624/armory/10.looted.dmm +++ b/maps/map_files/LV624/armory/10.looted.dmm @@ -18,7 +18,7 @@ }, /area/lv624/lazarus/main_hall) "d" = ( -/obj/item/phone{ +/obj/item/handset{ desc = "A model of an ancient Earth communication device."; force = 8 }, diff --git a/maps/map_files/LV624/medbay/10.destroyed.dmm b/maps/map_files/LV624/medbay/10.destroyed.dmm index bf310be7dd..d0f71603dd 100644 --- a/maps/map_files/LV624/medbay/10.destroyed.dmm +++ b/maps/map_files/LV624/medbay/10.destroyed.dmm @@ -129,7 +129,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lazarus Landing"; phone_id = "Medbay" }, diff --git a/maps/map_files/LV624/medbay/30.larvasurgery.dmm b/maps/map_files/LV624/medbay/30.larvasurgery.dmm index 613b76c3e2..7a773c4c6d 100644 --- a/maps/map_files/LV624/medbay/30.larvasurgery.dmm +++ b/maps/map_files/LV624/medbay/30.larvasurgery.dmm @@ -515,7 +515,7 @@ /obj/structure/machinery/light{ dir = 4 }, -/obj/structure/transmitter/colony_net/rotary{ +/obj/structure/phone_base/colony_net/rotary{ phone_category = "Lazarus Landing"; phone_id = "Medbay" }, diff --git a/maps/map_files/LV624/science/10.yautja.dmm b/maps/map_files/LV624/science/10.yautja.dmm index 7c8df9531d..52130f95fc 100644 --- a/maps/map_files/LV624/science/10.yautja.dmm +++ b/maps/map_files/LV624/science/10.yautja.dmm @@ -172,7 +172,7 @@ dir = 8 }, /obj/effect/landmark/crap_item, -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_id = "Research Dome"; pixel_y = 24 diff --git a/maps/map_files/LV624/science/40.fullylocked.dmm b/maps/map_files/LV624/science/40.fullylocked.dmm index 1957d6fef0..b6124474f9 100644 --- a/maps/map_files/LV624/science/40.fullylocked.dmm +++ b/maps/map_files/LV624/science/40.fullylocked.dmm @@ -409,7 +409,7 @@ }, /area/lv624/lazarus/research) "oe" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ phone_category = "Lazarus Landing"; phone_id = "Research Dome"; pixel_y = 24 diff --git a/maps/map_files/LV624/standalone/clfship.dmm b/maps/map_files/LV624/standalone/clfship.dmm index e69c2de5bc..2700593a2a 100644 --- a/maps/map_files/LV624/standalone/clfship.dmm +++ b/maps/map_files/LV624/standalone/clfship.dmm @@ -161,7 +161,7 @@ }, /area/lv624/lazarus/crashed_ship) "fA" = ( -/obj/structure/transmitter/clf_net{ +/obj/structure/phone_base/clf_net{ phone_category = "CR-116"; phone_id = "Armoury"; pixel_y = 32 @@ -664,7 +664,7 @@ "sI" = ( /obj/structure/surface/table/reinforced/prison, /obj/effect/spawner/random/toolbox, -/obj/structure/transmitter/clf_net/rotary{ +/obj/structure/phone_base/clf_net/rotary{ phone_category = "CR-116"; phone_color = "yellow"; phone_id = "Engineering" @@ -1657,7 +1657,7 @@ /area/lv624/lazarus/crashed_ship) "Qj" = ( /obj/structure/machinery/body_scanconsole, -/obj/structure/transmitter/clf_net{ +/obj/structure/phone_base/clf_net{ phone_category = "CR-116"; phone_color = "green"; phone_id = "Medical Bay"; @@ -1987,7 +1987,7 @@ }, /area/lv624/lazarus/crashed_ship) "XM" = ( -/obj/structure/transmitter/clf_net{ +/obj/structure/phone_base/clf_net{ phone_category = "CR-116"; phone_id = "Cargo Bay"; pixel_y = 32 diff --git a/maps/map_files/LV624/standalone/laststand.dmm b/maps/map_files/LV624/standalone/laststand.dmm index 43201f92cb..ebdb595397 100644 --- a/maps/map_files/LV624/standalone/laststand.dmm +++ b/maps/map_files/LV624/standalone/laststand.dmm @@ -404,7 +404,7 @@ /turf/open/floor/wood, /area/lv624/ground/caves/north_central_caves) "Yc" = ( -/obj/structure/transmitter/colony_net{ +/obj/structure/phone_base/colony_net{ pixel_y = 32; phone_category = "Lazarus Landing"; phone_id = "Lakeside Bar" diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm index 328e450fba..d34d18de84 100644 --- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm +++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm @@ -1306,7 +1306,7 @@ /area/strata/ug/interior) "adR" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -4512,7 +4512,7 @@ /area/strata/ag/interior/research_decks/security) "anv" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -4540,7 +4540,7 @@ /area/strata/ag/exterior/research_decks) "anz" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -4819,7 +4819,7 @@ /area/strata/ag/interior/outpost/security) "aoD" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -6165,7 +6165,7 @@ /area/strata/ag/interior/outpost/security) "asB" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -6252,7 +6252,7 @@ /area/strata/ag/interior/outpost/canteen/lower_cafeteria) "asP" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -7055,7 +7055,7 @@ "avj" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -7274,7 +7274,7 @@ dir = 8 }, /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -8812,7 +8812,7 @@ /area/strata/ag/interior/outpost/security) "aAC" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -8842,7 +8842,7 @@ "aAG" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -12599,7 +12599,7 @@ pixel_x = -10 }, /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -14807,7 +14807,7 @@ /area/strata/ag/interior/outpost/admin) "aTN" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -15826,7 +15826,7 @@ /area/strata/ag/interior/mountain) "aXH" = ( /obj/structure/surface/table, -/obj/item/phone, +/obj/item/handset, /turf/open/floor/strata, /area/strata/ag/interior/dorms/south) "aXI" = ( @@ -17987,7 +17987,7 @@ /area/strata/ag/exterior/paths/adminext) "bfF" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -20087,7 +20087,7 @@ "bnI" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -21469,7 +21469,7 @@ /area/strata/ag/interior/outpost/admin) "bsH" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -23500,7 +23500,7 @@ /area/strata/ag/interior/outpost/med) "bBY" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -23736,7 +23736,7 @@ /obj/item/paper_bin, /obj/item/tool/pen/blue, /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -24098,7 +24098,7 @@ /area/strata/ag/interior/outpost/med) "bGx" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -24569,7 +24569,7 @@ /area/strata/ag/interior/outpost/med) "bJW" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -27900,7 +27900,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -28071,7 +28071,7 @@ /area/strata/ag/interior/outpost/engi/drome/shuttle) "clr" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -29755,7 +29755,7 @@ dir = 1 }, /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -31540,7 +31540,7 @@ /obj/structure/surface/table/reinforced/prison, /obj/item/paper_bin, /obj/item/tool/pen/blue, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -31654,7 +31654,7 @@ "gkA" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/device/flashlight/lamp, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -32113,7 +32113,7 @@ /area/strata/ag/exterior/research_decks) "haw" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, @@ -37528,7 +37528,7 @@ /area/strata/ag/interior/mountain) "qzf" = ( /obj/structure/surface/table/reinforced/prison, -/obj/item/phone{ +/obj/item/handset{ pixel_x = 8; pixel_y = 6 }, diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 91450070b8..aef7fc155d 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -529,19 +529,6 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) -"abQ" = ( -/obj/structure/surface/rack, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "abR" = ( /obj/item/tank/phoron, /turf/open/floor/almayer{ @@ -1574,20 +1561,6 @@ icon_state = "plating" }, /area/almayer/shipboard/starboard_missiles) -"afb" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/transmitter{ - dir = 4; - name = "Starboard Railgun Control Telephone"; - phone_category = "Command"; - phone_id = "Starboard Railgun Control"; - pixel_x = -26 - }, -/obj/item/device/binoculars, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/shipboard/starboard_missiles) "afc" = ( /obj/structure/reagent_dispensers/water_cooler/stacks{ density = 0; @@ -5557,23 +5530,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/pilotbunks) -"asi" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 4 - }, -/obj/structure/transmitter{ - dir = 8; - name = "OT Telephone"; - phone_category = "Almayer"; - phone_id = "Ordnance Tech"; - pixel_x = 14 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "orange" - }, -/area/almayer/engineering/engineering_workshop/hangar) "asj" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -6963,43 +6919,6 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"avL" = ( -/obj/structure/machinery/door_control{ - id = "ARES StairsUpper"; - name = "ARES Core Access"; - pixel_x = -10; - pixel_y = -24; - req_one_access_txt = "91;92" - }, -/obj/structure/machinery/door_control{ - id = "ARES StairsLock"; - name = "ARES Exterior Lockdown"; - pixel_y = -24; - req_one_access_txt = "91;92" - }, -/obj/structure/surface/table/reinforced/almayer_B{ - climbable = 0; - indestructible = 1; - unacidable = 1; - unslashable = 1 - }, -/obj/structure/transmitter/rotary{ - name = "AI Reception Telephone"; - phone_category = "ARES"; - phone_color = "blue"; - phone_id = "AI Reception" - }, -/obj/structure/machinery/door_control{ - id = "ARES Emergency"; - name = "ARES Emergency Lockdown"; - pixel_x = 10; - pixel_y = -24; - req_one_access_txt = "91;92" - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "avM" = ( /obj/structure/machinery/computer/cameras/almayer/ares{ dir = 8; @@ -10368,28 +10287,6 @@ /obj/structure/flora/bush/ausbushes/var3/fullgrass, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"aIC" = ( -/obj/structure/surface/table/almayer, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/transmitter/rotary{ - name = "Researcher Office Telephone"; - phone_category = "Almayer"; - phone_id = "Research"; - pixel_y = 6 - }, -/obj/item/reagent_container/glass/beaker{ - pixel_x = 6; - pixel_y = -1 - }, -/obj/item/reagent_container/glass/beaker/large{ - pixel_x = -6 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green_side" - }, -/area/almayer/medical/medical_science) "aID" = ( /obj/structure/machinery/light{ dir = 1 @@ -12000,19 +11897,6 @@ "aQv" = ( /turf/closed/wall/almayer, /area/almayer/hallways/starboard_umbilical) -"aQy" = ( -/obj/structure/transmitter{ - dir = 8; - name = "RO Office Telephone"; - phone_category = "Offices"; - phone_id = "RO Office"; - pixel_x = 16 - }, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "green" - }, -/area/almayer/squads/req) "aQz" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -12126,6 +12010,16 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) +"aRf" = ( +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/phone_base/rotary{ + name = "Captain's Office"; + phone_category = "Offices"; + phone_id = "Captain's Office"; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/almayer/living/commandbunks) "aRi" = ( /obj/structure/bed/chair/office/dark{ dir = 1 @@ -16332,6 +16226,18 @@ icon_state = "green" }, /area/almayer/living/offices) +"bmZ" = ( +/obj/structure/phone_base/no_dnd{ + name = "Requisition Telephone"; + phone_category = "Almayer"; + phone_id = "Requisition"; + pixel_y = 30 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/squads/req) "bnc" = ( /obj/structure/machinery/power/fusion_engine{ name = "\improper S-52 fusion reactor 9" @@ -17514,13 +17420,6 @@ icon_state = "redfull" }, /area/almayer/squads/alpha) -"bti" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "silver" - }, -/area/almayer/command/computerlab) "btk" = ( /obj/structure/sign/poster/pinup{ pixel_x = -30 @@ -19154,32 +19053,6 @@ }, /turf/open/floor/grass, /area/almayer/living/starboard_garden) -"bBD" = ( -/obj/structure/machinery/firealarm{ - pixel_y = 28 - }, -/obj/structure/sign/safety/maint{ - pixel_x = -17 - }, -/obj/structure/surface/table/almayer, -/obj/structure/transmitter/rotary{ - name = "Telephone"; - phone_category = "Almayer"; - phone_id = "Auxiliary Support Office Second Line"; - pixel_x = -5; - pixel_y = 3 - }, -/obj/structure/transmitter/rotary{ - name = "Telephone"; - phone_category = "Almayer"; - phone_id = "Auxiliary Support Office"; - pixel_x = 8; - pixel_y = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/auxiliary_officer_office) "bBN" = ( /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, @@ -22745,14 +22618,6 @@ }, /turf/closed/wall/almayer, /area/almayer/squads/req) -"bQS" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo{ - icon_state = "req_ammo_wall" - }, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/squads/req) "bQU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -24362,15 +24227,6 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/hallways/vehiclehangar) -"bYa" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo{ - icon_state = "req_guns_wall" - }, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/squads/req) "bYc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -25691,30 +25547,6 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/hallways/hangar) -"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 @@ -28243,6 +28075,12 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"cCj" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/squads/req) "cCD" = ( /obj/structure/platform{ dir = 8; @@ -28313,6 +28151,15 @@ icon_state = "test_floor4" }, /area/almayer/living/grunt_rnr) +"cDU" = ( +/obj/structure/phone_base/rotary{ + name = "CL Office Telephone"; + phone_category = "Almayer"; + phone_id = "CL Office" + }, +/obj/structure/surface/table/woodentable/fancy, +/turf/open/floor/carpet, +/area/almayer/command/corporateliason) "cDW" = ( /obj/structure/largecrate/supply/supplies/flares, /turf/open/floor/almayer{ @@ -29285,6 +29132,27 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) +"cYn" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/structure/sign/safety/terminal{ + pixel_x = 7; + pixel_y = 29 + }, +/obj/structure/phone_base/rotary{ + name = "Reporter Telephone"; + phone_category = "Almayer"; + phone_id = "Reporter"; + pixel_x = -17; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "cYu" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -30012,14 +29880,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"dnm" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/command/computerlab) "dnC" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -30119,24 +29979,6 @@ icon_state = "cargo" }, /area/almayer/squads/req) -"dpn" = ( -/obj/structure/closet/secure_closet/freezer/fridge/full, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/item/reagent_container/food/condiment/enzyme, -/obj/item/reagent_container/food/condiment/enzyme, -/obj/structure/transmitter{ - name = "Kitchen Telephone"; - phone_category = "Almayer"; - phone_id = "Kitchen"; - pixel_x = -8; - pixel_y = 29 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) "dpo" = ( /obj/structure/machinery/light{ dir = 1 @@ -30863,6 +30705,16 @@ icon_state = "orange" }, /area/almayer/engineering/engine_core) +"dDe" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silver" + }, +/area/almayer/command/computerlab) "dDp" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -34008,16 +33860,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"eSJ" = ( -/obj/structure/surface/table/woodentable/fancy, -/obj/structure/transmitter/rotary{ - name = "Captain's Office"; - phone_category = "Offices"; - phone_id = "Captain's Office"; - pixel_y = 6 - }, -/turf/open/floor/carpet, -/area/almayer/living/commandbunks) "eSU" = ( /obj/structure/prop/almayer/name_stencil{ icon_state = "almayer1" @@ -34623,17 +34465,6 @@ icon_state = "plating" }, /area/almayer/command/airoom) -"ffV" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/crew/alt, -/obj/structure/transmitter/rotary/no_dnd{ - name = "Brig Cells Telephone"; - phone_category = "Almayer"; - phone_id = "Brig Cells"; - pixel_x = 15 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/processing) "fgh" = ( /obj/structure/machinery/light/small{ dir = 8 @@ -34763,6 +34594,27 @@ icon_state = "orange" }, /area/almayer/engineering/engine_core) +"fjM" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = -17 + }, +/obj/structure/phone_base/rotary/no_dnd{ + name = "Delta Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Delta Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "fjO" = ( /obj/item/tool/wet_sign, /obj/effect/decal/cleanable/blood, @@ -34931,6 +34783,17 @@ icon_state = "cargo" }, /area/almayer/hull/upper_hull/u_a_s) +"fox" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/crew/alt, +/obj/structure/phone_base/rotary/no_dnd{ + name = "Brig Cells Telephone"; + phone_category = "Almayer"; + phone_id = "Brig Cells"; + pixel_x = 15 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/processing) "foL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35368,6 +35231,32 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/port_point_defense) +"fwb" = ( +/obj/structure/machinery/firealarm{ + pixel_y = 28 + }, +/obj/structure/sign/safety/maint{ + pixel_x = -17 + }, +/obj/structure/surface/table/almayer, +/obj/structure/phone_base/rotary{ + name = "Telephone"; + phone_category = "Almayer"; + phone_id = "Auxiliary Support Office Second Line"; + pixel_x = -5; + pixel_y = 3 + }, +/obj/structure/phone_base/rotary{ + name = "Telephone"; + phone_category = "Almayer"; + phone_id = "Auxiliary Support Office"; + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/auxiliary_officer_office) "fwD" = ( /obj/item/reagent_container/food/snacks/grown/poppy{ pixel_x = 4; @@ -35581,6 +35470,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/command/lifeboat) +"fCq" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/almayer_network{ + dir = 1 + }, +/obj/structure/machinery/light{ + unacidable = 1; + unslashable = 1 + }, +/obj/structure/phone_base{ + dir = 1; + name = "Brig Warden's Office Telephone"; + phone_category = "Offices"; + phone_id = "Brig Warden's Office"; + pixel_x = -16 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/main_office) "fCL" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -36284,6 +36191,30 @@ /obj/effect/step_trigger/clone_cleaner, /turf/closed/wall/almayer, /area/almayer/hull/upper_hull/u_m_p) +"fRb" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = -17 + }, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/phone_base/rotary/no_dnd{ + name = "Charlie Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Charlie Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = 7 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "fRr" = ( /obj/structure/machinery/light{ dir = 1 @@ -36306,6 +36237,14 @@ }, /turf/open/floor/almayer, /area/almayer/hull/upper_hull/u_f_s) +"fSc" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "silverfull" + }, +/area/almayer/command/computerlab) "fSl" = ( /obj/structure/machinery/line_nexter{ id = "line2"; @@ -36486,6 +36425,47 @@ icon_state = "plate" }, /area/almayer/command/combat_correspondent) +"fXF" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/door_control{ + id = "CIC Lockdown"; + name = "CIC Lockdown"; + pixel_x = -7; + pixel_y = 9; + req_access_txt = "1" + }, +/obj/structure/machinery/door_control{ + id = "Hangar Lockdown"; + name = "Hangar Lockdown"; + pixel_x = -7; + pixel_y = 2; + req_access_txt = "1" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4; + icon_state = "exposed01-supply" + }, +/obj/structure/machinery/door_control{ + id = "bot_armory"; + name = "Armory Lockdown"; + pixel_x = -7; + pixel_y = -5; + req_one_access_txt = "1;4" + }, +/obj/structure/phone_base/rotary/no_dnd{ + name = "Combat Information Center Telephone"; + phone_category = "Command"; + phone_id = "Combat Information Center"; + pixel_x = 5; + pixel_y = 4 + }, +/obj/structure/machinery/door/window/westright{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "fXN" = ( /obj/effect/landmark/start/marine/delta, /obj/effect/landmark/late_join/delta, @@ -36621,24 +36601,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"gba" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/faxmachine/uscm/command{ - department = "AI Core"; - pixel_y = 8 - }, -/obj/structure/transmitter/rotary{ - name = "AI Core Telephone"; - phone_category = "ARES"; - phone_color = "blue"; - phone_id = "AI Core"; - pixel_x = 8; - pixel_y = -8 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "ai_floors" - }, -/area/almayer/command/airoom) "gbg" = ( /obj/structure/sign/safety/terminal{ pixel_x = 14; @@ -37477,19 +37439,6 @@ icon_state = "silvercorner" }, /area/almayer/command/cichallway) -"gtA" = ( -/obj/structure/surface/table/reinforced/prison, -/obj/structure/transmitter{ - dir = 8; - name = "Medical Telephone"; - phone_category = "Almayer"; - phone_id = "Medical Lower"; - pixel_x = 16 - }, -/turf/open/floor/almayer{ - icon_state = "sterile_green" - }, -/area/almayer/medical/lockerroom) "guc" = ( /obj/structure/pipes/vents/scrubber{ dir = 1 @@ -38240,6 +38189,18 @@ icon_state = "green" }, /area/almayer/living/offices) +"gJW" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item, +/obj/item/folder/red, +/obj/structure/phone_base/rotary{ + name = "Brig CMP's Office Telephone"; + phone_category = "Offices"; + phone_id = "Brig CMP's Office"; + pixel_x = 15 + }, +/turf/open/floor/almayer, +/area/almayer/shipboard/brig/chief_mp_office) "gKB" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/structure/machinery/firealarm{ @@ -38380,6 +38341,11 @@ icon_state = "red" }, /area/almayer/shipboard/brig/perma) +"gMr" = ( +/turf/open/floor/almayer{ + icon_state = "silverfull" + }, +/area/almayer/command/securestorage) "gMx" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating/plating_catwalk, @@ -39344,13 +39310,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/engine_core) -"hgB" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silvercorner" - }, -/area/almayer/command/computerlab) "hgF" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -39936,31 +39895,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"hvv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/obj/item/clipboard{ - base_pixel_x = 20; - pixel_x = 5 - }, -/obj/item/paper{ - pixel_x = 5 - }, -/obj/item/tool/pen{ - pixel_x = 5 - }, -/obj/structure/surface/table/reinforced/black, -/obj/structure/transmitter/rotary{ - name = "CIC Reception Telephone"; - phone_category = "Command"; - phone_id = "CIC Reception"; - pixel_x = -7; - pixel_y = 4 - }, -/turf/open/floor/almayer, -/area/almayer/command/cic) "hvw" = ( /obj/structure/pipes/standard/simple/hidden/supply/no_boom, /turf/open/floor/plating, @@ -41306,18 +41240,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"hZU" = ( -/obj/structure/transmitter{ - name = "Brig Offices Telephone"; - phone_category = "Almayer"; - phone_id = "Brig Main Offices"; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "red" - }, -/area/almayer/shipboard/brig/main_office) "iag" = ( /obj/structure/surface/table/almayer, /obj/item/tool/hand_labeler, @@ -41368,6 +41290,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering/port) +"iax" = ( +/turf/open/floor/almayer{ + icon_state = "silverfull" + }, +/area/almayer/command/computerlab) "iaF" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -41753,25 +41680,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) -"ijQ" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/door_control{ - id = "SEA Office Shutters"; - name = "SEA Office Shutters"; - pixel_y = 12 - }, -/obj/item/ashtray/plastic{ - pixel_x = 8; - pixel_y = -4 - }, -/obj/structure/transmitter/rotary{ - name = "Senior Enlisted Advisor Office Telephone"; - phone_category = "Almayer"; - 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, @@ -42922,6 +42830,19 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"iKp" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/phone_base{ + dir = 4; + name = "Port Railgun Control Telephone"; + phone_category = "Command"; + phone_id = "Port Railgun Control"; + pixel_x = -26 + }, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/shipboard/port_missiles) "iKw" = ( /obj/structure/machinery/cryopod/right, /obj/structure/machinery/light{ @@ -42986,10 +42907,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"iLf" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer, -/area/almayer/command/computerlab) "iLh" = ( /obj/structure/bed/chair/comfy/bravo{ dir = 4 @@ -43984,18 +43901,6 @@ icon_state = "orange" }, /area/almayer/engineering/engine_core) -"jfY" = ( -/obj/structure/surface/table/almayer, -/obj/effect/landmark/map_item, -/obj/item/folder/red, -/obj/structure/transmitter/rotary{ - name = "Brig CMP's Office Telephone"; - phone_category = "Offices"; - phone_id = "Brig CMP's Office"; - pixel_x = 15 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/chief_mp_office) "jfZ" = ( /obj/structure/target{ name = "punching bag" @@ -44991,6 +44896,23 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"jDi" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/obj/structure/phone_base{ + dir = 8; + name = "OT Telephone"; + phone_category = "Almayer"; + phone_id = "Ordnance Tech"; + pixel_x = 14 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "orange" + }, +/area/almayer/engineering/engineering_workshop/hangar) "jDV" = ( /obj/effect/projector{ name = "Almayer_AresDown"; @@ -45981,24 +45903,6 @@ icon_state = "emerald" }, /area/almayer/squads/charlie) -"jZL" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/almayer_network{ - dir = 1 - }, -/obj/structure/machinery/light{ - unacidable = 1; - unslashable = 1 - }, -/obj/structure/transmitter{ - dir = 1; - name = "Brig Warden's Office Telephone"; - phone_category = "Offices"; - phone_id = "Brig Warden's Office"; - pixel_x = -16 - }, -/turf/open/floor/almayer, -/area/almayer/shipboard/brig/main_office) "jZO" = ( /obj/structure/largecrate/random/barrel/blue, /turf/open/floor/almayer{ @@ -46233,6 +46137,24 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"keM" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/faxmachine/uscm/command{ + department = "AI Core"; + pixel_y = 8 + }, +/obj/structure/phone_base/rotary{ + name = "AI Core Telephone"; + phone_category = "ARES"; + phone_color = "blue"; + phone_id = "AI Core"; + pixel_x = 8; + pixel_y = -8 + }, +/turf/open/floor/almayer/no_build{ + icon_state = "ai_floors" + }, +/area/almayer/command/airoom) "keR" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -46295,25 +46217,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/processing) -"kgp" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/obj/structure/transmitter{ - name = "CMO Office Telephone"; - phone_category = "Offices"; - phone_id = "CMO Office"; - pixel_y = 29 - }, -/obj/structure/sign/safety/commline_connection{ - pixel_x = 23; - pixel_y = 32 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "sterile_green_side" - }, -/area/almayer/medical/upper_medical) "kgr" = ( /obj/structure/machinery/camera/autoname/almayer{ name = "ship-grade camera" @@ -47259,6 +47162,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) +"kBt" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "kBy" = ( /obj/structure/machinery/ares/processor, /turf/open/floor/almayer/no_build{ @@ -48044,6 +47958,24 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_p) +"kRH" = ( +/obj/structure/closet/secure_closet/freezer/fridge/full, +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/item/reagent_container/food/condiment/enzyme, +/obj/structure/phone_base{ + name = "Kitchen Telephone"; + phone_category = "Almayer"; + phone_id = "Kitchen"; + pixel_x = -8; + pixel_y = 29 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/grunt_rnr) "kRP" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/prop/magazine/dirty/torn, @@ -48100,18 +48032,6 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) -"kSU" = ( -/obj/structure/transmitter/no_dnd{ - name = "Requisition Telephone"; - phone_category = "Almayer"; - phone_id = "Requisition"; - pixel_y = 30 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/squads/req) "kTc" = ( /obj/structure/closet/secure_closet/guncabinet/red, /obj/item/ammo_magazine/shotgun, @@ -48419,6 +48339,31 @@ icon_state = "plate" }, /area/almayer/living/offices) +"kZm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/obj/item/clipboard{ + base_pixel_x = 20; + pixel_x = 5 + }, +/obj/item/paper{ + pixel_x = 5 + }, +/obj/item/tool/pen{ + pixel_x = 5 + }, +/obj/structure/surface/table/reinforced/black, +/obj/structure/phone_base/rotary{ + name = "CIC Reception Telephone"; + phone_category = "Command"; + phone_id = "CIC Reception"; + pixel_x = -7; + pixel_y = 4 + }, +/turf/open/floor/almayer, +/area/almayer/command/cic) "kZA" = ( /turf/open/floor/almayer{ dir = 4; @@ -50669,27 +50614,6 @@ icon_state = "redfull" }, /area/almayer/living/briefing) -"lVX" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = 16 - }, -/obj/structure/transmitter/rotary/no_dnd{ - name = "Alpha Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Alpha Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "lWh" = ( /obj/structure/machinery/pipedispenser/orderable, /turf/open/floor/almayer{ @@ -51938,6 +51862,15 @@ }, /turf/open/floor/plating/almayer, /area/almayer/shipboard/brig/armory) +"mAw" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/ares_console{ + pixel_x = 9 + }, +/turf/open/floor/almayer/no_build{ + icon_state = "plating" + }, +/area/almayer/command/airoom) "mAT" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 8; @@ -52175,6 +52108,25 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"mGP" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/door_control{ + id = "SEA Office Shutters"; + name = "SEA Office Shutters"; + pixel_y = 12 + }, +/obj/item/ashtray/plastic{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/structure/phone_base/rotary{ + name = "Senior Enlisted Advisor Office Telephone"; + phone_category = "Almayer"; + phone_id = "Senior Enlisted Advisor's Office"; + pixel_x = -3 + }, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/sea_office) "mHm" = ( /obj/structure/sign/safety/distribution_pipes{ pixel_y = -32 @@ -54502,15 +54454,6 @@ icon_state = "redfull" }, /area/almayer/hull/lower_hull/l_f_s) -"nDh" = ( -/obj/structure/transmitter/rotary{ - name = "CL Office Telephone"; - phone_category = "Almayer"; - phone_id = "CL Office" - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "nDo" = ( /obj/structure/closet/l3closet/general, /obj/structure/window/reinforced{ @@ -55446,11 +55389,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"nYf" = ( -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/command/securestorage) "nYh" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /turf/open/floor/almayer{ @@ -55504,6 +55442,19 @@ icon_state = "orange" }, /area/almayer/hull/upper_hull/u_a_s) +"nZY" = ( +/obj/structure/surface/table/reinforced/prison, +/obj/structure/phone_base{ + dir = 8; + name = "Medical Telephone"; + phone_category = "Almayer"; + phone_id = "Medical Lower"; + pixel_x = 16 + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/almayer/medical/lockerroom) "oap" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -57007,6 +56958,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/shipboard/brig/cells) +"oEG" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "silverfull" + }, +/area/almayer/command/securestorage) "oER" = ( /obj/structure/machinery/light{ dir = 8 @@ -58289,6 +58249,13 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/engineering_workshop/hangar) +"pkl" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" + }, +/area/almayer/squads/req) "pky" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ @@ -58695,31 +58662,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/charlie) -"pvK" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_x = -6; - pixel_y = 28 - }, -/obj/structure/machinery/firealarm{ - pixel_x = 8; - pixel_y = 28 - }, -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/transmitter/rotary{ - name = "Intelligence Center Telephone"; - phone_category = "Almayer"; - phone_id = "Intelligence Center Telephone" - }, -/obj/structure/machinery/computer/cameras/almayer/vehicle{ - dir = 4; - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/command/securestorage) "pvP" = ( /turf/open/floor/almayer{ dir = 1; @@ -61379,15 +61321,6 @@ icon_state = "emeraldfull" }, /area/almayer/squads/charlie_delta_shared) -"qyZ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/command/securestorage) "qzc" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -61543,6 +61476,13 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) +"qDX" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "silvercorner" + }, +/area/almayer/command/computerlab) "qEk" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -61966,13 +61906,6 @@ dir = 4 }, /area/almayer/command/airoom) -"qLV" = ( -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 4; - icon_state = "silver" - }, -/area/almayer/command/computerlab) "qMe" = ( /obj/structure/machinery/portable_atmospherics/hydroponics, /obj/item/tool/minihoe{ @@ -62381,6 +62314,27 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"qWC" = ( +/obj/structure/machinery/firealarm{ + pixel_x = 6; + pixel_y = 28 + }, +/obj/structure/bed/chair/office/dark{ + dir = 4; + layer = 3.25 + }, +/obj/structure/phone_base{ + name = "CE Office Telephone"; + phone_category = "Offices"; + phone_id = "CE Office"; + pixel_x = -8; + pixel_y = 29 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "orange" + }, +/area/almayer/engineering/ce_room) "qWI" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -63632,6 +63586,12 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"rxq" = ( +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "rxG" = ( /obj/structure/sign/safety/medical{ pixel_x = 8; @@ -63662,14 +63622,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"ryR" = ( -/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{ - req_access = list(1) - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "rzf" = ( /obj/effect/landmark/late_join/working_joe, /obj/effect/landmark/start/working_joe, @@ -63888,6 +63840,31 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) +"rCN" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_x = -6; + pixel_y = 28 + }, +/obj/structure/machinery/firealarm{ + pixel_x = 8; + pixel_y = 28 + }, +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/phone_base/rotary{ + name = "Intelligence Center Telephone"; + phone_category = "Almayer"; + phone_id = "Intelligence Center Telephone" + }, +/obj/structure/machinery/computer/cameras/almayer/vehicle{ + dir = 4; + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "silverfull" + }, +/area/almayer/command/securestorage) "rCO" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -64035,11 +64012,6 @@ icon_state = "plate" }, /area/almayer/squads/delta) -"rEL" = ( -/turf/open/floor/almayer{ - icon_state = "silverfull" - }, -/area/almayer/command/computerlab) "rEY" = ( /obj/structure/surface/table/almayer, /obj/item/toy/deck, @@ -64715,6 +64687,13 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_f_s) +"rUY" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "silver" + }, +/area/almayer/command/computerlab) "rVo" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -65432,27 +65411,6 @@ icon_state = "cargo" }, /area/almayer/engineering/upper_engineering/port) -"snI" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = -17 - }, -/obj/structure/transmitter/rotary/no_dnd{ - name = "Delta Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Delta Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "snM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -65706,6 +65664,20 @@ icon_state = "greencorner" }, /area/almayer/hallways/port_hallway) +"ssL" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/phone_base{ + dir = 4; + name = "Starboard Railgun Control Telephone"; + phone_category = "Command"; + phone_id = "Starboard Railgun Control"; + pixel_x = -26 + }, +/obj/item/device/binoculars, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/shipboard/starboard_missiles) "ssU" = ( /obj/structure/machinery/constructable_frame, /turf/open/floor/almayer{ @@ -65782,6 +65754,13 @@ }, /turf/open/floor/almayer, /area/almayer/command/computerlab) +"suM" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "silver" + }, +/area/almayer/command/computerlab) "suT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66130,6 +66109,28 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"sDB" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = 15 + }, +/obj/structure/machinery/light, +/obj/structure/phone_base/rotary/no_dnd{ + name = "Bravo Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Bravo Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "sDC" = ( /obj/structure/sign/safety/analysis_lab{ pixel_y = 26 @@ -66679,6 +66680,25 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"sQx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/phone_base{ + name = "CMO Office Telephone"; + phone_category = "Offices"; + phone_id = "CMO Office"; + pixel_y = 29 + }, +/obj/structure/sign/safety/commline_connection{ + pixel_x = 23; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "sterile_green_side" + }, +/area/almayer/medical/upper_medical) "sQF" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -66781,30 +66801,6 @@ icon_state = "blue" }, /area/almayer/squads/delta) -"sSG" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = -17 - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/transmitter/rotary/no_dnd{ - name = "Charlie Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Charlie Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "sSR" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -67018,6 +67014,18 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"sXD" = ( +/obj/structure/phone_base{ + name = "Brig Offices Telephone"; + phone_category = "Almayer"; + phone_id = "Brig Main Offices"; + pixel_y = 32 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "red" + }, +/area/almayer/shipboard/brig/main_office) "sXE" = ( /obj/structure/machinery/door/airlock/almayer/generic{ name = "\improper Auxiliary Support Officer's Room" @@ -67578,27 +67586,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha) -"tii" = ( -/obj/structure/machinery/firealarm{ - pixel_x = 6; - pixel_y = 28 - }, -/obj/structure/bed/chair/office/dark{ - dir = 4; - layer = 3.25 - }, -/obj/structure/transmitter{ - name = "CE Office Telephone"; - phone_category = "Offices"; - phone_id = "CE Office"; - pixel_x = -8; - pixel_y = 29 - }, -/turf/open/floor/almayer{ - dir = 1; - icon_state = "orange" - }, -/area/almayer/engineering/ce_room) "tim" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -69478,6 +69465,27 @@ icon_state = "dark_sterile" }, /area/almayer/medical/lower_medical_lobby) +"tYr" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/structure/machinery/computer/overwatch/almayer{ + dir = 8; + layer = 3.2; + pixel_x = -17; + pixel_y = 16 + }, +/obj/structure/phone_base/rotary/no_dnd{ + name = "Alpha Overwatch Telephone"; + phone_category = "Command"; + phone_id = "Alpha Overwatch" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17; + pixel_y = -8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/cic) "tYw" = ( /obj/effect/decal/medical_decals{ icon_state = "triagedecalbottomleft"; @@ -69687,28 +69695,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/lifeboat_pumps/south2) -"ucz" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/overwatch/almayer{ - dir = 8; - layer = 3.2; - pixel_x = -17; - pixel_y = 15 - }, -/obj/structure/machinery/light, -/obj/structure/transmitter/rotary/no_dnd{ - name = "Bravo Overwatch Telephone"; - phone_category = "Command"; - phone_id = "Bravo Overwatch" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17; - pixel_y = -8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "udi" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -70150,6 +70136,19 @@ icon_state = "mono" }, /area/almayer/medical/upper_medical) +"umG" = ( +/obj/structure/phone_base{ + dir = 8; + name = "RO Office Telephone"; + phone_category = "Offices"; + phone_id = "RO Office"; + pixel_x = 16 + }, +/turf/open/floor/almayer{ + dir = 4; + icon_state = "green" + }, +/area/almayer/squads/req) "umR" = ( /obj/structure/machinery/power/apc/almayer/hardened{ cell_type = /obj/item/cell/hyper; @@ -70801,6 +70800,10 @@ "uys" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/squads/req) +"uyu" = ( +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer, +/area/almayer/command/computerlab) "uyC" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/plating, @@ -72653,6 +72656,43 @@ icon_state = "plating" }, /area/almayer/shipboard/port_missiles) +"vjm" = ( +/obj/structure/machinery/door_control{ + id = "ARES StairsUpper"; + name = "ARES Core Access"; + pixel_x = -10; + pixel_y = -24; + req_one_access_txt = "91;92" + }, +/obj/structure/machinery/door_control{ + id = "ARES StairsLock"; + name = "ARES Exterior Lockdown"; + pixel_y = -24; + req_one_access_txt = "91;92" + }, +/obj/structure/surface/table/reinforced/almayer_B{ + climbable = 0; + indestructible = 1; + unacidable = 1; + unslashable = 1 + }, +/obj/structure/phone_base/rotary{ + name = "AI Reception Telephone"; + phone_category = "ARES"; + phone_color = "blue"; + phone_id = "AI Reception" + }, +/obj/structure/machinery/door_control{ + id = "ARES Emergency"; + name = "ARES Emergency Lockdown"; + pixel_x = 10; + pixel_y = -24; + req_one_access_txt = "91;92" + }, +/turf/open/floor/almayer/no_build{ + icon_state = "ai_floors" + }, +/area/almayer/command/airoom) "vjx" = ( /obj/structure/largecrate/random/barrel/yellow, /turf/open/floor/almayer{ @@ -73802,15 +73842,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/numbertwobunks) -"vHa" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/computer/ares_console{ - pixel_x = 9 - }, -/turf/open/floor/almayer/no_build{ - icon_state = "plating" - }, -/area/almayer/command/airoom) "vHh" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/item/tool/warning_cone{ @@ -73845,47 +73876,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) -"vHt" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/machinery/door_control{ - id = "CIC Lockdown"; - name = "CIC Lockdown"; - pixel_x = -7; - pixel_y = 9; - req_access_txt = "1" - }, -/obj/structure/machinery/door_control{ - id = "Hangar Lockdown"; - name = "Hangar Lockdown"; - pixel_x = -7; - pixel_y = 2; - req_access_txt = "1" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4; - icon_state = "exposed01-supply" - }, -/obj/structure/machinery/door_control{ - id = "bot_armory"; - name = "Armory Lockdown"; - pixel_x = -7; - pixel_y = -5; - req_one_access_txt = "1;4" - }, -/obj/structure/transmitter/rotary/no_dnd{ - name = "Combat Information Center Telephone"; - phone_category = "Command"; - phone_id = "Combat Information Center"; - pixel_x = 5; - pixel_y = 4 - }, -/obj/structure/machinery/door/window/westright{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/cic) "vHO" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -75717,27 +75707,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/stern_hallway) -"wqr" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = 7; - pixel_y = 29 - }, -/obj/structure/transmitter/rotary{ - name = "Reporter Telephone"; - phone_category = "Almayer"; - phone_id = "Reporter"; - pixel_x = -17; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "wqu" = ( /obj/structure/window/framed/almayer, /turf/open/floor/plating, @@ -77200,6 +77169,28 @@ "wVW" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/command/cic) +"wVX" = ( +/obj/structure/surface/table/almayer, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/phone_base/rotary{ + name = "Researcher Office Telephone"; + phone_category = "Almayer"; + phone_id = "Research"; + pixel_y = 6 + }, +/obj/item/reagent_container/glass/beaker{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/item/reagent_container/glass/beaker/large{ + pixel_x = -6 + }, +/turf/open/floor/almayer{ + icon_state = "sterile_green_side" + }, +/area/almayer/medical/medical_science) "wVY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -78743,6 +78734,30 @@ icon_state = "test_floor4" }, /area/almayer/engineering/upper_engineering/port) +"xBu" = ( +/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/phone_base/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) "xBQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -79463,16 +79478,6 @@ icon_state = "emeraldcorner" }, /area/almayer/squads/charlie) -"xRk" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/surface/table/almayer, -/turf/open/floor/almayer{ - dir = 8; - icon_state = "silver" - }, -/area/almayer/command/computerlab) "xRw" = ( /turf/open/floor/almayer/uscm/directional{ dir = 1 @@ -80025,19 +80030,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_s) -"ybZ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/structure/transmitter{ - dir = 4; - name = "Port Railgun Control Telephone"; - phone_category = "Command"; - phone_id = "Port Railgun Control"; - pixel_x = -26 - }, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/shipboard/port_missiles) "ycd" = ( /obj/structure/bed/chair{ dir = 8; @@ -88075,7 +88067,7 @@ aTg pdG vAG dOL -jfY +gJW hwS wly wIC @@ -90501,7 +90493,7 @@ vBm vBm vBm vBm -hZU +sXD mLJ fkn gaJ @@ -91526,13 +91518,13 @@ gaJ gaJ tRA lMc -ffV +fox cMl oeB rkL ldu eRL -jZL +fCq vBm qJZ ohJ @@ -93850,7 +93842,7 @@ dqd uNL hJp kcp -bBD +fwb bTS bTS lxo @@ -96374,7 +96366,7 @@ aaa aaa aad aeE -afb +ssL ayq cfE cfE @@ -96422,7 +96414,7 @@ btD rVN rVN vly -ybZ +iKp pun ajZ aaa @@ -99036,9 +99028,9 @@ wVW wVW wVW swH -ucz +sDB wVW -sSG +fRb sEM wVW wVW @@ -99237,13 +99229,13 @@ apo fHh wVW lZs -lVX +tYr sni ayz dAX aQg vpV -snI +fjM aGp wVW aDv @@ -100848,7 +100840,7 @@ agj eYC agc fNb -eSJ +aRf agc agc hvH @@ -100864,7 +100856,7 @@ wVW rOC soX azX -vHt +fXF aCb aDv aEC @@ -101263,7 +101255,7 @@ sBF amY vtT wVW -abQ +kBt atN cEl sOi @@ -101757,7 +101749,7 @@ nXP mNf hJp uNL -cdE +xBu xSI uZQ aoH @@ -102087,7 +102079,7 @@ alX aIf aED wVW -ryR +rxq jvX auR wVW @@ -102692,7 +102684,7 @@ aCj ayK aAd aAP -hvv +kZm ayu aCj bYY @@ -106453,7 +106445,7 @@ qyD omo blZ bqN -gtA +nZY bqN bwR gfW @@ -107682,7 +107674,7 @@ mWw apT apA arC -asi +jDi cSN asy atw @@ -109392,7 +109384,7 @@ ajl vtx ajl ajl -kgp +sQx fbB cyU bho @@ -111424,7 +111416,7 @@ lMv dVu eSo qmD -aIC +wVX lJv aCt kXw @@ -112355,7 +112347,7 @@ vzP bJt hjB bJt -dpn +kRH bDs gSk bDs @@ -112454,7 +112446,7 @@ bqy bYj eUR bsd -nDh +cDU bYj xne cNH @@ -118530,8 +118522,8 @@ avK aqU aCZ dgg -xRk -bti +dDe +suM aHq sDC ajt @@ -119338,7 +119330,7 @@ mLE tmK avK aug -avL +vjm aqU lyE rsO @@ -119940,18 +119932,18 @@ uLu anC aiC ioU -pvK +rCN qPE xqD -nYf -rEL -dnm -rEL -rEL +gMr +iax +fSc +iax +iax aHq cnE liJ -hgB +qDX cbn aHq uLu @@ -120143,7 +120135,7 @@ aSz anG aiC ioU -qyZ +oEG wTd cmK lFm @@ -120859,7 +120851,7 @@ rbY gwD bOK bPD -bYa +pkl bPD jOk bNB @@ -120964,7 +120956,7 @@ oeM eed oeM eed -iLf +uyu aRi aGN qrv @@ -121062,7 +121054,7 @@ rbY bEc bKA bCA -bQS +cCj bCA bKA bEc @@ -121167,7 +121159,7 @@ fXx kXf huO iLO -qLV +rUY xNv iLO bUa @@ -121465,7 +121457,7 @@ bdj bri bLX bdl -kSU +bmZ bNP bmD bNP @@ -123409,7 +123401,7 @@ sUF anG apd oIB -wqr +cYn hzb xUV oIB @@ -124912,7 +124904,7 @@ sou bAX bdl wIr -aQy +umG jAB iYt bMa @@ -125935,7 +125927,7 @@ qlz xYf skn bQX -ijQ +mGP cLl qlz tez @@ -128661,7 +128653,7 @@ bNM iEr owg eNi -tii +qWC eJX sAC wYY @@ -138463,7 +138455,7 @@ lmz daz cwS ffE -vHa +mAw wpw ffE ffE @@ -139690,7 +139682,7 @@ wyv pTt gAe rCi -gba +keM mUz our rna diff --git a/maps/map_files/generic/Admin_level.dmm b/maps/map_files/generic/Admin_level.dmm index 43b3d26ec3..88182faf3b 100644 --- a/maps/map_files/generic/Admin_level.dmm +++ b/maps/map_files/generic/Admin_level.dmm @@ -662,7 +662,7 @@ /turf/open/space/transit/east/shuttlespace_ew8, /area/space) "qu" = ( -/obj/structure/transmitter/hidden{ +/obj/structure/phone_base/hidden{ dir = 8; name = "Station Telephone"; phone_id = "Unknown Signal"; diff --git a/maps/map_files/golden_arrow/golden_arrow.dmm b/maps/map_files/golden_arrow/golden_arrow.dmm index 08b869e59d..5013a4c3fe 100644 --- a/maps/map_files/golden_arrow/golden_arrow.dmm +++ b/maps/map_files/golden_arrow/golden_arrow.dmm @@ -21,6 +21,24 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) +"ah" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/warning_cone{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "al" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -30,11 +48,22 @@ }, /area/almayer/hallways/hangar) "an" = ( -/obj/structure/machinery/power/terminal{ - dir = 8 +/obj/structure/closet/emcloset, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) +"aq" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 }, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, /area/almayer/engineering) "ar" = ( /obj/structure/machinery/landinglight/ds1/delayone{ @@ -44,6 +73,13 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"aw" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 9; + pixel_y = 29 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "ax" = ( /obj/structure/cargo_container/arious/mid, /turf/open/floor/almayer{ @@ -63,14 +99,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"az" = ( -/obj/structure/machinery/power/monitor{ - name = "Core Power Monitoring" - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"aA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/platform/stair_cut, +/obj/structure/stairs/perspective{ + dir = 8; + icon_state = "p_stair_full" }, -/area/almayer/engineering) +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "aB" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 @@ -79,6 +116,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"aG" = ( +/obj/structure/largecrate/supply/supplies/tables_racks, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "aI" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -108,14 +151,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/squad_one) -"aK" = ( -/obj/structure/closet/secure_closet/engineering_electrical{ - req_one_access = list() - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "aN" = ( /turf/open/floor/almayer{ icon_state = "cargo_arrow" @@ -150,6 +185,23 @@ }, /turf/open/floor/almayer, /area/almayer/living/platoon_commander_rooms) +"aX" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 1; + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/starboard_hallway) +"ba" = ( +/obj/item/tool/warning_cone{ + pixel_x = 4; + pixel_y = 16 + }, +/obj/item/stool, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/synthcloset) "bb" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -165,17 +217,24 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bg" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/crate/construction, +/obj/item/stack/sandbags_empty/half, +/obj/item/stack/sandbags_empty/half, +/obj/item/stack/sandbags_empty/half, +/obj/item/stack/sandbags_empty/half, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "bh" = ( /obj/effect/landmark/start/marine/leader/alpha, /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) -"bl" = ( -/obj/structure/machinery/portable_atmospherics/powered/scrubber, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) "bo" = ( /obj/structure/window/framed/almayer, /turf/open/floor/almayer{ @@ -199,6 +258,16 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"bu" = ( +/obj/structure/machinery/camera/autoname/almayer, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/hangar) "bw" = ( /obj/structure/curtain/red, /turf/open/floor/almayer{ @@ -213,6 +282,30 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"bB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) +"bD" = ( +/obj/structure/machinery/door/airlock/almayer/command/reinforced{ + dir = 1; + name = "\improper Platoon Commander's Office"; + req_access = list(); + req_one_access_txt = "19;12" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/platoon_commander_rooms) "bG" = ( /obj/structure/window/reinforced{ dir = 4; @@ -257,32 +350,11 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"bI" = ( -/obj/structure/machinery/conveyor{ - dir = 8 - }, -/obj/structure/barricade/handrail{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"bP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"bO" = ( +/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ + req_one_access = list() }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering) "bQ" = ( /obj/structure/machinery/landinglight/ds1{ @@ -315,9 +387,28 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"bZ" = ( +/obj/structure/window/framed/almayer, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/starboard_hallway) "ca" = ( /turf/closed/wall/almayer/outer, /area/almayer/hallways/hangar) +"cj" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "cl" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 @@ -369,14 +460,11 @@ }, /area/almayer/hallways/hangar) "cw" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/structure/machinery/computer/atmos_alert{ + dir = 4 }, -/obj/effect/decal/cleanable/blood/oil, +/obj/structure/surface/table/almayer, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -428,6 +516,18 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_one) +"cG" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/powercell, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "cH" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/med_data/laptop, @@ -435,6 +535,12 @@ icon_state = "sterile_green" }, /area/almayer/medical) +"cI" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/hangar) "cJ" = ( /obj/structure/bed/chair/office/light{ dir = 1 @@ -487,15 +593,6 @@ icon_state = "sterile_green" }, /area/almayer/medical) -"dc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/status_display{ - pixel_x = -32 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "dd" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -504,6 +601,20 @@ icon_state = "sterile_green" }, /area/almayer/medical) +"de" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) +"dg" = ( +/obj/structure/machinery/portable_atmospherics/powered/scrubber, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "di" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -511,9 +622,12 @@ }, /area/almayer/living/cryo_cells) "dj" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_y = 30 + }, /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 + icon_state = "E"; + pixel_x = 1 }, /turf/open/floor/almayer{ dir = 5; @@ -555,6 +669,18 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/squads/alpha/platoon_sergeant) +"ds" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 + }, +/obj/item/tool/wirecutters{ + pixel_y = -6 + }, +/obj/item/device/multitool{ + pixel_x = -10 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "dt" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -632,93 +758,66 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) -"dU" = ( -/obj/structure/largecrate, -/obj/structure/largecrate{ - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) "dX" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_two) -"dZ" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "ea" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "sterile_green" }, /area/almayer/medical) -"ee" = ( -/obj/structure/largecrate/supply/supplies/tables_racks, +"eo" = ( /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "cargo_arrow" }, -/area/almayer/engineering) -"ei" = ( -/obj/structure/machinery/autolathe, -/obj/structure/machinery/light{ - dir = 8 +/area/almayer/hallways/port_hallway) +"eu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 1 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/engineering) -"em" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +/area/almayer/hallways/hangar) +"ey" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) -"en" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/machinery/door/airlock/almayer/maint/reinforced{ + access_modified = 1; + dir = 8; + req_one_access = list(36); + name = "\improper Synthetic Preperations" }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/machinery/door/poddoor/almayer/closed{ + dir = 4; + indestructible = 1 }, -/area/almayer/engineering) -"eo" = ( /turf/open/floor/almayer{ - icon_state = "cargo_arrow" + icon_state = "test_floor4" }, -/area/almayer/hallways/port_hallway) -"eu" = ( +/area/almayer/living/synthcloset) +"eB" = ( +/obj/structure/prop/almayer/computers/sensor_computer1, /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; + icon_state = "W"; pixel_x = -1; pixel_y = 1 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/hangar) +/area/almayer/hallways/starboard_hallway) "eH" = ( /obj/structure/window/framed/almayer/hull, /turf/open/floor/almayer{ @@ -738,13 +837,6 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"eN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset/full, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) "eR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -755,37 +847,37 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) +"eT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/almayer, +/area/almayer/living/synthcloset) "eU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) -"eV" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/engineering) "eY" = ( /turf/open/floor/almayer{ icon_state = "test_floor5" }, /area/almayer/hallways/hangar) -"eZ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) -"fb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "fe" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -825,16 +917,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/platoon_sergeant) -"fi" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/vents/scrubber, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) "fl" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 4 @@ -843,6 +925,10 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"fm" = ( +/obj/structure/foamed_metal, +/turf/open/floor/plating, +/area/almayer/engineering) "fo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -857,16 +943,37 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) +"fp" = ( +/obj/structure/closet/secure_closet/engineering_welding{ + req_one_access = list() + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) +"fq" = ( +/obj/structure/machinery/conveyor{ + dir = 10 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/starboard_hallway) "fv" = ( -/obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "W" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "fx" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -893,6 +1000,16 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"fF" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "fJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/prop/invuln/overhead_pipe{ @@ -929,16 +1046,6 @@ icon_state = "test_floor4" }, /area/almayer/medical) -"fP" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Supply Bay" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "fX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -956,20 +1063,17 @@ icon_state = "sterile_green" }, /area/almayer/medical) -"ga" = ( -/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ - req_one_access = list(); - name = "\improper Engineering Airlock" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering) "gd" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) +"gf" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "gg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ @@ -992,6 +1096,16 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"gn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/surgical{ + pixel_x = -30 + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/synthcloset) "gp" = ( /obj/structure/surface/rack, /obj/effect/decal/warning_stripes{ @@ -1009,6 +1123,24 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) +"gt" = ( +/obj/structure/machinery/power/monitor{ + name = "Core Power Monitoring" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) +"gx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ + req_one_access = list() + }, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "gz" = ( /obj/structure/ship_ammo/rocket/widowmaker, /turf/open/floor/almayer{ @@ -1028,16 +1160,6 @@ /obj/structure/machinery/telecomms/relay/preset/tower, /turf/open/floor/almayer, /area/almayer/engineering) -"gC" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/autoname{ - dir = 1; - req_one_access = list(); - autoname = 0 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering) "gD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 @@ -1047,12 +1169,8 @@ }, /area/almayer/hallways/hangar) "gE" = ( -/obj/structure/surface/rack, -/obj/effect/spawner/random/technology_scanner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) +/turf/closed/wall/almayer, +/area/almayer/hallways/starboard_hallway) "gG" = ( /obj/structure/machinery/light{ dir = 1 @@ -1074,19 +1192,6 @@ icon_state = "plate" }, /area/almayer/living/cryo_cells) -"gI" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "gL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ @@ -1103,26 +1208,30 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"gQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/supply_drop/echo, +"gS" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/platform{ +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + dir = 8; + icon_state = "cargo_arrow" + }, +/area/almayer/hallways/port_hallway) +"gT" = ( +/obj/structure/machinery/conveyor{ dir = 8 }, /turf/open/floor/almayer{ - icon_state = "test_floor5" + dir = 5; + icon_state = "plating" }, /area/almayer/hallways/starboard_hallway) "gW" = ( -/obj/structure/ladder{ - height = 2; - id = "req1" - }, /turf/open/floor/almayer{ - icon_state = "test_floor5" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "ha" = ( /obj/structure/machinery/light{ dir = 8 @@ -1156,30 +1265,25 @@ icon_state = "test_floor4" }, /area/almayer/medical) -"hu" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, +"hq" = ( /obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; + icon_state = "W"; pixel_x = -1; - pixel_y = 2 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"hv" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 + pixel_y = 1 }, +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 + icon_state = "E"; + pixel_x = 1 }, +/turf/open/floor/almayer, +/area/almayer/living/synthcloset) +"hy" = ( /obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 }, +/turf/open/floor/almayer, /area/almayer/engineering) "hA" = ( /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1218,15 +1322,25 @@ icon_state = "test_floor4" }, /area/almayer/medical) -"hJ" = ( -/obj/structure/platform_decoration{ - dir = 4 +"hL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 }, +/obj/structure/sign/safety/electronics{ + pixel_x = 31; + pixel_y = 6 + }, +/obj/structure/sign/safety/high_voltage{ + pixel_x = 31; + pixel_y = -6 + }, +/obj/structure/machinery/portable_atmospherics/canister/air, /turf/open/floor/almayer{ - dir = 1; - icon_state = "cargo_arrow" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "hN" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/secure_data{ @@ -1256,6 +1370,24 @@ "hS" = ( /turf/closed/wall/almayer, /area/almayer/living/platoon_commander_rooms) +"hU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/item/device/flashlight{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/tool/warning_cone, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "hW" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/recharger, @@ -1264,6 +1396,12 @@ icon_state = "sterile_green" }, /area/almayer/medical) +"if" = ( +/obj/structure/reagent_dispensers/fueltank/custom, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "ik" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -1280,17 +1418,14 @@ /area/almayer/living/cafeteria_port) "il" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "N"; + pixel_y = 2 }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "ip" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -1307,17 +1442,6 @@ icon_state = "test_floor4" }, /area/almayer/living/cryo_cells) -"iv" = ( -/obj/structure/closet/secure_closet/engineering_welding{ - req_one_access = list() - }, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "iy" = ( /obj/structure/pipes/vents/pump{ dir = 8 @@ -1365,6 +1489,12 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/squad_one) +"iF" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "iG" = ( /obj/structure/machinery/door/poddoor/almayer/open, /obj/structure/pipes/standard/simple/hidden/supply, @@ -1395,18 +1525,34 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"iO" = ( +"iQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 +/obj/structure/machinery/light{ + dir = 8 }, -/turf/open/floor/almayer, -/area/almayer/engineering) +/obj/structure/machinery/photocopier, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "iR" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/platoon_commander_rooms) +"iX" = ( +/obj/structure/sign/safety/rewire{ + pixel_x = 14; + pixel_y = 29 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/hangar) "jb" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -1477,12 +1623,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"jp" = ( -/obj/structure/closet/secure_closet/engineering_electrical{ - req_one_access = list() - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) "js" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -1496,6 +1636,24 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) +"jy" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/machinery/computer/station_alert{ + dir = 8; + pixel_x = 15; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/living/synthcloset) +"jD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/turf/open/floor/almayer, +/area/almayer/engineering) "jG" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -1515,6 +1673,14 @@ icon_state = "dark_sterile" }, /area/almayer/medical) +"jN" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/cell_charger, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "jO" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -1527,6 +1693,18 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"jQ" = ( +/obj/structure/machinery/pipedispenser, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) +"jS" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "jU" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -1565,26 +1743,39 @@ icon_state = "test_floor4" }, /area/almayer/living/briefing) -"km" = ( -/obj/effect/decal/cleanable/dirt, +"kh" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/belt/utility/full, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/hallways/hangar) -"kn" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/alarm/almayer{ - dir = 1 +/area/almayer/engineering) +"kk" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, -/obj/item/storage/toolbox/electrical, /obj/effect/decal/warning_stripes{ icon_state = "E"; pixel_x = 1 }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/engineering) +"km" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/hangar) "kq" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -1604,21 +1795,45 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"kt" = ( -/obj/structure/machinery/light{ - dir = 4 +"kw" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/starboard_hallway) +"kB" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering) +"kF" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/reagentgrinder/industrial{ + pixel_y = 9 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) -"kA" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 4 +/area/almayer/engineering) +"kH" = ( +/obj/structure/machinery/computer/cryopod{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "test_floor5" }, /area/almayer/engineering) "kI" = ( @@ -1630,12 +1845,16 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha/platoon_sergeant) -"kS" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" +"kO" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, -/area/almayer/engineering) +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/starboard_hallway) +"kS" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/hallways/starboard_hallway) "kU" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -1717,17 +1936,15 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"lt" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) "ly" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) +"lA" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "lB" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -1740,12 +1957,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"lC" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "lE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -1762,38 +1973,12 @@ }, /area/almayer/living/cafeteria_port) "lK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) -"lL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) -"lM" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/item/tool/wet_sign, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/atmos_alert{ + dir = 4 }, -/area/almayer/engineering) -"lO" = ( -/obj/structure/surface/rack, -/obj/item/storage/briefcase/inflatable, -/obj/item/storage/briefcase/inflatable, /turf/open/floor/almayer{ - icon_state = "test_floor5" + icon_state = "plate" }, /area/almayer/engineering) "lQ" = ( @@ -1814,16 +1999,23 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"lW" = ( +"lV" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ - req_one_access = list(); - req_one_access_txt = "8;12;40" +/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{ + req_access = list(); + req_one_access_txt = "8;12;39" }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/squads/alpha/squad_two) +/area/almayer/squads/alpha/squad_one) +"mb" = ( +/obj/structure/machinery/door/poddoor/almayer/locked{ + dir = 4; + name = "\improper Hangar Lockdown Blast Door" + }, +/turf/closed/wall/almayer/outer, +/area/almayer/hallways/starboard_hallway) "mc" = ( /obj/structure/bed{ can_buckle = 0 @@ -1875,17 +2067,11 @@ /turf/open/floor/almayer, /area/almayer/hallways/hangar) "mo" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/surface/rack, +/obj/item/storage/briefcase/inflatable, +/obj/item/storage/briefcase/inflatable, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "test_floor5" }, /area/almayer/engineering) "ms" = ( @@ -1895,13 +2081,6 @@ icon_state = "cargo_arrow" }, /area/almayer/hallways/port_hallway) -"mw" = ( -/obj/structure/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) "mB" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -1925,22 +2104,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha/squad_one) -"mI" = ( -/obj/structure/pipes/vents/pump{ - dir = 4 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "mR" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, @@ -1966,31 +2129,12 @@ }, /area/almayer/living/cryo_cells) "mZ" = ( -/obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, -/obj/item/folder/yellow, -/obj/item/book/manual/engineering_construction, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) -"na" = ( -/obj/structure/machinery/computer/cryopod{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, +/obj/structure/closet/firecloset/full, /turf/open/floor/almayer{ icon_state = "test_floor5" }, -/area/almayer/engineering) +/area/almayer/hallways/starboard_hallway) "nb" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Squad Two Armoury"; @@ -2013,12 +2157,17 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"nf" = ( -/obj/structure/reagent_dispensers/fueltank/custom, +"ng" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/structure/machinery/light, +/obj/structure/largecrate, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, -/area/almayer/engineering) +/area/almayer/hallways/starboard_hallway) "ni" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/chair/comfy/alpha{ @@ -2083,25 +2232,53 @@ /area/almayer/hallways/starboard_hallway) "ny" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/starboard_hallway) +"nD" = ( +/obj/structure/machinery/conveyor{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) +"nF" = ( +/obj/structure/pipes/vents/pump{ + dir = 8 + }, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/living/synthcloset) "nG" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_one) -"nH" = ( -/obj/structure/machinery/light, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) "nK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/power/apc/almayer{ @@ -2203,6 +2380,21 @@ icon_state = "logo_c" }, /area/almayer/living/briefing) +"oo" = ( +/obj/structure/closet/secure_closet/engineering_electrical{ + req_one_access = list() + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) +"or" = ( +/obj/structure/machinery/conveyor, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/starboard_hallway) "ot" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/m41aMK1{ @@ -2240,14 +2432,30 @@ /obj/structure/window/reinforced/tinted/frosted, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/platoon_commander_rooms) -"oD" = ( +"oB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 + icon_state = "E"; + pixel_x = 1 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) +/obj/structure/machinery/computer/supply_drop_console/limited{ + icon = 'icons/obj/structures/props/almayer_props.dmi'; + icon_state = "sensor_comp2"; + layer = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) +"oC" = ( +/obj/structure/plasticflaps, +/obj/structure/machinery/conveyor{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/starboard_hallway) "oH" = ( /obj/structure/machinery/light{ dir = 4 @@ -2297,6 +2505,13 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_port) +"oO" = ( +/obj/structure/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "oQ" = ( /obj/item/prop/helmetgarb/gunoil{ pixel_x = 7; @@ -2316,27 +2531,24 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_one) -"oS" = ( -/obj/item/reagent_container/spray/cleaner{ - pixel_x = 5; - pixel_y = 10 +"oW" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/obj/structure/janitorialcart, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) -"oX" = ( -/obj/structure/machinery/conveyor, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, -/area/almayer/hallways/starboard_hallway) -"pe" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/belt/utility/full, /turf/open/floor/almayer{ icon_state = "plate" }, +/area/almayer/hallways/hangar) +"oX" = ( +/obj/structure/largecrate/supply/generator, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, /area/almayer/engineering) "pf" = ( /obj/effect/decal/cleanable/dirt, @@ -2415,28 +2627,14 @@ }, /area/almayer/hallways/hangar) "pR" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/gloves/yellow, -/obj/item/clothing/gloves/yellow, -/obj/item/clothing/gloves/yellow, -/obj/item/clothing/gloves/yellow, -/obj/item/clothing/gloves/yellow, -/obj/item/tool/shovel/snow, -/obj/item/tool/shovel/snow, -/obj/item/tool/shovel/snow, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) +/obj/structure/pipes/standard/manifold/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/hallways/hangar) "pS" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/obj/structure/machinery/power/smes/buildable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/suit_storage_unit/carbon_unit, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "test_floor5" }, /area/almayer/engineering) "pW" = ( @@ -2458,6 +2656,13 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha/squad_one) +"qc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 4 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hallways/starboard_hallway) "qf" = ( /obj/structure/machinery/cryopod/right{ pixel_y = 6 @@ -2494,24 +2699,6 @@ icon_state = "test_floor4" }, /area/almayer/living/cryo_cells) -"qr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/tool/warning_cone{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "qu" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ dir = 1; @@ -2533,6 +2720,25 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) +"qz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/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/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "qA" = ( /turf/closed/wall/almayer, /area/almayer/squads/alpha/platoon_sergeant) @@ -2554,13 +2760,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) -"qE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer, -/area/almayer/engineering) "qI" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 8 @@ -2581,12 +2780,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) -"qS" = ( -/obj/structure/largecrate/supply/floodlights, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) "qT" = ( /turf/open/floor/almayer/uscm/directional{ dir = 9 @@ -2598,12 +2791,14 @@ }, /turf/open/floor/almayer, /area/almayer/living/platoon_commander_rooms) -"qX" = ( -/obj/effect/decal/cleanable/greenglow, -/obj/structure/reagent_dispensers/fueltank/custom, -/obj/structure/sign/safety/storage{ - pixel_x = 7; - pixel_y = -28 +"qW" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/toolbox/mechanical/green{ + pixel_y = 10 + }, +/obj/item/storage/toolbox/mechanical/green{ + pixel_x = -7; + pixel_y = -1 }, /turf/open/floor/almayer{ icon_state = "plate" @@ -2632,13 +2827,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"rg" = ( -/obj/structure/sign/safety/storage{ - pixel_x = 9; - pixel_y = 29 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "rh" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -2659,11 +2847,33 @@ dir = 1 }, /area/almayer/living/briefing) +"ro" = ( +/obj/structure/largecrate/supply/supplies/water, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) +"rq" = ( +/obj/structure/largecrate/supply/floodlights, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "rr" = ( /turf/open/floor/almayer/uscm/directional{ dir = 5 }, /area/almayer/living/briefing) +"rt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/item/tool/wet_sign, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "rx" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply, @@ -2681,21 +2891,6 @@ }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"rz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "rA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/janitorialcart, @@ -2762,14 +2957,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"rY" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "bluefull" - }, -/area/almayer/living/platoon_commander_rooms) "rZ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -2830,17 +3017,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"sp" = ( -/obj/structure/machinery/power/monitor{ - name = "Core Power Monitoring" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "sv" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -2851,15 +3027,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"sw" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/reagentgrinder/industrial{ - pixel_y = 9 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "sy" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -2876,8 +3043,11 @@ "sC" = ( /turf/closed/wall/almayer/outer, /area/almayer/squads/alpha/platoon_sergeant) -"sD" = ( -/turf/closed/wall/almayer, +"sE" = ( +/obj/structure/machinery/power/smes/buildable, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, /area/almayer/engineering) "sI" = ( /turf/closed/wall/almayer/outer, @@ -2889,24 +3059,6 @@ icon_state = "cargo_arrow" }, /area/almayer/hallways/starboard_hallway) -"sL" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/item/device/flashlight{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/item/tool/warning_cone, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "sN" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -2925,15 +3077,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) -"sP" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/machinery/status_display{ - pixel_y = -30 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "sR" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -2963,10 +3106,30 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/squad_two) +"sX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin/uscm{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/clipboard{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/tool/pen{ + pixel_x = 12 + }, +/obj/structure/surface/table/almayer, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "sY" = ( /obj/structure/closet/secure_closet/personal/cabinet{ req_access = null }, +/obj/item/clothing/suit/storage/jacket/marine/service, +/obj/item/clothing/suit/storage/jacket/marine/service/tanker, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -3013,10 +3176,32 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/squad_two) +"tA" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) +"tB" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) "tG" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"tS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{ + req_access = list(); + req_one_access_txt = "8;12;40" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/squads/alpha/squad_two) "tT" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -3072,6 +3257,16 @@ /obj/structure/machinery/faxmachine/uscm/command/capt, /turf/open/floor/almayer, /area/almayer/living/platoon_commander_rooms) +"uo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/starboard_hallway) "up" = ( /obj/structure/bed/chair/comfy{ dir = 1 @@ -3086,6 +3281,13 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) +"us" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/engineering) "uu" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -3109,30 +3311,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"uB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/surface/table/almayer, -/obj/item/tool/hand_labeler{ - pixel_x = 4; - pixel_y = 11 - }, -/obj/item/reagent_container/food/drinks/coffeecup/uscm{ - pixel_x = -6; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) -"uE" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "uF" = ( /obj/structure/surface/table/reinforced/prison, /obj/structure/machinery/computer/crew/alt, @@ -3180,22 +3358,30 @@ /turf/open/floor/almayer, /area/almayer/squads/alpha/platoon_sergeant) "uQ" = ( -/obj/structure/machinery/power/smes/buildable, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5; + icon_state = "plating" }, /area/almayer/engineering) -"uY" = ( -/obj/structure/machinery/power/terminal{ - dir = 4 - }, -/obj/item/tool/wirecutters{ - pixel_y = -6 +"uS" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 }, -/obj/item/device/multitool{ - pixel_x = -10 +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) +"uX" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/turf/open/floor/almayer{ + icon_state = "test_floor5" }, -/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering) "vb" = ( /obj/structure/surface/table/reinforced/almayer_B{ @@ -3205,19 +3391,24 @@ /turf/closed/wall/almayer, /area/almayer/living/platoon_commander_rooms) "vc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/computer/supply_drop_console/limited{ - icon = 'icons/obj/structures/props/almayer_props.dmi'; - icon_state = "sensor_comp2"; - layer = 4 +/obj/structure/machinery/light{ + dir = 1 }, +/obj/structure/closet/emcloset, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor5" }, +/area/almayer/engineering) +"vg" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) "vk" = ( /obj/structure/machinery/light, @@ -3227,6 +3418,15 @@ icon_state = "cargo_arrow" }, /area/almayer/living/briefing) +"vo" = ( +/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ + pixel_y = 25 + }, +/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "vp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -3239,9 +3439,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/port_hallway) -"vr" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/engineering) "vt" = ( /obj/structure/machinery/power/apc/almayer{ dir = 1 @@ -3267,15 +3464,55 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha/squad_two) -"vH" = ( +"vG" = ( +/obj/structure/machinery/power/terminal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/pouch/electronics{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -7; + pixel_y = -8 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) +"vJ" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" }, -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/hangar) +/area/almayer/engineering) +"vK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/starboard_hallway) "vL" = ( /obj/structure/sign/safety/bulkhead_door{ pixel_x = -19 @@ -3284,15 +3521,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"vM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "vN" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -3309,6 +3537,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"vP" = ( +/obj/structure/machinery/light, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/hangar) "vS" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -3327,37 +3564,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"vW" = ( -/obj/structure/closet/toolcloset, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) -"vY" = ( -/obj/structure/sign/safety/rewire{ - pixel_x = 14; - pixel_y = 29 - }, +"wa" = ( /obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "S" }, -/area/almayer/hallways/hangar) -"wa" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/platform/stair_cut, -/obj/structure/stairs/perspective{ - dir = 8; - icon_state = "p_stair_full" +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "wc" = ( /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Platoon Commander's Quarters" @@ -3380,15 +3596,15 @@ }, /area/almayer/hallways/port_hallway) "wi" = ( -/obj/structure/machinery/power/smes/buildable, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, +/obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/engineering) +/area/almayer/hallways/hangar) "wl" = ( /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) @@ -3402,10 +3618,6 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"wr" = ( -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/hangar) "wx" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -3422,29 +3634,34 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"wC" = ( +"wH" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 + icon_state = "N"; + pixel_y = 2 }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/item/clothing/ears/earmuffs{ + pixel_x = -8; + pixel_y = 8 }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) -"wI" = ( -/obj/structure/machinery/light{ - dir = 1 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 +/obj/item/device/walkman{ + pixel_y = -6; + pixel_x = 4 }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) +"wI" = ( +/obj/structure/surface/rack, +/obj/effect/spawner/random/technology_scanner, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/hangar) +/area/almayer/engineering) "wJ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/light{ @@ -3468,34 +3685,29 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"wP" = ( -/obj/structure/ladder{ - height = 1; - id = "req1" +"wN" = ( +/obj/structure/closet/fireaxecabinet{ + pixel_x = -32 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "S" +/obj/item/book/manual/robotics_cyborgs{ + pixel_y = 8 + }, +/obj/item/tool/wirecutters, +/obj/item/tool/weldingtool/hugetank, +/obj/structure/surface/rack, +/obj/structure/machinery/light/small{ + dir = 1 }, /turf/open/floor/almayer{ - icon_state = "test_floor5" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/living/synthcloset) "wS" = ( /obj/structure/machinery/light{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/briefing) -"wU" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "wV" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 1; @@ -3507,22 +3719,6 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha/platoon_sergeant) -"wW" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"wY" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering) "xf" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, @@ -3545,17 +3741,6 @@ /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_one) -"xy" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "xz" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/warning_stripes{ @@ -3585,12 +3770,17 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) -"xF" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"xJ" = ( +/obj/structure/closet/secure_closet/engineering_welding{ + req_one_access = list() }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "xK" = ( /obj/structure/machinery/light{ dir = 8 @@ -3630,16 +3820,33 @@ icon_state = "cargo_arrow" }, /area/almayer/living/grunt_rnr) -"xZ" = ( +"yc" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) +"ye" = ( +/turf/closed/wall/almayer, +/area/almayer/engineering) +"yg" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{ - req_access = list(); - req_one_access_txt = "8;12;40" +/obj/structure/supply_drop/echo, +/obj/effect/decal/cleanable/dirt, +/obj/structure/platform{ + dir = 8 }, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor5" }, -/area/almayer/squads/alpha/squad_two) +/area/almayer/hallways/starboard_hallway) "yj" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 1; @@ -3649,16 +3856,13 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"yp" = ( -/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ - req_one_access = list(); - name = "\improper Engineering Airlock" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 +"yo" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/structure/machinery/status_display{ + pixel_y = -30 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "test_floor5" }, /area/almayer/engineering) "ys" = ( @@ -3697,6 +3901,12 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) +"yy" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) "yA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/squad_sergeant{ @@ -3707,16 +3917,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_one) -"yE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "yF" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -3728,14 +3928,19 @@ }, /area/almayer/living/cryo_cells) "yJ" = ( -/obj/structure/machinery/conveyor{ - dir = 10 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 }, -/area/almayer/hallways/starboard_hallway) +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/living/synthcloset) "yL" = ( /obj/structure/closet/coffin/woodencrate, /obj/item/storage/box/m94, @@ -3773,6 +3978,11 @@ icon_state = "cargo_arrow" }, /area/almayer/hallways/port_hallway) +"yU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "yY" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -3798,6 +4008,25 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) +"zk" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ + req_one_access = list(); + req_one_access_txt = "8;12;39" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/squads/alpha/squad_one) +"zl" = ( +/obj/structure/machinery/power/smes/buildable, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) "zn" = ( /obj/structure/machinery/light{ dir = 4 @@ -3813,10 +4042,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) -"zp" = ( -/obj/structure/closet/emcloset, -/turf/closed/wall/almayer/outer, -/area/almayer/engineering) "zt" = ( /obj/structure/machinery/light{ dir = 8 @@ -3829,18 +4054,11 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"zB" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/general_air_control/large_tank_control{ - dir = 4; - name = "Lower Deck Waste Tank Control" - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -17 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +"zA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering) "zD" = ( /turf/open/floor/almayer{ @@ -3848,6 +4066,29 @@ icon_state = "cargo_arrow" }, /area/almayer/hallways/hangar) +"zG" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/engineering) +"zI" = ( +/obj/structure/pipes/vents/pump, +/obj/item/tool/mop{ + pixel_x = -9; + pixel_y = 20 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer, +/area/almayer/engineering) "zJ" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -3864,6 +4105,21 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) +"zL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "zM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/supply, @@ -3880,9 +4136,10 @@ }, /area/almayer/squads/alpha/platoon_sergeant) "zY" = ( -/turf/open/floor/almayer{ - icon_state = "test_floor4" +/obj/structure/closet/secure_closet/engineering_electrical{ + req_one_access = list() }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering) "zZ" = ( /obj/effect/decal/cleanable/dirt, @@ -3900,22 +4157,6 @@ icon_state = "test_floor4" }, /area/almayer/hallways/port_hallway) -"Af" = ( -/obj/structure/window/framed/almayer, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) -"Ao" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 4; - name = "ship-grade camera" - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) "Ap" = ( /obj/structure/surface/table/almayer, /obj/item/trash/ceramic_plate, @@ -3927,12 +4168,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"Av" = ( -/obj/structure/machinery/power/terminal{ - dir = 4 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) "Aw" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -3962,6 +4197,19 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) +"AC" = ( +/obj/structure/machinery/power/terminal{ + dir = 8 + }, +/obj/item/stack/catwalk{ + pixel_x = 12; + pixel_y = -9 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "AG" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 1 @@ -3972,39 +4220,8 @@ }, /area/almayer/hallways/hangar) "AH" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, /turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"AJ" = ( -/obj/structure/surface/table/almayer, -/obj/item/tool/stamp/denied{ - pixel_x = 2; - pixel_y = 10 - }, -/obj/item/device/eftpos{ - eftpos_name = "Cargo Bay EFTPOS scanner"; - pixel_x = -10 - }, -/obj/item/tool/stamp/ro{ - pixel_x = -8; - pixel_y = 10 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/obj/item/storage/fancy/cigar{ - pixel_x = 6 - }, -/obj/item/ashtray/glass{ - pixel_x = 11; - pixel_y = 9 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "AK" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -4014,12 +4231,27 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) +"AL" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/hangar) +"AO" = ( +/obj/structure/machinery/autolathe, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "AP" = ( /obj/structure/prop/invuln/lifeboat_hatch_placeholder/terminal{ layer = 2.1 }, /obj/structure/sign/safety/manualopenclose{ - layer = 4.3; + layer = 2.11; pixel_x = 12; pixel_y = 2 }, @@ -4042,16 +4274,14 @@ }, /area/almayer/hallways/port_hallway) "Bd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/structure/machinery/light{ - dir = 4 +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 9 }, -/obj/structure/largecrate, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "Bf" = ( /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ @@ -4107,29 +4337,33 @@ }, /area/almayer/living/cryo_cells) "Bt" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/firstaid/rad{ - pixel_x = -7; - pixel_y = 2 - }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/structure/machinery/firealarm{ - dir = 8; - pixel_x = -24 +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "S" }, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, /area/almayer/engineering) "Bu" = ( +/obj/item/ammo_magazine/sentry{ + layer = 3.01 + }, /obj/item/defenses/handheld/sentry, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/squads/alpha/squad_one) +"Bv" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ + name = "Damage Control Locker"; + req_one_access = list() + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) "Bw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/safety/rewire{ @@ -4160,30 +4394,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) -"BB" = ( -/obj/structure/machinery/conveyor{ - dir = 9 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/hallways/starboard_hallway) -"BF" = ( -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/plasteel{ - amount = 40; - pixel_x = 7; - pixel_y = 6 - }, -/obj/structure/closet/crate/construction, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "BM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ @@ -4195,13 +4405,8 @@ }, /area/almayer/living/cryo_cells) "BN" = ( -/obj/structure/closet/radiation, -/obj/structure/machinery/status_display{ - pixel_y = 30 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, +/obj/structure/closet/emcloset, +/turf/closed/wall/almayer/outer, /area/almayer/engineering) "BO" = ( /obj/structure/bed/chair{ @@ -4216,20 +4421,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"BV" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "BW" = ( /obj/structure/sign/safety/hazard{ pixel_x = -19; @@ -4284,30 +4475,20 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"Cd" = ( -/obj/structure/machinery/cm_vending/sorted/medical/wall_med{ - pixel_y = 25 - }, -/obj/structure/machinery/cm_vending/sorted/tech/comp_storage, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "Ce" = ( -/obj/structure/prop/almayer/computers/sensor_computer1, -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ +/obj/structure/surface/table/almayer, +/obj/structure/machinery/alarm/almayer{ dir = 1 }, +/obj/item/storage/toolbox/electrical, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "Cf" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -4333,20 +4514,11 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 8 }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/engineering) -"Cq" = ( -/obj/structure/machinery/camera/autoname/almayer, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" +/obj/structure/bed/chair{ + dir = 8 }, -/area/almayer/hallways/hangar) +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "Cr" = ( /turf/open/space/basic, /area/space) @@ -4386,6 +4558,21 @@ icon_state = "test_floor4" }, /area/almayer/medical) +"Cy" = ( +/obj/structure/machinery/conveyor{ + dir = 8 + }, +/obj/structure/barricade/handrail{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "CC" = ( /obj/structure/surface/rack, /obj/item/ammo_magazine/flamer_tank, @@ -4395,6 +4582,9 @@ pixel_y = 4 }, /obj/item/device/motiondetector, +/obj/item/attachable/attached_gun/extinguisher/pyro{ + layer = 3.01 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -4415,19 +4605,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) -"CJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "CK" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -4449,17 +4626,18 @@ "CP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/light{ - dir = 8 + dir = 4 }, -/obj/structure/machinery/photocopier, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) -"CY" = ( -/obj/structure/largecrate/supply/supplies/water, +/area/almayer/engineering) +"CX" = ( +/obj/structure/machinery/light{ + dir = 1 + }, /turf/open/floor/almayer{ - icon_state = "cargo" + icon_state = "plate" }, /area/almayer/engineering) "CZ" = ( @@ -4504,18 +4682,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"Dj" = ( -/obj/structure/machinery/power/apc/almayer{ - dir = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) "Dl" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -4596,17 +4762,6 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_port) -"DH" = ( -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/engineering) "DM" = ( /obj/structure/machinery/power/apc/almayer, /obj/effect/decal/cleanable/dirt, @@ -4618,34 +4773,6 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_two) -"DU" = ( -/obj/structure/largecrate/supply/supplies/sandbags, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) -"DV" = ( -/obj/structure/machinery/door/airlock/almayer/command/reinforced{ - dir = 1; - name = "\improper Platoon Commander's Office" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/platoon_commander_rooms) -"DW" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/atmos_alert{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "DX" = ( /obj/structure/toilet{ pixel_y = 16 @@ -4685,6 +4812,25 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"Ep" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/living/synthcloset) +"Er" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "Eu" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -4700,28 +4846,23 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) -"Ez" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 +"EA" = ( +/obj/structure/machinery/power/monitor{ + name = "Core Power Monitoring" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "test_floor5" }, /area/almayer/engineering) "EB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/machinery/light, -/obj/structure/largecrate, +/obj/structure/window/framed/almayer, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor4" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "ED" = ( /turf/open/floor/almayer{ dir = 1; @@ -4748,6 +4889,17 @@ icon_state = "plate" }, /area/almayer/living/cryo_cells) +"EJ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "EK" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/camera/autoname/almayer{ @@ -4791,33 +4943,14 @@ /obj/item/bedsheet/brown{ layer = 3.4 }, -/obj/item/bedsheet/brown{ - pixel_y = 13 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/grunt_rnr) -"ES" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/powercell, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +/obj/item/bedsheet/brown{ + pixel_y = 13 }, -/area/almayer/engineering) -"EU" = ( -/obj/structure/closet/firecloset/full, -/obj/structure/machinery/light, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - icon_state = "test_floor5" + icon_state = "plate" }, -/area/almayer/engineering) +/area/almayer/living/grunt_rnr) "EX" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -4863,6 +4996,13 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_one) +"Ff" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/engineering) "Fg" = ( /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_two) @@ -4894,31 +5034,12 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) -"Fn" = ( -/obj/effect/decal/cleanable/dirt, +"Fu" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) -"Fu" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) -"Fv" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) +/area/almayer/hallways/port_hallway) "Fw" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -4938,69 +5059,21 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/squad_two) "Fz" = ( -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 16 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 16 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "FE" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) -"FF" = ( -/obj/structure/pipes/vents/pump{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "FI" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/living/grunt_rnr) -"FJ" = ( -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) -"FL" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) "FN" = ( /obj/structure/machinery/medical_pod/sleeper{ dir = 8; @@ -5072,12 +5145,6 @@ icon_state = "plate" }, /area/almayer/living/cryo_cells) -"Gb" = ( -/obj/structure/closet/firecloset/full, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "Gf" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/cameras/wooden_tv/prop{ @@ -5144,42 +5211,46 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) -"Gl" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/autoname{ - dir = 1; - req_one_access = list(); - autoname = 0 - }, +"Gq" = ( /obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5 }, -/area/almayer/engineering) -"Gn" = ( /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/engineering) +/area/almayer/hallways/starboard_hallway) "Gs" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"Gv" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"Gu" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, /obj/effect/decal/warning_stripes{ icon_state = "W" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) +"Gv" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "Gx" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hallways/starboard_hallway) +"Gy" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "Gz" = ( /obj/structure/bed/chair/comfy{ dir = 8 @@ -5189,6 +5260,15 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_port) +"GA" = ( +/obj/structure/machinery/power/apc/almayer{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "GG" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -5239,16 +5319,15 @@ icon_state = "test_floor4" }, /area/almayer/hallways/hangar) -"GP" = ( +"GO" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep{ - req_access = list(); - req_one_access_txt = "8;12;39" +/obj/structure/sign/safety/synth_storage{ + pixel_x = -20 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/squads/alpha/squad_one) +/area/almayer/hallways/port_hallway) "GQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -5258,23 +5337,21 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) "GU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/paper_bin/uscm{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/clipboard{ - pixel_x = 8; - pixel_y = 3 - }, -/obj/item/tool/pen{ - pixel_x = 12 - }, /obj/structure/surface/table/almayer, +/obj/item/device/radio, +/obj/item/device/lightreplacer, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) +"GV" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/living/platoon_commander_rooms) "GY" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -5282,6 +5359,27 @@ icon_state = "cargo_arrow" }, /area/almayer/living/briefing) +"Hc" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/general_air_control/large_tank_control{ + dir = 4; + name = "Lower Deck Waste Tank Control" + }, +/obj/structure/sign/safety/terminal{ + pixel_x = -17 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) +"Hh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) "Hj" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/prop/almayer/CICmap{ @@ -5292,32 +5390,20 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) +"Hk" = ( +/obj/structure/closet/coffin/woodencrate, +/obj/item/clothing/accessory/storage/droppouch, +/obj/item/clothing/accessory/storage/droppouch, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/starboard_hallway) "Hm" = ( /obj/structure/bed/chair{ dir = 4 }, /turf/open/floor/almayer, /area/almayer/squads/alpha/platoon_sergeant) -"Hq" = ( -/obj/structure/largecrate/supply/generator, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) -"Hr" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/hangar) -"Hu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/engineering) "Hv" = ( /obj/item/frame/camera{ desc = "The Staff Officer insisted he needed to monitor everyone at all times."; @@ -5348,12 +5434,14 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha/squad_two) -"HC" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 +"Hx" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/structure/machinery/light, +/obj/item/device/cassette_tape/aesthetic, +/turf/open/floor/almayer{ + icon_state = "test_floor5" }, -/turf/open/floor/almayer, -/area/almayer/hallways/hangar) +/area/almayer/engineering) "HG" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -5379,33 +5467,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"HI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 1 - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) -"HJ" = ( -/obj/structure/pipes/vents/pump, -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/surface/table/almayer, -/obj/structure/machinery/prop/almayer/computer/PC{ - dir = 4 - }, -/obj/structure/sign/safety/terminal{ - pixel_x = -20 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "HK" = ( /turf/closed/wall/almayer, /area/almayer/living/cryo_cells) @@ -5416,6 +5477,12 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"HR" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer{ + icon_state = "bluefull" + }, +/area/almayer/hallways/hangar) "HS" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 4 @@ -5425,6 +5492,13 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"HT" = ( +/obj/structure/machinery/power/terminal{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "HV" = ( /obj/structure/machinery/landinglight/ds1/delayone{ dir = 4 @@ -5448,22 +5522,35 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) -"Ig" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/living/platoon_commander_rooms) "Ii" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/living/cryo_cells) +"It" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/autoname{ + dir = 1; + req_one_access = list(); + autoname = 0 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) "Iw" = ( /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/squads/alpha/platoon_sergeant) +"Iy" = ( +/obj/structure/computer3frame, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "IC" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -5491,33 +5578,36 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/squad_two) -"IN" = ( +"IP" = ( +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) +"IR" = ( /obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = 8; - pixel_y = 16 + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 2 }, -/obj/structure/filingcabinet{ - density = 0; - pixel_x = -8; - pixel_y = 18 +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_x = -1; + pixel_y = 2 }, +/obj/structure/pipes/standard/manifold/hidden/supply, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, -/area/almayer/hallways/starboard_hallway) -"IP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 +/area/almayer/engineering) +"IS" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/machinery/camera/autoname/almayer{ + dir = 4; + name = "ship-grade camera" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "IT" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -5555,6 +5645,15 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"IZ" = ( +/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/hangar) "Jb" = ( /obj/structure/machinery/cm_vending/clothing/medic/alpha, /turf/open/floor/almayer{ @@ -5599,6 +5698,15 @@ }, /turf/open/floor/almayer, /area/almayer/squads/alpha/platoon_sergeant) +"Jp" = ( +/obj/structure/machinery/conveyor{ + dir = 9 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/hallways/starboard_hallway) "Jq" = ( /obj/structure/machinery/landinglight/ds1/delaytwo{ dir = 8 @@ -5615,13 +5723,6 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_port) -"JC" = ( -/obj/structure/closet/emcloset, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "JD" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -5673,18 +5774,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"Kc" = ( -/obj/structure/pipes/vents/pump, -/obj/item/tool/mop{ - pixel_x = -9; - pixel_y = 20 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/turf/open/floor/almayer, -/area/almayer/engineering) "Kd" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -5730,26 +5819,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"Ko" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 2 - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "Kp" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/rifle/m41aMK1{ @@ -5763,12 +5832,16 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_one) -"Ks" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"Ku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ + req_one_access = list(); + req_one_access_txt = "8;12;40" + }, /turf/open/floor/almayer{ - icon_state = "bluefull" + icon_state = "plate" }, -/area/almayer/hallways/hangar) +/area/almayer/squads/alpha/squad_two) "Kv" = ( /turf/open/floor/almayer, /area/almayer/squads/alpha/platoon_sergeant) @@ -5782,16 +5855,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"KB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "KD" = ( /obj/effect/decal/warning_stripes{ icon_state = "SW-out"; @@ -5806,14 +5869,6 @@ /obj/vehicle/powerloader, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"KJ" = ( -/obj/structure/closet/secure_closet/engineering_welding{ - req_one_access = list() - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "KK" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -5844,12 +5899,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"KR" = ( -/obj/structure/closet/secure_closet/engineering_chief, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "KU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -5865,6 +5914,12 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"La" = ( +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/engineering) "Ld" = ( /obj/structure/window/reinforced{ dir = 4; @@ -5915,15 +5970,6 @@ /obj/effect/landmark/observer_start, /turf/open/floor/plating, /area/almayer/hallways/hangar) -"Lh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "Ll" = ( /obj/structure/ship_ammo/minirocket/incendiary, /turf/open/floor/almayer{ @@ -5943,23 +5989,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"Lq" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 2 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "NW-out"; - pixel_x = -1; - pixel_y = 2 - }, -/obj/structure/pipes/standard/manifold/hidden/supply, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "Ls" = ( /obj/structure/machinery/cm_vending/sorted/uniform_supply/squad_prep/alpha{ density = 0 @@ -5971,12 +6000,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"Lt" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "Lx" = ( /obj/structure/machinery/landinglight/ds1{ dir = 8 @@ -5985,6 +6008,13 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"LC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/starboard_hallway) "LE" = ( /obj/structure/machinery/camera/autoname/almayer{ dir = 8; @@ -6028,18 +6058,6 @@ /obj/effect/landmark/start/marine/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) -"LP" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "W"; - pixel_x = -1; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "LQ" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -6064,33 +6082,93 @@ }, /area/almayer/living/cafeteria_port) "LT" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/warning_stripes{ - icon_state = "W" +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/status_display{ + pixel_x = -32 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "LZ" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/living/platoon_commander_rooms) +"Mc" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/living/platoon_commander_rooms) +"Md" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "Me" = ( /turf/closed/wall/almayer, /area/almayer/squads/alpha/squad_two) +"Mf" = ( +/obj/effect/decal/cleanable/cobweb{ + dir = 8 + }, +/obj/item/notepad, +/obj/item/maintenance_jack, +/obj/structure/closet, +/obj/item/tool/pen{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/device/camera, +/obj/item/device/camera_film, +/obj/item/storage/photo_album, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/synthcloset) "Mi" = ( /obj/structure/machinery/light{ dir = 4 }, -/turf/open/floor/almayer{ - icon_state = "dark_sterile" +/turf/open/floor/almayer{ + icon_state = "dark_sterile" + }, +/area/almayer/living/cryo_cells) +"Mj" = ( +/obj/structure/surface/table/reinforced/prison, +/turf/open/floor/almayer{ + icon_state = "sterile_green" + }, +/area/almayer/medical) +"Mk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/hangar) +"Ml" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/firstaid/rad{ + pixel_x = -7; + pixel_y = 2 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/structure/machinery/firealarm{ + dir = 8; + pixel_x = -24 }, -/area/almayer/living/cryo_cells) -"Mj" = ( -/obj/structure/surface/table/reinforced/prison, /turf/open/floor/almayer{ - icon_state = "sterile_green" + icon_state = "plate" }, -/area/almayer/medical) +/area/almayer/engineering) "Mn" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -6098,6 +6176,15 @@ icon_state = "cargo_arrow" }, /area/almayer/living/cryo_cells) +"Mu" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ + req_one_access = list(); + name = "\improper Engineering Airlock" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) "MB" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out" @@ -6133,21 +6220,31 @@ "MK" = ( /turf/closed/wall/almayer/outer, /area/almayer/living/platoon_commander_rooms) +"ML" = ( +/obj/structure/largecrate, +/obj/structure/largecrate{ + pixel_y = 16 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/starboard_hallway) "MN" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) -"MS" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 +"MW" = ( +/obj/structure/pipes/vents/pump{ + dir = 4 }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) -"MT" = ( /obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" }, /turf/open/floor/almayer{ dir = 5; @@ -6189,6 +6286,20 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) +"No" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer, +/area/almayer/living/synthcloset) "Np" = ( /turf/open/floor/almayer, /area/almayer/living/briefing) @@ -6196,6 +6307,33 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_two) +"Nx" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/obj/structure/machinery/power/smes/buildable, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) +"Nz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "NB" = ( /obj/structure/sign/safety/cryo{ pixel_x = 6; @@ -6215,6 +6353,9 @@ pixel_x = 14; pixel_y = 29 }, +/obj/item/ammo_magazine/sentry{ + layer = 3.01 + }, /obj/item/defenses/handheld/sentry, /turf/open/floor/almayer{ icon_state = "plate" @@ -6238,31 +6379,15 @@ icon_state = "dark_sterile" }, /area/almayer/living/platoon_commander_rooms) -"NF" = ( -/obj/structure/closet/radiation, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) -"NH" = ( -/obj/structure/machinery/power/terminal{ - dir = 8 - }, -/obj/item/stack/catwalk{ - pixel_x = 12; - pixel_y = -9 +"NI" = ( +/obj/structure/machinery/cm_vending/clothing/synth/snowflake{ + pixel_x = -30; + density = 0 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) -"NN" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" + icon_state = "test_floor5" }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) +/area/almayer/living/synthcloset) "NO" = ( /obj/structure/bed/chair/comfy, /turf/open/floor/almayer{ @@ -6281,6 +6406,16 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) +"NU" = ( +/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor/autoname{ + dir = 1; + req_one_access = list(); + autoname = 0 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) "NV" = ( /obj/structure/sign/safety/cryo{ pixel_x = 6; @@ -6290,6 +6425,12 @@ icon_state = "plate" }, /area/almayer/living/cryo_cells) +"NZ" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) "Ob" = ( /obj/structure/platform{ dir = 4; @@ -6304,6 +6445,14 @@ icon_state = "plate" }, /area/almayer/living/briefing) +"Oc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "Od" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -6317,18 +6466,13 @@ icon_state = "plate" }, /area/almayer/hallways/port_hallway) -"Op" = ( -/obj/structure/closet/fireaxecabinet{ - pixel_y = 30 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" +"Ol" = ( +/obj/item/reagent_container/spray/cleaner{ + pixel_x = 5; + pixel_y = 10 }, +/obj/structure/janitorialcart, +/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering) "Os" = ( /obj/structure/bed/chair/comfy, @@ -6336,6 +6480,12 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) +"Oz" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/hangar) "OA" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" @@ -6344,23 +6494,13 @@ "OC" = ( /obj/structure/surface/table/reinforced/almayer_B, /obj/structure/machinery/light, +/obj/item/device/cassette_tape/pop3{ + pixel_y = 3 + }, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/platoon_commander_rooms) -"OF" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "E"; - pixel_x = 1 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "W" - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) "OG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/alarm/almayer{ @@ -6410,15 +6550,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"OQ" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/cameras/engineering{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "OU" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -6430,6 +6561,26 @@ dir = 4 }, /area/almayer/living/briefing) +"OY" = ( +/obj/structure/ladder{ + height = 2; + id = "req1" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/hallways/starboard_hallway) +"OZ" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 6 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "Pc" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -6529,23 +6680,28 @@ icon_state = "dark_sterile" }, /area/almayer/medical) -"Pt" = ( -/obj/effect/decal/cleanable/blood/oil, +"Ps" = ( +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/plasteel{ + amount = 40; + pixel_x = 7; + pixel_y = 6 + }, +/obj/structure/closet/crate/construction, /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - icon_state = "plate" + icon_state = "test_floor5" }, -/area/almayer/hallways/hangar) -"Pv" = ( +/area/almayer/engineering) +"Pt" = ( +/obj/effect/decal/cleanable/blood/oil, /obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/cm_vending/sorted/tech/tool_storage{ - req_one_access = list() - }, -/obj/structure/machinery/light, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/engineering) +/area/almayer/hallways/hangar) "Py" = ( /obj/structure/machinery/landinglight/ds1{ dir = 4 @@ -6570,15 +6726,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_one) -"PC" = ( -/obj/structure/plasticflaps, -/obj/structure/machinery/conveyor{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/hallways/starboard_hallway) "PF" = ( /obj/structure/machinery/light, /turf/open/floor/almayer{ @@ -6594,25 +6741,14 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) -"PJ" = ( -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ - name = "Damage Control Locker"; - req_one_access = list() - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/engidoor{ - name = "\improper Damage Control Locker"; - req_one_access = list() +"PL" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 }, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, /area/almayer/engineering) -"PL" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "PQ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -6621,15 +6757,6 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha/platoon_sergeant) -"PR" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 9 - }, -/turf/open/floor/almayer, -/area/almayer/engineering) "PW" = ( /obj/structure/machinery/door/airlock/almayer/command/reinforced{ name = "\improper Private Briefing Room"; @@ -6671,7 +6798,7 @@ pixel_x = -17; pixel_y = 16 }, -/obj/structure/transmitter/rotary/no_dnd{ +/obj/structure/phone_base/rotary/no_dnd{ name = "Alpha Overwatch Telephone"; phone_category = "Command"; phone_id = "Alpha Overwatch" @@ -6716,11 +6843,38 @@ pixel_x = 16; pixel_y = -15 }, -/obj/structure/largecrate/random/case/double, +/obj/structure/largecrate/random/case/double, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/port_hallway) +"Qq" = ( +/obj/structure/machinery/door/airlock/almayer/engineering/reinforced{ + req_one_access = list(); + name = "\improper Engineering Airlock" + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/engineering) +"Qt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/surface/table/almayer, +/obj/item/tool/hand_labeler{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/item/reagent_container/food/drinks/coffeecup/uscm{ + pixel_x = -6; + pixel_y = 1 + }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hallways/port_hallway) +/area/almayer/hallways/starboard_hallway) "Qu" = ( /obj/structure/machinery/firealarm{ pixel_y = 28 @@ -6750,6 +6904,15 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) +"Qz" = ( +/obj/structure/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/closet/firecloset/full, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) "QD" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -6766,13 +6929,6 @@ icon_state = "sterile_green" }, /area/almayer/medical) -"QF" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "QI" = ( /obj/structure/surface/table/almayer, /obj/effect/decal/cleanable/dirt, @@ -6789,6 +6945,20 @@ icon_state = "test_floor4" }, /area/almayer/squads/alpha/squad_one) +"QL" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/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/engineering) "QM" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -6810,6 +6980,13 @@ /obj/structure/bed/chair/office/dark, /turf/open/floor/almayer, /area/almayer/living/platoon_commander_rooms) +"QP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/largecrate, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "QQ" = ( /obj/structure/toilet{ dir = 8 @@ -6836,11 +7013,6 @@ icon_state = "cargo" }, /area/almayer/living/cryo_cells) -"QV" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) "QW" = ( /obj/structure/cargo_container/wy/left, /obj/structure/sign/poster{ @@ -6876,6 +7048,24 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) +"Rc" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_x = -1 + }, +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Supply Office" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/starboard_hallway) +"Rd" = ( +/obj/structure/foamed_metal, +/turf/open/floor/plating, +/area/almayer/hallways/starboard_hallway) "Rg" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -6892,15 +7082,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"Rj" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad{ - req_one_access = list(); - req_one_access_txt = "8;12;39" - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/squads/alpha/squad_one) "Rl" = ( /obj/structure/surface/table/almayer, /obj/item/tool/kitchen/tray{ @@ -6927,6 +7108,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) +"Rt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "Rv" = ( /turf/closed/wall/almayer/outer, /area/almayer/living/cafeteria_port) @@ -6967,9 +7157,45 @@ /obj/effect/landmark/start/marine/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) +"RK" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/hangar) "RM" = ( -/obj/structure/foamed_metal, -/turf/open/floor/plating, +/obj/structure/closet/firecloset/full, +/obj/structure/machinery/light, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) +"RN" = ( +/obj/structure/surface/rack, +/obj/item/clothing/mask/gas{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/stack/sheet/mineral/phoron/medium_stack{ + desc = "Phoron is an extremely rare mineral with exotic properties, often used in cutting-edge research. Just getting it into a stable, solid form is already hard enough. Handle with care."; + pixel_y = -9 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, /area/almayer/engineering) "RO" = ( /obj/effect/decal/cleanable/dirt, @@ -6981,12 +7207,26 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) +"RP" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer, +/area/almayer/engineering) "RT" = ( /obj/structure/machinery/landinglight/ds1/delayone, /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/hallways/hangar) +"RW" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "Sc" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -7038,12 +7278,19 @@ }, /area/almayer/living/cryo_cells) "Sj" = ( -/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/obj/effect/decal/cleanable/blood/oil, /turf/open/floor/almayer{ - dir = 4; - icon_state = "cargo_arrow" + dir = 5; + icon_state = "plating" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "Sl" = ( /obj/structure/surface/table/almayer, /obj/item/paper_bin{ @@ -7054,6 +7301,15 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) +"Sn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "So" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -7121,10 +7377,6 @@ icon_state = "plate" }, /area/almayer/living/briefing) -"SD" = ( -/obj/structure/closet/crate/trashcart, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) "SL" = ( /obj/structure/machinery/light{ dir = 8 @@ -7137,9 +7389,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) -"SQ" = ( -/turf/open/floor/almayer, -/area/almayer/engineering) "SR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -7164,6 +7413,18 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) +"SV" = ( +/obj/structure/surface/table/reinforced/almayer_B, +/obj/item/prop/magazine/book/theartofwar, +/obj/item/paper_bin/uscm{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/tool/pen{ + pixel_x = 12 + }, +/turf/open/floor/almayer, +/area/almayer/living/platoon_commander_rooms) "SY" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -7264,15 +7525,6 @@ icon_state = "plate" }, /area/almayer/living/grunt_rnr) -"Tl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/hangar) "To" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -7290,14 +7542,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) -"Tt" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "Tu" = ( /obj/structure/sign/safety/hazard{ pixel_x = -19; @@ -7319,21 +7563,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"Tv" = ( -/obj/structure/pipes/standard/manifold/hidden/supply{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/engineering) -"Tw" = ( -/obj/structure/closet/radiation, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "Tx" = ( /obj/structure/machinery/landinglight/ds1/delaythree{ dir = 8 @@ -7394,9 +7623,22 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_one) +"TK" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W" + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "TN" = ( -/turf/closed/wall/almayer, -/area/almayer/hallways/starboard_hallway) +/turf/closed/wall/almayer/reinforced, +/area/almayer/engineering) "TO" = ( /obj/structure/pipes/standard/manifold/fourway/hidden/supply, /turf/open/floor/almayer, @@ -7414,15 +7656,17 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"TQ" = ( -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "TT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, /area/almayer/squads/alpha/squad_two) +"TW" = ( +/obj/structure/machinery/recharge_station, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/living/synthcloset) "TY" = ( /obj/structure/barricade/handrail{ dir = 1; @@ -7444,28 +7688,18 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_port) -"Ud" = ( -/obj/structure/closet/coffin/woodencrate, -/obj/item/clothing/accessory/storage/droppouch, -/obj/item/clothing/accessory/storage/droppouch, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/hallways/starboard_hallway) -"Ue" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +"Uf" = ( /obj/effect/decal/warning_stripes{ - icon_state = "SW-out"; - pixel_x = -1 - }, -/obj/structure/machinery/door/airlock/almayer/generic{ - dir = 1; - name = "\improper Supply Office" + icon_state = "W"; + pixel_x = -1; + pixel_y = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - icon_state = "test_floor4" + dir = 5; + icon_state = "plating" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/engineering) "Uh" = ( /turf/open/floor/almayer{ icon_state = "test_floor5" @@ -7487,25 +7721,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/alpha/squad_one) -"Ul" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/cell_charger, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) -"Us" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 +"Um" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/cm_vending/clothing/synth{ + pixel_x = -30; + density = 0 }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +/turf/open/floor/almayer{ + icon_state = "test_floor5" }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hallways/starboard_hallway) +/area/almayer/living/synthcloset) "Uv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/pipes/standard/simple/hidden/supply, @@ -7519,15 +7744,6 @@ icon_state = "cargo_arrow" }, /area/almayer/hallways/hangar) -"UB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "UI" = ( /obj/structure/surface/table/almayer, /obj/item/device/cassette_tape/nam{ @@ -7545,17 +7761,6 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) -"UM" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 6 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer, -/area/almayer/hallways/starboard_hallway) "UN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/machinery/line_nexter{ @@ -7597,10 +7802,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"UZ" = ( -/obj/structure/foamed_metal, -/turf/open/floor/plating, -/area/almayer/hallways/starboard_hallway) "Va" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -7640,42 +7841,34 @@ }, /area/almayer/living/cryo_cells) "Vj" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/toolbox/mechanical/green{ - pixel_y = 10 - }, -/obj/item/storage/toolbox/mechanical/green{ - pixel_x = -7; - pixel_y = -1 - }, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) -"Vm" = ( -/obj/structure/machinery/power/terminal{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/pouch/electronics{ - pixel_x = 6; - pixel_y = -1 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -7; - pixel_y = -8 + dir = 5; + icon_state = "plating" }, -/obj/item/stack/cable_coil, -/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering) "Vp" = ( /turf/closed/wall/almayer, /area/almayer/living/grunt_rnr) +"Vq" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "Vr" = ( /turf/open/floor/almayer{ icon_state = "plate" }, /area/almayer/living/briefing) +"Vu" = ( +/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/machinery/door/airlock/almayer/generic{ + dir = 1; + name = "\improper Supply Bay" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hallways/starboard_hallway) "Vv" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -7689,19 +7882,18 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"VA" = ( -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) -"VE" = ( -/obj/structure/machinery/recharge_station, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/engineering) -"VG" = ( +"VJ" = ( +/obj/structure/ladder{ + height = 1; + id = "req1" + }, +/obj/effect/decal/cleanable/dirt, /obj/effect/decal/warning_stripes{ - icon_state = "SE-out"; - pixel_x = 1 + icon_state = "S" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" }, -/turf/open/floor/almayer, /area/almayer/hallways/starboard_hallway) "VK" = ( /obj/effect/decal/cleanable/dirt, @@ -7725,6 +7917,34 @@ icon_state = "plate" }, /area/almayer/squads/alpha/platoon_sergeant) +"VT" = ( +/obj/structure/surface/table/almayer, +/obj/item/tool/stamp/denied{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/device/eftpos{ + eftpos_name = "Cargo Bay EFTPOS scanner"; + pixel_x = -10 + }, +/obj/item/tool/stamp/ro{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4 + }, +/obj/item/storage/fancy/cigar{ + pixel_x = 6 + }, +/obj/item/ashtray/glass{ + pixel_x = 11; + pixel_y = 9 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "VX" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -7785,6 +8005,26 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) +"Wo" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 8; + pixel_y = 16 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hallways/starboard_hallway) "Wp" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -7805,13 +8045,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"Wt" = ( -/obj/structure/largecrate/supply/generator, -/obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) "Wu" = ( /obj/structure/largecrate/random/case/double, /turf/open/floor/almayer{ @@ -7827,37 +8060,24 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"WB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "NE-out"; - pixel_x = 1; - pixel_y = 1 - }, -/obj/structure/sign/safety/electronics{ - pixel_x = 31; - pixel_y = 6 +"WA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/power/apc/almayer{ + dir = 1 }, -/obj/structure/sign/safety/high_voltage{ - pixel_x = 31; - pixel_y = -6 +/obj/structure/machinery/light{ + dir = 4 }, -/obj/structure/machinery/portable_atmospherics/canister/air, +/obj/structure/largecrate, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) +"WG" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) -"WJ" = ( -/obj/structure/surface/table/reinforced/almayer_B, -/obj/item/prop/magazine/book/theartofwar, -/obj/item/paper_bin/uscm{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/tool/pen{ - pixel_x = 12 + dir = 4; + icon_state = "cargo_arrow" }, -/turf/open/floor/almayer, -/area/almayer/living/platoon_commander_rooms) +/area/almayer/hallways/starboard_hallway) "WK" = ( /obj/structure/surface/rack, /obj/item/weapon/gun/flamer{ @@ -7867,6 +8087,9 @@ /obj/item/ammo_magazine/flamer_tank, /obj/item/ammo_magazine/flamer_tank, /obj/item/device/motiondetector, +/obj/item/attachable/attached_gun/extinguisher/pyro{ + layer = 3.01 + }, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -7879,24 +8102,6 @@ icon_state = "test_floor5" }, /area/almayer/living/briefing) -"WR" = ( -/obj/structure/machinery/computer/atmos_alert{ - dir = 4 - }, -/obj/structure/surface/table/almayer, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/engineering) -"WV" = ( -/obj/structure/machinery/door/poddoor/almayer/locked{ - dir = 4; - name = "\improper Hangar Lockdown Blast Door" - }, -/turf/closed/wall/almayer/outer, -/area/almayer/hallways/starboard_hallway) "WY" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -7924,10 +8129,12 @@ /area/almayer/living/cryo_cells) "Xb" = ( /obj/structure/surface/table/almayer, -/obj/item/device/radio, -/obj/item/device/lightreplacer, +/obj/effect/decal/cleanable/dirt, +/obj/item/folder/yellow, +/obj/item/book/manual/engineering_construction, /turf/open/floor/almayer{ - icon_state = "plate" + dir = 5; + icon_state = "plating" }, /area/almayer/engineering) "Xc" = ( @@ -7941,29 +8148,23 @@ icon_state = "cargo" }, /area/almayer/hallways/hangar) -"Xl" = ( -/obj/structure/machinery/pipedispenser, -/turf/open/floor/almayer{ - icon_state = "cargo" - }, -/area/almayer/engineering) -"Xo" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 +"Xj" = ( +/obj/structure/pipes/vents/pump, +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 1 }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -8; - pixel_y = 8 +/obj/structure/surface/table/almayer, +/obj/structure/machinery/prop/almayer/computer/PC{ + dir = 4 }, -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 8 +/obj/structure/sign/safety/terminal{ + pixel_x = -20 }, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/engineering) +/area/almayer/hallways/starboard_hallway) "Xs" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 10 @@ -7992,13 +8193,6 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) -"Xx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/largecrate, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/hallways/starboard_hallway) "Xy" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -8054,6 +8248,22 @@ icon_state = "dark_sterile" }, /area/almayer/living/cryo_cells) +"XN" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/engineering) +"XP" = ( +/obj/structure/sign/safety/storage{ + pixel_x = 7; + pixel_y = -28 + }, +/obj/structure/reagent_dispensers/ammoniatank, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/engineering) "XQ" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -8079,12 +8289,6 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_port) -"XY" = ( -/obj/structure/computer3frame, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/engineering) "Ya" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -8114,9 +8318,23 @@ /obj/structure/pipes/standard/simple/hidden/supply{ dir = 5 }, -/obj/item/folder/black_random, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/squads/alpha/platoon_sergeant) +/obj/item/folder/black_random, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/squads/alpha/platoon_sergeant) +"Ye" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/engineering) "Yh" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -8127,6 +8345,15 @@ "Yj" = ( /turf/closed/wall/almayer, /area/almayer/hallways/hangar) +"Yl" = ( +/obj/structure/machinery/cm_vending/gear/synth{ + pixel_x = -30; + density = 0 + }, +/turf/open/floor/almayer{ + icon_state = "test_floor5" + }, +/area/almayer/living/synthcloset) "Ym" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/almayer{ @@ -8158,6 +8385,16 @@ icon_state = "dark_sterile" }, /area/almayer/living/cafeteria_port) +"Yv" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/engineering) "Yw" = ( /obj/structure/machinery/door/poddoor/almayer/locked{ dir = 4; @@ -8195,6 +8432,9 @@ icon_state = "cargo_arrow" }, /area/almayer/living/briefing) +"YB" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/engineering) "YG" = ( /obj/effect/decal/warning_stripes{ icon_state = "N"; @@ -8223,18 +8463,35 @@ icon_state = "plate" }, /area/almayer/living/cafeteria_port) +"YO" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/gloves/yellow, +/obj/item/clothing/gloves/yellow, +/obj/item/clothing/gloves/yellow, +/obj/item/clothing/gloves/yellow, +/obj/item/clothing/gloves/yellow, +/obj/item/tool/shovel/snow, +/obj/item/tool/shovel/snow, +/obj/item/tool/shovel/snow, +/turf/open/floor/almayer{ + icon_state = "cargo" + }, +/area/almayer/engineering) "YP" = ( /turf/closed/wall/almayer/outer, /area/almayer/living/briefing) -"YV" = ( -/obj/structure/machinery/conveyor{ - dir = 8 +"YQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 }, +/obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" + icon_state = "plate" }, -/area/almayer/hallways/starboard_hallway) +/area/almayer/hallways/hangar) "YX" = ( /obj/effect/landmark/start/marine/medic/alpha, /obj/effect/landmark/late_join/alpha, @@ -8253,6 +8510,14 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) +"Zd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor/almayer, +/area/almayer/hallways/starboard_hallway) "Zf" = ( /turf/open/floor/almayer{ icon_state = "dark_sterile" @@ -8273,15 +8538,12 @@ icon_state = "plate" }, /area/almayer/squads/alpha/squad_two) -"Zm" = ( -/obj/structure/machinery/cm_vending/sorted/tech/electronics_storage{ - req_one_access = list() +"Zw" = ( +/obj/structure/largecrate/supply/generator, +/turf/open/floor/almayer{ + icon_state = "cargo" }, -/turf/open/floor/plating/plating_catwalk, /area/almayer/engineering) -"Zw" = ( -/turf/closed/wall/almayer/outer, -/area/almayer/hallways/starboard_hallway) "ZB" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/med_data/laptop{ @@ -8294,32 +8556,14 @@ "ZC" = ( /turf/closed/wall/almayer, /area/almayer/squads/alpha/squad_one) -"ZF" = ( -/obj/structure/surface/rack, -/obj/item/clothing/mask/gas{ - pixel_x = -5; - pixel_y = 10 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/clothing/mask/gas{ - pixel_x = 5; - pixel_y = 10 - }, -/obj/item/stack/sheet/mineral/phoron/medium_stack{ - desc = "Phoron is an extremely rare mineral with exotic properties, often used in cutting-edge research. Just getting it into a stable, solid form is already hard enough. Handle with care."; - pixel_y = -9 - }, -/turf/open/floor/almayer{ - icon_state = "test_floor5" - }, -/area/almayer/engineering) "ZI" = ( /obj/effect/landmark/start/marine/smartgunner/alpha, /obj/effect/landmark/late_join/alpha, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/cryo_cells) +"ZJ" = ( +/turf/closed/wall/almayer/outer, +/area/almayer/living/synthcloset) "ZL" = ( /turf/open/floor/almayer{ icon_state = "plate" @@ -8338,20 +8582,10 @@ icon_state = "sterile_green" }, /area/almayer/medical) -"ZT" = ( -/obj/structure/machinery/conveyor{ - dir = 8 - }, -/obj/structure/barricade/handrail{ - dir = 8 - }, +"ZU" = ( +/obj/structure/pipes/standard/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) "ZV" = ( /turf/open/floor/almayer{ @@ -8359,7 +8593,13 @@ }, /area/almayer/living/cryo_cells) "ZX" = ( -/turf/closed/wall/almayer/reinforced, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/cameras/engineering{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, /area/almayer/engineering) (1,1,1) = {" @@ -15918,7 +16158,7 @@ Yp Fg Fg gd -xZ +tS Qw Cr Cr @@ -16070,7 +16310,7 @@ IE ty Fg Fg -lW +Ku Qw Cr Cr @@ -16199,13 +16439,13 @@ ca ca ca ca -ca -ca -ca -ca -ca -ca -ca +ZJ +ZJ +ZJ +ZJ +ZJ +ZJ +ZJ qA Ng fh @@ -16222,7 +16462,7 @@ hC mf Fy DR -xZ +tS Qw Cr Cr @@ -16351,13 +16591,13 @@ ca ZL CN rk -ca -Xz -Xz -Xz -Xz -Xz -ca +ZJ +wN +Yl +Um +NI +gn +ZJ hN Kv Kv @@ -16503,13 +16743,13 @@ ca ZL mm ax -ca -Xz -Xz -Xz -Xz -Xz -ca +ZJ +nF +eT +hq +Ep +No +ZJ Hj Kv Kv @@ -16655,13 +16895,13 @@ wz ZL AQ xh -ca -Xz -Xz -Xz -Xz -Xz -ca +ZJ +TW +yJ +ba +jy +Mf +ZJ ZB KQ UK @@ -16807,13 +17047,13 @@ pl pl yO wz -ca -ca -ca -ca -ca -ca -ca +ZJ +ZJ +ey +ZJ +ZJ +ZJ +ZJ qA qA qA @@ -16961,8 +17201,8 @@ Dc wz oK wp -wp -wp +gS +GO iN iN iN @@ -17113,8 +17353,8 @@ Qk lm iG SO +Fu SY -SO iK iK SO @@ -18046,7 +18286,7 @@ PZ Dx UI cT -GP +lV Ty Cr Cr @@ -18198,7 +18438,7 @@ cR Uk cD cT -Rj +zk Ty Cr Cr @@ -18350,7 +18590,7 @@ sf cT cT cs -GP +lV Ty Cr Cr @@ -19365,15 +19605,15 @@ ca ZL Qk zy -HI -FL -vH +YQ +AL +IZ zy pl pl pl zy -Hr +Oz aN KO KO @@ -19525,7 +19765,7 @@ JZ SR SR pO -Tl +Mk OH SR SR @@ -19826,7 +20066,7 @@ CZ aT Qc Bz -Ig +Mc bo eu Dc @@ -19976,12 +20216,12 @@ ZL hS um QO -WJ +SV Bz -rY -DV -Ks -wr +GV +bD +HR +pR Rg Nf uF @@ -20436,8 +20676,8 @@ hS hS hS hS -vY -HC +iX +cI Rg Nf ZR @@ -20588,9 +20828,9 @@ iR Bz qU hS -wI -HC -nH +RK +cI +vP Nf Nf Nf @@ -20741,22 +20981,22 @@ Bz OC hS pD -HC +cI Rg -TN -TN -TN -TN -TN -TN -TN -TN -TN -TN -TN -TN -TN -rg +gE +gE +gE +gE +gE +gE +gE +gE +gE +gE +gE +gE +gE +aw Yb nx YP @@ -20892,25 +21132,25 @@ iR Bz Jg hS -Cq +bu Dc Rg -TN -TN -HJ -uB -TN -Ud -UM -Fu -Fu -QV +gE +gE +Xj +Qt +gE +Hk +OZ +yU +yU +ZU Fl -TQ -fP -wW -Fn -ny +lA +Vu +kw +qc +Gq YP oa qv @@ -21047,22 +21287,22 @@ hS pD Dc Rg -TN -CP -Lh -AJ -TN -dU -Us +gE +iQ +Cn +VT +gE +ML +ny Rr nx -kt +de sa -Xx -Af -xF +QP +bZ +Er Rr -vM +Rt YP qh Vr @@ -21196,29 +21436,29 @@ hS MB hS hS -Dj +oW Dc Rg +gE +sX +tA +gE +gE +ML +ny +uS +ng TN -GU -PL -TN -TN -dU -Us -VG EB -ZX -kS -kS -sD -yp -ZX -yp -vr -vr -vr -vr +EB +ye +Qq +TN +Qq +YB +YB +YB +YB YP YP YP @@ -21351,26 +21591,26 @@ hS pD Dc Rg +gE +Wo +iF +Rc +Md +kO +vg +RW +LC TN Fz AH -Ue +AH Gv LT -hu -NN +Gv +Hc lK -ZX -SD -SQ -SQ -lt -dc -lt -zB -DW -sw -vr +kF +YB Cr Cr Cr @@ -21502,27 +21742,27 @@ gp hS pD Dc -nH +vP +gE +qz +Zd +gE +WA +DC +DC +RW +mZ TN -IN +CX IP -TN +gf Bd -DC -DC -NN -eN +CP +PL +hy +AH ZX -vW -VA -MS -uE -UB -Tt -iO -SQ -OQ -vr +YB Cr Cr Cr @@ -21652,29 +21892,29 @@ MK MK MK MK -fi +wi Td Rg -TN +gE co -gW +OY +gE +gE +Cy +sa +nD +gE TN TN -ZT -sa -bI +gW +It TN -ZX -ZX -zY -Gl -ZX -ZX -gE -lt -VA -Ul -vr +TN +wI +Gv +IP +jN +YB Cr Cr Cr @@ -21807,26 +22047,26 @@ ca Yw Yw Yw -Zw -Zw -Zw -Zw -Zw -PC -Zw -PC -Zw -ZX -oS -Kc -PR -Zm -ZX -Cd -lt -VA -XY -vr +kS +kS +kS +kS +kS +oC +kS +oC +kS +TN +Ol +zI +jD +bO +TN +vo +Gv +IP +Iy +YB Cr Cr Cr @@ -21959,26 +22199,26 @@ Cr Cr Cr Cr -Zw -UZ -UZ -UZ -Zw -YV -Zw -YV -Zw -ZX -iv -oD -eZ -Pv -ZX -en -Tv -eV -az -vr +kS +Rd +Rd +Rd +kS +gT +kS +gT +kS +TN +xJ +Oc +zA +gx +TN +CX +La +us +gt +YB Cr Cr Cr @@ -22111,26 +22351,26 @@ Cr Cr Cr Cr -Zw -UZ -UZ -UZ -Zw -YV -Zw -YV -Zw -ZX -jp -DH -qE -VE -ZX -na -wY -Hu -WB -vr +kS +Rd +Rd +Rd +kS +gT +kS +gT +kS +TN +zY +zG +Ff +Gy +TN +kH +kB +RP +hL +YB Cr Cr Cr @@ -22263,30 +22503,30 @@ Cr Cr Cr Cr -Zw -UZ -UZ -UZ -Zw -YV -Zw -YV -Zw -ZX -ZX -ZX -ZX -ZX -ZX -ZX -Cn -gC -vr -vr -vr -vr -vr -vr +kS +Rd +Rd +Rd +kS +gT +kS +gT +kS +TN +TN +TN +TN +TN +TN +TN +Hh +NU +YB +YB +YB +YB +YB +YB Cr Cr Cr @@ -22415,31 +22655,31 @@ Cr Cr Cr Cr -Zw -UZ -UZ -UZ -Zw -YV -Zw -YV -Zw -ZX -RM -RM -RM -RM +kS +Rd +Rd +Rd +kS +gT +kS +gT +kS +TN +fm +fm +fm +fm +fm +TN +yc +Sn +Vq +YB +RN +tB RM -ZX -wU -MT -Gn -vr -ZF -Gb -EU -vr -vr +YB +YB Cr Cr Cr @@ -22567,31 +22807,31 @@ Cr Cr Cr Cr -Zw -Zw -Zw -Zw -Zw -YV -Zw -YV -Zw -ZX -ZX -ZX -ZX -ZX -ZX -ZX -dZ -lM -qX -vr -bP -xy -rz -aK -vr +kS +kS +kS +kS +kS +gT +kS +gT +kS +TN +TN +TN +TN +TN +TN +TN +Nz +rt +XP +YB +bB +EJ +zL +oo +YB Cr Cr Cr @@ -22719,31 +22959,31 @@ Cr Cr Cr Cr -Zw -Zw -wP +kS +kS +VJ co -Zw -YV -Zw -YV -Zw -ZX -pe +kS +gT +kS +gT +kS +TN +kh +qW +GU +Ml +AO +EA +yc +aq +Uf +Bv Vj Xb Bt -ei -sp -gI -Ez -LP -PJ -FJ -mZ -yE -KJ -vr +fp +YB Cr Cr Cr @@ -22871,31 +23111,31 @@ Cr Cr Cr Cr -Zw +kS +eB +uo +WG +kS +gT +kS +gT +kS +TN Ce fv Sj -Zw -YV -Zw -YV -Zw -ZX -kn -BV +TK +MW +QL +IR +cG +fF +gW +Vj cw -OF -mI -mo -Lq -ES -lL -zY -FJ -WR -yE -BF -vr +Bt +Ps +YB Cr Cr Cr @@ -23023,31 +23263,31 @@ Cr Cr Cr Cr -Zw +kS +oB +vK +aA +kS +gT +kS +gT +kS +TN vc il wa -Zw -YV -Zw -YV -Zw -ZX -Tw +sE +Nx +sE +Ye +Sn +uX +YB dj -KB +fF uQ pS -uQ -hv -MT -KR -vr -Op -lL -CJ -fb -vr +YB Cr Cr Cr @@ -23175,31 +23415,31 @@ Cr Cr Cr Cr -Zw -Zw -gQ -hJ -Zw -YV -Zw -YV -Zw -ZX +kS +kS +yg +aX +kS +gT +kS +gT +kS +TN +Qz +il +wa +oO +AC +HT +ah +wa +yo BN -dj -KB +yy +mo an -NH -mw -qr -KB -sP -zp -Lt -lO -JC -vr -vr +YB +YB Cr Cr Cr @@ -23327,30 +23567,30 @@ Cr Cr Cr Cr -Zw -Zw -WV -Zw -Zw -YV -Zw -YV -Zw -ZX -NF -dj -MT -Av -Vm -uY -sL -KB -QF -vr -vr -vr -vr -vr +kS +kS +mb +kS +kS +gT +kS +gT +kS +TN +NZ +il +Sn +jS +vG +ds +hU +wa +Hx +YB +YB +YB +YB +YB Cr Cr Cr @@ -23479,26 +23719,26 @@ Cr Cr Cr Cr -Zw -UZ -UZ -UZ -Zw -YV -Zw -YV -Zw -ZX -NF -dj -MT -uQ -wi -uQ -Xo -MT -lC -vr +kS +Rd +Rd +Rd +kS +gT +kS +gT +kS +TN +NZ +il +Sn +sE +zl +sE +wH +Sn +XN +YB Cr Cr Cr @@ -23631,26 +23871,26 @@ Cr Cr Cr Cr -Zw -UZ -UZ -UZ -Zw -YV -Zw -YV -Zw -ZX -ZX -ZX -ga -ZX -ZX -ZX -yp -ZX -vr -vr +kS +Rd +Rd +Rd +kS +gT +kS +gT +kS +TN +TN +TN +Mu +TN +TN +TN +Qq +TN +YB +YB Cr Cr Cr @@ -23783,25 +24023,25 @@ Cr Cr Cr Cr -Zw -UZ -Zw -Zw -Zw -YV -Zw -YV -Zw -Zw -vr -Gn -em -nf -Ao -pR -Fv -Gn -vr +kS +Rd +kS +kS +kS +gT +kS +gT +kS +kS +YB +Vq +Yv +if +IS +YO +cj +Vq +YB Cr Cr Cr @@ -23935,25 +24175,25 @@ Cr Cr Cr Cr -Zw -UZ -Zw -oX -oX -yJ -Zw -BB -oX +kS +Rd +kS +or +or +fq +kS +Jp +or +or +YB +bg +kk +Gu +Gu +Gu +vJ oX -vr -DU -FF -wC -wC -wC -Ko -Wt -vr +YB Cr Cr Cr @@ -24087,25 +24327,25 @@ Cr Cr Cr Cr +kS +kS +kS +kS +kS +kS +kS +kS +kS +kS +YB +ro +rq +jQ +GA +dg +aG Zw -Zw -Zw -Zw -Zw -Zw -Zw -Zw -Zw -Zw -vr -CY -qS -Xl -kA -bl -ee -Hq -vr +YB Cr Cr Cr @@ -24249,15 +24489,15 @@ Cr Cr Cr Cr -vr -vr -vr -vr -vr -vr -vr -vr -vr +YB +YB +YB +YB +YB +YB +YB +YB +YB Cr Cr Cr diff --git a/maps/shuttles/dropship_alamo.dmm b/maps/shuttles/dropship_alamo.dmm index 7c49edfdd0..ea14641a75 100644 --- a/maps/shuttles/dropship_alamo.dmm +++ b/maps/shuttles/dropship_alamo.dmm @@ -382,7 +382,7 @@ /area/shuttle/drop1/sulaco) "Ho" = ( /obj/structure/machinery/computer/dropship_weapons/dropship1, -/obj/structure/transmitter/rotary{ +/obj/structure/phone_base/rotary{ name = "Alamo Telephone"; phone_category = "Dropship"; phone_id = "Alamo"; diff --git a/maps/shuttles/dropship_normandy.dmm b/maps/shuttles/dropship_normandy.dmm index f1595cd97d..55d07883e3 100644 --- a/maps/shuttles/dropship_normandy.dmm +++ b/maps/shuttles/dropship_normandy.dmm @@ -156,7 +156,7 @@ /area/shuttle/drop2/sulaco) "lH" = ( /obj/structure/machinery/computer/dropship_weapons/dropship2, -/obj/structure/transmitter/rotary{ +/obj/structure/phone_base/rotary{ name = "Normandy Telephone"; phone_category = "Dropship"; phone_id = "Normandy"; diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/clf_ert_station.dmm index 7347be914d..aa48ff8d9f 100644 --- a/maps/templates/clf_ert_station.dmm +++ b/maps/templates/clf_ert_station.dmm @@ -1654,7 +1654,7 @@ /obj/item/spacecash/c1, /obj/item/storage/box/matches, /obj/structure/surface/table/woodentable/fancy, -/obj/structure/transmitter/rotary{ +/obj/structure/phone_base/rotary{ name = "CLF Outpost"; phone_category = "CLF"; phone_id = "CLF Outpost"; diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/upp_ert_station.dmm index ae2a8ad40c..6db27a83e6 100644 --- a/maps/templates/upp_ert_station.dmm +++ b/maps/templates/upp_ert_station.dmm @@ -876,7 +876,7 @@ /area/adminlevel/ert_station/upp_station) "mG" = ( /obj/structure/surface/table/reinforced/black, -/obj/structure/transmitter/rotary{ +/obj/structure/phone_base/rotary{ name = "UPP Station"; phone_category = "UPP"; phone_id = "UPP Station"; diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/weyland_ert_station.dmm index 1937aa6a61..82fe23c5bc 100644 --- a/maps/templates/weyland_ert_station.dmm +++ b/maps/templates/weyland_ert_station.dmm @@ -2794,7 +2794,7 @@ /area/adminlevel/ert_station/weyland_station) "Js" = ( /obj/structure/surface/table/reinforced/black, -/obj/structure/transmitter/rotary{ +/obj/structure/phone_base/rotary{ do_not_disturb = 2; name = "Weyland-Yutani Station CiC"; phone_category = "W-Y"; @@ -3587,7 +3587,7 @@ /area/adminlevel/ert_station/weyland_station) "SE" = ( /obj/structure/surface/table/woodentable/fancy, -/obj/structure/transmitter/rotary{ +/obj/structure/phone_base/rotary{ do_not_disturb = 2; name = "Weyland-Yutani Station Meeting Room"; phone_category = "W-Y"; diff --git a/maps/tents/tent_cmd.dmm b/maps/tents/tent_cmd.dmm index 0dbd6a6ef3..2349142770 100644 --- a/maps/tents/tent_cmd.dmm +++ b/maps/tents/tent_cmd.dmm @@ -21,7 +21,7 @@ dir = 1 }, /obj/structure/surface/table, -/obj/structure/transmitter/tent{ +/obj/structure/phone_base/tent{ phone_category = "Command"; phone_id = "Ground Command"; pixel_x = -2; diff --git a/maps/tents/tent_reqs.dmm b/maps/tents/tent_reqs.dmm index 2dc47531ed..d5dcd1d51a 100644 --- a/maps/tents/tent_reqs.dmm +++ b/maps/tents/tent_reqs.dmm @@ -53,7 +53,7 @@ dir = 8 }, /obj/structure/bed/chair, -/obj/structure/transmitter/tent{ +/obj/structure/phone_base/tent{ pixel_y = 30; pixel_x = 16; phone_category = "Command"; diff --git a/sound/effects/Heart Beat Short.ogg b/sound/effects/heart_beat_short.ogg similarity index 100% rename from sound/effects/Heart Beat Short.ogg rename to sound/effects/heart_beat_short.ogg diff --git a/tgui/packages/tgui/interfaces/GameMaster.js b/tgui/packages/tgui/interfaces/GameMaster.js index 8e641b1884..e33fc65b1a 100644 --- a/tgui/packages/tgui/interfaces/GameMaster.js +++ b/tgui/packages/tgui/interfaces/GameMaster.js @@ -1,5 +1,5 @@ import { useBackend } from '../backend'; -import { Flex, Dropdown, Button, Section } from '../components'; +import { Flex, Dropdown, Button, Section, Slider, Collapsible, Stack, Divider } from '../components'; import { Window } from '../layouts'; export const GameMaster = (props, context) => { @@ -25,7 +25,7 @@ export const GameMaster = (props, context) => { }} /> - + { + +
Extras
Emergency Response TeamEmergency Response TeamSurvivorSurvivorAgentAgent